Skip to content

Commit

Permalink
regcomp.c: Use compiled-in inversion lists
Browse files Browse the repository at this point in the history
This uses the compiled inversion lists to generate Posix character
classes and things like \v, \s inside bracketed character classes.

This paves the way for future optimizations, and fixes the bug which has
no formal bug number that /[[:ascii:]]/i matched non-Ascii characters,
such as the Kelvin sign, unlike /\p{ascii}/i.
  • Loading branch information
Karl Williamson committed Feb 9, 2012
1 parent 3f427fd commit ea317cc
Show file tree
Hide file tree
Showing 4 changed files with 332 additions and 146 deletions.
7 changes: 7 additions & 0 deletions pod/perldelta.pod
Expand Up @@ -629,6 +629,13 @@ with "\n". This has been fixed [perl #109206].

=item *

C<m/[[:ascii:]]/i> and C</\p{ASCII}/i> now match identically (when not
under a differing locale). This fixes a regression introduced in 5.14
in which the first expression could match characters outside of ASCII,
such as the KELVIN SIGN.

=item *

Method calls whose arguments were all surrounded with C<my()> or C<our()>
(as in C<<$object->method(my($a,$b)) >>) used to force lvalue context on
the subroutine. This would prevent lvalue methods from returning certain
Expand Down

0 comments on commit ea317cc

Please sign in to comment.