11573Srgrimes# @(#)WHATSNEW 8.3 (Berkeley) 3/18/94 21573Srgrimes 31573SrgrimesNew in alpha3.4: The complex bug alluded to below has been fixed (in a 41573Srgrimesslightly kludgey temporary way that may hurt efficiency a bit; this is 51573Srgrimesanother "get it out the door for 4.4" release). The tests at the end of 61573Srgrimesthe tests file have accordingly been uncommented. The primary sign of 71573Srgrimesthe bug was that something like a?b matching ab matched b rather than ab. 81573Srgrimes(The bug was essentially specific to this exact situation, else it would 91573Srgrimeshave shown up earlier.) 101573Srgrimes 111573SrgrimesNew in alpha3.3: The definition of word boundaries has been altered 121573Srgrimesslightly, to more closely match the usual programming notion that "_" 131573Srgrimesis an alphabetic. Stuff used for pre-ANSI systems is now in a subdir, 141573Srgrimesand the makefile no longer alludes to it in mysterious ways. The 151573Srgrimesmakefile has generally been cleaned up some. Fixes have been made 161573Srgrimes(again!) so that the regression test will run without -DREDEBUG, at 171573Srgrimesthe cost of weaker checking. A workaround for a bug in some folks' 181573Srgrimes<assert.h> has been added. And some more things have been added to 191573Srgrimestests, including a couple right at the end which are commented out 201573Srgrimesbecause the code currently flunks them (complex bug; fix coming). 211573SrgrimesPlus the usual minor cleanup. 221573Srgrimes 231573SrgrimesNew in alpha3.2: Assorted bits of cleanup and portability improvement 241573Srgrimes(the development base is now a BSDI system using GCC instead of an ancient 251573SrgrimesSun system, and the newer compiler exposed some glitches). Fix for a 261573Srgrimesserious bug that affected REs using many [] (including REG_ICASE REs 271573Srgrimesbecause of the way they are implemented), *sometimes*, depending on 281573Srgrimesmemory-allocation patterns. The header-file prototypes no longer name 291573Srgrimesthe parameters, avoiding possible name conflicts. The possibility that 301573Srgrimessome clot has defined CHAR_MIN as (say) `-128' instead of `(-128)' is 311573Srgrimesnow handled gracefully. "uchar" is no longer used as an internal type 321573Srgrimesname (too many people have the same idea). Still the same old lousy 331573Srgrimesperformance, alas. 341573Srgrimes 351573SrgrimesNew in alpha3.1: Basically nothing, this release is just a bookkeeping 361573Srgrimesconvenience. Stay tuned. 371573Srgrimes 381573SrgrimesNew in alpha3.0: Performance is no better, alas, but some fixes have been 391573Srgrimesmade and some functionality has been added. (This is basically the "get 401573Srgrimesit out the door in time for 4.4" release.) One bug fix: regfree() didn't 411573Srgrimesfree the main internal structure (how embarrassing). It is now possible 421573Srgrimesto put NULs in either the RE or the target string, using (resp.) a new 431573SrgrimesREG_PEND flag and the old REG_STARTEND flag. The REG_NOSPEC flag to 441573Srgrimesregcomp() makes all characters ordinary, so you can match a literal 451573Srgrimesstring easily (this will become more useful when performance improves!). 461573SrgrimesThere are now primitives to match beginnings and ends of words, although 471573Srgrimesthe syntax is disgusting and so is the implementation. The REG_ATOI 481573Srgrimesdebugging interface has changed a bit. And there has been considerable 491573Srgrimesinternal cleanup of various kinds. 501573Srgrimes 511573SrgrimesNew in alpha2.3: Split change list out of README, and moved flags notes 521573Srgrimesinto Makefile. Macro-ized the name of regex(7) in regex(3), since it has 531573Srgrimesto change for 4.4BSD. Cleanup work in engine.c, and some new regression 541573Srgrimestests to catch tricky cases thereof. 551573Srgrimes 561573SrgrimesNew in alpha2.2: Out-of-date manpages updated. Regerror() acquires two 571573Srgrimessmall extensions -- REG_ITOA and REG_ATOI -- which avoid debugging kludges 581573Srgrimesin my own test program and might be useful to others for similar purposes. 591573SrgrimesThe regression test will now compile (and run) without REDEBUG. The 601573SrgrimesBRE \$ bug is fixed. Most uses of "uchar" are gone; it's all chars now. 611573SrgrimesChar/uchar parameters are now written int/unsigned, to avoid possible 621573Srgrimesportability problems with unpromoted parameters. Some unsigned casts have 631573Srgrimesbeen introduced to minimize portability problems with shifting into sign 641573Srgrimesbits. 651573Srgrimes 661573SrgrimesNew in alpha2.1: Lots of little stuff, cleanup and fixes. The one big 671573Srgrimesthing is that regex.h is now generated, using mkh, rather than being 681573Srgrimessupplied in the distribution; due to circularities in dependencies, 691573Srgrimesyou have to build regex.h explicitly by "make h". The two known bugs 701573Srgrimeshave been fixed (and the regression test now checks for them), as has a 711573Srgrimesproblem with assertions not being suppressed in the absence of REDEBUG. 721573SrgrimesNo performance work yet. 731573Srgrimes 741573SrgrimesNew in alpha2: Backslash-anything is an ordinary character, not an 751573Srgrimeserror (except, of course, for the handful of backslashed metacharacters 761573Srgrimesin BREs), which should reduce script breakage. The regression test 771573Srgrimeschecks *where* null strings are supposed to match, and has generally 781573Srgrimesbeen tightened up somewhat. Small bug fixes in parameter passing (not 791573Srgrimesharmful, but technically errors) and some other areas. Debugging 801573Srgrimesinvoked by defining REDEBUG rather than not defining NDEBUG. 811573Srgrimes 821573SrgrimesNew in alpha+3: full prototyping for internal routines, using a little 831573Srgrimeshelper program, mkh, which extracts prototypes given in stylized comments. 841573SrgrimesMore minor cleanup. Buglet fix: it's CHAR_BIT, not CHAR_BITS. Simple 851573Srgrimespre-screening of input when a literal string is known to be part of the 861573SrgrimesRE; this does wonders for performance. 871573Srgrimes 881573SrgrimesNew in alpha+2: minor bits of cleanup. Notably, the number "32" for the 891573Srgrimesword width isn't hardwired into regexec.c any more, the public header 901573Srgrimesfile prototypes the functions if __STDC__ is defined, and some small typos 911573Srgrimesin the manpages have been fixed. 921573Srgrimes 931573SrgrimesNew in alpha+1: improvements to the manual pages, and an important 941573Srgrimesextension, the REG_STARTEND option to regexec(). 95