I'm pleased to opine that with the stuff I just pushed, nvm.experiment.pcre is ready for inclusion. To recap, PCRE is a regular expression library suitable to replace our use of boost::regex, which is six times larger and significantly slower. [I tested this by cranking up the iteration count on the packet.roundabout unit test to 10000, then running that unit test 100 times. Mean wall time with boost::regex, 13.91s; mean with PCRE, 12.80s; t = 12.93, p < 0.05.]
In addition, there are two subbranches of nvm.experiment.pcre on which I would appreciate comments .precomp adds precompilation of regexes: that is, regexes that are constant at compile time of Monotone can be compiled to the PCRE internal representation then. This gives an additional small, not-quite-significant speedup on the above test (mean 12.70, t = 1.14, p ~= 0.2). I am not exactly proud of pcrepc.cc and would appreciate suggestions on how to do it better, especially the parsing part. .ignored uses the new functionality to replace the Lua-ful ignore handling, which has been reported as a bottleneck for some operations. Again, I'm not exactly proud of my file I/O and would appreciate suggestions on how to do it better. I don't consider this branch even close to done; if we're going to mess with ignore handling, it should be messed with quite a bit more. See the comments above initialize_ignore_set in restrictions.cc. zw _______________________________________________ Monotone-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/monotone-devel
