diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2010-01-26 14:12:35 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2010-01-26 14:12:35 -0800 |
commit | a0d9dcfe97e824e25174a3bfc9116e505eac0a51 (patch) | |
tree | 3b6bd544c75344f0bdb81f0c34226be77519c129 /ChangeLog | |
parent | 16a6ea72db8469f64f31903bea7b223f0072bca6 (diff) | |
download | txr-a0d9dcfe97e824e25174a3bfc9116e505eac0a51.tar.gz txr-a0d9dcfe97e824e25174a3bfc9116e505eac0a51.tar.bz2 txr-a0d9dcfe97e824e25174a3bfc9116e505eac0a51.zip |
Optimization in derivative-based regex engine.
Exponential memory consumption behavior was observed when
matching the input aaaaaa....
against the regex a?a?a?a?....aaaa....
The fix is to eliminate common subexpressions
from the derivative for the or operator.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -1,3 +1,21 @@ +2010-01-26 Kaz Kylheku <kkylheku@gmail.com> + + Optimization in derivative-based regex engine. + Exponential memory consumption behavior was observed when + matching the input aaaaaa.... + against the regex a?a?a?a?....aaaa.... + The fix is to eliminate common subexpressions + from the derivative for the or operator. + + * lib.c (memqual, mapcon): New functions + + * lib.h (memqual, mapcon): Declared. + + * regex.c (flatten_or, unflatten_or, + unique_first, reduce_or): New functions. + (reg_derivative): Apply reduce_or + to the constructed disjunction. + 2010-01-25 Kaz Kylheku <kkylheku@gmail.com> Version 032 |