Boost logo

Boost :

Subject: Re: [boost] Proposal: Add Loki Library's SafeFormat to Boost:
From: Joel de Guzman (joel_at_[hidden])
Date: 2009-01-02 00:18:20

Robert Ramey wrote:
> Here's a suggestion.
> for your latest/greatest, put in the namespace boost::spirit and in
> directory boost/sprit

Doing so will break existing code.

> For your old version, with an incompatible API, put it in namespace
> boost::spririt_1_8 and directory boost/spririt_1_8.

Doing so will break existing code.

> and for your older version put it in
> boost::spririt_1_6 and directory boost/spririt_1_6

Doing so will break existing code.

If you look beyond the name(s) I'm sure you'll see why our
recipe is superior to your suggestion. 100% backward compatibility
is a primary concern.

Here's our strategy:


1) Keep the old header/directory structure as-is.
2) Move the 1.8 directory tree to spirit/home/classic
3) Make the old headers forward to the moved headers.
4) Provide a deprecation warning that will point the user to the
    new header file. This warning should not kick in until Boost 1.38.
5) Put the "classic" components in namespace spirit::classic
6) Provide a macro, BOOST_SPIRIT_USE_OLD_NAMESPACE, such that if the
    user includes the old headers, the components are not hoisted into
    the "classic" namespace (backward compatibility mode))

"new generation"

1) Place them in spirit/home/xxx, where xxx is a new module
   (sub-library) name.
2) Place them in namespace spirit::xxx.

If you see compatibility problems with the current strategy,
we'll appreciate it if you provide a minimal cpp file that
exhibits the problem. Otherwise, we'll never really know what
it is you are complaining about.


Joel de Guzman

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