On 05/10/10 08:51, Thomas Heller wrote:
Having that said, just having "plain" evaluation of phoenix expressions seemed to me that it is wasting of what could become possible with the power of proto. I want to do more with phoenix expressions, let me remind you that phoenix is "C++ in C++" and with that i want to be able to write some cool algorithms transforming these proto expressions, introspect these proto expression and actively influence the way these phoenix expressions get evaluated/optimized/whatever. One application of these custom evaluations that came to my mind was constant folding, so i implemented it on top of my new prototype. The possibilities are endless: A proper design will enable such things as multistage programming: imagine an evaluator which does not compute the result, but translate a phoenix expression to a string which can be compiled by an openCL/CUDA/shader compiler. Another thing might be auto parallelization of phoenix expression (of course, we are far away from that, we would need a proper graph library for that). Nevertheless, these were some thoughts I had in mind.
Not tha t far, it's basically what's my cohort of tools odes all by themselves with a clunky code base. If it get streamlined so tha i can reuse phoenix as a back end, it's just done. Period. We already have the openCL things working and running and even out performing commercial product ... We just need a proper code base ;)
As far as my memories go, we abandoned those prototypes because of several reasons, one was that this early prototype was quite complex and not very easy to follow, i guess this is true for my attempt to resurrect it. The other thing was that people felt like we exposed too much of proto to users who wanted to extend phoenix. Last but least, it differed too much from the design of phoenix2. See my explanations above on my try to tackle the criticism on all these points.
It didn't exposed tha much proto ... unless you consider proto::_ to be too much :/ And back in the day, I didn't knew making the new phoenix a clone of the old was a design requirements ;)
_______________________________________________ proto mailing list proto@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/proto