1TODO: 2 3 * Documentation 4 5 - Finish the reference manual of the API. 6 - Finish the manual describing the syntax and semantics of regexps. 7 - Write a description of the algorithms used. There's already my 8 Master's Thesis, but it's not TRE-specific, and it's a 9 thesis, not an algorithm description. 10 - Write man page for tre regexp syntax. 11 12 * POSIX required features 13 14 - Support for collating elements and equivalence classes. This 15 requires some level of integration with libc. 16 17 * New features 18 19 - Support for GNU regex extensions. 20 - word boundary syntax [[:<:]] and [[:>:]] 21 - beginning and end of buffer assertions ("\`" and "\'") 22 - is there something else missing? 23 - Better system ABI support for non-glibc systems? 24 - Transposition operation for the approximate matcher? 25 26 * Extend API 27 28 - Real-time interface? 29 - design API 30 - return if not finished after a certain amount of work 31 - easy for regexec(), more work for regcomp(). 32 33 34 * Optimizations 35 36 - Make specialized versions of matcher loops for REG_NOSUB. 37 38 - Find out the longest string that must occur in any match, and 39 search for it first (with a fast Boyer-Moore search, or maybe 40 just strstr). Then match both ways to see if it was part of 41 match. 42 43 - Some kind of a pessimistic histogram filter might speed up 44 searching for approximate matching. 45 46 - Optimize tre_tnfa_run_parallel to be faster (swap instead of 47 copying everything? Assembler optimizations?) 48 49 - Write a benchmark suite to see whan effects different 50 optimizations have in different situations. 51