This is a live mirror of the Perl 5 development currently hosted at
9 years agomove B-Lint and File-CheckTree to ./cpan
Ricardo Signes [Mon, 21 Jan 2013 22:16:03 +0000 (17:16 -0500)]
move B-Lint and File-CheckTree to ./cpan

9 years agoadd usage to CPANPLUS
Ricardo Signes [Mon, 21 Jan 2013 16:34:42 +0000 (11:34 -0500)]
add usage to CPANPLUS

9 years agoUpdate CPANPLUS to CPAN version 0.9134
Chris 'BinGOs' Williams [Mon, 21 Jan 2013 20:43:45 +0000 (20:43 +0000)]
Update CPANPLUS to CPAN version 0.9134


  Changes for 0.9134      Mon Jan 21 20:00:03 2013
  * $VERSION all library files

9 years agoThe MAPping for Test-Harness is not required since 3.26
Chris 'BinGOs' Williams [Mon, 21 Jan 2013 12:09:18 +0000 (12:09 +0000)]
The MAPping for Test-Harness is not required since 3.26

9 years agoMark 5.17.8 as done in release_schedule.pod
Aaron Crane [Mon, 21 Jan 2013 11:20:54 +0000 (11:20 +0000)]
Mark 5.17.8 as done in release_schedule.pod

9 years agoModule-CoreList-2.80 has been released to CPAN
Chris 'BinGOs' Williams [Sun, 20 Jan 2013 23:17:31 +0000 (23:17 +0000)]
Module-CoreList-2.80 has been released to CPAN

9 years agoActually update Test-Harness to CPAN version 3.26
Chris 'BinGOs' Williams [Sun, 20 Jan 2013 22:30:11 +0000 (22:30 +0000)]
Actually update Test-Harness to CPAN version 3.26


  Finishes off what was started with 83044e8d6

9 years agoBump the Perl version in various places for 5.17.9
Aaron Crane [Sun, 20 Jan 2013 19:28:58 +0000 (19:28 +0000)]
Bump the Perl version in various places for 5.17.9

9 years agoMake a new perldelta for 5.17.9-to-be
Aaron Crane [Sun, 20 Jan 2013 19:14:59 +0000 (19:14 +0000)]
Make a new perldelta for 5.17.9-to-be

9 years agoAdd the 5.17.8 epigraph to epigraphs.pod
Aaron Crane [Sun, 20 Jan 2013 19:11:26 +0000 (19:11 +0000)]
Add the 5.17.8 epigraph to epigraphs.pod

9 years agoAdd 5.17.8 to perlhist v5.17.8
Aaron Crane [Sun, 20 Jan 2013 15:49:49 +0000 (15:49 +0000)]
Add 5.17.8 to perlhist

9 years agoUpdate Module::CoreList for 5.17.8
Aaron Crane [Sun, 20 Jan 2013 15:46:34 +0000 (15:46 +0000)]
Update Module::CoreList for 5.17.8

9 years agoLast-minute "known issue" in perldelta
Aaron Crane [Sun, 20 Jan 2013 18:22:21 +0000 (18:22 +0000)]
Last-minute "known issue" in perldelta

9 years agoUpdate perldelta for 5.17.8
Aaron Crane [Sat, 19 Jan 2013 20:32:57 +0000 (20:32 +0000)]
Update perldelta for 5.17.8

Including the generated Acknowledgements section.

Thanks to Smylers++ for reviewing an earlier draft.

9 years agoAdd av_top() synonym for av_len()
Karl Williamson [Thu, 27 Dec 2012 22:21:47 +0000 (15:21 -0700)]
Add av_top() synonym for av_len()

av_len() is misleadingly named.

9 years agoReplace XXX by correct bug number
Karl Williamson [Sun, 20 Jan 2013 04:37:36 +0000 (21:37 -0700)]
Replace XXX by correct bug number

Commit 4d68ffa0f7f345bc1ae6751744518ba4bc3859bd failed to get the
correct bug number in a comment

9 years agoperlre: Fix typo
Karl Williamson [Sun, 20 Jan 2013 03:37:37 +0000 (20:37 -0700)]
perlre: Fix typo

"<" isn't a metacharacter, therefore "\<" doesn't change its meaning.
"[" is a metacharacter, therefore "\[" does change its meaning.

9 years agoDeprecate certain rare uses of backslashes within regexes
Karl Williamson [Sun, 20 Jan 2013 03:29:42 +0000 (20:29 -0700)]
Deprecate certain rare uses of backslashes within regexes

There are three pairs of characters that Perl recognizes as
metacharacters in regular expression patterns: {}, [], and ().  These
can be used as well to delimit patterns, as in:


Since they are metacharacters, they have special meaning to regular
expression patterns, and it turns out that you can't turn off that
special meaning by the normal means of preceding them with a backslash,
if you use them, paired, within a pattern delimitted by them.  For
example, in


the backslashes do not change the behavior, and this matches "f", "o"
followed by one to three more occurrences of "o".

Usages like this, where they are interpreted as metacharacters, are
exceedingly rare; we think there are none, for example, in all of CPAN.
Hence, this deprecation should affect very little code.  It does give
notice, however, that any such code needs to change, which will in turn
allow us to change the behavior in future Perl versions so that the
backslashes do have an effect, and without fear that we are silently
breaking any existing code.

=head1 Performance Enhancements

9 years agotoke.c: White-space alignment only
Karl Williamson [Wed, 16 Jan 2013 20:02:53 +0000 (13:02 -0700)]
toke.c: White-space alignment only

9 years agoRevert "Deprecate literal unescaped "{" in regexes."
Karl Williamson [Mon, 14 Jan 2013 17:56:06 +0000 (10:56 -0700)]
Revert "Deprecate literal unescaped "{" in regexes."

This reverts commit 2a53d3314d380af5ab5283758219417c6dfa36e9.

Not the entire commit was reverted, but the deprecation message is
gone.  This caused too many problems.  See thread
(which lists previous threads).

9 years agoExtend strictness for qr/(?[ \N{} ])/
Karl Williamson [Sat, 19 Jan 2013 04:58:10 +0000 (21:58 -0700)]
Extend strictness for qr/(?[ \N{} ])/

This recently added regex syntax imposes stricter rules on parsing than
normal.   However, this did not include parsing \N{} constructs that
occur within it.  This commit does that, making fatal the warnings that
come from \N{}

I will add to perldiag the newly added messages along with the others
for (?[ ]) before 5.18 ships

9 years agoconstant-1.25 has been released to CPAN
Chris 'BinGOs' Williams [Sat, 19 Jan 2013 11:35:27 +0000 (11:35 +0000)]
constant-1.25 has been released to CPAN

9 years agoRemove checks for Perl 5.6; adjust tests; bump version number.
James E Keenan [Sat, 19 Jan 2013 02:15:04 +0000 (21:15 -0500)]
Remove checks for Perl 5.6; adjust tests; bump version number.

Patch contributed by S├ębastien Aperghis-Tramoni

For: RT #114770.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch blead
# Your branch is ahead of 'origin/blead' by 1 commit.
# Changes to be committed:
#   (use "git reset HEAD^1 <file>..." to unstage)
# modified:   dist/constant/lib/
# modified:   dist/constant/t/constant.t

9 years agoSkip t/io/eintr.t on older Darwins.
James E Keenan [Tue, 8 Jan 2013 01:55:24 +0000 (20:55 -0500)]
Skip t/io/eintr.t on older Darwins.

Identify the OS version by capturing the first two parts of the M.m.p version

For RT #116262

9 years agoUpdate Socket to CPAN version 2.009
Chris 'BinGOs' Williams [Fri, 18 Jan 2013 16:54:50 +0000 (16:54 +0000)]
Update Socket to CPAN version 2.009


  2.009   CHANGES:
         * Fix building in core by skipping check_for() as it doesn't work
           there (RT82760)

  2.008   CHANGES:
         * Fix uninitialised memory read (RT82119)

  2.007   CHANGES:
         * Test %Config keys for definedness, not mere existence (RT79854)
         * Fix missing argument in sprintf in Socket.xs (from perl.git
           5d6dfea82e1c4b6, RT82007)

9 years agoUpdate Pod-LaTeX to CPAN version 0.61
Aaron Crane [Fri, 18 Jan 2013 15:13:34 +0000 (15:13 +0000)]
Update Pod-LaTeX to CPAN version 0.61

Upstream changes:

- Update site vs perl install for perl v5.12 and above
- Issue a deprecation warning if the module is being used in perl 5.17.0 and above.
  This module will be removed from perl Core for perl 5.20. (Ricardo Signes)
  It will still be available on CPAN.

9 years agorearrange initializations in S_intuit_more for better code gen
Daniel Dragan [Thu, 17 Jan 2013 23:38:07 +0000 (18:38 -0500)]
rearrange initializations in S_intuit_more for better code gen

MS VC 2003 in my experiance does not reorder var initializations with
constants to reduce their liveness. This commit attempts to defer
initialization until right before the var is first used. I can't explain
exactly why less instructions or shorter addressing happened since I didnt
record what the asm looked like before. On VC 2003 -O1 -GL, S_intuit_more
was previously 0x4B5 bytes of 32 bit machine code long, after it this
change it is 0x4A3 bytes long. These changes should have no user visible

The scope of the vars was not reduced to avoid large indentation changes
which would be required under C89 and Perl code formatting policy.

9 years agotodo: revisit the super-linear cache
Aaron Crane [Fri, 18 Jan 2013 14:24:13 +0000 (14:24 +0000)]
todo: revisit the super-linear cache

Suggested by Yves.

9 years agofurther refinement to EISDIR tests from `perl dir`
Ricardo Signes [Wed, 16 Jan 2013 23:40:44 +0000 (18:40 -0500)]
further refinement to EISDIR tests from `perl dir`

1. actually use the EISDIR string, rather than getting it and
   not using it; this was a refactoring screw-up

2. don't hardcode the Win32 EACCES error, either, use the same
   "$!" mechanism

9 years agouse non-dev version for Safe
Ricardo Signes [Wed, 16 Jan 2013 21:17:13 +0000 (16:17 -0500)]
use non-dev version for Safe

9 years agouse non-dev version for IO
Ricardo Signes [Wed, 16 Jan 2013 21:16:39 +0000 (16:16 -0500)]
use non-dev version for IO

9 years agouse non-dev version for I18N::LangTags::List
Ricardo Signes [Wed, 16 Jan 2013 21:14:51 +0000 (16:14 -0500)]
use non-dev version for I18N::LangTags::List

...and sync with I18N::LangTags

9 years agobump I18N::Langinfo to a non-dev version
Ricardo Signes [Wed, 16 Jan 2013 21:10:55 +0000 (16:10 -0500)]
bump I18N::Langinfo to a non-dev version

9 years agotweak the way we mention
Ricardo Signes [Fri, 18 Jan 2013 03:21:12 +0000 (22:21 -0500)]
tweak the way we mention

It should be clear even to readers of the documentation in text
format that "if" is a module and not the "if" flow control.

9 years agoAdded asserts() to check the arguments to S_copy_little_tm_to_big_TM.
Andy Dougherty [Thu, 17 Jan 2013 15:34:33 +0000 (10:34 -0500)]
Added asserts() to check the arguments to S_copy_little_tm_to_big_TM.

The original version just zeroed dest if src == NULL, but that code path
was never used.  (gcc -Os inlined the function and optimized the test
away anyway.)

9 years agoremove an useless null check in S_copy_little_tm_to_big_TM
Daniel Dragan [Thu, 17 Jan 2013 07:52:45 +0000 (02:52 -0500)]
remove an useless null check in S_copy_little_tm_to_big_TM

All callers of S_copy_little_tm_to_big_TM pass a true variable src.
Checking for null is pointless. On Win32 32 bit VC 2003 -O1 -GL,
perl517.dll's .text section went from 0xCO13F to 0xC012F bytes long. It can
be argued that the compiler should have figured this out on its own, but VC
for whatever reason didn't. Also pretty the indenting and align the
assignments. The null check blames to commit 806a119aef .

9 years agoutf8.c: Reword a warning message
Karl Williamson [Wed, 16 Jan 2013 22:05:04 +0000 (15:05 -0700)]
utf8.c: Reword a warning message

This follows the suggestion by Aristotle Pagaltzis.

9 years agoperldiag: Move an out-of-alphabetical_order entry
Karl Williamson [Wed, 16 Jan 2013 22:03:51 +0000 (15:03 -0700)]
perldiag: Move an out-of-alphabetical_order entry

9 years agoUpdate File-Path to CPAN version 2.09
Chris 'BinGOs' Williams [Wed, 16 Jan 2013 21:57:40 +0000 (21:57 +0000)]
Update File-Path to CPAN version 2.09


  2.09 2013-01-13 21:09:12 UTC
    - merge two bugfixes from blead

9 years agoUpdate Test to CPAN version 1.26
Chris 'BinGOs' Williams [Wed, 16 Jan 2013 20:38:54 +0000 (20:38 +0000)]
Update Test to CPAN version 1.26


  1.26    2013-01-16  Jesse R Vincent <>
    * Bump version to a stable number. No functional changes

9 years agoutf8.h: Add comments
Karl Williamson [Wed, 16 Jan 2013 19:49:50 +0000 (12:49 -0700)]
utf8.h: Add comments

This also reorders one #define to be closer to a related one.

9 years agoAvoid wraparound when casting unsigned size_t to signed ssize_t.
Andy Dougherty [Wed, 16 Jan 2013 17:30:43 +0000 (12:30 -0500)]
Avoid wraparound when casting unsigned size_t to signed ssize_t.

Practically, this only affects a perl compiled with 64-bit IVs on a 32-bit
system.  In that instance a value of count >= 2**31 would turn negative
when cast to (ssize_t).

9 years agoPATCH: [perl 116411]: code comment for commit 518a5310cc "Silence a MSVC++-specific...
bulk88 (via RT) [Wed, 16 Jan 2013 05:54:30 +0000 (21:54 -0800)]
PATCH: [perl 116411]: code comment for commit 518a5310cc "Silence a MSVC++-specific warning"

There is no written investigation to google up for
the record. I don't want to forget that the #ifdef is benign and
accidentally reinvestigate it in the future. .text section of
perl517.dll was 0xC013F before and after the commit. No change.


9 years agoin testing EISDIR string, check known value first
Ricardo Signes [Wed, 16 Jan 2013 13:56:57 +0000 (08:56 -0500)]
in testing EISDIR string, check known value first

It was not enough to ensure the English value, as some platforms
use a different string entirely.  Rather than goof around with
figuring them out, just get the known value by making an EISDIR
and stringifying it, then compare to that.

9 years agoRevert "Upgrade Socket to CPAN version 2.008"
Ricardo Signes [Wed, 16 Jan 2013 15:05:47 +0000 (10:05 -0500)]
Revert "Upgrade Socket to CPAN version 2.008"

This reverts commit 90ae46a10a094e68135385e525c78962d6572da3.

Socket 2.008 fails to build on Linux in core, and possibly other
platforms as well.

9 years agoUpgrade Socket to CPAN version 2.008
Ricardo Signes [Wed, 16 Jan 2013 14:36:47 +0000 (09:36 -0500)]
Upgrade Socket to CPAN version 2.008

2.008   CHANGES:
         * Fix uninitialised memory read (RT82119)

2.007   CHANGES:
         * Test %Config keys for definedness, not mere existence (RT79854)
         * Fix missing argument in sprintf in Socket.xs (from perl.git
           5d6dfea82e1c4b6, RT82007)

9 years agoperlfunc.pod: fix incorrect short description of `length`
Aaron Crane [Wed, 16 Jan 2013 11:47:19 +0000 (11:47 +0000)]
perlfunc.pod: fix incorrect short description of `length`

Thanks to ranguard for pointing out the report at

9 years agoUpdate Test-Harness to CPAN version 3.26
Chris 'BinGOs' Williams [Wed, 16 Jan 2013 08:21:49 +0000 (08:21 +0000)]
Update Test-Harness to CPAN version 3.26


  3.26    2013-01-16
        - Renamed env.opts.t to env_opts.t (for VMS)
        - Skipped some TAP::Formatter::HTML tests due to this bug: #82738

9 years agoRemove the Rhapsody port.
Nicholas Clark [Thu, 3 Jan 2013 15:32:26 +0000 (16:32 +0100)]
Remove the Rhapsody port.

Rhapsody was an Apple OS that later evolved into Darwin and Mac OS X. It was
initially only released to developers, but later became Mac OS X Server, with
releases in 1999 and 2000. It was obsoleted by Mac OS X 10.0, released in
March 2001.

9 years agoNew PathTools CPAN release 3.40
Steffen Mueller [Wed, 16 Jan 2013 06:40:59 +0000 (07:40 +0100)]
New PathTools CPAN release 3.40

9 years agoCwd/File::Spec version bump to 3.40
Steffen Mueller [Wed, 16 Jan 2013 06:40:23 +0000 (07:40 +0100)]
Cwd/File::Spec version bump to 3.40

9 years agoavoid having to worry whether the test runs in a locale
Ricardo Signes [Tue, 15 Jan 2013 23:59:20 +0000 (18:59 -0500)]
avoid having to worry whether the test runs in a locale

This is a time-honored tradition from such places as t/op.  Tony
Cook alerted me to failures caused by this test on machines smoking
in non-English locales.

9 years agoUpdate Digest-SHA to CPAN version 5.81
Chris 'BinGOs' Williams [Tue, 15 Jan 2013 10:32:29 +0000 (10:32 +0000)]
Update Digest-SHA to CPAN version 5.81


  5.81  Mon Jan 14 05:17:08 MST 2013
        - corrected load subroutine ( to prevent double-free
              -- Bug #82655: Security issue - segfault
              -- thanks to Victor Efimov and Nicholas Clark
                 for technical expertise and suggestions

9 years agoSilence a MSVC++-specific warning
Steve Hay [Tue, 15 Jan 2013 09:04:20 +0000 (09:04 +0000)]
Silence a MSVC++-specific warning

("function declared with __declspec(noreturn) has non-void return type" /
"function declared with __declspec(noreturn) has a return statement".)

9 years agohandy.h: Fix isIDCONT_utf8()
Karl Williamson [Mon, 14 Jan 2013 19:12:50 +0000 (12:12 -0700)]
handy.h: Fix isIDCONT_utf8()

It was handling above-Latin1 code points as IDstarts instead of

9 years agoSilence a couple of warnings
Steve Hay [Mon, 14 Jan 2013 17:59:55 +0000 (17:59 +0000)]
Silence a couple of warnings

("'initializing' : conversion from 'I32' to 'U8', possible loss of data"
and "formal parameter n different from declaration".)

9 years agoAdd warnings for "\08", /\017/
Karl Williamson [Sun, 13 Jan 2013 20:33:22 +0000 (13:33 -0700)]
Add warnings for "\08", /\017/

This was discussed in thread
but I never got around to this portion of the consensus, until now.

I did a cpan grep^|[^\\]%29\\[0-7]{1%2C2}[8-9]&page=1

and eyeballing the results, saw three cases where this warning might
show up; one of which was for EBCDIC.  The others looked to be false
positives, such as in .css files.

9 years agobump threads::shared version 1.43
Jerry D. Hedden [Fri, 11 Jan 2013 15:53:42 +0000 (10:53 -0500)]
bump threads::shared version 1.43

To sync with the forthcoming CPAN release.

9 years agoregcomp.c: Silence compiler warning
Karl Williamson [Mon, 14 Jan 2013 00:22:34 +0000 (17:22 -0700)]
regcomp.c: Silence compiler warning

Some compilers say this can be used uninitialized. I don't believe them,
but silencing them will save effort in the long run.

9 years agoMake Data::Dumper XS ignore Freezer return value
Aaron Crane [Sun, 13 Jan 2013 10:08:02 +0000 (10:08 +0000)]
Make Data::Dumper XS ignore Freezer return value

Fixes RT #116364

9 years agoregcomp.c: Stop potential leaks
Karl Williamson [Sun, 13 Jan 2013 20:31:38 +0000 (13:31 -0700)]
regcomp.c: Stop potential leaks

These two ref counts were not at the same level as their corresponding

9 years agoregcomp.c: Add comments; align ternary operator for clarity
Karl Williamson [Sun, 13 Jan 2013 20:28:09 +0000 (13:28 -0700)]
regcomp.c: Add comments; align ternary operator for clarity

9 years agoreg_mesg.t: Add, revise test names
Karl Williamson [Sun, 13 Jan 2013 18:46:27 +0000 (11:46 -0700)]
reg_mesg.t: Add, revise test names

9 years agoembed.fnc: Clarify that varargs suppresses embed.h
Karl Williamson [Sun, 13 Jan 2013 18:11:20 +0000 (11:11 -0700)]
embed.fnc: Clarify that varargs suppresses embed.h

Macro don't have variable numbers of args, hence the entry in embed.h is

9 years agobetter POD for unpackstring
Daniel Dragan [Sun, 13 Jan 2013 02:02:33 +0000 (21:02 -0500)]
better POD for unpackstring

Someone asked me how to use unpackstring() since they couldn't figure it
out from the docs, so I added some things.

9 years agoCreate deprecated fncs to replace to-be-removed macros
Karl Williamson [Sun, 30 Dec 2012 03:18:09 +0000 (20:18 -0700)]
Create deprecated fncs to replace to-be-removed macros

These macros should not be used as they are prone to misuse.  There are
no occurrences of them in CPAN.  The single use of either of them in
core has recently been removed (commit
8d40577bdbdfa85ed3293f84bf26a313b1b92f55), because it was a misuse.

Instead code should use isIDFIRST_lazy_if or isWORDCHAR_lazy_if
(isALNUM_lazy_if is also available, but can be confused with the Posix
alnum, which it doesn't mean).

9 years agoporting/args_assert.t: Needs to look in inline.h too
Karl Williamson [Sun, 30 Dec 2012 05:02:49 +0000 (22:02 -0700)]
porting/args_assert.t: Needs to look in inline.h too

inline.h is a special header file that contains C functions, and hence

9 years agoexpect a different error for `perl dir` on Win32
Ricardo Signes [Sat, 12 Jan 2013 12:12:34 +0000 (07:12 -0500)]
expect a different error for `perl dir` on Win32

We've known that this is how Win32 behaves, as it was documented in
the ticket for which this is a fix.  I don't think it's worth the
bother of ensuring we get EISDIR, as long as we don't just exit

9 years agoperldelta for #61362, croak on `perl directory`
Ricardo Signes [Mon, 7 Jan 2013 20:00:08 +0000 (15:00 -0500)]
perldelta for #61362, croak on `perl directory`

9 years agoAdd a test to detect error when attempting to syntax-check a directory.
James E Keenan [Sun, 6 Jan 2013 03:25:29 +0000 (22:25 -0500)]
Add a test to detect error when attempting to syntax-check a directory.

For: RT #61362

9 years agocroak on an attempt to run a directory as a script
Ricardo Signes [Sun, 6 Jan 2013 01:30:48 +0000 (20:30 -0500)]
croak on an attempt to run a directory as a script

How many times have I meant to run "perl -I lib myprog" but instead
run "perl lib myprog" only to exit 0 because that's what perl does
when you try to run a directory as a script (at least on unix)?  Many.

perl should croak when instructed to execute a directory.
[perl #61362] suggests it already does so on Win32.  Now it does it
everywhere.  Tests not yet written.

9 years agoSimplify ExtUtils::Install::_can_write_dir on VMS.
Craig A. Berry [Sat, 12 Jan 2013 22:30:17 +0000 (16:30 -0600)]
Simplify ExtUtils::Install::_can_write_dir on VMS.

This reverts the code (but not test) portions of 3d55b451d9544fb.

The old solution of using catdir rather than a combination of
catdir and catpath works with and without extended filespecs
enabled, so there's no reason to maintain two versions, and thus
no reason to have all the boilerplate feature checking code at
the beginning of the module.

9 years agoinclude SvREADONLY() in SvIMMORTAL() test
David Mitchell [Sat, 12 Jan 2013 10:26:15 +0000 (10:26 +0000)]
include SvREADONLY() in SvIMMORTAL() test

SvIMMORTAL() is currently defined as

      ((sv)==&PL_sv_undef || (sv)==&PL_sv_yes
    || (sv)==&PL_sv_no || (sv)==&PL_sv_placeholder)

Which is relatively slow. Some places do this:

    if (SvREADONLY(sv) && SvIMMORTAL(sv)) ...

which quickly rejects most times.

This commit simply moves the SvREADONLY test into the SvIMMORTAL macro
so that *all* uses benefit from this speedup.

9 years agoperlapi: Clarify av_pop
Karl Williamson [Sat, 12 Jan 2013 15:48:01 +0000 (08:48 -0700)]
perlapi: Clarify av_pop

This notes that the caller now has control of a reference count of the
returned SV.

Wording mostly suggested by Paul Evans

9 years agoAllow slop on a few locale tests
Karl Williamson [Fri, 11 Jan 2013 21:29:29 +0000 (14:29 -0700)]
Allow slop on a few locale tests

Four recently introduced tests in locale.t fail for two locales of all
the ones that get tested in our smoke farm.  I investigated the failures
and it looks to me like the problem in each case is that the locale
definition is defective.

The tests were added because of finding and fixing a bug in Perl, so I
don't want to remove them.  Instead these 4 tests will be marked as TODO
if at least 95% of locales pass on any given machine.

This works for our current smokers.

9 years agoperlre: fix typo
Aaron Crane [Sat, 12 Jan 2013 15:34:43 +0000 (15:34 +0000)]
perlre: fix typo

9 years agoIn S_regatom(), set flags to 0 at the start.
Nicholas Clark [Sat, 12 Jan 2013 10:45:26 +0000 (11:45 +0100)]
In S_regatom(), set flags to 0 at the start.

Without this, flags will be read uninitialised for the execution path that
ends up with "Internal urp". (Although it's not clear that that error message
is ever reachable.)

The bug was introduced in perl 5.000, which added (?#) comments and (?m)
style embedding flags. It's not present in alpha 9.

9 years agoMerge branch 'sets' into blead
Karl Williamson [Fri, 11 Jan 2013 18:51:18 +0000 (11:51 -0700)]
Merge branch 'sets' into blead

This branch adds the experimental regular expression (?[ ]) feature.
Details are in the individual commit messages.

9 years agoAdd back-compat (?[ ]) tests
Karl Williamson [Fri, 11 Jan 2013 18:17:32 +0000 (11:17 -0700)]
Add back-compat (?[ ]) tests

This adds testing of (?[ ]), using the same tests, t/re/re_tests<
as are used by many of the regular expression .t files.  Basically, it
converts the [bracketed] character classes in these tests to the new
syntax and verifies that they work there.

Some tests won't work in one or the other, and the capability to skip
depending on the .t is added

9 years agoreg_mesg.t: Test messages from (?[ ])
Karl Williamson [Fri, 11 Jan 2013 00:14:40 +0000 (17:14 -0700)]
reg_mesg.t: Test messages from (?[ ])

9 years agoNew regex experimental feature: (?[ ])
Karl Williamson [Fri, 11 Jan 2013 00:06:04 +0000 (17:06 -0700)]
New regex experimental feature: (?[ ])

This is a fancier [bracketed] character class which allows set
operations, such as intersection and subtraction.  The entry in perlre
for this commit details its operation.

Besides extending regular expressions to handle this functionality,
recommended by Unicode, the intent here is to do three things:

1) Intersection has been simulated by regexes using zero-width
   look-around assertions, which are non-obvious.  This allows replacing
   those with a more powerful and clearer syntax; the compiled regexes
   are smaller and faster.  Everything is known at compile time.
2) Set operations have also been simulated by using user-defined Unicode
   properties.  These are globals, have security implications,
   restricted names, and d don't allow as complex expressions as this
   new feature.
3) I hope that this feature will come to be viewed as a "better"
   bracketed character class.  I took advantage of the fact that there
   is no embedded base to have to be compatibile with to forbid certain
   iffy practices with the existing ones, while remaining mostly
   backwards compatible.  The main difference is that /x is always
   enabled, so white space can be pretty much freely used with these,
   but to specify a match on white space, it must be escaped.  Things
   that should have been illegal are, such as \x{}, and \x{abcdefghi}.
   Things that look like a posix specifier but don't quite meet the
   rules now give an error instead of silently compiling. e.g., [:digit]
   is an error instead of the union of the characters that compose it.
   I may have omitted things; perhaps it should be an error to have the
   same letter occur twice, adjacent.  Since this is experimental, we
   can make such changes based on field feed back.

The intent is to keep this feature, since it is strongly recommended by
Unicode.  The exact syntax is subject to change, so is experimental.

9 years agoregcomp.c: White-space only
Karl Williamson [Thu, 10 Jan 2013 23:59:33 +0000 (16:59 -0700)]
regcomp.c: White-space only

Indents to newly formed blocks

9 years agoregcomp.c: Add capability for regclass() to return inversion list
Karl Williamson [Thu, 10 Jan 2013 23:42:19 +0000 (16:42 -0700)]
regcomp.c: Add capability for regclass() to return inversion list

This is currently unused, but will have regclass() return an inversion
list instead of a node.

9 years agoregcomp.c: Add capability for ignoring white space inside []
Karl Williamson [Thu, 10 Jan 2013 23:36:05 +0000 (16:36 -0700)]
regcomp.c: Add capability for ignoring white space inside []

This is currently unused, but allows pattern white space to be used
inside [bracketed] character classes.  When this is on, literal white
space must be escaped by a preceding backslash to be counted.

9 years agoregcomp.c: Add capability for stricter parsing of []
Karl Williamson [Thu, 10 Jan 2013 23:06:53 +0000 (16:06 -0700)]
regcomp.c: Add capability for stricter parsing of []

This adds the capability, currently unused, of forbidding certain things
in [bracketed] character classes.  Included are things that warn bug
still compile, such as false ranges, [\d-\w], and unrecognized escapes.

Also forbidden are potentially ambiguous cases where \x (without braces)
isn't followed by exactly two hex digits, or \000 where the number of
octal digits isn't precisely three.

9 years agoregcomp.c: Add capability for strict [:posix:]
Karl Williamson [Thu, 10 Jan 2013 22:47:24 +0000 (15:47 -0700)]
regcomp.c: Add capability for strict [:posix:]

This adds a parameter to regpposixcc() to enforce stricter rules on the
posix class syntax.  It is currently unused

9 years agoregcomp.c: Add function to skip pattern white space
Karl Williamson [Thu, 10 Jan 2013 22:42:36 +0000 (15:42 -0700)]
regcomp.c: Add function to skip pattern white space

The plan is to eventually convert all of regcomp to use this for white
space ignoring under /x, but this will be used for now in just the new
syntax for (?[ ]), coming in a few commits.  Until then, this function
is unused.

9 years agoregcomp.c: Comments, white space
Karl Williamson [Thu, 10 Jan 2013 22:36:22 +0000 (15:36 -0700)]
regcomp.c: Comments, white space

This also reverses the order of 2 macro calls in 2 places which will be
useful for future commits.

9 years agoregcomp.c: Add parameter to regclass()
Karl Williamson [Thu, 10 Jan 2013 22:15:21 +0000 (15:15 -0700)]
regcomp.c: Add parameter to regclass()

This parameter silences warnings for non-portable characters.  It
currently is always FALSE, meaning that warnings are given.

9 years agoregcomp.c: Add parameter to regclass()
Karl Williamson [Thu, 10 Jan 2013 22:03:39 +0000 (15:03 -0700)]
regcomp.c: Add parameter to regclass()

This parameter allows the caller to specify whether multi-character
folds should be allowed or not.  In general it should, and in the case
where this commit says it shouldn't, they never are returned anyway from
Unicode properties.

This capability will be put to real use by future commits

9 years agoregcomp.c: Add a vFAIL4 macro
Karl Williamson [Thu, 10 Jan 2013 19:40:44 +0000 (12:40 -0700)]
regcomp.c: Add a vFAIL4 macro

This one is missing.

9 years agoregcomp.c: Remove unnecessary variable
Karl Williamson [Thu, 10 Jan 2013 15:58:04 +0000 (08:58 -0700)]
regcomp.c: Remove unnecessary variable

This variable is used just in the statement following it.  Its value
doesn't need to be saved, can just combine the statements

9 years agoregcharclass.h: Add macro for finding pattern white space
Karl Williamson [Mon, 7 Jan 2013 15:50:56 +0000 (08:50 -0700)]
regcharclass.h: Add macro for finding pattern white space

This Unicode property will be used in future commits

9 years agogrok_bslash_[ox]: Add param to silence non-portable warnings
Karl Williamson [Mon, 7 Jan 2013 15:23:58 +0000 (08:23 -0700)]
grok_bslash_[ox]: Add param to silence non-portable warnings

If a hex or octal number is too big to fit in a 32 bit word, grok_oct
and grok_hex by default output a warning that it is a non-portable
value.  This new parameter to the grok_bslash functions can cause them
to shut up those warnings.  This is currently unused, but will be needed
in future commits.

9 years agodquote_static.c: refactor common code to initialization
Karl Williamson [Mon, 7 Jan 2013 15:18:54 +0000 (08:18 -0700)]
dquote_static.c: refactor common code to initialization

This flag bit is set in both branches of the code; it might as well be
initialized instead.

9 years agoregcomp.c: Save a test by moving a line of code
Karl Williamson [Mon, 7 Jan 2013 06:10:16 +0000 (23:10 -0700)]
regcomp.c: Save a test by moving a line of code

The condition for executing this moved code are met by the else clause a
few lines below.

9 years agoregcomp.c: Omit unnecessary 'else's
Karl Williamson [Mon, 7 Jan 2013 05:56:37 +0000 (22:56 -0700)]
regcomp.c: Omit unnecessary 'else's

The 'if' part of this croaks, so there is no need to specify this as an

9 years agoCreate new warnings category experimental::regex_sets
Karl Williamson [Mon, 7 Jan 2013 05:50:54 +0000 (22:50 -0700)]
Create new warnings category experimental::regex_sets

This on-by-default warning will be raised upon use of the
soon-to-be-delivered regex sets feature.  The syntax used is currently
invalid, so no feature activation is necessary.

The purpose of this warning is to make sure that any user is properly
notified that this feature is experimental and subject to change

9 years agodquote_static.c: White-space only; no code changes
Karl Williamson [Mon, 7 Jan 2013 05:49:05 +0000 (22:49 -0700)]
dquote_static.c: White-space only; no code changes

This properly indents a newly-formed block

9 years agoAdd optional strict mode to grok_bslash_[xo]
Karl Williamson [Mon, 7 Jan 2013 05:28:33 +0000 (22:28 -0700)]
Add optional strict mode to grok_bslash_[xo]

This mode croaks on any iffy constructs that currently compile.  It is
not currently used; documentation of the error messages will be
delivered later.