Hey

On Tue, Oct 18, 2011 at 4:45 PM, Patrick Ohly <[email protected]> wrote:
> Hello!
>
> SyncEvolution does not make use of regular expressions because it wants
> to avoid a dependency on libraries which are not common enough to be
> relied upon on all target platforms. That rules out Qt RegEx.
>
> It also avoids libraries whose ABI varies too often, because it would
> complicate delivering libraries via syncevolution.org. That has ruled
> out anything from Boost which is more than a set of header files, like
> boost::regex (libboost_regex.so.1.42.0 in Debian Stable, still in
> Testing, but bound to be replaced by libboost_regex.so.1.46.0).
>
> Another aspect is C++ support for std::string and the desire to do
> search/replace. Otherwise POSIX regex support in GNU libc would be an
> option.
>
> I've just come across another alternative: boost::Xpressive.
> http://www.boost.org/doc/libs/1_47_0/doc/html/xpressive/user_s_guide.html#boost_xpressive.user_s_guide.introduction
>
> This is old enough (introduced in Boost 1.34.0) to not limit compilation
> on older Linux distros and it is header-only.
>
> It supports regular expression syntax, parsed at runtime. It also touts
> its own C++ "domain language" for statically compiling regular
> expressions as an alternative.
>
> I am less certain about the later. While the approach looks neat, it is
> also not going to be familiar for many developers, which makes the code
> less approachable.
>
> For example:
>   sregex re = '$' >> +_d >> '.' >> _d >> _d;
>
> That's the same as:
>   sregex re = sregex::compile("$\\d\\.\d\d");
>
> Any thoughts about using Boost Xpressive in SyncEvolution from other
> developers? Any alternatives?

What about pcre? Its fairly low level and used by quite a few OS
features (at least in Fedora) and the configure for syncevolution
already explicitly checks for it so it looks like syncevolution
already uses it somewhere.

Peter
_______________________________________________
SyncEvolution mailing list
[email protected]
http://lists.syncevolution.org/listinfo/syncevolution

Reply via email to