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