This is a live mirror of the Perl 5 development currently hosted at
11 years agoWindows builds require perliol.h conditional on USE_PERLIO.
George Greer [Wed, 16 Feb 2011 20:00:47 +0000 (15:00 -0500)]
Windows builds require perliol.h conditional on USE_PERLIO.

11 years agoFix pod warnings in perlfaq4.pod
Michael Stevens [Wed, 16 Feb 2011 17:41:44 +0000 (17:41 +0000)]
Fix pod warnings in perlfaq4.pod

11 years agodocument how tainting works with pattern matching
David Mitchell [Wed, 16 Feb 2011 17:17:18 +0000 (17:17 +0000)]
document how tainting works with pattern matching

11 years agofix many s/// tainting bugs
David Mitchell [Mon, 14 Feb 2011 15:46:13 +0000 (15:46 +0000)]
fix many s/// tainting bugs

This is a re-implementation of the tainting code in pp_subst and
pp_substcont. Although this fixes many bugs, because its a de-novo rewrite
of the tainting parts of the code in those two functions, it's quite
possible that it breaks some existing tainting behaviour. It doesn't break
any existing tests, although it turns out that this area was severely
under-tested anyway.

The main bugs that this commit fixes are as follows, where:

T = a tainted value
L = pattern tainted by locale (e.g. use locale; s/\w//)
Happens both with and without 'use re taint' unless specified.
Happens with all modifiers (/g, /r etc) unless explicitly mentioned.

    $1 unexpectedly untainted:
T =~ s///            under use re 'taint'

     original string unexpectedly untainted:
s/L//,  s/L//g

    return value unexpectedly untainted:
T =~ s///g           under no re 'taint'
s/L//g,  s/L//r

    return value unexpectedly tainted:
s//T/r               under no re 'taint'
T =~ s///            under use re 'taint'
s//T/                under use re 'taint'

Also, with /ge, the original string becomes tainted as soon as possible
(usually in the second entry to the /e code block) rather than only at the
end, in code like

    $orig =~ s/T/...code.../ge

The rationale behind the taintedness of the return value of s/// (in the
non /r case), is that a boolean value shouldn't be tainted. This
corresponds to the general perl tainting policy that boolean ops don't
return tainted values. On the other hand,  when it returns an integer
(number of matches), that should be tainted.

A couple of note about the old tainting code this replaces: firstly, several
occurrences of the following were NOOPs, since rxtainted was U8 and the bit
being ored was > 256:

    rxtainted |= RX_MATCH_TAINTED(rx)

secondly, removing a whole bunch of the following didn't make any
existing tests fail:

    TAINT_IF(rxtainted & 1);

11 years agoadd comprehensive m// and s/// taint tests
David Mitchell [Fri, 11 Feb 2011 23:50:59 +0000 (23:50 +0000)]
add comprehensive m// and s/// taint tests

It turns out that taint in pattern matching and substitutions is
under-tested and buggy. Add lots of new tests to try and cover most
permutations.  Several tests are TODO for now, but should get fixed by
commits to follow shortly.

11 years agopp_match: indent label slightly
David Mitchell [Wed, 9 Feb 2011 13:46:18 +0000 (13:46 +0000)]
pp_match: indent label slightly

'play_it_again:' was on column 0, which meant that most diff
utilities interpreted it as a function name.

11 years agoRun lib/diagnostics.t during make test_porting
Larwan Berke [Wed, 16 Feb 2011 17:32:20 +0000 (12:32 -0500)]
Run lib/diagnostics.t during make test_porting

Signed-off-by: David Golden <>
11 years agoUpdated to CPAN version 1.94_65
David Golden [Wed, 16 Feb 2011 14:48:51 +0000 (09:48 -0500)]
Updated to CPAN version 1.94_65


2011-02-14  David Golden <>

* release 1.94_65

* Adds support for META/MYMETA.json files if CPAN::Meta is

* Adds HOMEDRIVE/HOMEPATH or USERPROFILE as home directory
        options on Windows

* fixes a minor test bug related to Makefile timeskews

* fixes a minor test bug related to Makefile timeskews

* various documentation typo fixes

11 years agoFix broken lib/diagnostics.t
David Golden [Wed, 16 Feb 2011 15:49:02 +0000 (10:49 -0500)]
Fix broken lib/diagnostics.t

Commit 96090e4 changed a diagnostic message, but didn't update

11 years agoDelete subroutines Socket::fake_get{addr,name}info if they are not used.
Nicholas Clark [Wed, 16 Feb 2011 09:58:05 +0000 (09:58 +0000)]
Delete subroutines Socket::fake_get{addr,name}info if they are not used.

Nothing outside of uses them, and removing them from the symbol table
frees up about 12K. (And likely reduces the per-thread overhead under ithreads,
as their pads won't need cloning.)

11 years agoadd refcnt_inc/dec to perldiag
Father Chrysostomos [Wed, 16 Feb 2011 06:31:23 +0000 (22:31 -0800)]
add refcnt_inc/dec to perldiag

11 years agomore perldelta entries
Father Chrysostomos [Wed, 16 Feb 2011 06:27:47 +0000 (22:27 -0800)]
more perldelta entries

11 years agoMore POD corrections
Tom Christiansen [Wed, 16 Feb 2011 05:44:15 +0000 (21:44 -0800)]
More POD corrections

[Extracted by the committer from

11 years agomultifile patch against blead/pod/*.pod
Tom Christiansen [Wed, 16 Feb 2011 05:30:06 +0000 (21:30 -0800)]
multifile patch against blead/pod/*.pod

I mostly fixed spelling mistakes, some of very long standing,
but a few files got more attentive word-smithying.  I've updated:







11 years agoFix bad pod links found by Test::Pod::LinkCheck
Apocalypse [Wed, 16 Feb 2011 01:38:04 +0000 (18:38 -0700)]
Fix bad pod links found by Test::Pod::LinkCheck

11 years agoAdd CPAN::Meta as a dual-life module
David Golden [Wed, 16 Feb 2011 03:35:53 +0000 (22:35 -0500)]
Add CPAN::Meta as a dual-life module

CPAN::Meta version 2.110440 has been added as a dual-life module. It
provides a standard library to read, interpret and write CPAN distribution
metadata files (e.g. META.json and META.yml) which describes a
distribution, its contents, and the requirements for building it and
installing it. The latest CPAN distribution metadata specification is
included as CPAN::Meta::Spec and notes on changes in the specification
over time are given in CPAN::Meta::History.

CPAN::Meta is required for and CPANPLUS to read META.json and
MYMETA.json files and is required by Module::Build and
ExtUtils::MakeMaker to generate META.json and MYMETA.json files

11 years agoperldelta entries
Father Chrysostomos [Wed, 16 Feb 2011 02:20:43 +0000 (18:20 -0800)]
perldelta entries

11 years agopod/perldelta.pod: [minor] turn " " into " "
Ævar Arnfjörð Bjarmason [Wed, 16 Feb 2011 00:36:54 +0000 (00:36 +0000)]
pod/perldelta.pod: [minor] turn "  " into " "

Reported-by: Dave Rolsky <>
11 years ago[perl #78494] Pipes cause threads to hang on join()
Father Chrysostomos [Wed, 16 Feb 2011 00:33:24 +0000 (16:33 -0800)]
[perl #78494] Pipes cause threads to hang on join()

or on close() in either thread.

close() in one thread blocks until close() is called in the other
thread, because both closes are waiting for the child process to end.

Since we have a reference-counting mechanism for the underlying
fileno, we can use that to determine whether close() should wait.

This does not solve the problem of close $OUT block when it has been
duplicated via open $OUT2, ">&" and $OUT2 is still in scope.

11 years agos/perlrepository/perlgit/g
Dave Rolsky [Wed, 16 Feb 2011 00:25:38 +0000 (18:25 -0600)]

Signed-off-by: Ævar Arnfjörð Bjarmason <>
11 years agot/porting/podcheck.t: remove unused __DATA__ section
Ævar Arnfjörð Bjarmason [Tue, 15 Feb 2011 23:49:52 +0000 (23:49 +0000)]
t/porting/podcheck.t: remove unused __DATA__ section

This was added by Max Maischein in a67b1afafd, then removed by Jesse
Vincent in 69f6a9a1e2 the same day, but Jesse forgot to nuke the
__DATA__ section.

Verified with `git log --reverse -p -SDATA -- t/porting/podcheck.t`.

Reported-by: Larwan Berke <>
11 years agoignore the new lib/ build deritus
Tony Cook [Tue, 15 Feb 2011 23:41:26 +0000 (10:41 +1100)]
ignore the new lib/ build deritus

11 years agofix C++ builds and make the comment on initializers clearer
Tony Cook [Tue, 15 Feb 2011 23:38:55 +0000 (10:38 +1100)]
fix C++ builds and make the comment on initializers clearer

11 years agoperldelta for most of 5.13.10
Ævar Arnfjörð Bjarmason [Tue, 15 Feb 2011 22:43:31 +0000 (22:43 +0000)]
perldelta for most of 5.13.10

Add a perldelta for the commits since v5.13.9 that I thought worthy of

What should be included was discussed on perl5-porters in the "The
status of the perldelta for 5.13.10" and "[PATCH/RFC]
pod/perldelta.pod: WIP perldelta from v5.13.9..356123f144" threads.

There might still be things that need a delta that I either don't
fully understand or don't have the competency to write a perldelta
for. These were when I started writing this commit message at least:

    $ git-deltatool --mode summary --type blocking
    Scanning for blocking commits since v5.13.9...
    2f65c56 regexec.c: Handle sharp s in middle of backref
    6e326e8 regcomp.c: Handle more cases of tricky fold chars
    b1e3e56 regexec.c: Give context for ANYOFV call
    4e8910e regexec.c: Give context for ANYOFV call
    a5d74e1 regcomp.c: Remove special handling for U+00DF
    8e3094e regcomp.c: tell regexec more about multi-char folds
    d18bf9d regcomp.c: Synthetic start class should include ord >255 folds
    43322ea regcomp.c: Be more precise about ANYOF matching flag
    4c9daa0 regcomp.c: Put two static functions in embed.fnc
    17a3df4 Fix up \cX for 5.14
    0cd14f2 Minor bugfixes to Socket::getaddrinfo
    d1de25c Add supplied tests from perl #83194.
    33d9abf code points above 0x7fff_ffff problematic
    d764b54 Add initial inversion list object
    2f833f5 regcomp.c: Generate different property for /i matching
    6c29054 bmodpow() fails when GMP library is used.

There I have not included commits by Father Chrysostomos since he told
me that he "plan[s] to write perldelta entries for everything [he]
committed that is worthy of note.".

Later I noticed a mail by Karl Williamson where he said that he
"always[s] put in a delta if [he] think[s] one is needed". That along
with marking up the remaining as ignored turned the list of pending
commits into:

    $ perl Porting/git-deltatool --mode summary --type blocking
    Scanning for blocking commits since v5.13.9...

We'll probably still need perldelta for"Fix up \cX for 5.14" and
related changes, but that can be done for the final 5.14 release.

11 years agopod/perldelta.pod: fix POD syntax in 7319f91d2a
Ævar Arnfjörð Bjarmason [Tue, 15 Feb 2011 23:27:58 +0000 (23:27 +0000)]
pod/perldelta.pod: fix POD syntax in 7319f91d2a

Balance a runaway C<> added in

11 years agonote fixes to FindExt.t
Tony Cook [Tue, 15 Feb 2011 23:24:10 +0000 (10:24 +1100)]
note fixes to FindExt.t

11 years agoPorting/git-deltatool: print progress info to STDERR
Ævar Arnfjörð Bjarmason [Tue, 15 Feb 2011 23:07:38 +0000 (23:07 +0000)]
Porting/git-deltatool: print progress info to STDERR

Print output that's just displaying the progress of the tool to STDERR
instead of STDOUT. I can now do things like:

    git-deltatool --mode summary --type blocking | awk '{print $1}'

And not have the first line be "Scanning".

11 years agoconsistent URL links
Robin Barker [Wed, 9 Feb 2011 19:50:55 +0000 (19:50 +0000)]
consistent URL links

11 years agoUpdate CPANPLUS to CPAN version 0.9101
Chris 'BinGOs' Williams [Tue, 15 Feb 2011 21:13:27 +0000 (21:13 +0000)]
Update CPANPLUS to CPAN version 0.9101


  Changes for 0.9101      Tue Feb 15 20:58:30 2011
  * Only a version change for downstream maintainers

11 years agoExtUtils-CBuilder is causing some collateral smoke; fix variable name.
George Greer [Tue, 15 Feb 2011 17:34:10 +0000 (12:34 -0500)]
ExtUtils-CBuilder is causing some collateral smoke; fix variable name.

Since the variable was empty, the include of ::Platform::MSVC failed
and it fell back to ::Base which tried to use "-o" as a parameter.

11 years agoregexec.c: Silence netbsd compiler warning
Karl Williamson [Tue, 15 Feb 2011 17:04:24 +0000 (10:04 -0700)]
regexec.c: Silence netbsd compiler warning

11 years agoregcomp.c: Silence win32 compiler warnings
Karl Williamson [Tue, 15 Feb 2011 17:03:34 +0000 (10:03 -0700)]
regcomp.c: Silence win32 compiler warnings

11 years agotoke.c: silence win32 compiler warning
Karl Williamson [Tue, 15 Feb 2011 17:02:55 +0000 (10:02 -0700)]
toke.c: silence win32 compiler warning

11 years agoAdd UCD::num() to get safe numeric value of a string
Karl Williamson [Tue, 15 Feb 2011 15:37:16 +0000 (08:37 -0700)]
Add UCD::num() to get safe numeric value of a string

This function will return the numeric value of the string passed it,
and undef if the entire string has no safe numeric value.

To be safe, a string must be a single character which has a numeric
value, or consist entirely of characters that match \d, coming from the
same Unicode block of digits.  Thus, a mix of  Bengali and Western
digits would be considered unsafe, as well as a mix of half- and
full-width digits.

11 years agomktables: Default map tables to range size 1.
Karl Williamson [Tue, 15 Feb 2011 15:25:03 +0000 (08:25 -0700)]
mktables: Default map tables to range size 1.

It hasn't been documented, but the swash code in utf8.c has a different
interpretation of map table ranges than mktables generates.  mktables
creates a range where of consecutive code points that map to the same
thing.  utf8.c is expecting a range where consecutive code points map to
consecutive things.  One could, for example, give the digits in one
    0030 0039   0
Also, the code in UCD would have to be more intelligent to cope with
ranges.  The space savings is negligible, so this just makes all ranges
one code point long.

11 years agomktables: Write all enum map tables.
Karl Williamson [Tue, 15 Feb 2011 04:29:57 +0000 (21:29 -0700)]
mktables: Write all enum map tables.

This is in preparation for removing the much larger Unicode source
files from the installed distribution.

11 years agoAdd ext/re/ to the @INC set for miniperl by lib/
Nicholas Clark [Mon, 14 Feb 2011 20:36:36 +0000 (20:36 +0000)]
Add ext/re/ to the @INC set for miniperl by lib/

This avoids a build-time race condition where lib/ might be read midway
through the *second* copy of it (when ext/re/Makefile is being run). It also
simplifies many [Mm]akefile* rules, which previously had a special case to
copy it early.

11 years agoUse a to set @INC in miniperl when building extensions.
Nicholas Clark [Mon, 14 Feb 2011 10:14:18 +0000 (10:14 +0000)]
Use a to set @INC in miniperl when building extensions.

With the build tools now shipped in various subdirectories of cpan/ and dist/
we need to add several paths to @INC when invoking MakeMaker (etc) to build

The previous approach of using $ENV{PERL5LIB} was fragile, because:
a: It was hitting the length limit for %ENV variables on VMS
b: It was running the risk of race conditions in a parallel build -
   ExtUtils::Makemaker "knows" to add -I../..lib, which puts lib at the *front*
   of @INC, but if one parallel process happens to copy a module into lib/
   whilst another is searching for it, the second may get a partial read
c: Overwriting $ENV{PERL5LIB} breaks any system where any of the installed
   build tools are actually implemented in Perl, if they are relying on
   $ENV{PERL5LIB} for setup

This approach

a: Doesn't have %ENV length limits
b: Ensures that lib/ is last, so copy targets are always shadowing copy
c: Only affects miniperl, and doesn't touch $ENV{PERL5LIB}

Approaches that turned out to have fatal flaws:

1: Using $ENV{PERL5OPT} with a module fails because ExtUtils::MakeMaker
   searches for the build perl without setting lib, and treats the error
   caused by a failed -M as "not a valid perl 5 binary"
2: Refactoring ExtUtils::MakeMaker to *not* use -I for lib, and instead rely
   on $ENV{PERL5LIB} [which includes "../../lib"] fails because:
   some extensions have subdirectories, and on these EU::MM correctly uses
   -I../../../lib, where as $ENV{PERL5LIB} only has space for relative paths,
   and only with two levels.

This approach actually takes advantage of ExtUtils::MakeMaker setting an -I
option correct for the depth of directory being built.

11 years agoFor miniperl, use the USE_SITECUSTOMIZE feature to load the build-time @INC
Nicholas Clark [Mon, 14 Feb 2011 09:06:42 +0000 (09:06 +0000)]
For miniperl, use the USE_SITECUSTOMIZE feature to load the build-time @INC

For miniperl (only), always enable USE_SITECUSTOMIZE, but change it to load
a file from $INC[0], if present. The default @INC for
miniperl is '.', so by default this does nothing.

11 years agoUpdate perlfaq4 examples to use Time::Piece
brian d foy [Tue, 15 Feb 2011 07:57:16 +0000 (01:57 -0600)]
Update perlfaq4 examples to use Time::Piece

11 years agoDelete suidperl messages from perldiag
Father Chrysostomos [Mon, 14 Feb 2011 23:46:59 +0000 (15:46 -0800)]
Delete suidperl messages from perldiag

These messages are no longer produced, as of commit cc69b68.

The ‘No -e allowed in setuid scripts‘ message actually changed wording
earlier, in commit ae3f3efde.

11 years agoperldiag: typo
Father Chrysostomos [Mon, 14 Feb 2011 23:16:19 +0000 (15:16 -0800)]
perldiag: typo

11 years agoperldiag: reflow some entries for 80 cols.
Father Chrysostomos [Mon, 14 Feb 2011 23:14:21 +0000 (15:14 -0800)]
perldiag: reflow some entries for 80 cols.

11 years agoperldiag: more sorting
Father Chrysostomos [Mon, 14 Feb 2011 23:06:45 +0000 (15:06 -0800)]
perldiag: more sorting

This requires a description to be repeated.

11 years agoperldiag: rewording
Father Chrysostomos [Mon, 14 Feb 2011 23:02:28 +0000 (15:02 -0800)]
perldiag: rewording

‘Either’ is not usually used for contrast.

11 years agoDelete perldiag/Use of "package" with no arguments
Father Chrysostomos [Mon, 14 Feb 2011 22:58:47 +0000 (14:58 -0800)]
Delete perldiag/Use of "package" with no arguments

Use of package without arguments is so deprecated that this message
does not even show up any more.

11 years agoperldiag: more sorting
Father Chrysostomos [Mon, 14 Feb 2011 22:58:31 +0000 (14:58 -0800)]
perldiag: more sorting

11 years agoperldiag: reflow ‘Use of inherited AUTOLOAD’
Father Chrysostomos [Mon, 14 Feb 2011 22:55:13 +0000 (14:55 -0800)]
perldiag: reflow ‘Use of inherited AUTOLOAD’ does not like POD formatting directives spanning
multiple lines.

11 years agoperldiag: more sorting
Father Chrysostomos [Mon, 14 Feb 2011 22:49:16 +0000 (14:49 -0800)]
perldiag: more sorting

11 years agoperldiag: Fix some weird errors
Father Chrysostomos [Mon, 14 Feb 2011 22:40:52 +0000 (14:40 -0800)]
perldiag: Fix some weird errors

The word ‘first’ was separated from the rest of the sentence by commit

Just loading a module is enough to load it. It does not also need to
be imported.

Plus reflow.

11 years agoperldiag: Expand the ‘Unknown switch condition’ description
Father Chrysostomos [Mon, 14 Feb 2011 22:33:43 +0000 (14:33 -0800)]
perldiag: Expand the ‘Unknown switch condition’ description

Actually, I’m abbreviating much of the existing text, but there are so
many possible conditions now it seems like a good idea.

11 years agoperlre: Clarify (?(...)|)
Father Chrysostomos [Mon, 14 Feb 2011 22:19:58 +0000 (14:19 -0800)]
perlre: Clarify (?(...)|)

• Mention look-around assertions in the list
• It’s the code block’s return value, not the block itself
  that is used

11 years agoperldiag: more sorting
Father Chrysostomos [Mon, 14 Feb 2011 21:23:33 +0000 (13:23 -0800)]
perldiag: more sorting

11 years agoAdd dist.ini as an IGNORABLE to
Chris 'BinGOs' Williams [Mon, 14 Feb 2011 23:29:07 +0000 (23:29 +0000)]
Add dist.ini as an IGNORABLE to

11 years agoPorting/release_managers_guide.pod: make bump-perl-version example runnable
Ævar Arnfjörð Bjarmason [Mon, 14 Feb 2011 23:13:34 +0000 (23:13 +0000)]
Porting/release_managers_guide.pod: make bump-perl-version example runnable

Porting/bump-perl-version isn't executable so this example didn't work
as-is. Make it use `./perl -Ilib ..` like the other examples instead.

11 years agoSubject: optimize matching -g still enables -DDEBUGING
H.Merijn Brand [Mon, 14 Feb 2011 22:01:37 +0000 (23:01 +0100)]
Subject: optimize matching -g still enables -DDEBUGING
From: Nicholas Clark <>
Date: Mon, 14 Feb 2011 16:01:49 +0000
Message-ID: <>

INSTALL says this:

    =item -DEBUGGING=-g

    =item -Doptimize=-g

    Adds -g to optimize, but does not set -DDEBUGGING.

    (Note:  Your system may actually require something like cc -g2.
    Check your man pages for cc(1) and also any hint file for your system.)

However, we *aren't* compliant with our documentation, as currently
-Doptimize=-g (or anything containing -g) still causes -DDEBUGGING to be
added to the C flags.

Signed-off-by: H.Merijn Brand <>
11 years agoPorting/git-deltatool: add `--mode summary --type blocking` example
Ævar Arnfjörð Bjarmason [Mon, 14 Feb 2011 21:45:59 +0000 (21:45 +0000)]
Porting/git-deltatool: add `--mode summary --type blocking` example

Add an example of `git-deltatool --mode summary --type blocking`
usage. It's what you use for getting the list of commits that you
marked as needing help with.

11 years agoPorting/git-deltatool: s/summarize/summary/ in documentation
Ævar Arnfjörð Bjarmason [Mon, 14 Feb 2011 21:43:58 +0000 (21:43 +0000)]
Porting/git-deltatool: s/summarize/summary/ in documentation

Change the "summarize" misrefences to the "summary" option to

11 years agoFix symbol table associations in VMS::DCLsym
Charles Bailey [Sun, 13 Feb 2011 18:16:56 +0000 (13:16 -0500)]
Fix symbol table associations in VMS::DCLsym

11 years agoDecrease (unbump?)’s version
Father Chrysostomos [Mon, 14 Feb 2011 17:59:50 +0000 (09:59 -0800)]
Decrease (unbump?)’s version

b4ab316d increased it unnecessarily, as it had already been increased
since 5.13.9 (by ffedb8c).

11 years agoperldiag: add OK to %s syntax
Father Chrysostomos [Mon, 14 Feb 2011 17:59:11 +0000 (09:59 -0800)]
perldiag: add OK to %s syntax

11 years agoperldiag: reflow for 80 cols.
Father Chrysostomos [Mon, 14 Feb 2011 17:54:25 +0000 (09:54 -0800)]
perldiag: reflow for 80 cols.

11 years agoperldiag: typo
Father Chrysostomos [Mon, 14 Feb 2011 17:52:24 +0000 (09:52 -0800)]
perldiag: typo

11 years agoexporting a static function doesnt work
Karl Williamson [Mon, 14 Feb 2011 17:51:30 +0000 (10:51 -0700)]
exporting a static function doesnt work

11 years agoIn, on Win32 avoid calling getcwd() twice in quick succession.
Nicholas Clark [Mon, 14 Feb 2011 09:41:32 +0000 (09:41 +0000)]
In, on Win32 avoid calling getcwd() twice in quick succession.

11 years agofold_grind.t: Test multi-char folds
Karl Williamson [Mon, 14 Feb 2011 15:44:12 +0000 (08:44 -0700)]
fold_grind.t: Test multi-char folds

11 years agoAdd /aa regex modifier
Karl Williamson [Mon, 14 Feb 2011 15:12:10 +0000 (08:12 -0700)]
Add /aa regex modifier

Tests for \N{} with this option will be added later.

11 years agofold_grind.t: Fix comments
Karl Williamson [Mon, 14 Feb 2011 15:08:48 +0000 (08:08 -0700)]
fold_grind.t: Fix comments

11 years agofold_grind.t: use common subroutine
Karl Williamson [Mon, 14 Feb 2011 04:02:02 +0000 (21:02 -0700)]
fold_grind.t: use common subroutine

11 years agofold_grind.t: comment fixes
Karl Williamson [Mon, 14 Feb 2011 03:56:42 +0000 (20:56 -0700)]
fold_grind.t: comment fixes

11 years agofold_grind.t: white space only
Karl Williamson [Mon, 14 Feb 2011 03:53:36 +0000 (20:53 -0700)]
fold_grind.t: white space only

11 years agoregexec.c: Handle sharp s in middle of backref
Karl Williamson [Sun, 13 Feb 2011 03:28:17 +0000 (20:28 -0700)]
regexec.c: Handle sharp s in middle of backref

This code handled some of the case of the LATIN SMALL LETTER SHARP S at
the beginning of a back ref, but not in the middle.  To do it easily,
just call the function that handles our full Unicode folding

11 years agoregexec.c: Remove no longer used code
Karl Williamson [Sun, 13 Feb 2011 03:26:08 +0000 (20:26 -0700)]
regexec.c: Remove no longer used code

A recent commit #ifdef'd this out

11 years agoregexec.c: Convert to foldEQ_utf8_flags()
Karl Williamson [Sun, 13 Feb 2011 03:11:45 +0000 (20:11 -0700)]
regexec.c: Convert to foldEQ_utf8_flags()

11 years agoregexec.c: Rmv unused macro
Karl Williamson [Sun, 13 Feb 2011 03:01:26 +0000 (20:01 -0700)]
regexec.c: Rmv unused macro

A recent commit stopped calling this

11 years agochange comment
Karl Williamson [Sun, 13 Feb 2011 03:00:51 +0000 (20:00 -0700)]
change comment

11 years agoregexec.c: refactor find-by-class EXACTish code
Karl Williamson [Sun, 13 Feb 2011 02:23:34 +0000 (19:23 -0700)]
regexec.c: refactor find-by-class EXACTish code

This code is way out-of-date, using upper and lower case instead of fold-case.

11 years agofoldEQ_utf8_flags: Add no-mixing ASCII option
Karl Williamson [Thu, 10 Feb 2011 04:41:34 +0000 (21:41 -0700)]
foldEQ_utf8_flags: Add no-mixing ASCII option

If this option is set, any match that has a non-ASCII character that has
an ASCII character in its fold will not match that fold.

11 years Add /aa support
Karl Williamson [Fri, 11 Feb 2011 17:22:53 +0000 (10:22 -0700)] Add /aa support

11 years Forbid things like /dd, /uu
Karl Williamson [Fri, 11 Feb 2011 16:46:29 +0000 (09:46 -0700)] Forbid things like /dd, /uu

This is so they can perhaps be used in the future by Perl.

The test file is refactored to test these more comprehensively, adding tests
for the recently added /a.

11 years agofoldEQ_utf8: Add version with flags parameter
Karl Williamson [Thu, 10 Feb 2011 04:30:13 +0000 (21:30 -0700)]
foldEQ_utf8: Add version with flags parameter

The parameter doesn't do anything yet.  The old version becomes a macro
calling the new version with 0 as the flags.

11 years agoregcomp.sym: Add nodes for backref of EXACTFA
Karl Williamson [Wed, 9 Feb 2011 23:47:32 +0000 (16:47 -0700)]
regcomp.sym: Add nodes for backref of EXACTFA

These are not used yet.

11 years agoregcomp.sym: Add regnode for /aa matching
Karl Williamson [Thu, 3 Feb 2011 15:37:43 +0000 (08:37 -0700)]
regcomp.sym: Add regnode for /aa matching

It is not used yet.

11 years agoregexec.c: Fix comment
Karl Williamson [Sat, 5 Feb 2011 17:48:15 +0000 (10:48 -0700)]
regexec.c: Fix comment

11 years agoregexec.c: Rmv wrong comment
Karl Williamson [Thu, 3 Feb 2011 15:31:20 +0000 (08:31 -0700)]
regexec.c: Rmv wrong comment

11 years agoInitial setup to accommodate /aa regex modifier
Karl Williamson [Thu, 3 Feb 2011 00:48:56 +0000 (17:48 -0700)]
Initial setup to accommodate /aa regex modifier

This changes the bits to add a new charset type for /aa, and other bookkeeping
for it.

11 years agoregcomp.c: Add cast.
Karl Williamson [Thu, 10 Feb 2011 01:27:39 +0000 (18:27 -0700)]
regcomp.c: Add cast.

I found this through gdb.  Sign extension was happening.

11 years agoregcomp.c: Handle more cases of tricky fold chars
Karl Williamson [Wed, 9 Feb 2011 17:56:59 +0000 (10:56 -0700)]
regcomp.c: Handle more cases of tricky fold chars

Certain characters are not placed in EXACTish nodes because of problems
mostly with the optimizer.  However, not all notations that generated
those characters were caught.  This catches all but those in \N{}
constructs; which is coming later.

This does not use FOLDCHAR, which doesn't know the difference between
/d and /u; instead it uses ANYOFV, which does handle those cases already,
at the expense of larger (in storage) regexes for these few characters.
If this were deemed a problem, there would be some work involved in
adding FOLDCHARU, and fixing the code where it doesn't work properly now.

11 years agoregex: Add comments
Karl Williamson [Wed, 9 Feb 2011 17:37:17 +0000 (10:37 -0700)]
regex: Add comments

11 years agoregexec.c: Give context for ANYOFV call
Karl Williamson [Wed, 9 Feb 2011 17:34:02 +0000 (10:34 -0700)]
regexec.c: Give context for ANYOFV call

This converts one case where ANYOFV is now usable to allow it to match
more than one character.

11 years agoregexec.c: Give context for ANYOFV call
Karl Williamson [Wed, 9 Feb 2011 17:07:47 +0000 (10:07 -0700)]
regexec.c: Give context for ANYOFV call

This converts one case where ANYOFV is now usable to allow it to match
more than one character.

11 years agoregcomp.c: Add comment
Karl Williamson [Wed, 9 Feb 2011 16:44:10 +0000 (09:44 -0700)]
regcomp.c: Add comment

11 years agoregcomp.c: simplify conditional
Karl Williamson [Mon, 7 Feb 2011 18:28:11 +0000 (11:28 -0700)]
regcomp.c: simplify conditional

A previous commit removed some things, so this block can be rearranged

11 years agoAdd comments
Karl Williamson [Mon, 7 Feb 2011 18:27:49 +0000 (11:27 -0700)]
Add comments

11 years agoregexec.c: Remove folding now done in regcomp
Karl Williamson [Sat, 5 Feb 2011 17:50:37 +0000 (10:50 -0700)]
regexec.c: Remove folding now done in regcomp

11 years agoregcomp.c: Remove special handling for U+00DF
Karl Williamson [Mon, 7 Feb 2011 18:14:50 +0000 (11:14 -0700)]
regcomp.c: Remove special handling for U+00DF

The code elsewhere is now better equipped to handle this.

11 years agoregcomp.c: tell regexec more about multi-char folds
Karl Williamson [Mon, 7 Feb 2011 18:11:16 +0000 (11:11 -0700)]
regcomp.c: tell regexec more about multi-char folds

A multi-char fold that matches in the Latin1 range needs to have that
fact communicated to regexec.

11 years agoregcomp.c: Synthetic start class should include ord >255 folds
Karl Williamson [Mon, 7 Feb 2011 04:48:55 +0000 (21:48 -0700)]
regcomp.c: Synthetic start class should include ord >255 folds

Some characters above 255 fold to the < 256 range.  These need to be in
the synthetic start class so the optimizer won't reject them.

This is temporary code which creates false positives, to be
replaced by more precise matching later.

11 years agoRevert "l1_char_class_tab.h: Remove multi-char fold targets"
Karl Williamson [Mon, 7 Feb 2011 04:22:32 +0000 (21:22 -0700)]
Revert "l1_char_class_tab.h: Remove multi-char fold targets"

This reverts commit 88c8c9616516015e2fe0b502cdb92dc4efcc0c10.

It turns out that these multi-char fold targets are now needed;
In a future commit, I plan to compile in the dozen or so rules that
are needed to avoid a Latin1-only regex from having to go out to the
utf8 tables to avoid the performance penalty; or calling code can use
the also forthcoming 'use re "/aa"'.

11 years agoregcomp.c: Be more precise about ANYOF matching flag
Karl Williamson [Sun, 6 Feb 2011 03:04:54 +0000 (20:04 -0700)]
regcomp.c: Be more precise about ANYOF matching flag

There are two flags for matching outside the ANYOF bitmap.  Instead of
setting both, set the corresponding one.