[plt-scheme] 352.6

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon Sep 18 21:10:11 EDT 2006

MzScheme and MrEd are now version 352.6 in the SVN repository trunk.

MzScheme's built-in regexp system now supports the usual collection of
"Perl-compatible" features: numeric quantifiers, backreferences,
character classes, Unicode predicates, case-insensitive mode,
multi-line mode, lookahead, lookbehind, non-backtracking, and
conditionals.

Most of these have been added to the syntax of `regexp' and #rx. Adding
numeric quantifiers, backreferences, character classes, and Unicode
predicates, however, would change the syntax of `regexp' in
backward-incompatible ways. Therefore, those features are accessible
only via `pregexp' or the new #px syntax. I recommend that you use #px
and `pregexp' from now on.

The "pregexp.ss" library in MzLib now re-exports MzScheme's `pregexp'.
A module can import the same identifier multiple times when it's from
the same source, so a module that uses the `mzscheme' language can
still require `(lib "pregexp.ss")'. The other "pregexp.ss" exports are
mostly wrappers for `regexp-' procedures, but the wrappers convert a
string or byte-string pattern using `pregexp' instead of `regexp'.

Other changes:

 * Added `regexp-match?', which returns a simple #t when the pattern
   matches. This avoids the string allocation of `regexp-match', and it
   is more clear than using `regexp-match-positions' to avoid
   allocation.

 * Improved compilation of `syntax' forms, and changed `syntax' to
   preserve the 'paren-shape property for constructed syntax objects.
   Also, the ".zo" form is more compact for some syntax objects.


Matthew



Posted on the users mailing list.