{"id":1133,"date":"2010-07-23T19:36:08","date_gmt":"2010-07-24T02:36:08","guid":{"rendered":"http:\/\/boost-spirit.com\/home\/?p=1133"},"modified":"2010-08-17T06:20:57","modified_gmt":"2010-08-17T13:20:57","slug":"phoenix3-gsoc-project","status":"publish","type":"post","link":"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/","title":{"rendered":"Phoenix3 GSOC project"},"content":{"rendered":"<p>Thomas Heller has just completed the Phoenix Proto port. Another successful GSOC project!<\/p>\n<p>I&#8217;ve been mentoring for GSOC for a couple of years now. This one is the best (the Fusion 0x project of last year&#8217;s GSOC was also highly successful, but it was Hartmut Kaiser who mentored that). Thomas is an amazing student! A++, if there&#8217;s such a thing.<\/p>\n<p><!--more-->Here&#8217;s Thomas&#8217; post on the Boost mailing list:<\/p>\n<blockquote><p>Ladies and Gentlemen,<\/p>\n<p>I proudly announce that the port of phoenix3 is completed! All\u00a0 testcases pass! (some with minor modifications)<\/p>\n<p>So, What is next? Here is my proposed schedule:<\/p>\n<ul>\n<li>fix some minor issues<\/li>\n<li>improve boost.bind compatibility: make all boost.bind testcases pass<\/li>\n<li>implement all boost.lambda testcases and make them pass, as far as it is reasonable<\/li>\n<li>add support for C++0x lambdas<\/li>\n<li>make interoperability testcases for std::function, boost::function<\/li>\n<li>adapt the documentation<\/li>\n<li>clean up code (some parts are a little messy as of now)<\/li>\n<li>improve compile time<\/li>\n<\/ul>\n<p>Did I miss something?<\/p>\n<p>This is a very tight schedule, I may not be able to finish all points during the GSoC period. Any help will be appreciated. Additionally a review of the current code is highly appreciated to point out some defects that might exist.<\/p>\n<p>The code can be checked out at:<br \/>\n<a href=\"https:\/\/svn.boost.org\/svn\/boost\/sandbox\/SOC\/2010\/phoenix3\">https:\/\/svn.boost.org\/svn\/boost\/sandbox\/SOC\/2010\/phoenix3<\/a><\/p>\n<p>I will be happy to answer your questions!<\/p>\n<p>Additionally I would like to thank Joel de Guzman and Eric Niebler for their great assistance and initial designs!<\/p><\/blockquote>\n<p>So why is this relevant? Here&#8217;s more from Eric Niebler:<\/p>\n<blockquote><p>Let me expand a bit on Thomas&#8217; post with my own perspective. Currently, the expressions created by Boost.Bind, Boost.Lambda and Boost.Phoenix2 are black boxes. You can pass them to std algorithms for evaluation, but that&#8217;s about it.<\/p>\n<p>In contrast, the expressions created by Boost.Phoenix3 will the Proto expressions. If Phoenix3 is the compiler of a C++-in-C++ domain specific language, then the Proto expression is the intermediate form. It will be documented and part of the Phoenix3 API. The grammar for valid Phoenix3 expressions will also be documented and extensible. For the first time, we will have a way to generate C++-like expression trees, just like the C++ compiler itself does. We have a standard way (Proto) to traverse and manipulate them. Sure, you can just evaluate them as you could before, but now you can do much more. For instance, you can define your own Proto transforms to:<\/p>\n<ul>\n<li>Do various optimizations, just like a real compiler<\/li>\n<li>Add your own custom evaluation strategies for operations on your types<\/li>\n<li>Rewrite Phoenix3 expressions for parallel execution, or whatever<\/li>\n<li>???!!!<\/li>\n<\/ul>\n<p>Essentially, it means Phoenix3 is a white box, an open platform. Third parties can use just the Phoenix3 front end and intermediate form, substituting their own back ends to make the expressions mean and do completely different and domain-specific things.<\/p>\n<p>Expect to see Phoenix3 expressions showing up in other DSEL contexts. It&#8217;s hard to predict how people will use this. The possibilities are really limitless.<\/p><\/blockquote>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>Share<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-1133\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-1133\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-pinterest\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-pinterest-1133\" class=\"share-pinterest sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=pinterest\" target=\"_blank\" title=\"Click to share on Pinterest\" ><span>Pinterest<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-1133\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-reddit\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-reddit sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=reddit\" target=\"_blank\" title=\"Click to share on Reddit\" ><span>Reddit<\/span><\/a><\/li><li class=\"share-tumblr\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-tumblr sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=tumblr\" target=\"_blank\" title=\"Click to share on Tumblr\" ><span>Tumblr<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Thomas Heller has just completed the Phoenix Proto port. Another successful GSOC project! I&#8217;ve been mentoring for GSOC for a couple of years now. This one is the best (the Fusion 0x project of last year&#8217;s GSOC was also highly successful, but it was Hartmut Kaiser who mentored that). Thomas is an amazing student! A++, [&hellip;]<\/p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon-text sd-sharing\"><h3 class=\"sd-title\">Share this:<\/h3><div class=\"sd-content\"><ul><li><a href=\"#\" class=\"sharing-anchor sd-button share-more\"><span>Share<\/span><\/a><\/li><li class=\"share-end\"><\/li><\/ul><div class=\"sharing-hidden\"><div class=\"inner\" style=\"display: none;\"><ul><li class=\"share-facebook\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-facebook-1133\" class=\"share-facebook sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=facebook\" target=\"_blank\" title=\"Click to share on Facebook\" ><span>Facebook<\/span><\/a><\/li><li class=\"share-twitter\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-twitter-1133\" class=\"share-twitter sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=twitter\" target=\"_blank\" title=\"Click to share on Twitter\" ><span>Twitter<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-pinterest\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-pinterest-1133\" class=\"share-pinterest sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=pinterest\" target=\"_blank\" title=\"Click to share on Pinterest\" ><span>Pinterest<\/span><\/a><\/li><li class=\"share-linkedin\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"sharing-linkedin-1133\" class=\"share-linkedin sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=linkedin\" target=\"_blank\" title=\"Click to share on LinkedIn\" ><span>LinkedIn<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-reddit\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-reddit sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=reddit\" target=\"_blank\" title=\"Click to share on Reddit\" ><span>Reddit<\/span><\/a><\/li><li class=\"share-tumblr\"><a rel=\"nofollow noopener noreferrer\" data-shared=\"\" class=\"share-tumblr sd-button share-icon\" href=\"http:\/\/boost-spirit.com\/home\/2010\/07\/23\/phoenix3-gsoc-project\/?share=tumblr\" target=\"_blank\" title=\"Click to share on Tumblr\" ><span>Tumblr<\/span><\/a><\/li><li class=\"share-end\"><\/li><li class=\"share-end\"><\/li><\/ul><\/div><\/div><\/div><\/div><\/div>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","spay_email":"","jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[1],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pIHdZ-ih","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/posts\/1133"}],"collection":[{"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/comments?post=1133"}],"version-history":[{"count":5,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/posts\/1133\/revisions"}],"predecessor-version":[{"id":1171,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/posts\/1133\/revisions\/1171"}],"wp:attachment":[{"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/media?parent=1133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/categories?post=1133"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/boost-spirit.com\/home\/wp-json\/wp\/v2\/tags?post=1133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}