]>
Commit | Line | Data |
---|---|---|
d76ed9a9 AS |
1 | Wed 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 | ||
11 | Mon 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 | ||
21 | Tue 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 | ||
31 | Mon 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 | ||
50 | Sun 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 | ||
56 | Fri 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 | ||
62 | Tue 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 | ||
69 | Tue 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 | ||
75 | Thu 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 | ||
79 | Wed 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 | ||
84 | Fri 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 | ||
125 | Tue 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 | ||
163 | Mon 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 | ||
176 | Mon 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 | ||
190 | Wed 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 | ||
214 | Tue 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 | ||
225 | Mon 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 | ||
239 | Tue 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 | ||
246 | Fri 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 | ||
254 | Thu 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 | ||
274 | Sat Dec 30 21:19:31 1995 Tom Lord <lord@beehive> | |
275 | ||
276 | * *.[ch]: posixification and algorithmic improvement (thanks | |
277 | henry!). | |
278 |