source: trunk/third/rx/rx/ChangeLog @ 10430

Revision 10430, 10.2 KB checked in by ghudson, 27 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r10429, which included commits to RCS files with non-trunk default branches.
Line 
1Wed Jan 15 12:00:38 1997  Tom Lord  <lord@rizla.lanminds.com>
2
3        * rxsuper.c (rx_superset_cons): reference count tweak.
4
5        * rxnode.c (rx_rexp_equal): fixed test for equality of
6        interval expressions.
7
8        * rxgnucomp.h (enum RE_SYNTAX_BITS): turned the syntax
9        bits from "#define" into "enum" to ease debugging.
10
11Mon Jan 13 10:07:39 1997  Tom Lord  <lord@rizla.lanminds.com>
12
13        * rxsuper.c (rx_superset_cons):
14        While hash_store will protect cdr itself it might first allocate hash
15        tables and stuff which might cause it to be garbage collected before
16        it's protected -- (from Greg Stark)
17
18        * rxgnucomp.c (isa_blank): Test for ==, not != '\t'.
19        (from Andreas Schwab)
20
21Tue Dec  3 00:33:27 1996  Tom Lord  <lord@rizla.lanminds.com>
22
23        * rxposix.c (regnexec): When testing to consider freeing REGS,
24        watch out for PMATCH == NULL.
25
26        * rxspencer.c (rx_next_solution): In case r_parens: Before trying
27        to match a parenthesized subexpression, restore the corresponding
28        regs to their value prior to attempting the match.  If the match
29        finally fails, be sure sure to restore the old values then, too.
30
31Mon Dec  2 00:52:06 1996  Tom Lord  <lord@rizla.lanminds.com>
32
33        * rxspencer.c (rx_next_solution): After "star_try_next_left_match:"...
34        Only return yes from a star expression whose subexpression fails if
35        the target string has 0 length.
36
37        * rxposix.c (regnexec, regncomp): reversed the order of
38        the string and string-length arguments to be more like
39        other functions (e.g. strncmp). (Suggested by Mike Haertel)
40
41        * inst-rxposix.h, rxgnucomp.h (REG_E*): moved declarations
42        of POSIX error codes into the posix header file.
43
44        * rxgnucomp.c (rx_parse): Don't permit a backreference to
45        an enclosing subexpression.  This change returns some code that
46        was bogusly deleted somewhere along the line.  This fixes
47        a bug that causes a pattern such as: ((.*)\1)x to core dump.
48        (Reported by Mike Haertel)
49       
50Sun Nov 24 04:24:13 1996  Tom Lord  <lord@rizla.lanminds.com>
51
52        * rxposix.c (rx_regexec): Added a new optimization
53        that generalizes the fastmap.  The new optimization is applied
54        if the length of the string exceeds RX_MANY_CASES.
55
56Fri Nov  8 09:07:14 1996  Tom Lord  <lord@rizla.lanminds.com>
57
58        * rxsuper.h (RX_DEFAULT_DFA_CACHE_SIZE):
59        * rxbasic.h (RX_DEFAULT_NFA_DELAY):
60        New macros so these values can be set at compile time.
61
62Tue Nov  5 09:37:03 1996  Tom Lord  <lord@rizla.lanminds.com>
63
64        * rxspencer.c (rx_make_solutions): watch out for solns->exp == NULL.
65
66        Eric Johnson (johnsone@uiuc.edu) detected this bug and
67        also performed useful testing of Rx memory management.
68
69Tue Jun 18 11:44:46 1996  Tom Lord  <lord@beehive>
70
71        * rxanal.c (rx_start_superstate): Don't release an old superstate
72        unless it is known that the new superstate has been successfully
73        constructed.
74
75Thu Jun 13 11:18:25 1996  Tom Lord  <lord@beehive>
76
77        * rxspencer.c etc. (rx_next_solution et al.): remove all traces of rx_maybe
78
79Wed May 22 12:28:22 1996  Tom Lord  <lord@beehive>
80
81        * rxanal.c (rx_start_superstate): Preserve the invariant
82        that a locked superstate is never semifree.
83
84Fri May 17 10:21:26 1996  Tom Lord  <lord@beehive>
85
86        * rgx.c (scm_regexec): added match data support for
87        "#\c" -- the final_tag of the match (for the cut operator).
88
89        * rxspencer.c (rx_next_solution): propogate is_final data
90        up through the tree of solution streams.
91
92        * rxnfa.h (struct rx_nfa_state):
93        unsigned int is_final:1 => int is_final for the cut
94        operator.
95
96        * rxanal.c (rx_match_here_p):
97        * rxanal.c (rx_fit_p):
98        * rxanal.c (rx_longest): When a final state is detected,
99        propogate the value of the is_final flag back to the
100        caller.  It may contain data generated by a "cut" operator.
101
102        * rxsuper.c (superset_allocator): when marking a superset
103        final, mark it with the maximum of the is_final fields
104        of the constituent nfa states (for the "cut" operator which
105        allows users to set that value).
106
107        * rxgnucomp.c (rx_parse): Replace "[[:set...:]]" with
108        "[[:cut n:]]".  cut is regular but set is not, so cut
109        leads to much faster running patterns.
110
111        * rxnfa.c (rx_build_nfa): compile r_cut nodes.   r_cut
112        nodes match the empty string and nothing more.  A parameter
113        to the cut node determines whether the empty match leads
114        to a final state, or to a failure.
115
116        * rx.c (rx_free_rx):
117        * rxsuper.c (release_superset_low):
118        * rxanal.c (rx_start_superstate): fixed the test for a cached
119        starting superset to reflect the simplified memory management
120        of `struct rx' (they are now explicitly freed using rx_free_rx)
121        and `struct rx_superset' (they are now ultimately freed using
122        free and not kept on a free-list).   Now the `start_set' field
123        of a `struct rx' is only non-0 if it is valid.
124
125Tue May 14 08:56:22 1996  Tom Lord  <lord@beehive>
126
127        * rxspencer.h (typedef rx_contextfn): take an entire expression
128        tree instead of just a context type since for some context types,
129        parameters in the tree matter ([[:set...:]])
130
131        * rxstr.c (rx_str_contextfn): handle [[:set...:]] operator.
132
133        * rxgnucomp.c (rx_parse): added the [[:set n = x:]] construct
134        to make it easier to lex using regexps.
135
136        * rxposix.c (regnexec):
137        "This pattern (with 10 subexpressions and 9 backreferences) made no entries
138        in a match array of size 5." (from doug@plan9.att.com)
139
140        * rxgnucomp.c (rx_parse): new compilation state variable:
141       
142        last_non_regular_expression When compiling, keep track of two, not
143        one point in the tree for concatenating new nodes.  The
144        *last_non_regular_expression point is always the same as the
145        *last_expression or is a parent of that node.  Concatenations of
146        regular constructs happen at last_expression, others at
147        last_non_regular_expression.  The resulting trees have
148        "observable" constructs clustered near the root of the tree which
149        allows those optimizations that apply only to regular subtrees to
150        have a greater impact on overall performance.
151       
152
153        * rxspencer.c (rx_next_solution): interval satisfaction test was wrong.
154
155        * rxanal.c (rx_posix_analyze_rexp): An interval is always observed (not truly
156        a regular expression).
157
158        * rxstr.c (rx_str_contextfn): "when you're doing
159        back-reference matching case insensitively (with REG_ICASE set),
160        you are supposed to also do the BR matching without paying attention
161        to case.
162
163Mon May 13 09:59:48 1996  Tom Lord  <lord@beehive>
164
165        * rxspencer.c (rx_next_solution): Don't construct
166        an NFA when comparing an r_string to some text --
167        just do a strcmp-like operation.
168
169        * rxgnucomp.c (rx_parse): new variable: n_members
170        An array keeping track of the size of csets generated
171        by inverting the translation table.
172
173        (rx_parse): validate_inv_tr and n_members were way to big --
174        each only needs CHAR_SET_SIZE elements.
175
176Mon May 13 09:29:42 1996  Zachary Weinberg <zaw2@rabi.phys.columbia.edu>
177
178        * rxnode.c (rx_init_string): New data structure for strings --
179        part of the overall support for constant string optimization.
180
181        * rxnode.c (rx_mk_r_str etc.): a new type of rexp-node --
182        an abbreviation for a concatenation of characters.
183
184        * rxdbug.c (print_rexp): Added support for printing r_str nodes.
185
186        * rxgnucomp.c (rx_parse): initial support for constant strings.
187
188
189
190Wed Jan 31 19:59:46 1996  Preston L. Bannister  <pbannister@ca.mdis.com>
191
192        Changes to compile clean under MSVC 4.0 (w/o warnings).
193        Added makefile for MSVC 4.0 (librx.mak).
194
195        [! Changes marked *** were made differently from the submitted
196           patches -- the descriptions may not apply exactly.]
197
198        hashrexp.c:     Added __STDC__ variant of function definition.
199        ***     rxall.h:        Pull in standard C header files. 
200        ***                     Map bzero() to memset().
201        rxanal.c:       Remove unused variable.
202        rxdbug.c:       Added stdio include.
203        rxhash.c:       Remove unused variable.
204        rxnfa.c:        Remove {re,m}alloc definition.
205        rxposix.c:      Remove unused variable.
206        ***             Cast parameter nmatch declared as size_t to int on use.
207        ***             Perhaps nmatch should be passed as int?
208                        [made related variables size_t]
209        rxspencer.c:    Add rxsimp.h include.
210                        Remove unused variables and labels.
211        rxunfa.c:       Remove unused variable.
212                       
213
214Tue Jan 30 10:29:16 1996  Tom Lord  <lord@beehive>
215
216        * rxsimp.c (rx_simple_rexp): move assignment out of if.
217        ("Preston L. Bannister" <preston@speed.net>)
218
219        * Makefile.in (CFLAGS, ALL_CFLAGS): rearranged to allow user
220        specified CFLAGS.
221
222        * rxposix.h: comment stuff after #endif.
223        (reported by Eric Backus <ericb@lsid.hp.com>)
224
225Mon Jan  1 13:03:28 1996  Jason Molenda  (crash@phydeaux.cygnus.com)
226
227        * rxbasic.c (rx_basic_make_solutions): argument called 'rexp' is
228        now called 'expression'.  Argument 'str' should be unsigned char.
229
230        * rxbasic.h (rx_basic_make_solutions): argument 'str' should be
231        unsigned char.
232
233        * rxsuper.h (rx_handle_cache_miss, rx_superstate_eclosure_union):
234        syntax error in prototypes. [Actually fixed in rxsuper.c, from which
235        that section of rxsuper.h is derived.]
236
237        * rxnode.c (rx_mk_r_cset): fix function decl.
238
239Tue Jan 30 09:43:28 1996  Tom Lord  <lord@beehive>
240
241        * rxposix.c (regnexec): pass rx_regexec "regs", not "pmatch".
242        "regs" is valid even if "pmatch" is NULL.
243        (Fixes testsuite bug "pragma" reported by John.Szetela@amd.com (John J. Szetela)
244        also fixes bug reported by Jongki Suwandi <jongkis@loc1.tandem.com>)
245
246Fri Jan 26 14:23:20 1996  Tom Lord  <lord@beehive>
247
248        * rxdbug.c (AT): Use the GCC feature only if HAVE_POSITIONAL_ARRAY_INITS
249        is defined.
250
251        * Makefile.in: Fixed depends target to not include system
252        header files.  Use @exec_prefix@. (Derek Clegg <Derek_Clegg@next.com>)
253
254Thu Jan  4 16:13:07 1996  Tom Lord  <lord@beehive>
255
256        * rxposix.c (rx_regexec): Don't bother checking to see if an
257        anchored pattern matches other than at the beginning of a string.
258       
259        (rx_regmatch): Don't bother looking for matches that are the
260        wrong length if the overall length of the expression is known.
261        This duplicates an optimization already in rx_make_solutions and
262        rx_basic_make_solutions, but its worth it.  The make_solutions
263        optimization applies to fixed length subexpressions of a variable
264        length expression.  The regmatch optimization can avoid (in sed,
265        for example) many, many uneeded calls to make_solutions and
266        rx_next_solution.
267
268        * rxspencer.c (rx_make_solutions, rx_basic_make_solutions): If the
269        expression is fixed length and that length doesn't match the
270        buffer, don't bother constructing a new solution stream -- just
271        return the canonical "no solution" stream.
272
273
274Sat Dec 30 21:19:31 1995  Tom Lord  <lord@beehive>
275
276        * *.[ch]: posixification and algorithmic improvement (thanks
277        henry!).
278
Note: See TracBrowser for help on using the repository browser.