summaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix screwup in previous change: value treated as a consKaz Kylheku2010-01-251-1/+1
| | | | in a code path where it sometimes isn't.
* * match.c (match_files): Workaround for GC issueKaz Kylheku2010-01-241-0/+8
| | | | | | | discovered on Red Hat EL 4 with gcc 3.4.3. In the collect loop, set car(success) to nil. Somehow the generated code hangs on to the last matching position for a regex, preventing GC.
* * stream.c (vformat_num): Fix bad width calculation.Kaz Kylheku2010-01-241-0/+4
|
* Fix for unbounded memory growth problem reproduced with GCC 4.4.1Kaz Kylheku2010-01-211-0/+14
| | | | | | on 32 bit x86 Fedora. This happens because the lazy list variable ``data'' in the match_files function is optimized to a register, but a stale value of that variable persists in the backing storage.
* * match.c (match_files): Reduce scope, and bogus use of, datalineKaz Kylheku2010-01-211-0/+5
| | | | variable.
* Version 030.txr-030Kaz Kylheku2010-01-191-0/+14
|
* More regex grammar work.Kaz Kylheku2010-01-191-0/+11
|
* Resolving parser conflicts.Kaz Kylheku2010-01-191-0/+16
|
* Version 029.Kaz Kylheku2010-01-181-3/+19
|
* * regex.c (reg_derivative_list, reg_derivative): RecognitionKaz Kylheku2010-01-181-0/+10
| | | | | | | | | of cases to reduce consing. In reg_derivative_list, we avoid consing the full or expression if either branch is t, and also save a cons when the first element has a null derivative. In reg_derivative the oneplus and zeroplus cases are split, since zeroplus can re-use the input expression, when it's just a one-character match, deriving nil.
* Adjust semantics of non-greedy operator R%S, to avoid the brokenKaz Kylheku2010-01-181-0/+15
| | | | | | | | case whereby R%S matches nothing at all when S is not empty but equivalent to empty, or more generally when S is nullable. A much nicer definition is ``the intersection of R* and the set of all strings that do not contain a non-empty substring that matches S, followed by S''.
* * parser.y (regterm, regclass): Relocate handlingKaz Kylheku2010-01-171-0/+5
| | | | of empty [] into regterm, via empty derivation.
* Regex syntactic tweaks: support the [] syntaxKaz Kylheku2010-01-161-0/+10
| | | | | to match no character and [^] as its complement, being synonymous with the wildcard dot.
* Version 028.Kaz Kylheku2010-01-161-0/+20
|
* Describe Kleene and non-greedy behavior more accurately.Kaz Kylheku2010-01-151-0/+1
|
* * txr.1: Get rid of parens from regex operator descriptions.Kaz Kylheku2010-01-151-0/+1
| | | | | Correct wrong text: all operators can take an empty regex. Clarify escaping rules within a character class.
* * txr.1: Get rid of parens from regex operator descriptions.Kaz Kylheku2010-01-151-0/+1
| | | | Correct wrong text: all operators can take an empty regex.
* * txr.1: Get rid of parens from regex operator descriptions.Kaz Kylheku2010-01-151-0/+4
|
* * genman.txr, txr.1: Encode version differently; extractKaz Kylheku2010-01-151-0/+5
| | | | from text during HTML conversion.
* Automate the maintenance of the HTML-ized man page.Kaz Kylheku2010-01-151-0/+9
|
* Implemented non-greedy operator.Kaz Kylheku2010-01-151-0/+24
|
* * regex.c (reg_derivative_list): Bugfix: wrong algebra,Kaz Kylheku2010-01-151-0/+5
| | | | taking a double derivative of the first item.
* Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/txrKaz Kylheku2010-01-151-1/+5
|\
| * * txr.1: Fix accidental edit garbage.Kaz Kylheku2010-01-151-0/+4
| |
| * Changelog fix.Kaz Kylheku2010-01-151-1/+1
| |
* | * txr.1: Fix accidental .b, which should have been .B.Kaz Kylheku2010-01-141-0/+7
|/ | | | | | Revised description of regex operators. Added section on intersection and complement, which may not be familiar to regex users.
* * regex.c (reg_derivative): Bugfix: remove invalidKaz Kylheku2010-01-141-0/+5
| | | | algebraic reductions in the derivative for the operator.
* Bugfix: allow unescaped / to be used in regex character classes.Kaz Kylheku2010-01-131-0/+22
|
* * parser.y (precedence): bugfix: character classes like this [^*]Kaz Kylheku2010-01-131-0/+5
| | | | being treated as a non-complemented set of two characters.
* Dynamically determine which regex implementation to use:Kaz Kylheku2010-01-131-0/+17
| | | | | | | NFA or derivatives. The default behavior is NFA, with derivatives used if the regular expression contains uses of complement or intersection. The --dv-regex option forces derivatives always.
* * lib.h (c_num): Remove redundant declaration.Kaz Kylheku2010-01-131-0/+4
|
* Impelement derivative-based regular expressions.Kaz Kylheku2010-01-131-0/+53
|
* Remove incorrect implementation of extendedKaz Kylheku2010-01-061-0/+18
| | | | | regex operations (complement, intersection). The syntax extensions documentation are retained.
* Some fine tuning in regex grammar.Kaz Kylheku2010-01-061-0/+12
|
* Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/txrKaz Kylheku2010-01-051-0/+9
|\ | | | | | | | | Conflicts: ChangeLog
| * * lib.c (make_package, find_package): Eliminate declarationKaz Kylheku2009-12-171-0/+9
| | | | | | | | | | | | | | | | in the middle of statement block. * lib.h (TAG_MASK): Becomes type cnum rather than long. (nao): Based off 1 rather than -1 to avoid left shift of negative number.
* | Implemented the regular expression ~ and & operators.Kaz Kylheku2010-01-051-0/+50
|/ | | | | | | | | | | | | | | This turns out to be easy to do in NFA land. The complement of an NFA has exactly the same number and configuration of states and transitions, except that the states have an inverted meaning; and furthermore, failed character transitions are routed to an extra state (which in this impelmentation is permanently allocated and shared by all regexes). The regex & is implemented trivially using DeMorgan's. Also, bugfix: regular expressions like A|B|C are allowed now by the syntax, rather than constituting syntax error. Previously, this would have been entered as (A|B)|C.
* * parser.l (YYINPUT): Fix signed/unsigned comparison.Kaz Kylheku2009-12-091-0/+4
|
* * hash.c (sethash): New function.Kaz Kylheku2009-12-091-0/+10
| | | | | | | | * hash.h (sethash): Declared. * lib.c (cobj_handle): New function. * lib.h (cobj_handle): Declared.
* All COBJ operations have default implementations now;Kaz Kylheku2009-12-081-0/+34
| | | | | | no null pointer check over struct cobj_ops operations. New typechecking function for COBJ objects.
* More void * to mem_t * conversion.Kaz Kylheku2009-12-051-0/+12
|
* Eliminate the void * disease. Generic pointers are of mem_t *Kaz Kylheku2009-12-041-0/+24
| | | | | from now on, which is compatible with unsigned char *. No implicit conversion to or from this type, in C or C++.
* * gc.c (heap_min_bound, heap_max_bound): New static globals.Kaz Kylheku2009-12-031-0/+8
| | | | | | | (more): Update heap_min_bound and heap_max_bound. (in_heap): Do early rejection tests on the pointer. If it's not aligned, or it's completely outside of the bounding box of the heap area, short circuit to false.
* Version 027.txr-027Kaz Kylheku2009-12-031-0/+17
|
* Merge.Kaz Kylheku2009-12-031-0/+8
|\
| * * parser.l (YY_NO_UNPUT): Removed superfluous #define. This is notKaz Kylheku2009-12-031-0/+8
| | | | | | | | | | | | | | needed because suppressing generation of unput is requested via the %option. In scanners generated by the legacy version of flex, 2.5.4, still widely in use. this redundancy leads to a multiple #define YY_NO_UNPUT and a compiler warning.
* | * Makefile (CFLAGS): Better test for g++, when removingKaz Kylheku2009-12-031-0/+7
|/ | | | | | warning options not appropriate for g++. Sometimes g++ may be called something that dosn't end in g++, like g++4.
* Fix for failing test suite on MIPS machine, due toKaz Kylheku2009-12-031-0/+12
| | | | gc failing to mark a local variable in txr_main.
* * Makefile (tests): Don't depend on the executable. Otherwise,Kaz Kylheku2009-12-021-0/+10
| | | | | | | | | during make install-tests, if it doesn't exist in the install directory, a gcc compile command gets deposited into the run.sh generated script. (install-tests): Fixes to make this work when using a separate build directory. Split the cpio -p job into a cpio -i piping into cpio -o.
* * Makefile (install-tests): New target. Provides a way to make theKaz Kylheku2009-12-021-0/+6
| | | | | test cases part of the installation, and a generated script to run the commands on the installation host.