[plt-scheme] 352.6

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Wed Sep 20 09:43:53 EDT 2006

For some reason, \$ was mapped to "match nothing" for #px mode. I can't
remember where I got this (I cna't find it in any other system, now),
and I suspect that I was just confused at some point.

A secondary bug was that \$ was parsed the strange way for #rx mode as
well as #px mode (which is the source of the problem below).

A tertiary bug is that \$ wasn't parsed consistently in #px mode, so
that a test containing \$ passed.

Finally, the strange #px \$ behavior wasn't documented, which points
close to the root of the problem.

Fixed in SVN by removing the strange \$ parsing.

Thanks,
Matthew

At Wed, 20 Sep 2006 08:42:56 -0400, "Jay McCarthy" wrote:
> This is not backwards compatible.
> 
> For example:
> 
> (require (planet "regexps.ss" ("dherman" "javascript.plt" 3) "syntax"))
> 
> has the error:
> 
> regexp: `*', `+', or `{...}' operand could be empty
> 
> Jay
> 
> On Tue, 19 Sep 2006 09:10:11 0800, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> > 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
> >
> > _________________________________________________
> >   For list-related administrative tasks:
> >   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
> >
> 
> 
> -- 
> Jay McCarthy <jay at cs.brown.edu>
> http://jay.makeoutcity.com/
> _________________________________________________
>   For list-related administrative tasks:
>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme


Posted on the users mailing list.