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