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