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:

"classic"

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.

Regards,

-- 
Joel de Guzman
http://www.boostpro.com
http://spirit.sf.net

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk