[cmake-developers] slow regex implementation in RegularExpression

Alexandru Ciobanu alex at rogue-research.com
Tue Nov 29 14:41:36 EST 2011


Hi,

We found a workaround that does not require any source code modifications. I added the description to the bug report:
      http://public.kitware.com/Bug/view.php?id=12381#c27872

In short, we filter out the longer lines in the build output, so that CTest does not spend hours regex-matching them.

In a way, this is like the "short circuit stuff" that Bill Hoffman suggested earlier in this thread. 

On 2011-11-16, at 3:50 PM, Bill Hoffman wrote:

> A little off topic, but I am wondering if the ctest performance issue for xcode could be fixed without changing the regex.  The problem with xcode is that it spits out very verbose output.  I am wondering if some short circuit stuff could be put in place.  Maybe do a string compare of the first bit of every line that look for stuff that could not have an error in it, and only if it might have an error, do we pass it to the regex call. Basically, if we could reduce the amount of data going into the regex stuff, it should work as well as it does for other compilers.  The place that this code could go is into cmakexbuild.cxx which already strips out all lines that start with setenv.  Maybe even some hard coded stuff that looks for errors and only puts those out.  i.e. only output lines from cmakexbuild.cxx if there are errors.


Since it is similar to the way that cmakexbuild.cxx filters out "setenv" lines, it would be possible to add this additional filter. The only drawback would be that the compiler invocation lines will not be in the logs anymore (since these are the longest lines that we eliminate).

If wanted, I can submit the small patch with the modifications to cmakexbuild.cxx.

sincerely,
Alex Ciobanu


More information about the cmake-developers mailing list