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