Boost logo

Boost :

Subject: Re: [boost] [filesystem] Version 3 of Boost.Filesystem added to trunk
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2010-06-05 04:20:24

On 06/02/2010 07:07 PM, Beman Dawes wrote:
> Because version 3 will break some user code, both v2 and v3 will be
> shipped for several releases. For 1.44, the default is v2 and the
> user has to explicitly switch to v3.
> I'd really appreciate it if some Boosters could give v3 a try on your
> own code that uses Boost.Filesystem.

I think that the approach of manual switching between v2 and v3 is not
very good. The packagers will not be able to ship both versions of the
library in Linux distributions, which effectively means that v3 will not
get adopted.

Also, if I want my code to be compatible with both versions of the
library, I cannot see a way to detect which version is currently
installed. This is the case with my Boost.Log - it's not compatible with
v3, mostly because path is not a template anymore. I would like people
to be able to use Boost.Log regardless of which Boost.Filesystem their
application uses.

I would really prefer to have both versions of the library available at
any time. Either as two separate libraries (like signals and signals2)
or as two parts of one library (like spirit v2 and classic). In the
latter case it could be compiled into one binary, with v2 and v3 being
in different namespaces and "namespace filesystem" being an alias to one
of them.

And a quick glance at the code I see that initial_path is still not
thread-safe. See this ticket:

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