|
| 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(). |
0 commit comments