monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] ding dong, boost::filesystem is dead


From: Zack Weinberg
Subject: [Monotone-devel] ding dong, boost::filesystem is dead
Date: Wed, 11 Jul 2007 12:53:47 -0700

As of revision 9546b6ea3c29b0a8f63542f6d495efd33bec9add, Monotone no
longer depends on boost::filesystem.  (Technically, rev
285185cc395c0a643d531104b6b30cb3455d9d6e removed the dependency; the
subsequent change removes a use of boost::algorithm::join, which is
apparently a 1.34ism.)  This means we are now relying on hand-rolled
code for all path manipulation and filesystem operations.  I hope
there are no problems, but history says there probably will be,
especially on Windows.  Please let me know if you encounter any.

boost::regex is now the only component of Boost that we use that
requires an external library for part of its code.  I'd like to reopen
the discussion on what we should do about that.  The old nvm.deregexp
branch removes a number of the internal uses of regular expressions -
I've just merged that up to latest mainline, in case anyone would like
to review it, hint hint) but there are still quite a few remaining,
and most of them, I don't think it's practical to get rid of.  Here's
the list:

* In the implementation of globish matching; this could be rewritten,
it just hasn't been done yet.
* .mtn-ignore.  We agreed in principle that this would be redone using
globs, but we have no transition plan nor have we decided on the exact
semantics.  I'd like to survey other VCS' ignore features before we
decide on anything.
* In the logic to scan for enclosing top-level constructs in 'mtn
diff'.  The regexps in question are exposed to the user, and it would
be tricky to come up with sane semantics for the feature that didn't
involve regexps.
* regex search is exposed to Lua hooks and may be used in user rc
files that we can't see.
* The test suite uses regexps extensively, and I don't see a practical
alternative.

Therefore I would recommend that we merge *both* the .deregexp and the
.experiment.pcre branches, as is, for 0.36.  That will get us off the
external-Boost-library hook altogether, let us continue to use regexps
in the testsuite and user-provided Lua hooks, and we can work on
larger scope tasks like globish ignores at our leisure.  I'll try to
find time to rewrite globish without regexps before 0.36 but I'm not
promising.

Thoughts?
zw




reply via email to

[Prev in Thread] Current Thread [Next in Thread]