diff options
| author | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-06-28 00:39:51 +0200 |
|---|---|---|
| committer | Robin Haberkorn <rhaberkorn@fmsbw.de> | 2026-06-28 00:39:51 +0200 |
| commit | 4fe5bc6f3867096965270c90f2e1e5df77b8825f (patch) | |
| tree | 07823673c598cf4289ea0ae769c32924e1fcce10 /configure.ac | |
| parent | c5cb45fab6d4a63a4fcff2cf7f6801dae2ac4db2 (diff) | |
terex is the new regular expression engine now and replaces PCRE (GRegex)
* terex is based on Henry Spencer's regular expression engine for Tcl.
It is a hybrid NFA/DFA design which has better worst-time runtimes than
the backtracking PCRE. Memory usage is also limited and can no longer
increase catastrophically.
* It should no longer be possible to crash SciTECO with pathological
searches.
* Since it reliably supports partial matches (REG_EXPECT) we can
now enable the new backwards-search algorithm by default.
This used to be broken because of a glib bug, which I already
fixed. It would however take a long time until this ends up
on the majority of glib installations.
* Regexp executions can still be quite slow if you are looking
for a pattern at the end of a huge file, which can hang the editor,
but this can now at least theoretically be solved by adding
hooks into terex to poll for interruptions.
* We can now also get rid of a TECO-pattern to regexp translation
step by directly generating terex tokens (TODO).
* Performance-wise terex appears to be slower than PCRE for simple
forward searches even when linking everything with optimzations (FIXME).
* Having a stand-alone regular expression engine is also a huge
step in getting rid of glib.
See also: https://git.fmsbw.de/terex/about/
Diffstat (limited to 'configure.ac')
| -rw-r--r-- | configure.ac | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index 43b4d1b..09d0804 100644 --- a/configure.ac +++ b/configure.ac @@ -545,6 +545,7 @@ AC_CONFIG_FILES([GNUmakefile:Makefile.in src/GNUmakefile:src/Makefile.in] [src/interface-curses/GNUmakefile:src/interface-curses/Makefile.in] [contrib/dlmalloc/GNUmakefile:contrib/dlmalloc/Makefile.in] [contrib/rb3ptr/GNUmakefile:contrib/rb3ptr/Makefile.in] + [contrib/terex/GNUmakefile:contrib/terex/Makefile.in] [lib/GNUmakefile:lib/Makefile.in] [doc/GNUmakefile:doc/Makefile.in doc/Doxyfile] [tests/GNUmakefile:tests/Makefile.in tests/atlocal]) |
