|
Boost : |
From: Michael Marcin (mmarcin_at_[hidden])
Date: 2007-07-13 18:42:50
Anthony Williams wrote:
> There has recently been some discussion on the monotone development list about
> phasing out their use of boost libraries that require building external lib
> files (filesystem and regex). I thought people might find it interesting, so
> I'm posting some of the comments here:
>
> "Zack Weinberg" <zackw_at_[hidden]> writes:
>> Anthony Williams <anthony_w.geo_at_[hidden]> wrote:
>>> "Zack Weinberg" <zackw_at_[hidden]> writes:
>
>>>> Anthony Williams <anthony_w.geo_at_[hidden]> wrote:
>>>>> "Zack Weinberg" <zackw_at_[hidden]> writes:
>>>>>> As of revision 9546b6ea3c29b0a8f63542f6d495efd33bec9add, Monotone no
>>>>>> longer depends on boost::filesystem.
>>>>> I don't understand. Monotone uses boost all over the place. Why remove uses of
>>>>> boost::filesystem and replace with hand-rolled stuff that will probably have
>>>>> problems, especially on Windows?
>>>> For logistic reasons, we want to stop using all Boost libraries that
>>>> aren't header-only; I'll get into that below.
>>>>
>>>> However, besides that, IMO boost::filesystem was always a poor fit
>>>> with Monotone. We had another path abstraction on top of it to
>>>> provide a type-system distinction between three different kinds of
>>>> paths (file_path, bookkeeping_path, system_path); there were
>>>> long-standing bugs in our handling of filesystem character sets that
>>>> we could not fix because fs::path got in the way; the last straw was
>>>> the interface changes between 1.33 and 1.34, which took away
>>>> interfaces we needed (normalize_path, especially).
>>>>
I wonder if they know normalize_path is still there as long as
BOOST_FILESYSTEM_NO_DEPRECATED is not defined.
I would state that I think this needs to be re-added (probably as a
standalone function) for 1.35. This was *the* reason I started using
Boost.Filesystem in the first place.
It's a shame but it highlights the issue that was discussed here a while
ago about header only vs libraries. The complexity and compiling and
distributing libraries is a real issue that has consequences.
Thanks,
Michael Marcin
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk