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