File: TODO

package info (click to toggle)
tre 0.8.0-6
  • links: PTS
  • area: main
  • in suites: buster, sid, stretch
  • size: 6,620 kB
  • ctags: 1,032
  • sloc: sh: 12,217; ansic: 9,894; makefile: 159; python: 44; sed: 16
file content (50 lines) | stat: -rw-r--r-- 1,628 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
TODO:

 * Documentation

   - Finish the reference manual of the API.
   - Finish the manual describing the syntax and semantics of regexps.
   - Write a description of the algorithms used.  There's already my
     Master's Thesis, but it's not TRE-specific, and it's a
     thesis, not an algorithm description.
   - Write man page for tre regexp syntax.

 * POSIX required features

   - Support for collating elements and equivalence classes.  This
     requires some level of integration with libc.

 * New features

   - Support for GNU regex extensions.
     - word boundary syntax [[:<:]] and [[:>:]]
     - beginning and end of buffer assertions ("\`" and "\'")
     - is there something else missing?
   - Better system ABI support for non-glibc systems?
   - Transposition operation for the approximate matcher?

 * Extend API

   - Real-time interface?
      - design API
      - return if not finished after a certain amount of work
      - easy for regexec(), more work for regcomp().


 * Optimizations

   - Make specialized versions of matcher loops for REG_NOSUB.

   - Find out the longest string that must occur in any match, and
     search for it first (with a fast Boyer-Moore search, or maybe
     just strstr).  Then match both ways to see if it was part of
     match.

   - Some kind of a pessimistic histogram filter might speed up
     searching for approximate matching.

   - Optimize tre_tnfa_run_parallel to be faster (swap instead of
     copying everything?  Assembler optimizations?)

   - Write a benchmark suite to see whan effects different
     optimizations have in different situations.