===== New regex implementation for libc ===== There is a work in progress to replace our old libc-regex code with a new implementation. Work has been done to replace it with an implementation that is based on [[http://laurikari.net/tre/|TRE]]. Some other implementations to consider, given the current state of this project: * [[https://github.com/kkos/oniguruma|Oniguruma]] (Ruby uses this) * [[https://github.com/k-takata/Onigmo|Onigmo]] (Fork of Oniguruma, adds Perl extensions, Ruby and others switching to it) * [[http://gitweb.dragonflybsd.org/dragonfly.git/tree/HEAD:/contrib/tre|DragonflyBSD's import of libtre]] (2016 version of libtre with some improvements) ==== Status ==== ^ Item ^ Status ^ | Compile TRE as part of libc | COMPLETED | | Implement the Boyer-Moore algorithm for fast pattern matching | COMPLETED | | Implement heuristic matching to speed up normal matches with the above algorithm | COMPLETED | | Write regression tests | COMPLETED | | Write manual pages | COMPLETED | | Implement GNU-style permissive syntax | INCOMPLETE | | Implement multi-pattern compiling and matching with an alternative interface | INCOMPLETE | ---- {{tag>Project Stale Todo}}