Changes between Version 1 and Version 2 of BoostPhoenix3


Ignore:
Timestamp:
May 28, 2009, 6:38:52 PM (13 years ago)
Author:
Eric Niebler
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BoostPhoenix3

    v1 v2  
    22
    33This is the Wiki page for coordinating development efforts for Phoenix V3, a ground-up rewrite of Phoenix build on top of Boost.Proto. Please share your ideas and post sample code here. Once we find our shared vision, we can begin fleshing out the implementation in the phoenix_v3 branch in Boost's subversion repository.
     4
     5= Background =
     6
     7In the proto/v4 branch in subversion there is a nearly complete implementation of Phoenix on top of Proto. It is overcomplicated and compiles slowly, but proves the viability of the project. The purpose of the reboot is to avoid the problems that led to the complexity and slow compile times. That may involve some changes to the fundamental libraries upon which Phoenix3 will be based. That includes Proto, MPL and Fusion.
     8
     9= Outstanding Issues =
     10
     11* '''Arity and Config Macros''': Phoenix function arity defaults to 10. Proto arity defaults to 5. Monkeying with config macros in Phoenix will introduce include order headaches, not to mention longer compile times for any other library based on Proto.
     12
     13* '''Terminal Capture Behavior''': In Phoenix, most terminals must be captured by value. In Proto, all terminals are captured by reference by default and must be recaptured by value through the use of a so-called Proto generator. This requires extra code (complexity) and needless template instantiations (longer compile times). Perhaps Proto can be extended such that terminal capture behavior can be specified on a per-domain basis.