In order to reduce compile times I have decided to rewrite the parser/grammar from classic to spirit qi (spirit 2.1). My understanding is that faster compiles come from easier modularisation available under spirit qi. (As shown in mini_c example, in the boost tree) However I need this to be portable to as many platforms as possible. In my case minimum set is Linux,HP-UX, AIX. So my fall-back is boost 1.38. So how much has boost spirit qi changed between 1.38 and present ? How are defects reported against spirit qi, integrated back to past releases, or is there any recommended patch type mechanism, that supports redistribution of my local boost tree. Or is simply better to use spirit independently from boost? Are there any issues/guidelines that people have found in transitioning from classic to Qi. In my case I made heavy use of closures. I have not seen closures in any of spirit qi examples, Assuming there is equivalent functionality to closures ? I would interested in any recommendations before starting on this project. Best regards, Ta, Avi
In order to reduce compile times I have decided to rewrite the parser/grammar from classic to spirit qi (spirit 2.1). My understanding is that faster compiles come from easier modularisation available under spirit qi. (As shown in mini_c example, in the boost tree)
However I need this to be portable to as many platforms as possible. In my case minimum set is Linux,HP-UX, AIX.
We never tried to compile Spirit on AIX/xlc. So any feedback is welcome. Using gcc should be fine.
So my fall-back is boost 1.38.
So how much has boost spirit qi changed between 1.38 and present ?
A lot! If you must stick with Boost V1.38/1.39 I would recommend to take out the Spirit directories from trunk and use those with your Boost versions. This is proven to work well.
How are defects reported against spirit qi, integrated back to past releases, or is there any recommended patch type mechanism, that supports redistribution of my local boost tree. Or is simply better to use spirit independently from boost?
Spirit 2.1 (trunk) is a complete rewrite of what's in the recent Boost releases. The interface is stable, though.
Are there any issues/guidelines that people have found in transitioning from classic to Qi. In my case I made heavy use of closures. I have not seen closures in any of spirit qi examples, Assuming there is equivalent functionality to closures ?
Not yet. Closures are not part of Spirit.Qi because those are not needed anymore. Use locals instead.
I would interested in any recommendations before starting on this project.
Unfortunately we don't have any written documentation of how to best migrate from Spirit.Classic yet. So any insides from users having this experience are highly appreciated. Regards Hartmut
AMDG Hartmut Kaiser wrote:
In order to reduce compile times I have decided to rewrite the parser/grammar from classic to spirit qi (spirit 2.1). My understanding is that faster compiles come from easier modularisation available under spirit qi. (As shown in mini_c example, in the boost tree)
However I need this to be portable to as many platforms as possible. In my case minimum set is Linux,HP-UX, AIX.
We never tried to compile Spirit on AIX/xlc. So any feedback is welcome. Using gcc should be fine.
The trunk regression tests for spirit with xlc mostly fail with an internal compiler error. In Christ, Steven Watanabe
participants (3)
-
Avi Bahra
-
Hartmut Kaiser
-
Steven Watanabe