$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: troy d. straszheim (troy_at_[hidden])
Date: 2005-01-07 12:37:32
Hey OS X serialization people:
I have a workaround for the code itself:
The problems appear to have been in basic_xml_grammar.ipp,
specifically statements such as
Name = (Letter | '_' | ':') >> *(NameChar);
where presumably the template instantiations from the freestanding
operators (in the spirit library) were just a bit too much for the
compiler.  If you refactor them as
         
rule_t StarNameChar = *(NameChar);
rule_t LetterOrUnderscoreOrColon = (Letter | '_' | ':');
Name = LetterOrUnderscoreOrColon >> StarNameChar;
then things compile fine in both debug and release mode.  If you run
"top", you should see the vsize of the compiler top out at about 350M
on xml_grammar and at 450M or so on xml_wgrammar in release mode.
They do take a couple minutes each to compile.
With these changes, on my machine, all the xml-related tests compile
run and pass, in both debug and release mode, [with the exception of
test_demo_portable_archive, which I'm guessing is due to some other
issue, maybe its not even xml related... I'm outta time...]
You can get the changes at:
http://svn.resophonic.com/pub/boost/boost/archive/impl/basic_xml_grammar.hpp
and
http://svn.resophonic.com/pub/boost/libs/serialization/src/basic_xml_grammar.ipp
lemme know how it looks on your end, I have only one (slow) Mac to try
this stuff on...
- troy d. straszheim
By the way, spectactularly cool library, thanks Mr. Ramey...
Robert Ramey writes:
 > 
 > 
 > Alan wrote:
 > >     Yes. Done. Here is relevent bit of the Jamfile.
 > >
 > > lib boost_serialization
 >     ...
 > >
 > >         ## Darwin doesn't like optimization...
 > >         <darwin><*><optimization>off
 > >         <darwin><*><inlining>off
 >     ...
 > >     (The Jamfile syntax means nothing to me.
 > 
 > welcome to the club !
 > 
 > >         I put an echo line above what I determined to be the cc
 > >         command and tried different things until I saw -O0 and
 > >         -fno-inline.)
 > >
 > >     Now it compiles. As to the specific opimization to turn off,
 > >     well, I'll have to learn more about Boost.Build.
 > 
 > I would appreciated it if you could experiment just a little bit more.
 > 
 > a) instead of <darwin><*>... try each of the following
 > 
 > <darwin><release><optimization>space
 > <darwin><release><optimization>space
 > 
 > and try with and without
 > 
 > <darwin><inlining>off
 > 
 > Is there anyone who want's to chiime in and indicate how these statements
 > would be applied to just one source file in the library - that is
 > xml_grammar.cpp .  This is the only one thats coughing here ( and the only
 > one that's using spirit ).  In fact, I believe that spirit test should be
 > run in release mode - this will amost surely highlight the root cause of the
 > problem.
 > 
 > In fact if you want to do a good deed and you have a little time.  And since
 > you're right there in the key spot And since you're going to get a huge
 > boost from boost, It would be great if you could run the sprit test suite in
 > release mode.  This would be of great help to us.
 > 
 > Robert Ramey
 > 
 > 
 > 
 > _______________________________________________
 > Unsubscribe & other changes: http://listarchives.boost.org/mailman/listinfo.cgi/boost