1
by brian
clean slate |
1 |
New in alpha3.4: The complex bug alluded to below has been fixed (in a |
2 |
slightly kludgey temporary way that may hurt efficiency a bit; this is |
|
3 |
another "get it out the door for 4.4" release). The tests at the end of |
|
4 |
the tests file have accordingly been uncommented. The primary sign of |
|
5 |
the bug was that something like a?b matching ab matched b rather than ab. |
|
6 |
(The bug was essentially specific to this exact situation, else it would |
|
7 |
have shown up earlier.) |
|
8 |
||
9 |
New in alpha3.3: The definition of word boundaries has been altered |
|
10 |
slightly, to more closely match the usual programming notion that "_" |
|
11 |
is an alphabetic. Stuff used for pre-ANSI systems is now in a subdir, |
|
12 |
and the makefile no longer alludes to it in mysterious ways. The |
|
13 |
makefile has generally been cleaned up some. Fixes have been made |
|
14 |
(again!) so that the regression test will run without -DREDEBUG, at |
|
15 |
the cost of weaker checking. A workaround for a bug in some folks' |
|
16 |
<assert.h> has been added. And some more things have been added to
|
|
17 |
tests, including a couple right at the end which are commented out
|
|
18 |
because the code currently flunks them (complex bug; fix coming).
|
|
19 |
Plus the usual minor cleanup.
|
|
20 |
||
21 |
New in alpha3.2: Assorted bits of cleanup and portability improvement
|
|
22 |
(the development base is now a BSDI system using GCC instead of an ancient
|
|
23 |
Sun system, and the newer compiler exposed some glitches). Fix for a
|
|
24 |
serious bug that affected REs using many [] (including REG_ICASE REs
|
|
25 |
because of the way they are implemented), *sometimes*, depending on
|
|
26 |
memory-allocation patterns. The header-file prototypes no longer name
|
|
27 |
the parameters, avoiding possible name conflicts. The possibility that
|
|
28 |
some clot has defined CHAR_MIN as (say) `-128' instead of `(-128)' is |
|
29 |
now handled gracefully. "uchar" is no longer used as an internal type
|
|
30 |
name (too many people have the same idea). Still the same old lousy
|
|
31 |
performance, alas.
|
|
32 |
||
33 |
New in alpha3.1: Basically nothing, this release is just a bookkeeping
|
|
34 |
convenience. Stay tuned.
|
|
35 |
||
36 |
New in alpha3.0: Performance is no better, alas, but some fixes have been
|
|
37 |
made and some functionality has been added. (This is basically the "get
|
|
38 |
it out the door in time for 4.4" release.) One bug fix: regfree() didn't |
|
39 |
free the main internal structure (how embarrassing). It is now possible |
|
40 |
to put NULs in either the RE or the target string, using (resp.) a new |
|
41 |
REG_PEND flag and the old REG_STARTEND flag. The REG_NOSPEC flag to |
|
42 |
regcomp() makes all characters ordinary, so you can match a literal |
|
43 |
string easily (this will become more useful when performance improves!). |
|
44 |
There are now primitives to match beginnings and ends of words, although |
|
45 |
the syntax is disgusting and so is the implementation. The REG_ATOI |
|
46 |
debugging interface has changed a bit. And there has been considerable |
|
47 |
internal cleanup of various kinds. |
|
48 |
||
49 |
New in alpha2.3: Split change list out of README, and moved flags notes |
|
50 |
into Makefile. Macro-ized the name of regex(7) in regex(3), since it has |
|
51 |
to change for 4.4BSD. Cleanup work in engine.c, and some new regression |
|
52 |
tests to catch tricky cases thereof. |
|
53 |
||
54 |
New in alpha2.2: Out-of-date manpages updated. Regerror() acquires two |
|
55 |
small extensions -- REG_ITOA and REG_ATOI -- which avoid debugging kludges |
|
56 |
in my own test program and might be useful to others for similar purposes. |
|
57 |
The regression test will now compile (and run) without REDEBUG. The |
|
58 |
BRE \$ bug is fixed. Most uses of "uchar" are gone; it's all chars now. |
|
59 |
Char/uchar parameters are now written int/unsigned, to avoid possible
|
|
60 |
portability problems with unpromoted parameters. Some unsigned casts have
|
|
61 |
been introduced to minimize portability problems with shifting into sign
|
|
62 |
bits.
|
|
63 |
||
64 |
New in alpha2.1: Lots of little stuff, cleanup and fixes. The one big
|
|
65 |
thing is that regex.h is now generated, using mkh, rather than being
|
|
66 |
supplied in the distribution; due to circularities in dependencies,
|
|
67 |
you have to build regex.h explicitly by "make h". The two known bugs
|
|
68 |
have been fixed (and the regression test now checks for them), as has a
|
|
69 |
problem with assertions not being suppressed in the absence of REDEBUG.
|
|
70 |
No performance work yet.
|
|
71 |
||
72 |
New in alpha2: Backslash-anything is an ordinary character, not an
|
|
73 |
error (except, of course, for the handful of backslashed metacharacters
|
|
74 |
in BREs), which should reduce script breakage. The regression test
|
|
75 |
checks *where* null strings are supposed to match, and has generally
|
|
76 |
been tightened up somewhat. Small bug fixes in parameter passing (not
|
|
77 |
harmful, but technically errors) and some other areas. Debugging
|
|
78 |
invoked by defining REDEBUG rather than not defining NDEBUG.
|
|
79 |
||
80 |
New in alpha+3: full prototyping for internal routines, using a little
|
|
81 |
helper program, mkh, which extracts prototypes given in stylized comments.
|
|
82 |
More minor cleanup. Buglet fix: it's CHAR_BIT, not CHAR_BITS. Simple |
|
83 |
pre-screening of input when a literal string is known to be part of the |
|
84 |
RE; this does wonders for performance. |
|
85 |
||
86 |
New in alpha+2: minor bits of cleanup. Notably, the number "32" for the |
|
87 |
word width isn't hardwired into regexec.c any more, the public header |
|
88 |
file prototypes the functions if __STDC__ is defined, and some small typos |
|
89 |
in the manpages have been fixed. |
|
90 |
||
91 |
New in alpha+1: improvements to the manual pages, and an important |
|
92 |
extension, the REG_STARTEND option to regexec(). |