This is a live mirror of the Perl 5 development currently hosted at
10 years agoperldelta: Rmv git relict line
Karl Williamson [Mon, 23 Jan 2012 14:44:38 +0000 (07:44 -0700)]
perldelta: Rmv git relict line

This line was a result of clearing a rebasing conflict, and I failed to
remove it.

10 years agosv_force_normal: Don’t confuse regexps with cows
Father Chrysostomos [Mon, 23 Jan 2012 06:39:47 +0000 (22:39 -0800)]
sv_force_normal: Don’t confuse regexps with cows

Otherwise we get assertion failures and possibly corrupt
string tables.

10 years Remove fallacious comment
Father Chrysostomos [Mon, 23 Jan 2012 06:20:36 +0000 (22:20 -0800)] Remove fallacious comment

10 years agoIncrease $English::VERSION to 1.05
Father Chrysostomos [Mon, 23 Jan 2012 06:20:00 +0000 (22:20 -0800)]
Increase $English::VERSION to 1.05

10 years ago[perl #108794] Call special blocks in void context
Father Chrysostomos [Sun, 22 Jan 2012 23:59:16 +0000 (15:59 -0800)]
[perl #108794] Call special blocks in void context

Now BEGIN blocks, etc., are called in void context, so the result of
evaluating the last statement is not wastefully copied.

10 years ago[ #72767] Don’t propagate warnings into do-file
Father Chrysostomos [Sun, 22 Jan 2012 22:07:04 +0000 (14:07 -0800)]
[ #72767] Don’t propagate warnings into do-file

I completely forgot about do-file when, in commit f45b078d2, I stopped
eval from localising hints at run time.  The result was that warning
hints were propagating into do-file.

10 years agoRegen known_pod_issues.dat
Chris 'BinGOs' Williams [Sun, 22 Jan 2012 21:43:23 +0000 (21:43 +0000)]
Regen known_pod_issues.dat

10 years agoUpdate Pod-Parser to CPAN version 1.50
Chris 'BinGOs' Williams [Sun, 22 Jan 2012 20:07:04 +0000 (20:07 +0000)]
Update Pod-Parser to CPAN version 1.50


  16-Jan-2011           Marek Rouchal                        <>
  Version 1.50
  + fix whitespace (esp. CR [\r] related) issues with different Perl versions
    on Windows (with Perl 5.8.8 [Activestate], and 5.6.1 [SUA])
  + merge latest core (5.14.x) changes to this distro
  + CPAN#73446: fix minor POD error in
  + CPAN#43955: podchecker fails to detect superfluous =cut directive:
    implemented (and extended by a check for superfluous =pod commands) and
    documented in Pod::Checker; also added a note in the POD of all modules
    that they are part of the Pod::Parser distribution
  + CPAN#46695: use consistent version (1.50) for distribution and all Pod::
    modules in this distro (except for Pod::PlainText, which stays at 2.05)
  + CPAN#52086: mismatch between distro and module version:
    same as above
  + CPAN#55121: correction for Pod::Find and t/pod/find.t on VMS
  + CPAN#47473: podchecker on L<> url with alt text
    ... causes an error in Pod::Checker now
  + CPAN#57954: Pod::Usage does not find perldoc when perl is relocatable
    ... use $Config{scriptdirexp} instead of scriptdir
  + CPAN#61223: podchecker notice missing blank line before command
    implemented with more tests in poderrs.t and self test of all *.pms
  + CPAN#66614: parse of no final newline vs perl -w
    ... a rare case, but fixed nevertheless
  + CPAN#68157: Pod-Parser-1.38/lib/Pod/ question/bug
    ... pass through formatting options to Pod::Text
  + CPAN#70771: mishandles symbolic links in @INC
    ... fixed by making the paths in @INC absolute, using Cwd::abs_path()
  + CPAN#71139: 3 possible optimisations
    ... applied
  + several other tickets processed and closed

10 years agoSync Module-CoreList version in
Chris 'BinGOs' Williams [Sun, 22 Jan 2012 19:40:58 +0000 (19:40 +0000)]
Sync Module-CoreList version in

10 years agoperllocale: Correct various Perl version references
Karl Williamson [Sat, 21 Jan 2012 16:29:01 +0000 (09:29 -0700)]
perllocale: Correct various Perl version references

Spotted by Nicholas Clark

10 years agolocale.t: White-space, comment only
Karl Williamson [Wed, 18 Jan 2012 19:28:21 +0000 (12:28 -0700)]
locale.t: White-space, comment only

This tidies up the white space to reflect a previous commit which added
and subtracted blocks, and reflows to fit in an 80 column window,
removes trailing white space, and rewords a comment.


10 years agoAdd :not_characters parameter to 'use locale'
Karl Williamson [Wed, 18 Jan 2012 16:35:52 +0000 (09:35 -0700)]
Add :not_characters parameter to 'use locale'

This adds the parameter handling, tests, and documentation for this new
feature which allows locale and Unicode to play well with each other.

10 years agolocale.t: Don't bother testing locales with malformed names
Karl Williamson [Wed, 18 Jan 2012 18:26:24 +0000 (11:26 -0700)]
locale.t: Don't bother testing locales with malformed names

Instead, just fail those.

10 years agolocale.t: remove unused debug stuff
Karl Williamson [Wed, 18 Jan 2012 18:18:57 +0000 (11:18 -0700)]
locale.t: remove unused debug stuff

10 years agoperluniintro: Shorten too-long verbatim lines
Karl Williamson [Wed, 18 Jan 2012 17:57:44 +0000 (10:57 -0700)]
perluniintro: Shorten too-long verbatim lines

10 years agoperllocale: Remove trailing blanks
Karl Williamson [Wed, 18 Jan 2012 17:38:53 +0000 (10:38 -0700)]
perllocale: Remove trailing blanks

10 years Pod tweaks
Karl Williamson [Wed, 18 Jan 2012 16:35:07 +0000 (09:35 -0700)] Pod tweaks

10 years agoregexp.h: Update comment
Karl Williamson [Mon, 16 Jan 2012 22:21:38 +0000 (15:21 -0700)]
regexp.h: Update comment

10 years agoperllocale: Add caveat on UTF-8 locales
Karl Williamson [Mon, 16 Jan 2012 22:18:05 +0000 (15:18 -0700)]
perllocale: Add caveat on UTF-8 locales

It turns out that the C library may not handle UTF-8 locales properly,
and the docs should mention that instead of blindly encouraging their

10 years agoop.c: Call macro instead of using explicit bit
Karl Williamson [Mon, 16 Jan 2012 22:13:11 +0000 (15:13 -0700)]
op.c: Call macro instead of using explicit bit

The macro hides the bit name.

10 years agolocale.t: In-line function to its only call
Karl Williamson [Mon, 16 Jan 2012 20:55:09 +0000 (13:55 -0700)]
locale.t: In-line function to its only call

This will be needed in future commits

10 years agolocale.t: White-space, comment-only changes
Karl Williamson [Mon, 16 Jan 2012 20:54:25 +0000 (13:54 -0700)]
locale.t: White-space, comment-only changes

To catch up with previous changes.

10 years agolocale.t: Add names for some tests
Karl Williamson [Mon, 16 Jan 2012 20:32:03 +0000 (13:32 -0700)]
locale.t: Add names for some tests

10 years agolocale.t: Don't use hard-coded test numbers
Karl Williamson [Mon, 16 Jan 2012 20:14:11 +0000 (13:14 -0700)]
locale.t: Don't use hard-coded test numbers

This was rather painful to convert the hard-coded numbers into
calculated ones so that tests could be added and subtracted.  The debug
statements were moved to after the last test they described so the test
numbers would be calculated, and a new hash created to deal with
skipping tests and not knowing how many are skipped; otherwise the
current test number is kept track of and incremented as needed.

10 years agolocalet.t: Change variable name
Karl Williamson [Mon, 16 Jan 2012 19:53:35 +0000 (12:53 -0700)]
localet.t: Change variable name

to avoid the ambiguity of 'last'

10 years agolocale.t: croak isn't loaded
Karl Williamson [Mon, 16 Jan 2012 19:51:13 +0000 (12:51 -0700)]
locale.t: croak isn't loaded

so use die instead

10 years agolocale.t: Revise tests
Karl Williamson [Mon, 16 Jan 2012 19:40:17 +0000 (12:40 -0700)]
locale.t: Revise tests

As indicated in the comment, the earlier incarnation of this commented
out "no locale" thus defeating the purpose of the tests.

10 years agolocale.t: Comments, white-space only
Karl Williamson [Mon, 16 Jan 2012 00:30:55 +0000 (17:30 -0700)]
locale.t: Comments, white-space only

10 years agolocale.t: Remove unset variables.
Karl Williamson [Mon, 16 Jan 2012 00:16:53 +0000 (17:16 -0700)]
locale.t: Remove unset variables.

These were currently useless.

10 years agolocale.t: Calculate locale values AFTER setting the locale
Karl Williamson [Mon, 16 Jan 2012 00:12:47 +0000 (17:12 -0700)]
locale.t: Calculate locale values AFTER setting the locale

This test was using the previous loop iteration's locale's values, since
it did the set after calculating them.

10 years agolocale.t: Don't test a locale twice
Karl Williamson [Mon, 16 Jan 2012 00:10:35 +0000 (17:10 -0700)]
locale.t: Don't test a locale twice

Don't add it to the list if already there.

10 years agolocale.t: Remove hard-coded test number
Karl Williamson [Sun, 15 Jan 2012 18:21:25 +0000 (11:21 -0700)]
locale.t: Remove hard-coded test number

The subroutine with the hard-coded value used to forward reference the
number of tests is no longer needed, as this and previous commits move
the place where the number is needed to afterwards.

10 years agolocale.t: Move test plan to end
Karl Williamson [Sun, 15 Jan 2012 18:16:57 +0000 (11:16 -0700)]
locale.t: Move test plan to end

The current code goes through a lot of machinations to know
at the beginning.  Nowadays, one can simply calculate this as we go
along and print it out at the end.  If the test fails in the middle, the
lack of a plan will be marked as a failure.

10 years agolocale.t: Remove test numbers from calls
Karl Williamson [Sun, 15 Jan 2012 17:53:42 +0000 (10:53 -0700)]
locale.t: Remove test numbers from calls

This continues the process of converting this .t to not have hard-coded
test numbers, making it easier to add/remove tests.

10 years agolocale.t: Start removing hard-coded test numbers
Karl Williamson [Sun, 15 Jan 2012 17:40:43 +0000 (10:40 -0700)]
locale.t: Start removing hard-coded test numbers

This .t uses it's own TAP output.  I presume to avoid any issues with
tainting.  This commit starts the process of making it easier to add
tests by having the ok() routine keep track of test numbers.

10 years agoRestore triple-dot directory spec tests in vms/ext/filespec.t.
Craig A. Berry [Sat, 21 Jan 2012 03:29:08 +0000 (21:29 -0600)]
Restore triple-dot directory spec tests in vms/ext/filespec.t.

1fe570cc5e24eecfb07059e53e95fa864bb44142 declared directory
components containing '...' as either 'not translatable' or created
the expectation that each dot should be individually escaped when
translating between Unix and VMS directory specs.  That doesn't
really make sense since in both formats it means any number of
intervening directories, plus there was already code of long
standing that handles it.  So get the tests in this regard back
in line with reality.

10 years agoStart rationalizing Unix-to-VMS file spec conversion code.
Craig A. Berry [Sat, 21 Jan 2012 00:04:20 +0000 (18:04 -0600)]
Start rationalizing Unix-to-VMS file spec conversion code.

Back in 360732b5267d5dfef32b932bf13ceebc6683df74, we started using
an experimental new conversion routine that had been designed for
a CRTL feature called POSIX-compliant pathnames but at this point
was added as a jumping-off place halfway through the existing code
for converting Unix-format file specifications to VMS format. But
only for newer versions of VMS and only when a different and
unrelated feature called Extended Filename Syntax (EFS) had been

But this newer implementation (somewhat inauspiciously named
posix_to_vmsspec_hardway) is less complete and more buggy than the
older implementation, and it imposes expectations that have nothing
to do with EFS, not to mention making for a larger, version-
specific support matrix.

So for now go back to the older, better-tested (though imperfect)
version and simplify the differences made by invoking EFS.  None
of this makes any difference at all unless non-default CRTL
features have been enabled.

10 years agoVMS-specific symlink tweak for stat.t
Craig A. Berry [Fri, 20 Jan 2012 23:19:43 +0000 (17:19 -0600)]
VMS-specific symlink tweak for stat.t

If the target of a symlink has a version number in the symlink,
that makes the symlink implementation unable to locate it, so
trim off the version.

10 years ago[perl #82772] utf8::decode: Don’t read past SvCUR
Father Chrysostomos [Fri, 20 Jan 2012 21:29:38 +0000 (13:29 -0800)]
[perl #82772] utf8::decode: Don’t read past SvCUR

10 years agoWarn for stat(*unopened) after statting file
Father Chrysostomos [Fri, 20 Jan 2012 21:12:14 +0000 (13:12 -0800)]
Warn for stat(*unopened) after statting file

Statting an existing file used to prevent a subsequent stat(*unopened)
from warning if the GV happened to have no IO.  If the GV *did* have
an IO, but an unopened one, it *would* warn.

This inconsistency was introduced in 5.10.0 with commit 5228a96c60
(which was also backported to 5.8.9).

10 years agopp_sys.c:pp_stat: Change scope of havefp var
Father Chrysostomos [Fri, 20 Jan 2012 20:59:35 +0000 (12:59 -0800)]
pp_sys.c:pp_stat: Change scope of havefp var

This is only used in the if(gv != PL_defgv) block now.  Also, it was
being used uninitialized for bad iorefs, probably resulting in random warning suppression (untested).

10 years ago[perl #71002] stat() on unopened fh _
Father Chrysostomos [Fri, 20 Jan 2012 20:55:17 +0000 (12:55 -0800)]
[perl #71002] stat() on unopened fh _

stat _ was producing an erroneous warning about an unopened filehandle
with _.  But _ isn’t a real filehandle and is special-cased, so it
shouldn’t warn.

See also commit 8080e3c8.

10 years Make sure SWASHNEW is properly loaded
Karl Williamson [Fri, 20 Jan 2012 21:55:43 +0000 (14:55 -0700)] Make sure SWASHNEW is properly loaded

This module was depending on testing code points in the upper Latin1
range causing  However a recent performance improvement
caused those code points to skip the loading.  This just changes the
code points to two higher values that cause it to load, and until and if
it changes again, will fix things.

10 years agoCreate a perldelta for 5.15.8
Chris 'BinGOs' Williams [Fri, 20 Jan 2012 21:26:09 +0000 (21:26 +0000)]
Create a perldelta for 5.15.8

10 years agobegin filling the 5.16.0 delta from 5.15.2
Ricardo Signes [Fri, 20 Jan 2012 15:52:22 +0000 (10:52 -0500)]
begin filling the 5.16.0 delta from 5.15.2

This is largely a copy and paste job.  Once I copy and paste most
things in, I will then start condensing them.

This does *not* include the following sections from perl5152delta:

* module updates
* configuration and compilation changes
* internals changes

10 years agobegin filling the 5.16.0 delta from 5.15.1
Ricardo Signes [Fri, 20 Jan 2012 15:47:53 +0000 (10:47 -0500)]
begin filling the 5.16.0 delta from 5.15.1

This is largely a copy and paste job.  Once I copy and paste
most things in, I will then start condensing them.

This does *not* include the following sections from perl5151delta:

* module updates
* configuration and compilation changes
* internals changes

10 years agobegin filling the 5.16.0 delta from 5.15.0
Ricardo Signes [Fri, 20 Jan 2012 15:38:38 +0000 (10:38 -0500)]
begin filling the 5.16.0 delta from 5.15.0

This is largely a copy and paste job.  Once I copy and paste most
things in, I will then start condensing them.

This does *not* include the following sections from perl5150delta:

* module updates
* configuration and compilation changes
* internals changes

10 years agoAdd v5.15.7 epigraph to the epigraphs file
Chris 'BinGOs' Williams [Fri, 20 Jan 2012 20:32:47 +0000 (20:32 +0000)]
Add v5.15.7 epigraph to the epigraphs file

10 years agoMerge branch 'bingos/release-5.15.7' into blead
Chris 'BinGOs' Williams [Fri, 20 Jan 2012 20:02:55 +0000 (20:02 +0000)]
Merge branch 'bingos/release-5.15.7' into blead

10 years agoCopyright update for ExtUtils::{ParseXS,Typemaps}
Steffen Mueller [Fri, 20 Jan 2012 19:10:35 +0000 (20:10 +0100)]
Copyright update for ExtUtils::{ParseXS,Typemaps}

Also removes a few lines of dead code

10 years agoFix parse problem with embedded typemaps
Steffen Mueller [Fri, 20 Jan 2012 19:08:55 +0000 (20:08 +0100)]
Fix parse problem with embedded typemaps

If an embedded typemap was found in certain locations, we got spurious
parse failures. Mea culpa.

10 years ago5.14.0 has been released, so update the versions used for support examples.
Nicholas Clark [Fri, 20 Jan 2012 16:40:41 +0000 (17:40 +0100)]
5.14.0 has been released, so update the versions used for support examples.

Also state explicitly that 5.10.1 and earlier are now out of support.

10 years agoUpdate perlhist (also removing some annoying trailing whitespace) v5.15.7
Chris 'BinGOs' Williams [Fri, 20 Jan 2012 14:44:30 +0000 (14:44 +0000)]
Update perlhist (also removing some annoying trailing whitespace)

10 years agoFinalise perldelta
Chris 'BinGOs' Williams [Fri, 20 Jan 2012 14:42:18 +0000 (14:42 +0000)]
Finalise perldelta

10 years agoUpdate Module::CoreList for v5.15.7
Chris 'BinGOs' Williams [Fri, 20 Jan 2012 14:40:12 +0000 (14:40 +0000)]
Update Module::CoreList for v5.15.7

10 years agoBump the perl version in various places for v5.15.7
Chris 'BinGOs' Williams [Fri, 20 Jan 2012 12:57:49 +0000 (12:57 +0000)]
Bump the perl version in various places for v5.15.7

10 years agoRemoved more boilerplating from perldelta
Chris 'BinGOs' Williams [Fri, 20 Jan 2012 12:46:10 +0000 (12:46 +0000)]
Removed more boilerplating from perldelta

10 years agoUpdate Acknowledgements in perldelta
Chris 'BinGOs' Williams [Fri, 20 Jan 2012 11:04:47 +0000 (11:04 +0000)]
Update Acknowledgements in perldelta

10 years agoBetter typemap error reporting
Steffen Mueller [Fri, 20 Jan 2012 07:22:01 +0000 (08:22 +0100)]
Better typemap error reporting

If we couldn't find a typemap for a given C type, this now gives a list
of available, mapped C types.

10 years agoEU::Typemaps: Make oneliner in docs more portable
Steffen Mueller [Fri, 20 Jan 2012 07:16:56 +0000 (08:16 +0100)]
EU::Typemaps: Make oneliner in docs more portable

Hopefully, anyway, by using double quotes (win32) and Perl's q quoting
construct inside.

10 years agoBump ExtUtils::ParseXS version for doc references
Steffen Mueller [Fri, 20 Jan 2012 07:05:30 +0000 (08:05 +0100)]
Bump ExtUtils::ParseXS version for doc references

10 years agoperldelta: Expand entry
Father Chrysostomos [Fri, 20 Jan 2012 07:18:54 +0000 (23:18 -0800)]
perldelta: Expand entry

A single fix ended up fixing two bugs, so explain them both.

10 years agoperldelta: another bug number
Father Chrysostomos [Fri, 20 Jan 2012 07:02:05 +0000 (23:02 -0800)]
perldelta: another bug number

10 years agoperldelta: typo
Father Chrysostomos [Fri, 20 Jan 2012 06:44:06 +0000 (22:44 -0800)]
perldelta: typo

10 years agoperldelta for PerlIO::scalar and nulls
Father Chrysostomos [Fri, 20 Jan 2012 06:43:16 +0000 (22:43 -0800)]
perldelta for PerlIO::scalar and nulls

10 years agoAdd Bo Lindbergh to perldelta acknowledgements
Father Chrysostomos [Fri, 20 Jan 2012 02:30:23 +0000 (18:30 -0800)]
Add Bo Lindbergh to perldelta acknowledgements

10 years Another address for Bo Lindbergh
Father Chrysostomos [Fri, 20 Jan 2012 02:29:36 +0000 (18:29 -0800)] Another address for Bo Lindbergh

10 years agopp_sys.c: compiler warning
Father Chrysostomos [Fri, 20 Jan 2012 02:27:19 +0000 (18:27 -0800)]
pp_sys.c: compiler warning

10 years agoPerlIO::scalar: tests for trailing null
Father Chrysostomos [Fri, 20 Jan 2012 02:25:53 +0000 (18:25 -0800)]
PerlIO::scalar: tests for trailing null

using Eric Brine’s function.

10 years ago(PerlIO::)scalar.t: Add function for testing trailing null
Eric Brine [Fri, 20 Jan 2012 02:19:16 +0000 (18:19 -0800)]
(PerlIO::)scalar.t: Add function for testing trailing null

10 years ago[perl #108398] Make PerlIO::scalar add null terminator
Bo Lindbergh [Fri, 20 Jan 2012 02:15:05 +0000 (18:15 -0800)]
[perl #108398] Make PerlIO::scalar add null terminator

10 years agoperlunicode: Clarifications
Karl Williamson [Fri, 20 Jan 2012 03:09:31 +0000 (20:09 -0700)]
perlunicode: Clarifications

10 years spaces after dots
Father Chrysostomos [Fri, 20 Jan 2012 01:25:27 +0000 (17:25 -0800)] spaces after dots

10 years wording tweaks
Father Chrysostomos [Fri, 20 Jan 2012 01:19:30 +0000 (17:19 -0800)] wording tweaks

10 years agoAdd Reini Urban to perldelta acknowledgements
Father Chrysostomos [Fri, 20 Jan 2012 01:16:35 +0000 (17:16 -0800)]
Add Reini Urban to perldelta acknowledgements

10 years agoregen pod issues
Father Chrysostomos [Fri, 20 Jan 2012 01:07:57 +0000 (17:07 -0800)]
regen pod issues

10 years agoMake B’s pod fit in 79 cols
Father Chrysostomos [Fri, 20 Jan 2012 01:07:37 +0000 (17:07 -0800)]
Make B’s pod fit in 79 cols

10 years agoDocument B::PV’s LEN and CUR methods
Father Chrysostomos [Fri, 20 Jan 2012 01:05:58 +0000 (17:05 -0800)]
Document B::PV’s LEN and CUR methods

10 years agoIncrease $B::VERSION to 1.32
Father Chrysostomos [Fri, 20 Jan 2012 00:58:52 +0000 (16:58 -0800)]
Increase $B::VERSION to 1.32

10 years fix and add B::IO documentation
Reini Urban [Thu, 19 Jan 2012 17:27:19 +0000 (11:27 -0600)] fix and add B::IO documentation

add pod to B::IO Methods and IoTYPE.
fix IsSTD.

10 years agoperldelta: Add ticket number to bug fix
Karl Williamson [Thu, 19 Jan 2012 22:40:52 +0000 (15:40 -0700)]
perldelta: Add ticket number to bug fix

10 years agoUpdate perlfaq to CPAN version 5.0150038
Chris 'BinGOs' Williams [Thu, 19 Jan 2012 21:21:06 +0000 (21:21 +0000)]
Update perlfaq to CPAN version 5.0150038


  5.0150038 Thu 19 Jan 2012 21:10:06 +0100
    * Marpa::XS updated (Jeffrey Kegler)
    * Frameworks (wchristian, ranguard, bigpresh, kraih)
    * Cleanup (wchristian)
    * Users email (apeiron, ranguard)

10 years agoIgnore and clean the byproducts of make install.html
Nicholas Clark [Thu, 19 Jan 2012 20:40:49 +0000 (21:40 +0100)]
Ignore and clean the byproducts of make install.html

The install.html target generates vms/README_vms.pod and files in two
directories, pod/perlfunc/ and pod/perlipc/
Add all three to .gitignore files, and add rules to delete the directories
when cleaning.

10 years agoperldelta: For bb91448 and associated commits
Karl Williamson [Thu, 19 Jan 2012 20:23:31 +0000 (13:23 -0700)]
perldelta: For bb91448 and associated commits

10 years agoAcknowledgements section in perldelta
Chris 'BinGOs' Williams [Thu, 19 Jan 2012 20:14:52 +0000 (20:14 +0000)]
Acknowledgements section in perldelta

10 years agoregcomp.c: Comment changes
Karl Williamson [Thu, 19 Jan 2012 18:28:10 +0000 (11:28 -0700)]
regcomp.c: Comment changes

These were in part based on a review by Hugo van der Sanden (thank you
very much).

10 years agoregcomp.c: Change variable meaning and hence name
Karl Williamson [Thu, 19 Jan 2012 18:20:26 +0000 (11:20 -0700)]
regcomp.c: Change variable meaning and hence name

I think it is clearer to note that what happens here is that the node
can match fewer characters than what it would normally be thought to,
and hence the returned value should be subtracted; it also means that
the absolute value need not be taken

10 years agomktables: Add non-final fold cp table
Karl Williamson [Thu, 19 Jan 2012 15:43:43 +0000 (08:43 -0700)]
mktables: Add non-final fold cp table

This will be useful in regcomp.c in later commits

10 years agoregcomp.c: Remove no-longer used #defines
Karl Williamson [Sun, 1 Jan 2012 18:17:21 +0000 (11:17 -0700)]
regcomp.c: Remove no-longer used #defines

10 years agore/reg_fold.t: Add and revise comments
Karl Williamson [Sun, 25 Dec 2011 21:42:06 +0000 (14:42 -0700)]
re/reg_fold.t: Add and revise comments

10 years agoreg_fold.t: Test bracketed character classes
Karl Williamson [Sun, 25 Dec 2011 21:35:54 +0000 (14:35 -0700)]
reg_fold.t: Test bracketed character classes

These were removed when things were very broken, but now they work,
except for things like

    "\N{LATIN SMALL LIGATURE FFI}" =~ /[a-z]{3}/i

where the multi-char fold crosses single bracketed character class
boundaries.  These will probably never be fixed in Perl in the general
case (using \F and fc() instead), but I expect that

    "\N{LATIN SMALL LIGATURE FFI}" =~ /[f][f][i]/i

will eventually be changed so the brackets are optimized away, and will
work.  Then these TODOs will start passing.

10 years agore/reg_fold.t: Test more code points
Karl Williamson [Sun, 25 Dec 2011 21:32:56 +0000 (14:32 -0700)]
re/reg_fold.t: Test more code points

This statement was wrong that said all these things are tested in
fold_grind.t.  It will test them all when run with a particular option,
but due to time issues, it skips many code points.  reg_fold.t, on the
other hand, does just basic sanity testing, and so should always test
every code point for that.

10 years agore/reg_fold.t: Remove fixed TODOs
Karl Williamson [Sun, 25 Dec 2011 21:30:20 +0000 (14:30 -0700)]
re/reg_fold.t: Remove fixed TODOs

These TODOs have not been tested, mostly, for a while

10 years agore/reg_fold.t: Use /u rules for Unicode tests
Karl Williamson [Sun, 25 Dec 2011 21:24:42 +0000 (14:24 -0700)]
re/reg_fold.t: Use /u rules for Unicode tests

These tests are for Unicode, so should have /u (instead of /d).

10 years agoregcomp.c: Refactor join_exact() to eliminate extra passes
Karl Williamson [Sun, 25 Dec 2011 21:20:42 +0000 (14:20 -0700)]
regcomp.c: Refactor join_exact() to eliminate extra passes

The strings in every EXACTFish node are examined for certain problematic
sequences and code points.  Prior to this patch, this was done in
several passes, but this refactors the routine to do it in a single

10 years agoregcomp.c: Modify some comments
Karl Williamson [Sun, 25 Dec 2011 21:18:55 +0000 (14:18 -0700)]
regcomp.c: Modify some comments

10 years agoregex: Remove FOLDCHAR regnode type
Karl Williamson [Sat, 24 Dec 2011 03:19:27 +0000 (20:19 -0700)]
regex: Remove FOLDCHAR regnode type

This node type hasn't been used since 5.14.0.  Instead an ANYOFV node
was generated where formerly a FOLDCHAR node would have been used.  The
ANYOFV was used because it already existed and was up-to-date, whereas
FOLDCHAR would have needed some bug fixes to adapt it, even though it
would be faster in execution than ANYOFV; so the code for it was
retained in case it was needed.

However, both these solutions were defective, and a previous commit has
changed things to a different type of solution entirely.  Thus FOLDCHAR
is obsolescent and can be removed, though the code in it was used as a
base for some of the new solutions.

10 years agoregex: Fix some tricky fold problems
Karl Williamson [Sat, 24 Dec 2011 03:11:22 +0000 (20:11 -0700)]
regex: Fix some tricky fold problems

As described in the comments, this changes the design of handling the
Unicode tricky fold characters to not generate a node for each possible
sequence but to get them to work within EXACTFish nodes.

The previous design(s) all used a node to handle these, which suffers
from the downfall that it precludes legitimate matches that would cross
the node boundary.

The new design is described in the comments.

10 years agoregcomp.c: Rework join_exact()
Karl Williamson [Sat, 24 Dec 2011 02:46:10 +0000 (19:46 -0700)]
regcomp.c: Rework join_exact()

This re formats and refactors portions of join_exact() that look for the
tricky Greek fold sequences.  I renamed various variables, etc, to help
me understand what was going on.  It turns out that there were two
off-by-one bugs that prevented this from working properly.

The first bug had the loop quit one too soon  The boundary should be
"<=", and not strictly less-than.  This means that if the sequence is
the last thing in the string (or only thing) it will not be found.
The other bug had the end-needle parameter be 1 too short, which means
that this would succeed with  only the first 3 bytes of the sequence
(now called 'tail'), thus matching many more things than it should
(provided it got the chance to match at all given the first bug).

10 years agoregex: Add new node type EXACTFU_NO_TRIE
Karl Williamson [Sat, 24 Dec 2011 02:37:36 +0000 (19:37 -0700)]
regex: Add new node type EXACTFU_NO_TRIE

This new node is like EXACTFU but is not currently trie'able.  This adds
handling for it in regexec.c, but it is not currently generated; this
commit is preparing for future commits