This is a live mirror of the Perl 5 development currently hosted at
7 years agoExclude new vutil/Makefile.PL in cpan/version/
Steve Hay [Tue, 4 Feb 2014 08:20:17 +0000 (08:20 +0000)]
Exclude new vutil/Makefile.PL in cpan/version/

7 years agoAnd now the rest of the sync to 0.9908
John Peacock [Mon, 3 Feb 2014 23:42:20 +0000 (18:42 -0500)]
And now the rest of the sync to 0.9908

7 years agoAdd -DL option to trace setlocale calls
Karl Williamson [Tue, 4 Feb 2014 02:12:16 +0000 (19:12 -0700)]
Add -DL option to trace setlocale calls

This will help field debugging of locale issues.

7 years agoRevert "Fix handy.t for systems without $Config{d_isblank}."
Karl Williamson [Tue, 4 Feb 2014 02:52:54 +0000 (19:52 -0700)]
Revert "Fix handy.t for systems without $Config{d_isblank}."

This reverts commit d61570b1bbf3e2d76cc293690156fb361b054272.  This
commit was made unnecessary by commit

7 years agoRegenerate podcheck db due to recent 79col fixes
Karl Williamson [Mon, 3 Feb 2014 19:18:38 +0000 (12:18 -0700)]
Regenerate podcheck db due to recent 79col fixes

Commits 51b4c035919497f474ce46dcbdac1d2f3fd18a84 and
02257115537194d7a3b36a956d5643069f78c54f fixed some too-long verbatim
line issues.  I'm not sure why commit
b3a2acfa0c0e4f8e48e1f6eb4d6fd143f293d2c6 added them to the db, as they
were fixed before it was applied.  My guess is that the workspace had
not been rebased recently enough.

7 years agoModule-CoreList prepared for v5.19.9
Chris 'BinGOs' Williams [Mon, 3 Feb 2014 23:11:20 +0000 (23:11 +0000)]
Module-CoreList prepared for v5.19.9

7 years ago[perl #121028] avoid creating a shell process
Tony Cook [Wed, 22 Jan 2014 04:14:59 +0000 (15:14 +1100)]
[perl #121028] avoid creating a shell process

7 years agoUpdate Pod-Parser to CPAN version 1.62
Chris 'BinGOs' Williams [Mon, 3 Feb 2014 21:41:24 +0000 (21:41 +0000)]
Update Pod-Parser to CPAN version 1.62


 02-Feb-2014           Marek Rouchal                        <>
 Version 1.62
 + CPAN#87891: More sanity checks in podselect()
   documentation patches by, and a bit of stricter
   checking what clients pass to podselect()

7 years agoDynaLoader: On android, dl_load_flags should always be 0x00
Brian Fraser [Mon, 3 Feb 2014 20:36:31 +0000 (21:36 +0100)]
DynaLoader: On android, dl_load_flags should always be 0x00

The linker ignores all the flags and works as if under RTLD_LOCAL,
so don't give users the headache of seeing warnings ala

"Can't make loaded symbols global on this platform while loading %s"

when using a module that subclasses DynaLoader and defines
dl_load_flags to anything else.

7 years agoCBuilder, link: On Android, always return absolute paths to libraries
Brian Fraser [Mon, 3 Feb 2014 20:22:58 +0000 (21:22 +0100)]
CBuilder, link: On Android, always return absolute paths to libraries

Several modules on CPAN expect being able to pass the library
name returned by ->link to DynaLoader::dl_load_file and have it Just Work.
However, because ->link returns relative paths, those modules ran afoul
of Android's linker, which will only look in a handful of hardcoded
system directories for relative libraries, plus whatever LD_LIBRARY_PATH
pointed to at the start of execution.

This commit makes ->link on Android always return an absolute path,
which will be found by the linker.

7 years agoUpdate Compress-Raw-Zlib to CPAN version 2.065
Chris 'BinGOs' Williams [Mon, 3 Feb 2014 20:35:24 +0000 (20:35 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.065


  2.065 3 February 2014

      * [PATCH] resolve c++ build failure in core

      * gcc -g3: final link failed: Memory exhausted

7 years agoFix [[:blank:]] handling when no isblank() on platform
Karl Williamson [Mon, 3 Feb 2014 18:52:24 +0000 (11:52 -0700)]
Fix [[:blank:]] handling when no isblank() on platform

isblank() is a C99 construct,  Perl tries to handle the use of this on
C89 platforms by using the standard hard-coded definition.  However,
this code was not updated to account for UTF-8 locales when handling for
those was recently added (31f05a37c), since in a UTF-8 locale the
no-break space is also considered to be a blank.

This commit fixes that.  Previously regcomp.c generated the hard-coded
definitions when there was no isblank(), using #ifdef'd code.  That
special handling was removed, and [:blank:] is always treated just like
any other POSIX class.  The specialness of it is hidden entirely in
handy.h.  This simplifies the regcomp.c code slightly.  I considered
removing the special handling for isascii(), also a C99 construct, in
the name of simplicity over the slight speed that would be lost.  But
the special handling is only a single line in two places, so I left it

7 years agodeal with assignment to $/ better, deprecate edge cases, and forbid others
Yves Orton [Mon, 3 Feb 2014 14:20:13 +0000 (22:20 +0800)]
deal with assignment to $/ better, deprecate edge cases, and forbid others

The actual behavior of $/ under various settings and how it is documented
varies quite a bit. Clarify the documentation, and add various checks
that are validated when setting $/.

The gist of the problem was that the way that weirdo ref assignments were
handled was mostly broken:

  * setting to a reference to an array, hash, or other higher level
  construct would behave similarly to setting it to a reference to a
  an integer, by numifying the ref and using it as an integer. This
  behavior was entirely undocumented.

  * setting to a reference to 0 or to -1 was *documented* in triggering
  "slurp" behavior, but actually did not. Instead it would set the
  separator to the stringified form of the ref, which would *appear* as
  slurp behavior due to the unlikelihood of a file actually containing
  a string which matched, however was less efficient, and if someone's
  luck were *terrible* might actually behave as a split.

In the future we wish to support more sophisticated ways of setting the
input record separator, possibly supporting things like:

  $/= [ "foo", "bar" ];
  $/= qr/foo|bar/;

Accordingly this patch *forbids* the use of a non scalar ref, and raises
a fatal exception when one does so.

Additionally it treats non-positive refs *exactly* the same as assigning
undef, *including* ignoring the original value and setting $/ to undef.
The means the implementation now matches the documentation. However
since this might involve some crazy script changing in behavior (as one
can't fetch back the original ref from $/) I have added a warning in
category "deprecated" advising the user what has happened and
recommending setting to "undef" explicitly.

As far as I can tell this will only *break* code doing extremely dodgy
things with $/.

While putting together this patch I encountered numerous problems with
porting tests. First off was porting/podcheck.t, which failed test without
saying why or what to do, even under TEST_VERBOSE=1. Then when I did a
regen to update the exceptions database and then used that information
to try to fix the reported problems it seems that it does not work properly
anyway.  Specifically you aren't allowed to have a / in the interesting
parts of a L<> reference. If you replace the / with an E<0x2f> then the
link is valid POD, but podcheck.t then considers it a broken link. If
you then  replace the / in perdiag with E<0x2f> as well then
porting/diag.t complains that you have an undocumented diagnostic!

Accordingly I used the --regen option of podcheck.t to add exceptions to
the exception database. I have no idea if the pod is correctly formatted
or not.

7 years agoAdd RXf_UNBOUNDED_QUANTIFIER and regexp->maxlen
Yves Orton [Sun, 2 Feb 2014 15:37:37 +0000 (23:37 +0800)]
Add RXf_UNBOUNDED_QUANTIFIER and regexp->maxlen

The flag tells us that a pattern may match an infinitely long string.

The new member in the regexp struct tells us how long the string might

With these two items we can implement regexp based $/

7 years agoBump version version and remove/update customisations
Chris 'BinGOs' Williams [Mon, 3 Feb 2014 13:14:02 +0000 (13:14 +0000)]
Bump version version and remove/update customisations

7 years agoSync bleadperl to 0.9908
John Peacock [Mon, 3 Feb 2014 12:48:57 +0000 (07:48 -0500)]
Sync bleadperl to 0.9908

Attached is a patch to bring blead up to date with the latest CPAN
release of 0.9908.  All tests pass (except the expected

I'm hopeful that this will be the last update for a while.  Thanks to
Daniel Dragan for his insistent prodding to improve the code. ;-)



>From c501530aa386a3ccbdb35bcccbccd35d70315651 Mon Sep 17 00:00:00 2001
From: John Peacock <>
Date: Sun, 2 Feb 2014 11:57:44 -0500
Subject: [PATCH] Update bleadperl to CPAN 0.9908 release

Signed-off-by: Chris 'BinGOs' Williams <>
7 years agoPATCH [perl #121144]: \S, \W, etc fail for above ASCII
Karl Williamson [Mon, 3 Feb 2014 05:30:10 +0000 (22:30 -0700)]
PATCH [perl #121144]: \S, \W, etc fail for above ASCII

There were three things wrong with these couple of lines of code.that
help generate the synthetic start class (SSC).

1)  It used PL_regkind, instead of straight OP.  This meant that /u
    matches were treated the same as /d matches since they both have the
    same regkind.
2)  For what it thought was just for /d, it used the complement of
    ASCII, which matches 128-INFINITY, whereas it wanted 128-255 only..
3)  It did a union of this complement, instead of a subtract of the
    non-complement, forgetting that we are about to complement the
    result, so that if we want the end result to have something, we
    better have the input not have that something, or the complementing
    will screw it up.

7 years agoPorting/Glossary: Entries should start with \t not blanks
Karl Williamson [Mon, 3 Feb 2014 04:50:57 +0000 (21:50 -0700)]
Porting/Glossary: Entries should start with \t not blanks

For otherwise, they get turned into verbatim lines.  I don't know where
to document this.

7 years agoFix handy.t for systems without $Config{d_isblank}.
Craig A. Berry [Mon, 3 Feb 2014 04:09:58 +0000 (22:09 -0600)]
Fix handy.t for systems without $Config{d_isblank}.

isblank() is a C99 function that may or may not be present,
meaning checking for what's blank under a non-POSIX/C locale may
not match Unicode code points that are considered blank, such as
non-breaking space.

Make the tests for these conditions TODO as it's possible Perl
could implement its own isblank() for these conditions, at least
for UTF-8 locales.

N.B.  If there are implementations that provde isblank() but have
it match only space and tab regardless of locale, this change
probably won't help.

t/re/charset.t probably needs similar treatment.

7 years agoperldelta for f06c882585
Tony Cook [Mon, 3 Feb 2014 04:09:20 +0000 (15:09 +1100)]
perldelta for f06c882585

7 years ago[perl #77672] avoid a file handle redirection race
Tony Cook [Mon, 3 Feb 2014 03:39:46 +0000 (14:39 +1100)]
[perl #77672] avoid a file handle redirection race

With multiple threads (and Win32 fork() is implemented in terms of
threads), Win32's popen() code had a race condition where a different
thread could write to the stdout (or read from the stdin) handle setup
for a child process.

Avoid this by using the Win32 API to supply the I/O handles instead of
redirecting them in the current process.

7 years ago[perl #121134] prevent state variables from being merged into a padrange
Tony Cook [Mon, 3 Feb 2014 00:04:19 +0000 (11:04 +1100)]
[perl #121134] prevent state variables from being merged into a padrange

7 years agoDon't pull state vars into padrange ops
Matthew Horsfall (alh) [Fri, 31 Jan 2014 22:21:43 +0000 (17:21 -0500)]
Don't pull state vars into padrange ops

7 years agoTest state vars following padranges [Perl #121134]
Matthew Horsfall [Fri, 31 Jan 2014 21:52:04 +0000 (16:52 -0500)]
Test state vars following padranges [Perl #121134]

7 years ago'use utf8' should imply /u regex matching
Karl Williamson [Sun, 2 Feb 2014 19:20:42 +0000 (12:20 -0700)]
'use utf8' should imply /u regex matching

This should be true even if the pattern isn't in utf8.

7 years agoREADME.qnx: Make verbatim line fit in 79 columns
Karl Williamson [Fri, 31 Jan 2014 18:10:14 +0000 (11:10 -0700)]
README.qnx: Make verbatim line fit in 79 columns

7 years agoResolve c++ build fail in core
Chris 'BinGOs' Williams [Sun, 2 Feb 2014 15:33:41 +0000 (15:33 +0000)]
Resolve c++ build fail in core

Upstreamed as CPAN RT#92657

7 years agoUpdate IO-Compress to CPAN version 2.064
Chris 'BinGOs' Williams [Sun, 2 Feb 2014 12:18:38 +0000 (12:18 +0000)]
Update IO-Compress to CPAN version 2.064


  2.064 1 February 2014

      * RT #90216: IO-Compress/t/050interop-gzip.t: Use android-compatible
        flags when calling gzip

7 years agoUpdate Compress-Raw-Zlib to CPAN version 2.064
Chris 'BinGOs' Williams [Sun, 2 Feb 2014 12:16:43 +0000 (12:16 +0000)]
Update Compress-Raw-Zlib to CPAN version 2.064


  2.064 1 February 2014

      * [PATCH] Handle non-PVs better

      * Z_OK instead of Z_BUF_ERROR

7 years agoUpdate Compress-Raw-Bzip2 to CPAN version 2.064
Chris 'BinGOs' Williams [Sun, 2 Feb 2014 12:15:01 +0000 (12:15 +0000)]
Update Compress-Raw-Bzip2 to CPAN version 2.064


  2.064 1 February 2014

      * [PATCH] Handle non-PVs better

7 years agoINSTALL, cross-compile section: It's 2014, stop living in the past
Brian Fraser [Sat, 1 Feb 2014 22:29:10 +0000 (23:29 +0100)]
INSTALL, cross-compile section: It's 2014, stop living in the past

Spotted by Daniel Dragan on #p5p

7 years agoUpdate ExtUtils-MakeMaker to CPAN version 6.88
Chris 'BinGOs' Williams [Fri, 31 Jan 2014 21:44:56 +0000 (21:44 +0000)]
Update ExtUtils-MakeMaker to CPAN version 6.88


6.88 Fri Jan 31 20:49:13 GMT 2014

    No changes from 6.87_05

6.87_05 Tue Jan 28 13:54:21 GMT 2014
    Bug fixes:
    * Synchronisation with blead to remove old cross-compilation model

6.87_04 Sun Jan 26 19:29:05 GMT 2014
    Bug fixes:
    * On Android, pass PERL_LIB through rel2abs().

6.87_03 Sun Jan 19 17:49:43 GMT 2014
    Bug fixes:
    * Get rid of unused printf arguments in dynamic_bs

6.87_02 Sat Jan 18 13:00:36 GMT 2014
    Doc fixes:
    * Update documentation for LICENSE attribute.

    Bug fixes:
    * Get rid of unused printf arguments in dir_target

6.87_01 Sun Jan 12 10:31:41 GMT 2014
    Doc fixes:
    * mention that TEST_REQUIRES is in v6.64 and above

7 years agoUpdate perldelta_template.pod to include an "Errata From Previous Releases" section
Yves Orton [Fri, 31 Jan 2014 17:27:47 +0000 (01:27 +0800)]
Update perldelta_template.pod to include an "Errata From Previous Releases" section

I added this section to the latest perldelta, and Dave M pointed out
that it should become a standard section in the future, so I have added
it to the perldelta_template.pod

7 years agoSimplify expression, cannot be ANCH_GPOS without being REG_GPOS_SEEN
Yves Orton [Fri, 31 Jan 2014 16:39:03 +0000 (00:39 +0800)]
Simplify expression, cannot be ANCH_GPOS without being REG_GPOS_SEEN

7 years agoUpdate perldelta with details about changes to regexp engine extflags
Yves Orton [Fri, 31 Jan 2014 15:32:25 +0000 (23:32 +0800)]
Update perldelta with details about changes to regexp engine extflags

7 years agosimplify redundant part of PREGf_ANCH_GPOS test
Yves Orton [Fri, 31 Jan 2014 13:33:28 +0000 (21:33 +0800)]
simplify redundant part of PREGf_ANCH_GPOS test

And add an assert to be sure that we are correct.

7 years agoignore vim backup files
Yves Orton [Fri, 31 Jan 2014 13:31:24 +0000 (21:31 +0800)]
ignore vim backup files

Having tests fail because vim created a ~ file for something is just

7 years agoMake configpm produce better diagnostics for malformed glossary entries
Yves Orton [Fri, 31 Jan 2014 12:54:54 +0000 (20:54 +0800)]
Make configpm produce better diagnostics for malformed glossary entries

Patch 8b6a017ccef7126ae5bcac137fa9a45de4f2c155 added some malformed
entries to Porting/Glossary. (The entries were missing a trailing

These malformed entries would produce a cryptic one-line warning,
but only when various files were being regenerated. To make things
more difficult these warnings would be produced at the top of, or
in the middle of a large stream of other compilation actions, easily
allowing one to overlook them. Even if you noticed them the information
provided did not make it particularly easy to figure out what was wrong.

This patch changes things so that the warnings contain more information,
it also causes configpm to die, and thus break the build process, once
it finishes scanning the glossary if there were any warnings during
processing. This allows us to avoid whackamole when dealing with multiple
broken entries, and makes it painfully obvious if there are issues
processing the glossary file, which should prevent any future repeat
of the errors in 8b6a017ccef7126.

7 years agoFix cross-compilation glossary entries
Yves Orton [Fri, 31 Jan 2014 12:40:39 +0000 (20:40 +0800)]
Fix cross-compilation glossary entries

Patch 8b6a017ccef7126ae5bcac137fa9a45de4f2c155 added three
new entries to Porting/Glossary. These entries were malformed
from the point of view of configpm, which would warn about them.

This fixes the entries, by adding a missing colon to the first
line of each glossary entry.

7 years agorename REG_SEEN_WHATEVER to REG_WHATEVER_SEEN to match RXf_ and PREGf_ convention
Yves Orton [Fri, 31 Jan 2014 12:13:58 +0000 (20:13 +0800)]
rename REG_SEEN_WHATEVER to REG_WHATEVER_SEEN to match RXf_ and PREGf_ convention

7 years agoAdd "Errata From Previous Releases" section to perldelta.pod
Yves Orton [Fri, 31 Jan 2014 11:18:27 +0000 (19:18 +0800)]
Add "Errata From Previous Releases" section to perldelta.pod

Which we use to document a mistake in perl5180delta.pod.

This patch also removes the mistake from perl5180delta.pod

7 years ago[perl #120626] Mention RDF::Trine in perl5200delta
Father Chrysostomos [Fri, 31 Jan 2014 06:33:29 +0000 (22:33 -0800)]
[perl #120626] Mention RDF::Trine in perl5200delta

7 years agohandy.h: Add a cBOOL()
Karl Williamson [Thu, 30 Jan 2014 03:24:22 +0000 (20:24 -0700)]
handy.h: Add a cBOOL()

isascii() is used as a fallback for isASCII().  This would be on an
unusual platform or under unusual circumstances.  isascii() may return
values besides 0 and 1 which can cause things that are expecting a bool
to fail.

7 years agopp.c: Silence compiler warning
Karl Williamson [Thu, 30 Jan 2014 18:51:56 +0000 (11:51 -0700)]
pp.c: Silence compiler warning

The only time the result of toFOLD_LC() can be larger than a byte is
in a UTF-8 locale, which has already been ruled out for this section of

7 years agoregcomp.c: Revert mistakenly changed line
Karl Williamson [Thu, 30 Jan 2014 03:57:39 +0000 (20:57 -0700)]
regcomp.c: Revert mistakenly changed line

Commit 31f05a37 mistakenly included a line that is supposed to be in a
future commit.  This reverts that until then; and adds a test for it, as
this was not caught by the test suite.

7 years agoINSTALL: Updates to the cross-compilation section
Brian Fraser [Thu, 16 Jan 2014 15:10:53 +0000 (12:10 -0300)]
INSTALL: Updates to the cross-compilation section

7 years agoConfigure: use $undef, not plain undef
Brian Fraser [Thu, 16 Jan 2014 14:50:47 +0000 (11:50 -0300)]
Configure: use $undef, not plain undef

7 years agoREADME.qnx: Add a section for cross-compilation
Brian Fraser [Wed, 15 Jan 2014 20:05:48 +0000 (17:05 -0300)]
README.qnx: Add a section for cross-compilation

7 years agoQNX hints: Add LC_ALL=C to targetenv
Brian Fraser [Wed, 15 Jan 2014 19:02:06 +0000 (16:02 -0300)]
QNX hints: Add LC_ALL=C to targetenv

7 years agoGlossary for targetenv
Brian Fraser [Thu, 30 Jan 2014 06:07:55 +0000 (03:07 -0300)]
Glossary for targetenv

7 years agoConfigure: Added a targetenv variable
Brian Fraser [Wed, 15 Jan 2014 18:56:22 +0000 (15:56 -0300)]
Configure: Added a targetenv variable

Currently this is only used during make test, and allows setting
the environment of the target before running tests.

7 years agoREADME.solaris: Add a section for cross-compilation
Brian Fraser [Wed, 15 Jan 2014 09:39:44 +0000 (06:39 -0300)]
README.solaris: Add a section for cross-compilation

7 years agoConfigure, Solaris hints: Allow cross-compiling to Solaris.
Brian Fraser [Sat, 11 Jan 2014 05:35:35 +0000 (02:35 -0300)]
Configure, Solaris hints: Allow cross-compiling to Solaris.

This only required some minor changes to the Solaris hints, and
adding a few lines for Solaris in the part of Configure that handles
setting osname and osvers when cross-compiling.

7 years agot/io/fs.t: sh in Blackberry might behave like android's
Brian Fraser [Fri, 15 Nov 2013 23:40:43 +0000 (20:40 -0300)]
t/io/fs.t: sh in Blackberry might behave like android's

7 years agoConfigure, qnx hints: Improve the cross-compilation support for QNX
Brian Fraser [Fri, 15 Nov 2013 06:47:38 +0000 (03:47 -0300)]
Configure, qnx hints: Improve the cross-compilation support for QNX

Now, like with Android and plain Linux, cross-compiling to QNX (which
includes newer Blackberry devices) will load hints/

7 years agoMove the RXf_ANCH flags to intflags as PREGf_ANCH_xxx and add RXf_IS_ANCHORED as...
Yves Orton [Thu, 30 Jan 2014 20:43:06 +0000 (04:43 +0800)]
Move the RXf_ANCH flags to intflags as PREGf_ANCH_xxx and add RXf_IS_ANCHORED as a replacement

The only requirement outside of the regex engine is to identify that there is
an anchor involved at all. So we move the 4 anchor flags to intflags and replace
it with a single aggregate flag RXf_IS_ANCHORED in extflags.

This frees up another 3 bits in extflags.

7 years agorename RXf_UNUSED flags to match their BASE_SHIFT offset
Yves Orton [Thu, 30 Jan 2014 18:49:30 +0000 (02:49 +0800)]
rename RXf_UNUSED flags to match their BASE_SHIFT offset

So they stay stable as I move other flags from extflags to intflags

7 years agomove RXf_GPOS_SEEN and RXf_GPOS_FLOAT to intflags
Yves Orton [Thu, 30 Jan 2014 10:35:02 +0000 (18:35 +0800)]
move RXf_GPOS_SEEN and RXf_GPOS_FLOAT to intflags

This required removing the RXf_GPOS_CHECK mask as it uses one flag
that will stay in extflags for now (RXf_ANCH_GPOS), and one flag that
moves to intflags (RXf_GPOS_SEEN). This mask is strange however, as
you cant have RXf_ANCH_GPOS without having RXf_GPOS_SEEN so I dont
know why we test both. Further investigation required.

7 years agoRename RXf_CANY_SEEN to PREGf_CANY_SEEN and move from extflags to intflags
Yves Orton [Thu, 30 Jan 2014 10:07:36 +0000 (18:07 +0800)]
Rename RXf_CANY_SEEN to PREGf_CANY_SEEN and move from extflags to intflags

7 years agomove RXf_NOSCAN from extflags to intflags as PREGf_NOSCAN
Yves Orton [Thu, 30 Jan 2014 06:02:44 +0000 (14:02 +0800)]
move RXf_NOSCAN from extflags to intflags as PREGf_NOSCAN

Includes some improvements to how we dump regexps so that when a regexp
is for the standard perl engine we also show the intflags for the engine

7 years agoUpdate Digest-SHA to CPAN version 5.86
Chris 'BinGOs' Williams [Thu, 30 Jan 2014 15:43:37 +0000 (15:43 +0000)]
Update Digest-SHA to CPAN version 5.86


5.86  Thu Jan 30 08:24:28 MST 2014
  - improved the performance of hexadecimal output functions
    -- ref. 'shahex' in src/sha.c
    -- thanks to Thomas Drugeon for ideas and test script

7 years agoperl5200delta: Tk has been fixed
Father Chrysostomos [Thu, 30 Jan 2014 06:08:48 +0000 (22:08 -0800)]
perl5200delta: Tk has been fixed

7 years agoperl5200delta: Mouse has been fixed
Father Chrysostomos [Thu, 30 Jan 2014 06:04:35 +0000 (22:04 -0800)]
perl5200delta: Mouse has been fixed

7 years agoperldelta for c4cf781e24ac2
Father Chrysostomos [Thu, 30 Jan 2014 06:04:08 +0000 (22:04 -0800)]
perldelta for c4cf781e24ac2

7 years agoop.c: Consistent spaces after dots in apidocs
Father Chrysostomos [Thu, 30 Jan 2014 05:58:18 +0000 (21:58 -0800)]
op.c: Consistent spaces after dots in apidocs

7 years agoperl5200delta: Glib has been fixed
Father Chrysostomos [Thu, 30 Jan 2014 05:54:40 +0000 (21:54 -0800)]
perl5200delta: Glib has been fixed

7 years ago[perl #121068] Mention HTML::FormHandler in perl5200delta
Father Chrysostomos [Thu, 30 Jan 2014 05:52:05 +0000 (21:52 -0800)]
[perl #121068] Mention HTML::FormHandler in perl5200delta

A patch has been submitted.

7 years agoperldelta for e4c0574e9d
Tony Cook [Thu, 30 Jan 2014 04:30:17 +0000 (15:30 +1100)]
perldelta for e4c0574e9d

7 years agoensure we have a reference when we call SvRV()
Tony Cook [Thu, 30 Jan 2014 04:00:11 +0000 (15:00 +1100)]
ensure we have a reference when we call SvRV()

7 years agoperldelta for c23547d5c6
Tony Cook [Thu, 30 Jan 2014 01:02:06 +0000 (12:02 +1100)]
perldelta for c23547d5c6

7 years agoOptimisation for 'my $x; my $y;' -> 'my ($x, $y)'.
Matthew Horsfall [Thu, 9 Jan 2014 02:09:11 +0000 (21:09 -0500)]
Optimisation for 'my $x; my $y;' -> 'my ($x, $y)'.


  sub { my $x; my $y; return 1; }

Up to speed with:

  sub { my ($x, $y); return 1; }

7 years ago[perl #121104] avoid using a less sane find(1)
Tony Cook [Thu, 30 Jan 2014 00:13:41 +0000 (11:13 +1100)]
[perl #121104] avoid using a less sane find(1)

7 years agolocale.c: Fix failure to find UTF-8 locales
Karl Williamson [Wed, 29 Jan 2014 23:44:27 +0000 (16:44 -0700)]
locale.c: Fix failure to find UTF-8 locales

Commit 119ee68b changed the method to determine if a locale is a UTF-8
one to a method that was usable on more platforms, by using the C99 libc
function mbtowc().  I didn't realize that there needs to be a special
call to this function preceeding the main call to make sure it is in the
initial state.  This commit fixes that.

In looking at the results from several different platforms, I decided it
is best to use nl_langinfo() in preference to mbtowc() when available,
and only use mbtowc() if nl_langinfo doesn't exist on the platform or
fails to return a real result, which happens for some locales on Darwin.
This commit does that as well.

7 years agolib/locale.t: Better debug information
Karl Williamson [Wed, 29 Jan 2014 21:59:19 +0000 (14:59 -0700)]
lib/locale.t: Better debug information

This adds a couple of lines of information, and sorts some other output

7 years agoClarify op_free documentation
Matthew Horsfall (alh) [Wed, 29 Jan 2014 17:37:17 +0000 (12:37 -0500)]
Clarify op_free documentation

7 years agoregcomp.c: Process all POSIXes in [...] under /l
Karl Williamson [Wed, 29 Jan 2014 21:38:00 +0000 (14:38 -0700)]
regcomp.c: Process all POSIXes in [...] under /l

Commit 31f05a37 introduced a regression in which if you have something
like /[\s\d[:punct:]/, all but the final class were ignored.  This was
due to initialization happening every time through the loop, instead of
the first time needed.

7 years agoregcomp.c: White-space only
Karl Williamson [Wed, 29 Jan 2014 05:30:37 +0000 (22:30 -0700)]
regcomp.c: White-space only

Properly indent 9 lines.  This makes it easier to see the logic flaws to
be fixed in the next commits.

7 years agot/ find_locales() Don't destroy callers ENV
Karl Williamson [Wed, 29 Jan 2014 16:51:38 +0000 (09:51 -0700)]
t/ find_locales() Don't destroy callers ENV

This code was recently moved from lib/locale.t to a new file essentially
unchanged, so that it could be common code.  It deletes several
environment variables, such as PATH,  to avoid interference with going
out and looking at the locales.  In lib/locale.t, those environment
variables are not needed again, but that isn't true of all the callers.
The solution is simply to localize the removal.

This should fix [perl #121106], but there remain test failures there.

7 years agoremove redundancy in documentation of exec
Ricardo Signes [Wed, 29 Jan 2014 16:38:30 +0000 (11:38 -0500)]
remove redundancy in documentation of exec

exec's behavior is determined by the count of items in LIST, and
not by whether it's an array.

7 years agoupdate embed.fnc now op_null and op_free have docs
David Mitchell [Wed, 29 Jan 2014 14:22:11 +0000 (14:22 +0000)]
update embed.fnc now op_null and op_free have docs

7 years agoPATCH: [perl #121109] locales failing
Karl Williamson [Wed, 29 Jan 2014 02:04:24 +0000 (03:04 +0100)]
PATCH: [perl #121109] locales failing

This was due to a logic error in toFOLD_LC() introduced in
31f05a37c4e9c37a7263491f2fc0237d836e1a80.  It affected only the code
point at 0xB5 and shows up only in locales in which the character at that
code point is an uppercase letter.

7 years agoperldelta for Cow Tools
Father Chrysostomos [Thu, 23 Jan 2014 05:31:04 +0000 (21:31 -0800)]
perldelta for Cow Tools

I somehow missed this.

7 years agoop.c: fix grammar in apidocs
Father Chrysostomos [Wed, 29 Jan 2014 01:55:04 +0000 (17:55 -0800)]
op.c: fix grammar in apidocs

7 years agoFix crash with (??{undef *^R}) and (?{})
Father Chrysostomos [Wed, 29 Jan 2014 01:50:45 +0000 (17:50 -0800)]
Fix crash with (??{undef *^R}) and (?{})

$ ./perl -Ilib -e '"" =~ /(??{undef *^R;""})(?{42})/'
Segmentation fault: 11

This started crashing in 4b22688e5c.

What happens is that the undef frees the scalar pointed to by oreplsv
in regtry,  Then that scalar is reused for the regexp object created
from the return value of the ?? block.  sv_setsv(oreplsv,...) ends up
trying to set the IV slot of a regexp, overwriting the engine field
(sv_setsv probably needs an assertion).  Then later accesses crash
because r->engine is now a bad pointer.

(Though why it only started crashing in 4b22688e5c and not before I
have not figured out.)

The solution is for S_regtry to hang on to the SV with an extra refer-
ence count in case it gets freed.

7 years agodocument op_free and op_null
Daniel Dragan [Tue, 28 Jan 2014 07:32:57 +0000 (02:32 -0500)]
document op_free and op_null


Tony Cook: s/Neutralized/Neutralizes/

7 years agomktables: Refer to an actual commit number
Karl Williamson [Tue, 28 Jan 2014 06:06:46 +0000 (23:06 -0700)]
mktables: Refer to an actual commit number

7 years agoversion has files customized by 858cc5e3f0 and e2ca569edb
Steve Hay [Tue, 28 Jan 2014 13:56:30 +0000 (13:56 +0000)]
version has files customized by 858cc5e3f0 and e2ca569edb

Now logged in as #92536.

7 years agoExtUtils::MakeMaker has files customized by d59900f697 and 8aaffb9f45
Steve Hay [Tue, 28 Jan 2014 13:46:12 +0000 (13:46 +0000)]
ExtUtils::MakeMaker has files customized by d59900f697 and 8aaffb9f45

Now logged in as #92535.

7 years agoConfig::Perl::V has files customized by 0b39d4dc4a
Steve Hay [Tue, 28 Jan 2014 13:45:26 +0000 (13:45 +0000)]
Config::Perl::V has files customized by 0b39d4dc4a

Now logged in as #92534.

7 years agoUpdate autodie to CPAN version 2.23
Chris 'BinGOs' Williams [Tue, 28 Jan 2014 09:19:51 +0000 (09:19 +0000)]
Update autodie to CPAN version 2.23


2.23      2014-01-27 13:50:55EST+1100 Australia/Melbourne

        * TEST / BUGFIX: Improved testing support on Android
          and Blackberry devices. (GH #44, thanks to

        * TEST / INTERNAL / TRAVIS: Various non-code
          tweaks to make travis-ci more happy with testing

        * BUGFIX: autodie no longer weakens strict by allowing
          undeclared variables with the same name as built-ins.
          (RT #74246, thanks to Neils Thykier and Father

        * BUGFIX: `use autodie qw( foo ! foo);` now correctly
          insists that we have hints for foo. (Thanks Niels Thykier)

        * INTERNAL: Improved benchmarking code, thanks to
          Niels Thykier.

7 years agoregcomp.c: Change a variable and flag bit names
Karl Williamson [Tue, 28 Jan 2014 05:42:25 +0000 (22:42 -0700)]
regcomp.c: Change a variable and flag bit names

The meaning of these was expanded two commits ago, so update the name to
reflect this, to prevent future confusion

7 years agoWhite-space, comments only
Karl Williamson [Tue, 28 Jan 2014 05:30:29 +0000 (22:30 -0700)]
White-space, comments only

This mostly indents and outdents base on blocks added or removed by the
previous commit.  But there are a few comment changes and vertical
alignment of macro backslash continuation characters, and other
white-space changes

7 years agoWork properly under UTF-8 LC_CTYPE locales
Karl Williamson [Mon, 27 Jan 2014 22:35:00 +0000 (15:35 -0700)]
Work properly under UTF-8 LC_CTYPE locales

This large (sorry, I couldn't figure out how to meaningfully split it
up) commit causes Perl to fully support LC_CTYPE operations (case
changing, character classification) in UTF-8 locales.

As a side effect it resolves [perl #56820].

The basics are easy, but there were a lot of details, and one
troublesome edge case discussed below.

What essentially happens is that when the locale is changed to a UTF-8
one, a global variable is set TRUE (FALSE when changed to a non-UTF-8
locale).  Within the scope of 'use locale', this variable is checked,
and if TRUE, the code that Perl uses for non-locale behavior is used
instead of the code for locale behavior.  Since Perl's internal
representation is UTF-8, we get UTF-8 behavior for a UTF-8 locale.

More work had to be done for regular expressions.  There are three

1) The character classes \w, [[:punct:]] needed no extra work, as
the changes fall out from the base work.

2) Strings that are to be matched case-insensitively.  These form
EXACTFL regops (nodes).  Notice that if such a string contains only
characters above-Latin1 that match only themselves, that the node can be
downgraded to an EXACT-only node, which presents better optimization
possibilities, as we now have a fixed string known at compile time to be
required to be in the target string to match.  Similarly if all
characters in the string match only other above-Latin1 characters
case-insensitively, the node can be downgraded to a regular EXACTFU node
(match, folding, using Unicode, not locale, rules).  The code changes
for this could be done without accepting UTF-8 locales fully, but there
were edge cases which needed to be handled differently if I stopped
there, so I continued on.

In an EXACTFL node, all such characters are now folded at compile time
(just as before this commit), while the other characters whose folds are
locale-dependent are left unfolded.  This means that they have to be
folded at execution time based on the locale in effect at the moment.
Again, this isn't a change from before.  The difference is that now some
of the folds that need to be done at execution time (in regexec) are
potentially multi-char.  Some of the code in regexec was trivial to
extend to account for this because of existing infrastructure, but the
part dealing with regex quantifiers, had to have more work.

Also the code that joins EXACTish nodes together had to be expanded to
account for the possibility of multi-character folds within locale
handling.  This was fairly easy, because it already has infrastructure
to handle these under somewhat different circumstances.

3) In bracketed character classes, represented by ANYOF nodes, a new
inversion list was created giving the characters that should be matched
by this node when the runtime locale is UTF-8.  The list is ignored
except under that circumstance.  To do this, I created a new ANYOF type
which has an extra SV for the inversion list.

The edge case that caused the most difficulty is folding involving the
MICRO SIGN, U+00B5.  It folds to the GREEK SMALL LETTER MU, as does the
GREEK CAPITAL LETTER MU.  The MICRO SIGN is the only 0-255 range
character that folds to outside that range.  The issue is that it
doesn't naturally fall out that it will match the CAP MU.  If we let the
CAP MU fold to the samll mu at compile time (which it can because both
are above-Latin1 and so the fold is the same no matter what locale is in
effect), it could appear that the regnode can be downgraded away from
EXACTFL to EXACTFU, but doing so would cause the MICRO SIGN to not case
insensitvely match the CAP MU.  This could be special cased in regcomp
and regexec, but I wanted to avoid that.  Instead the mktables tables
are set up to include the CAP MU as a character whose presence forbids
the downgrading, so the special casing is in mktables, and not in the C

7 years agoRename an internal flag
Karl Williamson [Fri, 24 Jan 2014 17:56:35 +0000 (10:56 -0700)]
Rename an internal flag

The UTF8 in the name is kind of misleading, and would be more misleading
after future commits make UTF8 locales special.

7 years agoregcomp.c: Avoid calling heavy duty functions when possible
Karl Williamson [Fri, 24 Jan 2014 03:09:43 +0000 (20:09 -0700)]
regcomp.c: Avoid calling heavy duty functions when possible

This code calls the general purpose functions to fold and convert to
utf8.  These can be avoided for many frequently used code points.

7 years agoregcomp.c: Nit in comments
Karl Williamson [Fri, 24 Jan 2014 02:56:51 +0000 (19:56 -0700)]
regcomp.c: Nit in comments

7 years agoregcomp.c: Swap two else clauses for clarity.
Karl Williamson [Fri, 24 Jan 2014 02:50:12 +0000 (19:50 -0700)]
regcomp.c: Swap two else clauses for clarity.

This makes one clause mostly positive tests, instead of mostly negative
tests; using positives is easier to understand.

7 years agoregen pod issues
Father Chrysostomos [Tue, 28 Jan 2014 04:14:00 +0000 (20:14 -0800)]
regen pod issues

7 years agoIncrease $B::Deparse::VERSION to 1.25
Father Chrysostomos [Tue, 28 Jan 2014 04:09:19 +0000 (20:09 -0800)]
Increase $B::Deparse::VERSION to 1.25

7 years ago[perl #121050] Teach B::Deparse about prototype whitespace
Father Chrysostomos [Tue, 28 Jan 2014 02:07:45 +0000 (18:07 -0800)]
[perl #121050] Teach B::Deparse about prototype whitespace

It has been hanging or unnecessarily using & since commit d16269d835
caused spaces to be preserved in the prototype and stripped when
applied during sub call compilation.  That commit did not update
B::Deparse accordingly.