|
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