xref: /minix3/lib/libc/regex/WHATSNEW (revision 2fe8fb192fe7e8720e3e7a77f928da545e872a6a)
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