
Proto, the library for defining expression template-based domain-specific languages, is ready for review. It's already actively being used by Boost.Xpressive and by Spirit-2, and is a key enabling technology in the long-planned unification of Phoenix and the Lambda Library. Documentation is here: http://boost-sandbox.sourceforge.net/libs/proto Download proto.zip from here: http://www.boost-consulting.com/vault/index.php?directory=Template%20Metapro... -- Eric Niebler Boost Consulting www.boost-consulting.com

This is by me the most awaited email of the year :) Thanks Eric! On Jan 28, 2008 5:26 PM, Eric Niebler <eric@boost-consulting.com> wrote:
Proto, the library for defining expression template-based domain-specific languages, is ready for review. It's already actively being used by Boost.Xpressive and by Spirit-2, and is a key enabling technology in the long-planned unification of Phoenix and the Lambda Library.
Documentation is here: http://boost-sandbox.sourceforge.net/libs/proto
Download proto.zip from here: http://www.boost-consulting.com/vault/index.php?directory=Template%20Metapro...
-- Eric Niebler Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Felipe Magno de Almeida

On Jan 29, 2008 3:57 AM, Felipe Magno de Almeida <felipe.m.almeida@gmail.com> wrote:
This is by me the most awaited email of the year :) Thanks Eric!
I second the motion. :) I can't wait for this review to start!
On Jan 28, 2008 5:26 PM, Eric Niebler <eric@boost-consulting.com> wrote:
Proto, the library for defining expression template-based domain-specific languages, is ready for review. It's already actively being used by Boost.Xpressive and by Spirit-2, and is a key enabling technology in the long-planned unification of Phoenix and the Lambda Library.
Documentation is here: http://boost-sandbox.sourceforge.net/libs/proto
Download proto.zip from here: http://www.boost-consulting.com/vault/index.php?directory=Template%20Metapro...
-- Eric Niebler Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Felipe Magno de Almeida
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Dean Michael C. Berris Software Engineer, Friendster, Inc. [http://cplusplus-soup.blogspot.com/] [mikhailberis@gmail.com] [+63 928 7291459] [+1 408 4049523]

Proto, the library for defining expression template-based domain-specific languages, is ready for review. It's already actively being used by Boost.Xpressive and by Spirit-2, and is a key enabling technology in the long-planned unification of Phoenix and the Lambda Library.
That's really good news! And I'ld like to volunteer to be the review manager, if nobody objects. Regards Hartmut

Hi Eric, I have added Proto to the review queue with Hartmut as the review manager. Let me know when the two of you have selected dates for the review. Cheers, ron On Jan 28, 2008, at 2:26 PM, Eric Niebler wrote:
Proto, the library for defining expression template-based domain-specific languages, is ready for review. It's already actively being used by Boost.Xpressive and by Spirit-2, and is a key enabling technology in the long-planned unification of Phoenix and the Lambda Library.
Documentation is here: http://boost-sandbox.sourceforge.net/libs/proto
Download proto.zip from here: http://www.boost-consulting.com/vault/index.php?directory=Template% 20Metaprogramming
-- Eric Niebler Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/ listinfo.cgi/boost

Ronald Garcia wrote:
Hi Eric,
I have added Proto to the review queue with Hartmut as the review manager. Let me know when the two of you have selected dates for the review.
Hartmut and I have picked March 17-30. -- Eric Niebler Boost Consulting www.boost-consulting.com

Hello, I am having a look at your library which seems very interesting. But i am having trouble finding whether there would be a way to do the following using Proto : typedef ... Variable; Variable x, y; evaluate( x - y ); The important thing that differs from your examples is that, in this case, x and y have the exact same type... As far as i understand what you have done, this implies instantiating both an expr<> type and the associated context at the same time. Such a process does not appear in any of your examples, and i can't see how it could be done the "Proto" way... Is it simply not possible ? Thanks for your work ! Benoît Casoetto On Jan 28, 2008 8:26 PM, Eric Niebler <eric@boost-consulting.com> wrote:
Proto, the library for defining expression template-based domain-specific languages, is ready for review. It's already actively being used by Boost.Xpressive and by Spirit-2, and is a key enabling technology in the long-planned unification of Phoenix and the Lambda Library.
Documentation is here: http://boost-sandbox.sourceforge.net/libs/proto
Download proto.zip from here: http://www.boost-consulting.com/vault/index.php?directory=Template%20Metapro...
-- Eric Niebler Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Benoît "When you have a hammer, everything else looks like a nail"

Benoit wrote:
Hello,
I am having a look at your library which seems very interesting. But i am having trouble finding whether there would be a way to do the following using Proto :
typedef ... Variable; Variable x, y; evaluate( x - y );
The important thing that differs from your examples is that, in this case, x and y have the exact same type...
That doesn't matter. If Variable is a proto expression type, x-y will create a proto expression tree.
As far as i understand what you have done, this implies instantiating both an expr<> type and the associated context at the same time.
Sorry, I don't understand.
Such a process does not appear in any of your examples, and i can't see how it could be done the "Proto" way... Is it simply not possible ?
Given: template<typename Expr> typename proto::result_of::eval< Expr const, proto::default_context const
::type evaluate(Expr const &expr) { proto::default_context const ctx; return proto::eval(expr, ctx); }
You can do this: proto::literal<int> x(12), y(4); int z = evaluate(x - y); And it should display "8". Substitute your own context type in "evaluate()" and you can make it do anything you want. -- Eric Niebler Boost Consulting www.boost-consulting.com

Thanks for your answer. I am sorry, I guess my shuffling through the proto documentation hasn't be thorough enough ! I'll probably look a bit further into how you can place literals in your expressions "just like that", but it definitely gives me a solution for this matter.
As far as i understand what you have done, this implies instantiating both an expr<> type and the associated context at the same time. Sorry, I don't understand. I was under the wrong impression that expr<> type would not hold any data (only type information) and that contexts existed to compensate for that. I was clearly wrong as shown in the example you've given.
Thanks again, i definitely will look more into your work on Proto !

Hi all,
Proto, the library for defining expression template-based domain-specific languages, is ready for review. It's already actively being used by Boost.Xpressive and by Spirit-2, and is a key enabling technology in the long-planned unification of Phoenix and the Lambda Library.
Documentation is here: http://boost-sandbox.sourceforge.net/libs/proto
Download proto.zip from here: http://www.boost- consulting.com/vault/index.php?directory=Template%20Metaprogramming
Since I've been assigned to the position of the review manager of this library I'ld like to announce the review to take place March 1st-14th 2008. I'm going to send out a 'official' review announcement later, but anybody interested in submitting a review should start looking at Proto now, it's a complex library and difficult to digest in one go. Regards Hartmut Review Manager

Eric Niebler wrote:
Proto, the library for defining expression template-based domain-specific languages, is ready for review. It's already actively being used by Boost.Xpressive and by Spirit-2, and is a key enabling technology in the long-planned unification of Phoenix and the Lambda Library.
Documentation is here: http://boost-sandbox.sourceforge.net/libs/proto
Download proto.zip from here: http://www.boost-consulting.com/vault/index.php?directory=Template%20Metapro...
In anticipation of Proto's upcoming review, I've packaged a new proto.zip in which Proto has been moved out of the xpressive sub-directory. This reflects the layout Proto would have in trunk if it were accepted. Anybody already using proto can use this new version by simply fixing up their #includes. I expect this to be the version reviewed, modulo some minor documentation additions. -- Eric Niebler Boost Consulting www.boost-consulting.com
participants (6)
-
Benoit
-
Dean Michael Berris
-
Eric Niebler
-
Felipe Magno de Almeida
-
Hartmut Kaiser
-
Ronald Garcia