[cmake-developers] slow regex implementation in RegularExpression

Alexander Neundorf neundorf at kde.org
Thu Nov 17 15:26:25 EST 2011


On Thursday 17 November 2011, Alexandru Ciobanu wrote:
> Hi everyone,
> 
> [ CMake + TRE ]
> I was able to make CMake use TRE, by changing the
> RegularExpression.{cxx,hxx.in} files.
> 
> I ran the CMake tests, and 100% pass. See the attached log file.
> (NOTE: Bootstrap, complex, complexOne were initially not aware of TRE
> dependency, but I fixed that easily).

Cool :-)

> [ Impact of using CMake + TRE on our builds ]
> We picked one of our build machines and replaced the ctest binary on it.
> The impact on the build time is pretty dramatic:
>      CMake:				7h39m
>      CMake + TRE:			1h06m
> 
> This is a machine that has two cores.
> 
> On machines that have more cores, the impact is even greater.  On my 8 core
> machine, running a particular build task: CMake:				19m57s
>      CMake + TRE:			 1m30s
> 
> 
> [ Regular expressions syntax ]
> In terms of regular expressions syntax, the only difference that I've seen
> is that TRE treats the curly brackets "{" and "}" as special characters,
> because it uses them for its "approximate matching".  Details here:
> http://laurikari.net/tre/documentation/regex-syntax/
> 
> The only CMake component that uses curly brackets in a regexp is:
>     Modules/FindJNI.cmake
> but it was trivial to fix because they were used as mere delimiters.

Well, but there are cmake files out there (i.e. all existing cmake-based 
projects) which also must behave basically exactly the same as before, 
otherwise their builds might break.

Not sure how to achieve this.
A policy ?

Alex



More information about the cmake-developers mailing list