
Finally, too late for even the extended deadline, here's my xpressive review: *What is your evaluation of the design? It's very good. I have to admit that I find the static regexes very hard to read, but a lot of that will be a cultural problem: I'm so used to seeing normal regex syntax that I can't quite get my head around the static versions, the quantifiers as prefixes particularly throw me. However, the syntax is concise and consistent with spirit, so I can hardly complain that much. Possibly xpressive isn't the last word on this, or the best way to go, personally I prefer more verbose forms like repeat(x) rather than *x but again, that's an initial reaction which may change with more familiarity. * What is your evaluation of the implementation? Looks good to me, and I know from past experience that Eric knows what he's doing. The only complaint I have is one that's common to all expression template code: it's impossible to understand by debugging, which means casual maintenance by folks other than the author would be hard, you really need to read the whole source before you can get a grip on what it's doing (OK you ought to do that anyway, but it is still hard to understand code that isn't executed in the traditional sense). As I said though this is an issue with all metaprogramming, and expression templates in particular, I guess what we really need is a compile-process debugger :-) * What is your evaluation of the documentation? It's excellent. * What is your evaluation of the potential usefulness of the library? Clearly there are lots of uses. There is also overlap with Regex and Spirit, but I don't believe that should prevent acceptance, Boost is meant to drive forward innovation after all. * Did you try to use the library? With what compiler? Did you have any problems? Not for as long as I would have liked :-( I've only tried with VC7.1, the sample code compiled cleanly, but compile times were quite long for even simple static regexes, I didn't try anything complex. * How much effort did you put into your evaluation? A glance? A quick reading? In-depth study? A couple hours reading the docs, and playing with some of the samples. One thing I did notice is that several of the test programs don't appear to do anything except "return 0", I'm not sure if these are deprecated, or just not finished (see test_regex_token_iterator.cpp for example). The test cases in the testX.cpp files may be a little short on the ground as well: Boost.Regex has about a thousand cases, PCRE a similar number, where as there are 171 here. The smaller number of cases ought to be enough, but in practice I've found you can never have too many! It's a pity that the Boost.Regex and / or PCRE cases can't be automatically harvested, but I suspect this is next to impossible for static regexes? * Are you knowledgeable about the problem domain? I hope so :-) * Do you think the library should be accepted as a Boost library? Absolutely. John.