Re: [Boost-users] [continued][boost::fusion v2 and xpressive] versioning conflicts...
Eric, I changed the files. Should I zip them and post via mailinglist? Or should I submit them somewhere else? List of files which were changed: detail/core/linker.hpp detail/core/matcher/alternate_matcher.hpp detail/static/productions/alt_compilers.hpp detail/utility/any.hpp detail/utility/cons.hpp proto/op_base.hpp proto/proto_fwd.hpp xpressive.hpp One problem is that xpressive.hpp has info about boost version, but this is the mostly used file for inclusion. Therefore I believe this check fill fail even in boost 1.35: #if BOOST_VERSION >= 103500 # ifndef BOOST_XPRESSIVE_FUSION_V2 # define BOOST_XPRESSIVE_FUSION_V2 # endif //BOOST_XPRESSIVE_FUSION_V2 #endif //BOOST_VERSION I also executed your examples from the boost/lib directory and they produced in both cases same results. Your answer today is highly appreciated, since I will be on vacation from tomorrow on. thanks, Ovanes
On 9/24/07, Ovanes Markarian < om_boost@keywallet.com> wrote:
Eric,
sorry for the delay. I only now found some time to work on that issue: http://lists.boost.org/boost-users/2007/08/30120.php
After analysing your post and investigation what's going on, I would like to write my opinion:
changing xpressive_fwd.hpp or proto_fwd.will not help.
I grepped where fusion includes are used and need to enclose these in some conditional statements:
#ifdef BOOST_XPRESSIVE_FUSION_V2 # include ... //fusion 2 headers #else # include ... // fusion 1 headers #endif
Actually this can be done using some kind of a macro function like:
#include BOOST_XPRESSIVE_FUSION_ROOT(sequence/cons.hpp) ...
The macro function will deliver the root dependent on the predefined macros like: 1. if !defined XPRESSIVE_FUSION_ROOT and use V2 => choose the root for V2 else => choose the root for V1
As I found out the following files need to be changed: linker.hpp alternate_matcher.hpp alt_compilers.hpp any.hpp cons.hpp arg_traits.hpp op_base.hpp proto_fwd.hpp
If you give me your green light I will do it and submit a patch.
With Kind Regards, Ovanes
Ovanes Markarian wrote:
Eric, I changed the files. Should I zip them and post via mailinglist? Or should I submit them somewhere else?
List of files which were changed:
detail/core/linker.hpp detail/core/matcher/alternate_matcher.hpp detail/static/productions/alt_compilers.hpp detail/utility/any.hpp detail/utility/cons.hpp proto/op_base.hpp proto/proto_fwd.hpp xpressive.hpp
One problem is that xpressive.hpp has info about boost version, but this is the mostly used file for inclusion. Therefore I believe this check fill fail even in boost 1.35:
#if BOOST_VERSION >= 103500 # ifndef BOOST_XPRESSIVE_FUSION_V2 # define BOOST_XPRESSIVE_FUSION_V2 # endif //BOOST_XPRESSIVE_FUSION_V2 #endif //BOOST_VERSION
I also executed your examples from the boost/lib directory and they produced in both cases same results. Your answer today is highly appreciated, since I will be on vacation from tomorrow on.
Hi Ovanes. Sorry for not getting back to you sooner. I've been at the Astoria Seminar all week, and not checking email. I'm glad you've managed to get this working. The version of xpressive in SVN is very different than the version you have. Many of the files you've patched don't even exist anymore! I could apply to the patch to the old RC_1_34_0 branch and put an updated xpressive.zip in the File Vault, but the next version of Boost would not reflect your fixes. I think that's OK because the next version of Boost will have Fusion-2 and won't need your patch. If that's ok with you, then go ahead and send me the patch (as a SVN patch file against the RC_1_34_0 branch, if possible), and I'll apply it. Thanks, -- Eric Niebler Boost Consulting www.boost-consulting.com
Eric,
I will send you the patch, when I am back from the vacation, approx. on Okt.
12th.
Best Regards,
Ovanes
On 9/27/07, Eric Niebler
Ovanes Markarian wrote:
Eric, I changed the files. Should I zip them and post via mailinglist? Or should I submit them somewhere else?
List of files which were changed:
detail/core/linker.hpp detail/core/matcher/alternate_matcher.hpp detail/static/productions/alt_compilers.hpp detail/utility/any.hpp detail/utility/cons.hpp proto/op_base.hpp proto/proto_fwd.hpp xpressive.hpp
One problem is that xpressive.hpp has info about boost version, but this is the mostly used file for inclusion. Therefore I believe this check fill fail even in boost 1.35:
#if BOOST_VERSION >= 103500 # ifndef BOOST_XPRESSIVE_FUSION_V2 # define BOOST_XPRESSIVE_FUSION_V2 # endif //BOOST_XPRESSIVE_FUSION_V2 #endif //BOOST_VERSION
I also executed your examples from the boost/lib directory and they produced in both cases same results. Your answer today is highly appreciated, since I will be on vacation from tomorrow on.
Hi Ovanes. Sorry for not getting back to you sooner. I've been at the Astoria Seminar all week, and not checking email. I'm glad you've managed to get this working.
The version of xpressive in SVN is very different than the version you have. Many of the files you've patched don't even exist anymore! I could apply to the patch to the old RC_1_34_0 branch and put an updated xpressive.zip in the File Vault, but the next version of Boost would not reflect your fixes. I think that's OK because the next version of Boost will have Fusion-2 and won't need your patch. If that's ok with you, then go ahead and send me the patch (as a SVN patch file against the RC_1_34_0 branch, if possible), and I'll apply it.
Thanks,
-- Eric Niebler Boost Consulting www.boost-consulting.com
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Eric,
attached is the subversion diff file. I used the official boost 1.34.1 with
contained xpressive and patched it for fusion 2.0.
using this define will switch to fusion v2 support>
#ifndef BOOST_XPRESSIVE_FUSION_V2
# define BOOST_XPRESSIVE_FUSION_V2
#endif
As we have internal version control under which the xpressive 1.34.1 sources
were the patch contains revision 9 to working copy.
With Kind Regards,
Ovanes
On 9/27/07, Eric Niebler
Ovanes Markarian wrote:
Eric, I changed the files. Should I zip them and post via mailinglist? Or should I submit them somewhere else?
List of files which were changed:
detail/core/linker.hpp detail/core/matcher/alternate_matcher.hpp detail/static/productions/alt_compilers.hpp detail/utility/any.hpp detail/utility/cons.hpp proto/op_base.hpp proto/proto_fwd.hpp xpressive.hpp
One problem is that xpressive.hpp has info about boost version, but this is the mostly used file for inclusion. Therefore I believe this check fill fail even in boost 1.35:
#if BOOST_VERSION >= 103500 # ifndef BOOST_XPRESSIVE_FUSION_V2 # define BOOST_XPRESSIVE_FUSION_V2 # endif //BOOST_XPRESSIVE_FUSION_V2 #endif //BOOST_VERSION
I also executed your examples from the boost/lib directory and they produced in both cases same results. Your answer today is highly appreciated, since I will be on vacation from tomorrow on.
Hi Ovanes. Sorry for not getting back to you sooner. I've been at the Astoria Seminar all week, and not checking email. I'm glad you've managed to get this working.
The version of xpressive in SVN is very different than the version you have. Many of the files you've patched don't even exist anymore! I could apply to the patch to the old RC_1_34_0 branch and put an updated xpressive.zip in the File Vault, but the next version of Boost would not reflect your fixes. I think that's OK because the next version of Boost will have Fusion-2 and won't need your patch. If that's ok with you, then go ahead and send me the patch (as a SVN patch file against the RC_1_34_0 branch, if possible), and I'll apply it.
Thanks,
-- Eric Niebler Boost Consulting www.boost-consulting.com
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
Ovanes Markarian wrote:
Eric,
attached is the subversion diff file. I used the official boost 1.34.1 with contained xpressive and patched it for fusion 2.0.
using this define will switch to fusion v2 support>
#ifndef BOOST_XPRESSIVE_FUSION_V2 # define BOOST_XPRESSIVE_FUSION_V2 #endif
As we have internal version control under which the xpressive 1.34.1 sources were the patch contains revision 9 to working copy.
Ovanes, while you were working on this patch, I was busy releasing the next version of xpressive. Version 2.0 is in the file vault now and will (hopefully!) be in Boost 1.35. So I'm a sorry to say your patch is now out of date. My suggestion is that you continue using the patch, and upgrade to 1.35 when it comes out. -- Eric Niebler Boost Consulting www.boost-consulting.com
Sure, I will upgrade. ;) You told me once that xpressive 2.0 is out...
Anyway, I thought there might be people unable to upgrade from 1.34.1 to
another version (in big companies this can take some long time...), but who
still can put in their build process additional libs (e.g. fusion 2.0) and
this patch might be useful for them.
Best Regards,
Ovanes
On 10/16/07, Eric Niebler
Ovanes Markarian wrote:
Eric,
attached is the subversion diff file. I used the official boost 1.34.1 with contained xpressive and patched it for fusion 2.0.
using this define will switch to fusion v2 support>
#ifndef BOOST_XPRESSIVE_FUSION_V2 # define BOOST_XPRESSIVE_FUSION_V2 #endif
As we have internal version control under which the xpressive 1.34.1 sources were the patch contains revision 9 to working copy.
Ovanes, while you were working on this patch, I was busy releasing the next version of xpressive. Version 2.0 is in the file vault now and will (hopefully!) be in Boost 1.35. So I'm a sorry to say your patch is now out of date. My suggestion is that you continue using the patch, and upgrade to 1.35 when it comes out.
-- Eric Niebler Boost Consulting www.boost-consulting.com _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
participants (2)
-
Eric Niebler
-
Ovanes Markarian