
Hi boost developers, The architecture for spirit is documented under http://www.boost.org/doc/libs/1_38_0/libs/spirit/classic/doc/organization.ht... my question: should all modules of Core (scanner, primitives, composite, non_terminal) also be independent of each other ? so should they be independent subsystems or are they allowed to have dependencies (within the Core layer) ? thanks for your help kind regards, Bernhard.

Bernhard Merkle wrote:
Hi boost developers,
The architecture for spirit is documented under http://www.boost.org/doc/libs/1_38_0/libs/spirit/classic/doc/organization.ht...
my question: should all modules of Core (scanner, primitives, composite, non_terminal) also be independent of each other ? so should they be independent subsystems or are they allowed to have dependencies (within the Core layer) ?
"Modules in a layer do not depend on other modules in the same layer. " Yes, that is the strict convention. However, I am no longer sure if that's strictly followed. When designing architectures like Spirit, I take it to task to do extensive analysis (create dependency graphs, etc.). However, typically, commits after commits somehow disrupt the convention, so I am no longer enirely sure if the strict adherence to the design still holds. Regards, -- Joel de Guzman http://www.boostpro.com http://spirit.sf.net

Hi Joel, Yes, that is the strict convention. However, I am no longer sure
if that's strictly followed. When designing architectures like Spirit, I take it to task to do extensive analysis (create dependency graphs, etc.). However, typically, commits after commits somehow disrupt the convention, so I am no longer enirely sure if the strict adherence to the design still holds.
Thanks for your explanation and help. I have found some minor violations between should- and is-architecture. Maybe I could send the details as a report + a *.png graphics file offline ? (I assume that attachments are not allowed on this list). Some other questions which are very interesting: - are there architectural documents for the other libraries ? - which would be good candidates from your point of view ? (I think e.g. analyzing dependencies to the mpl libs is interesting) - is there a common rule which parts are public and which are private ? (I saw some impl directories but am a bit unsure about the API stuff) - is there a document describing the dependencies between the different libs (the "should" architecture). (I know of the bcp tool but this documents the "is"architecture essentially) My initial post was the url below, but I got now answer yet http://lists.boost.org/Archives/boost/2009/02/148636.php. It describes a bit more the background and what I want to do... thanks and kind regards, Berni.

On 02/26/09 09:06, Bernhard Merkle wrote: [snip]
- are there architectural documents for the other libraries ?
- which would be good candidates from your point of view ? (I think e.g. analyzing dependencies to the mpl libs is interesting)
I'd be interested in this. The mpl-vt.zip in boost vault/variadic templates shows a partial conversion of mpl to variadic templates. I think such an architectural document would have helped this effort. In particular, I'm now wondering what depends on the iter_fold_if_impl templates because I was having problems as outlined in the file: VariadicTemplatesExperiences.txt contained in mpl-vt.zip. [snip]

On Thu, Feb 26, 2009 at 5:59 PM, Larry Evans <cppljevans@suddenlink.net>wrote:
On 02/26/09 09:06, Bernhard Merkle wrote: [snip]
- are there architectural documents for the other libraries ?
- which would be good candidates from your point of view ? (I think e.g. analyzing dependencies to the mpl libs is interesting)
I'd be interested in this. The mpl-vt.zip in boost vault/variadic templates shows a partial conversion of mpl to variadic templates. I think such an architectural document would have helped this effort. In particular, I'm now wondering what depends on the iter_fold_if_impl templates because I was having problems as outlined in the file:
Thanks Larry, I'll definitely give it a big try. As I said MPL was on my list. :-) so this fits perfectly. I downloaded http://www.boostpro.com/vault/variadic templates, right ? Now questions: - as you are using variadic templates this is a C++0x feature and I do not know of any architectural analysis tool for C++ which has already a C++0x enabled parser... (though it would be interesting how far an analysis will cope with handling this new language feature) - what I can do now however is analyzing and displaying the IS-architecture of the MPL stuff (non variadic version). I think this would be interesting and a big help... Should I use the current boost release ? (1_38) or the version of the time of your port (i think March 2007). Which release was it ? (maybe a tag or label). kind regards, Berni.

On 02/26/09 12:32, Bernhard Merkle wrote: [snip]
Thanks Larry, I'll definitely give it a big try. As I said MPL was on my list. :-) so this fits perfectly. I downloaded http://www.boostpro.com/vault/variadic templates, right ?
More precisely, the mpl-vt.zip file in that directory. I don't think I used the aligned_types.2.zip, and if I didn't so, then there's no need for that. [snip]
Should I use the current boost release ? (1_38) or the version of the time of your port (i think March 2007). Which release was it ? (maybe a tag or label).
I'd suggest the current version since, I might as well upgrade mpl-v2 to that version anyway. Looking forward to seeing the results. -regards, Larry
participants (3)
-
Bernhard Merkle
-
Joel de Guzman
-
Larry Evans