Boost logo

Boost :

Subject: Re: [boost] [spirit] New Header Structure [was Re: Proposal: Add Loki Library's SafeFormat to Boost:]
From: Robert Ramey (ramey_at_[hidden])
Date: 2009-01-04 01:21:23

Well, it will take me some time to reconstruct what happened.
Briefly, from memory:

a) I noticed that running the serialization tests most compilers
emitted a warning "....deprecated - ? redirectored or ?" I forget.
b) Also the PGI compiler choked on the code which emitted
the warning - preventing the build of the serialization library.
c) I figured - no big deal - I'll just tweak the "#include boost/spirit/.."
as suggested by the warning message. Hey it is only a couple
of files which use spirit.
d) First problem was that I had included not boost/spirit.hpp - but
some deeper level files like boost/spirit/chmod or ? whatever.
I had done this in the interest of saving compiler time an
making it less likely that spirt code would confuse this or that
compiler. In the course of figuring this out, I came on
a really confusing sequence of #includes whold purpose
seemed to make something automatic and invisible but
left me baffled. I thik I changed things to include the
"convenience header"
e) The borland version of the serialization library
builds with spirit 1.6x in the include path. With
the header changes I was forced to make, that
didn't work anymore.
f)I couldn't make the #includes conditional on
the spirit version - because there is / was no
manifest constant indicating the spirit version
g)I couldn't make the #include conditional on
boost version since the boot version is always
the latest and doesn't match the spirit 1.6x version
i)I tried to use the lastest version of spirit
with the latest version of borland but this
fails to compile.

To top it off, the PGI compiler got over
that spirit hump and tripped up on something else.

So the net result is:

a) The serializatoin library can no longer built for
borland compilers. - a regression.
b) The serializatoin library can no longer built for
PGI compilers. - no change here.

I may have some details wrong in the above
recollection. Of course had I known this was going
to be such a hassle, I might have kept better
notes and brought it up at the time. But then again
if I had known how much time was going to
be wasted on this, I would have just ignored
the "deprecation" warnings. I'll probably just
back out these changes and do that.

But to go back and verify all
this with a minimal.cpp file is more than I have
time for right now. Sorry.

Robert Ramey

Joel de Guzman wrote:
> Joel de Guzman wrote:
>> Robert Ramey wrote:
>>>> It seems you haven't really tried to know more beyond the name(s).
>>>> Except for spririt 1.6, our recipe is similar to what was done.
>>>> "Classic" Spirit will not, I repeat: will not, go away anytimne
>>>> soon. It is, and will be, in the namespace "classic". This is the
>>>> technical rationale behind the "baroque" include paths. We want
>>>> 100% backward compatibility while at the same time usher in the
>>>> new generation.
>>> I realize that, I'm just letting you know that it was failure.
>> Again: post a minimal cpp file that exhibits the problem you mention.
>> If you've done so, we would have corrected it, instead of you
>> "wasting" your time.
> Robert, I'm still waiting for you to post a minimal cpp file
> that exhibits the problem you mention. You just can't say
> our attempt was a failure without detailing exactly why
> and then just drop the ball.
> Regards,

Boost list run by bdawes at, gregod at, cpdaniel at, john at