xref: /freebsd/lib/libc/regex/WHATSNEW (revision dc36d6f9bb1753f3808552f3afd30eda9a7b206a)
158f0484fSRodney W. Grimes
258f0484fSRodney W. GrimesNew in alpha3.4:  The complex bug alluded to below has been fixed (in a
358f0484fSRodney W. Grimesslightly kludgey temporary way that may hurt efficiency a bit; this is
458f0484fSRodney W. Grimesanother "get it out the door for 4.4" release).  The tests at the end of
558f0484fSRodney W. Grimesthe tests file have accordingly been uncommented.  The primary sign of
658f0484fSRodney W. Grimesthe bug was that something like a?b matching ab matched b rather than ab.
758f0484fSRodney W. Grimes(The bug was essentially specific to this exact situation, else it would
858f0484fSRodney W. Grimeshave shown up earlier.)
958f0484fSRodney W. Grimes
1058f0484fSRodney W. GrimesNew in alpha3.3:  The definition of word boundaries has been altered
1158f0484fSRodney W. Grimesslightly, to more closely match the usual programming notion that "_"
1258f0484fSRodney W. Grimesis an alphabetic.  Stuff used for pre-ANSI systems is now in a subdir,
1358f0484fSRodney W. Grimesand the makefile no longer alludes to it in mysterious ways.  The
1458f0484fSRodney W. Grimesmakefile has generally been cleaned up some.  Fixes have been made
1558f0484fSRodney W. Grimes(again!) so that the regression test will run without -DREDEBUG, at
1658f0484fSRodney W. Grimesthe cost of weaker checking.  A workaround for a bug in some folks'
1758f0484fSRodney W. Grimes<assert.h> has been added.  And some more things have been added to
1858f0484fSRodney W. Grimestests, including a couple right at the end which are commented out
1958f0484fSRodney W. Grimesbecause the code currently flunks them (complex bug; fix coming).
2058f0484fSRodney W. GrimesPlus the usual minor cleanup.
2158f0484fSRodney W. Grimes
2258f0484fSRodney W. GrimesNew in alpha3.2:  Assorted bits of cleanup and portability improvement
2358f0484fSRodney W. Grimes(the development base is now a BSDI system using GCC instead of an ancient
2458f0484fSRodney W. GrimesSun system, and the newer compiler exposed some glitches).  Fix for a
2558f0484fSRodney W. Grimesserious bug that affected REs using many [] (including REG_ICASE REs
2658f0484fSRodney W. Grimesbecause of the way they are implemented), *sometimes*, depending on
2758f0484fSRodney W. Grimesmemory-allocation patterns.  The header-file prototypes no longer name
2858f0484fSRodney W. Grimesthe parameters, avoiding possible name conflicts.  The possibility that
2958f0484fSRodney W. Grimessome clot has defined CHAR_MIN as (say) `-128' instead of `(-128)' is
3058f0484fSRodney W. Grimesnow handled gracefully.  "uchar" is no longer used as an internal type
3158f0484fSRodney W. Grimesname (too many people have the same idea).  Still the same old lousy
3258f0484fSRodney W. Grimesperformance, alas.
3358f0484fSRodney W. Grimes
3458f0484fSRodney W. GrimesNew in alpha3.1:  Basically nothing, this release is just a bookkeeping
3558f0484fSRodney W. Grimesconvenience.  Stay tuned.
3658f0484fSRodney W. Grimes
3758f0484fSRodney W. GrimesNew in alpha3.0:  Performance is no better, alas, but some fixes have been
3858f0484fSRodney W. Grimesmade and some functionality has been added.  (This is basically the "get
3958f0484fSRodney W. Grimesit out the door in time for 4.4" release.)  One bug fix:  regfree() didn't
4058f0484fSRodney W. Grimesfree the main internal structure (how embarrassing).  It is now possible
4158f0484fSRodney W. Grimesto put NULs in either the RE or the target string, using (resp.) a new
4258f0484fSRodney W. GrimesREG_PEND flag and the old REG_STARTEND flag.  The REG_NOSPEC flag to
4358f0484fSRodney W. Grimesregcomp() makes all characters ordinary, so you can match a literal
4458f0484fSRodney W. Grimesstring easily (this will become more useful when performance improves!).
4558f0484fSRodney W. GrimesThere are now primitives to match beginnings and ends of words, although
4658f0484fSRodney W. Grimesthe syntax is disgusting and so is the implementation.  The REG_ATOI
4758f0484fSRodney W. Grimesdebugging interface has changed a bit.  And there has been considerable
4858f0484fSRodney W. Grimesinternal cleanup of various kinds.
4958f0484fSRodney W. Grimes
5058f0484fSRodney W. GrimesNew in alpha2.3:  Split change list out of README, and moved flags notes
5158f0484fSRodney W. Grimesinto Makefile.  Macro-ized the name of regex(7) in regex(3), since it has
5258f0484fSRodney W. Grimesto change for 4.4BSD.  Cleanup work in engine.c, and some new regression
5358f0484fSRodney W. Grimestests to catch tricky cases thereof.
5458f0484fSRodney W. Grimes
5558f0484fSRodney W. GrimesNew in alpha2.2:  Out-of-date manpages updated.  Regerror() acquires two
5658f0484fSRodney W. Grimessmall extensions -- REG_ITOA and REG_ATOI -- which avoid debugging kludges
5758f0484fSRodney W. Grimesin my own test program and might be useful to others for similar purposes.
5858f0484fSRodney W. GrimesThe regression test will now compile (and run) without REDEBUG.  The
5958f0484fSRodney W. GrimesBRE \$ bug is fixed.  Most uses of "uchar" are gone; it's all chars now.
6058f0484fSRodney W. GrimesChar/uchar parameters are now written int/unsigned, to avoid possible
6158f0484fSRodney W. Grimesportability problems with unpromoted parameters.  Some unsigned casts have
6258f0484fSRodney W. Grimesbeen introduced to minimize portability problems with shifting into sign
6358f0484fSRodney W. Grimesbits.
6458f0484fSRodney W. Grimes
6558f0484fSRodney W. GrimesNew in alpha2.1:  Lots of little stuff, cleanup and fixes.  The one big
6658f0484fSRodney W. Grimesthing is that regex.h is now generated, using mkh, rather than being
6758f0484fSRodney W. Grimessupplied in the distribution; due to circularities in dependencies,
6858f0484fSRodney W. Grimesyou have to build regex.h explicitly by "make h".  The two known bugs
6958f0484fSRodney W. Grimeshave been fixed (and the regression test now checks for them), as has a
7058f0484fSRodney W. Grimesproblem with assertions not being suppressed in the absence of REDEBUG.
7158f0484fSRodney W. GrimesNo performance work yet.
7258f0484fSRodney W. Grimes
7358f0484fSRodney W. GrimesNew in alpha2:  Backslash-anything is an ordinary character, not an
7458f0484fSRodney W. Grimeserror (except, of course, for the handful of backslashed metacharacters
7558f0484fSRodney W. Grimesin BREs), which should reduce script breakage.  The regression test
7658f0484fSRodney W. Grimeschecks *where* null strings are supposed to match, and has generally
7758f0484fSRodney W. Grimesbeen tightened up somewhat.  Small bug fixes in parameter passing (not
7858f0484fSRodney W. Grimesharmful, but technically errors) and some other areas.  Debugging
7958f0484fSRodney W. Grimesinvoked by defining REDEBUG rather than not defining NDEBUG.
8058f0484fSRodney W. Grimes
8158f0484fSRodney W. GrimesNew in alpha+3:  full prototyping for internal routines, using a little
8258f0484fSRodney W. Grimeshelper program, mkh, which extracts prototypes given in stylized comments.
8358f0484fSRodney W. GrimesMore minor cleanup.  Buglet fix:  it's CHAR_BIT, not CHAR_BITS.  Simple
8458f0484fSRodney W. Grimespre-screening of input when a literal string is known to be part of the
8558f0484fSRodney W. GrimesRE; this does wonders for performance.
8658f0484fSRodney W. Grimes
8758f0484fSRodney W. GrimesNew in alpha+2:  minor bits of cleanup.  Notably, the number "32" for the
8858f0484fSRodney W. Grimesword width isn't hardwired into regexec.c any more, the public header
8958f0484fSRodney W. Grimesfile prototypes the functions if __STDC__ is defined, and some small typos
9058f0484fSRodney W. Grimesin the manpages have been fixed.
9158f0484fSRodney W. Grimes
9258f0484fSRodney W. GrimesNew in alpha+1:  improvements to the manual pages, and an important
9358f0484fSRodney W. Grimesextension, the REG_STARTEND option to regexec().
94