[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