This is a live mirror of the Perl 5 development currently hosted at
7 years agoChange filter of problematic code points for EBCDIC
Karl Williamson [Fri, 15 May 2015 20:48:23 +0000 (14:48 -0600)]
Change filter of problematic code points for EBCDIC

There are three classes of problematic Unicode code points that may
require special handling.  Which code points are problematic is fairly
complicated, requiring lots of branches.  However, the smallest of them
is 0xD800, which means that most code points in modern use are below
them all, and a single test can be used to exclude just about everything
likely to be encountered.  The problem was that the way this test was
done on EBCDIC caused way too many things to pass and have to be checked
with the more complicated branches.  The digits 0-9 and some capital
letters were not filtered out, for example.  This commit changes the
EBCDIC test to transform into I8 (an array lookup), and this fixes it to
exclude things that shouldn't have passed before.

7 years agoAdd macro for converting Latin1 to UTF-8, and use it
Karl Williamson [Fri, 15 May 2015 16:59:54 +0000 (10:59 -0600)]
Add macro for converting Latin1 to UTF-8, and use it

This adds a macro that converts a code point in the ASCII 128-255 range
to UTF-8, and changes existing code to use it when the range is known to
be restricted to this one, rather than the previous macro which accepted
a wider range (any code point representable by 2 bytes), but had an
extra test on EBCDIC platforms, hence was larger than necessary and
slightly slower.

7 years agoutf8.h: Add assertions to macro
Karl Williamson [Fri, 15 May 2015 16:55:30 +0000 (10:55 -0600)]
utf8.h: Add assertions to macro

7 years agoChange to use UVCHR_SKIP over UNI_SKIP
Karl Williamson [Wed, 13 May 2015 23:38:08 +0000 (17:38 -0600)]
Change to use UVCHR_SKIP over UNI_SKIP

UNI_SKIP is somewhat ambiguous.  Perl has long used 'uvchr' as part of a
name to mean the unsigned values using the native character set plus
Unicode values for those above 255.

This also changes two calls (one in dquote_static.c and one in
dquote_inline.h) to use UVCHR_SKIP; they should not have been OFFUNI, as
they are dealing with native values.

7 years agoQuell compilation warning in regcomp.c
Aaron Crane [Fri, 4 Sep 2015 05:47:22 +0000 (07:47 +0200)]
Quell compilation warning in regcomp.c

This warning affected platforms where U32 is a C long rather than an int. It
was introduced in e4105e89df44935f2a4363ac725ff11e07de35d8.

7 years agoperlapi: Nits
Karl Williamson [Sat, 9 May 2015 03:35:12 +0000 (21:35 -0600)]
perlapi: Nits

7 years agoperlapi: Change slightly weird construct
Karl Williamson [Sat, 9 May 2015 03:25:33 +0000 (21:25 -0600)]
perlapi: Change slightly weird construct

As a native English speaker, I find it clearer to say that a bit vector
has a particular bit set, rather than to say that it includes that bit.

7 years agoperlapi use 'UTF-8' instead of variants of that
Karl Williamson [Sat, 9 May 2015 03:21:17 +0000 (21:21 -0600)]
perlapi use 'UTF-8' instead of variants of that

7 years agoperlapi: Change some 'eg' to 'e.g.'
Karl Williamson [Sat, 9 May 2015 03:19:13 +0000 (21:19 -0600)]
perlapi: Change some 'eg' to 'e.g.'

To make more standard

7 years agoperlapi: Add some S<>
Karl Williamson [Fri, 4 Sep 2015 04:30:56 +0000 (22:30 -0600)]
perlapi: Add some S<>

so that these constructs appear on a single output line for reader

7 years agoVarious pods: Add C<> around many typed-as-is things
Karl Williamson [Thu, 7 May 2015 16:58:54 +0000 (10:58 -0600)]
Various pods: Add C<> around many typed-as-is things

Removes 'the' in front of parameter names in some instances.

7 years agoFix some pedantic pod erros in Thread::Queue
Karl Williamson [Fri, 4 Sep 2015 03:57:43 +0000 (21:57 -0600)]
Fix some pedantic pod erros in Thread::Queue

7 years agoStart fixing some pod pedantic errors
Karl Williamson [Fri, 4 Sep 2015 03:06:16 +0000 (21:06 -0600)]
Start fixing some pod pedantic errors

This fixes a bunch of them, but there are many more

7 years agoperlapi, perlintern: Add L<> links to pod
Karl Williamson [Fri, 24 Apr 2015 00:33:15 +0000 (18:33 -0600)]
perlapi, perlintern: Add L<> links to pod

7 years agoutf8.h: Add macro synonym
Karl Williamson [Fri, 4 Sep 2015 00:30:46 +0000 (18:30 -0600)]
utf8.h: Add macro synonym

The new name is a more accurate description of what it does.

I meant to apply this commit before
d0664088be143e921b2e717524bafddf6a406029, but somehow it didn't happen.
On EBCDIC platforms, that commit will fail to compile without this one,
so could be a problem if ever bisecting on one.

7 years agoimport Time-HiRes v1.9727_02 from CPAN
Ricardo Signes [Fri, 4 Sep 2015 01:25:32 +0000 (21:25 -0400)]
import Time-HiRes v1.9727_02 from CPAN

Normally I would wait for a stable release, which would require
waiting for CPAN Testers results, but CPAN Testers has been in
a bad way for a few weeks now, so I am taking a bit of a detour.

7 years agoXS-APItest/t/svpv_magic.t: Generalize for EBCDIC
Karl Williamson [Mon, 31 Aug 2015 23:36:58 +0000 (17:36 -0600)]
XS-APItest/t/svpv_magic.t: Generalize for EBCDIC

7 years agoXS-APItest/t/svpeek.t: Skip ASCII-centric test on EBCDIC
Karl Williamson [Mon, 31 Aug 2015 23:36:16 +0000 (17:36 -0600)]
XS-APItest/t/svpeek.t: Skip ASCII-centric test on EBCDIC

7 years agoext/XS-APItest/t/svcat.t: Generalize to run on EBCDIC
Karl Williamson [Wed, 26 Aug 2015 04:55:31 +0000 (22:55 -0600)]
ext/XS-APItest/t/svcat.t: Generalize to run on EBCDIC

7 years agot/uni/gv.t: Generalize for EBCDIC
Karl Williamson [Fri, 28 Aug 2015 00:43:52 +0000 (18:43 -0600)]
t/uni/gv.t: Generalize for EBCDIC

Commit 37b8cdd1 added ASCII-centric tests that this now generalizes

7 years agopp.c: White-space only
Karl Williamson [Tue, 1 Sep 2015 04:32:39 +0000 (22:32 -0600)]
pp.c: White-space only

Make it easier to grok what comprises the 'if'

7 years agosv.c: White-space only
Karl Williamson [Fri, 4 Sep 2015 00:42:09 +0000 (18:42 -0600)]
sv.c: White-space only

The previous commit added a surrounding block.  Reindent to correspond

7 years agoMake cmp() work on EBCDIC with both UTF-8 operands
Karl Williamson [Fri, 4 Sep 2015 00:37:35 +0000 (18:37 -0600)]
Make cmp() work on EBCDIC with both UTF-8 operands

Prior to this commit, comparing two UTF-EBCDIC encoded strings did not
work properly, due to the complexities of UTF-EBCDIC in the code point
0-255 range.  This commit adds specialized code to handle this.  The
code could be enabled and work properly on ASCII platforms, but isn't
because a simple memcmp() suffices for these.  Since sort() uses cmp(),
this also fixes UTF-EBCDIC sort.

7 years agouni/lex_utf8.t: Generalize for EBCDIC platforms
Karl Williamson [Mon, 18 May 2015 16:45:10 +0000 (10:45 -0600)]
uni/lex_utf8.t: Generalize for EBCDIC platforms

7 years agoio/utf8.t: Generalize test for ebcdic, better skip msg
Karl Williamson [Fri, 4 Sep 2015 00:07:32 +0000 (18:07 -0600)]
io/utf8.t: Generalize test for ebcdic, better skip msg

7 years agoio/utf8.t: Fix typo in comment
Karl Williamson [Fri, 4 Sep 2015 00:06:03 +0000 (18:06 -0600)]
io/utf8.t: Fix typo in comment

7 years agoregcomp.[ch]: Comment additions, fixes
Karl Williamson [Tue, 25 Aug 2015 02:46:02 +0000 (20:46 -0600)]
regcomp.[ch]: Comment additions, fixes

7 years agoregcomp.h: Reorder some flag definitions.
Karl Williamson [Thu, 3 Sep 2015 17:34:54 +0000 (11:34 -0600)]
regcomp.h: Reorder some flag definitions.

This places the flag bits of like-type flags adjacent for convenience in
reading the code.  It also improves the commentary about their purposes.

7 years agoregcomp.h: SSC no longer has to be strict ANYOF
Karl Williamson [Thu, 3 Sep 2015 16:27:39 +0000 (10:27 -0600)]
regcomp.h: SSC no longer has to be strict ANYOF

Since commit a0bd1a30d379f2625c307657d63fc50173d7a56d, a synthetic start
class node can be just an ANYOF-type node.  I don't think this causes a
bug, just misses a potential optimisation.

7 years agore/regex_sets.t: Suppress $^W expected warnings
Karl Williamson [Tue, 25 Aug 2015 03:06:55 +0000 (21:06 -0600)]
re/regex_sets.t: Suppress $^W expected warnings

When run by hand, this .t outputs expected warnings if the user has
specified -w on the command line, or set $^W.  Just turn that off.

7 years agoaassign.t: better test for DEBUGGING build
David Mitchell [Thu, 3 Sep 2015 18:07:27 +0000 (19:07 +0100)]
aassign.t: better test for DEBUGGING build

turns out $::Config{config_args} isn't portable, while
$::Config{ccflags} is (hopefully).

7 years agoAdd minitest-notty to run minitest as batch.
Jarkko Hietaniemi [Thu, 3 Sep 2015 01:30:53 +0000 (21:30 -0400)]
Add minitest-notty to run minitest as batch.

7 years agoBump Locale-Codes from 3.35 to 3.36
Sullivan Beck [Tue, 1 Sep 2015 14:30:15 +0000 (10:30 -0400)]
Bump Locale-Codes from 3.35 to 3.36

7 years ago[perl #125924] allow op/infnan.t to pass on Win32 gcc
Tony Cook [Tue, 1 Sep 2015 00:41:40 +0000 (10:41 +1000)]
[perl #125924] allow op/infnan.t to pass on Win32 gcc

7 years ago[perl #120903] fix a typo
Tony Cook [Thu, 3 Sep 2015 00:41:40 +0000 (10:41 +1000)]
[perl #120903] fix a typo

or should that be "fix an typo"

7 years agoutfebcdic.h: Clarify comment
Karl Williamson [Thu, 3 Sep 2015 00:10:11 +0000 (18:10 -0600)]
utfebcdic.h: Clarify comment

7 years agoutf8::unicode_to_native() should return UV, not an IV
Karl Williamson [Tue, 1 Sep 2015 04:30:11 +0000 (22:30 -0600)]
utf8::unicode_to_native() should return UV, not an IV

Same for the native_to_unicode()

While it is true that UTF-EBCDIC is limited to a a code point of a
maximum of 2**31 - 1, in order for the correct code to execute to catch
an attempt at a larger one, it needs to be a UV.

7 years agopp_aassign(): fix ($x,$y) = (undef, $x)
David Mitchell [Wed, 2 Sep 2015 11:28:12 +0000 (12:28 +0100)]
pp_aassign(): fix ($x,$y) = (undef, $x)

With 808ce5578203, I tweaked the OPpASSIGN_COMMON flagging to mark as safe
when the LHS or RHS only contains only one var. This turned out to be
flawed for the RHS logic, as position as well as oneness is important:

   (undef, $x) = ...;         # only 1 scalar on LHS: always safe
   ($x, $y)    = (undef, $x); # 2 scalars on RHS: unsafe

So this commit makes undef on the RHS count towards the scalar var count.

7 years agopp_aassign: scan on DEBUGGING builds
David Mitchell [Wed, 2 Sep 2015 10:00:39 +0000 (11:00 +0100)]
pp_aassign: scan on DEBUGGING builds

At compile-time we often decide that a list assign op is safe from
possible commonality (($a,$b) = ($b,$a)), and so skip the run-time
mark-and-sweep commonality finder.

This commit makes it always mark-and-sweep at runtime, and to panic if
if finds commonality when at compile-time we had determined that there
couldn't possibly be any.

This commit fails the t/perf/benchmark.t test as it contains something
which triggers the panic. This will be fixed in the next commit.

7 years ago[perl #120903] perlcall cleanup
Tony Cook [Wed, 2 Sep 2015 06:29:34 +0000 (16:29 +1000)]
[perl #120903] perlcall cleanup

- linkify references to sections

- use EXTEND(SP, n) and PUSHs() instead of XPUSHs() where applicable
  and update prose to match

- add POPu, POPul and POPpbytex to the "complete list of POP macros"
  and clarify the documentation for some of the existing entries, and
  a note about side-effects

- add API documentation for POPu and POPul

- use ERRSV more efficiently

- approaches to thread-safety storage of SVs.

- minor updates

7 years agoReformat code in .pm files in bignum distribution.
Peter John Acklam [Fri, 28 Aug 2015 14:37:32 +0000 (16:37 +0200)]
Reformat code in .pm files in bignum distribution.

* Reformat code to make it more readable. The code should adhere to the
  guidelines in the 'perlstyle' manpage. All changes are in the amount
  of whitespace, e.g., all TAB characters are replaced by spaces. There
  are no changes in the way the code runs.

* Increment version number to 0.40.

7 years agoReplace '-w' ref in SEE ALSO with 'use warnings'
John SJ Anderson [Fri, 28 Aug 2015 01:17:06 +0000 (18:17 -0700)]
Replace '-w' ref in SEE ALSO with 'use warnings'

7 years agoAdd John SJ Anderson to AUTHORS
Karl Williamson [Tue, 1 Sep 2015 22:07:22 +0000 (16:07 -0600)]
Add John SJ Anderson to AUTHORS

7 years agoPATCH: [perl #125947] Doc error in perlunicode
Karl Williamson [Tue, 1 Sep 2015 13:48:47 +0000 (07:48 -0600)]
PATCH: [perl #125947] Doc error in perlunicode

7 years agoprevent warning noise on mingw-64 builds
Tony Cook [Tue, 1 Sep 2015 05:17:08 +0000 (15:17 +1000)]
prevent warning noise on mingw-64 builds

The following was produced for every non-miniperl object built,
including for XS modules and the test builds done by
ExtUtils::MakeMaker etc

..\iperlsys.h:640:66: warning: 'struct utimbuf' declared inside parameter list
 typedef int  (*LPLIOUtime)(struct IPerlLIO*, const char*, struct utimbuf*);
..\iperlsys.h:640:66: warning: its scope is only this definition or declaration,
 which is probably not what you want

7 years agoImprove regex debug output for unbounded curly quantifiers
Aaron Crane [Mon, 31 Aug 2015 18:50:45 +0000 (19:50 +0100)]
Improve regex debug output for unbounded curly quantifiers

A regex like /^a{5,}\z/ will match any string consisting exactly of 5 or
more "a" characters, but under debugging, the quantifier was previously
displayed as the numeric value of REG_INFTY (usually 32767). This commit
causes the upper bound to be displayed as "INFTY".

7 years agoPorting: Updated version of EU::ParseXS on CPAN
Steffen Mueller [Mon, 31 Aug 2015 08:48:25 +0000 (10:48 +0200)]
Porting: Updated version of EU::ParseXS on CPAN

7 years agoExtUtils::ParseXS: Promote version to 3.30
Steffen Mueller [Mon, 31 Aug 2015 08:39:27 +0000 (10:39 +0200)]
ExtUtils::ParseXS: Promote version to 3.30

To correspond to stable CPAN release.

7 years agoensure the perldelta version is updated in win32/GNUmakefile
Tony Cook [Mon, 31 Aug 2015 00:08:45 +0000 (10:08 +1000)]
ensure the perldelta version is updated in win32/GNUmakefile

7 years agobump perldelta versions in GNUmakefile
Tony Cook [Sun, 30 Aug 2015 23:50:47 +0000 (09:50 +1000)]
bump perldelta versions in GNUmakefile

7 years agoRT #125840 stop *x = $x doing bad things
David Mitchell [Sun, 30 Aug 2015 08:48:28 +0000 (09:48 +0100)]
RT #125840 stop *x = $x doing bad things

If $x is a GV then *x's GP would be freed before $x's GP is assigned to
it. That would prematurely free $x, so protect it with a temporary ref
count bump.

7 years agoAdd epigraph for 5.20.3-RC2
Steve Hay [Sat, 29 Aug 2015 22:32:13 +0000 (23:32 +0100)]
Add epigraph for 5.20.3-RC2

7 years agoPerl 5.20.3-RC2 today
Steve Hay [Sat, 29 Aug 2015 21:05:44 +0000 (22:05 +0100)]
Perl 5.20.3-RC2 today

7 years agoDeclare compatibility with newer released versions of Windows
Jan Dubois [Fri, 31 Jul 2015 00:23:11 +0000 (17:23 -0700)]
Declare compatibility with newer released versions of Windows

This will make sure the GetVersionEx() is not going to lie to us
about the version of Windows we are running on.

7 years agoUpdate Win32 to CPAN version 0.52
Jan Dubois [Wed, 26 Aug 2015 19:39:19 +0000 (12:39 -0700)]
Update Win32 to CPAN version 0.52


0.52    [2015-08-19]
        - minimal Windows 10 support (thanks to Joel Maslak) [PR/8]
        - refactor Windows 10 support to include ProductInfo flags
        - add tests for Windows 8.1, 10, and 2012 R2 server
        - define additional ProductInfo flags (TODO: add support for
          these codes in _GetOSName)

7 years agoUse personal email address for Jan Dubois
Jan Dubois [Wed, 26 Aug 2015 19:51:25 +0000 (12:51 -0700)]
Use personal email address for Jan Dubois

7 years agoAUTHORS for 8c1ed856
Jarkko Hietaniemi [Thu, 27 Aug 2015 13:05:31 +0000 (09:05 -0400)]
AUTHORS for 8c1ed856

7 years agoThe #ifdef NV_MIN_EXP straddled the if () braces.
Andy Broad [Wed, 26 Aug 2015 00:04:01 +0000 (20:04 -0400)]
The #ifdef NV_MIN_EXP straddled the if () braces.

Though non-straddling, make the NV_MAX_EXP case identical.

7 years agoperldelta for e6b2cf838
Tony Cook [Thu, 27 Aug 2015 04:15:21 +0000 (14:15 +1000)]
perldelta for e6b2cf838

7 years ago[perl #125341] check for unexpected trash after any sub start
Tony Cook [Mon, 24 Aug 2015 01:46:35 +0000 (11:46 +1000)]
[perl #125341] check for unexpected trash after any sub start

7 years agoAvoid %Config check on Errno load if it was built with PERL_BUILD_EXPAND_CONFIG_VARS
Todd Rinaldo [Wed, 26 Aug 2015 21:49:58 +0000 (16:49 -0500)]
Avoid %Config check on Errno load if it was built with PERL_BUILD_EXPAND_CONFIG_VARS

Any person who built perl with this environment variable already has locked their
install to the given platform. Therefore this check should be unnecessary on
those installs. This reduces runtime bloat because Config does not have to be
loaded any time someone uses $! or Errno directly.

7 years agoDo not inject use Config into when PERL_BUILD_EXPAND_CONFIG_VARS
Todd Rinaldo [Wed, 26 Aug 2015 20:21:22 +0000 (15:21 -0500)]
Do not inject use Config into when PERL_BUILD_EXPAND_CONFIG_VARS

The rest of the file automatically expanded Config variables, however the
module was still accidentally loaded. This commit corrects the oversight.

7 years agoOne more FD_CLOEXEC case, missed in 131d45a9.
Jarkko Hietaniemi [Wed, 26 Aug 2015 23:57:08 +0000 (19:57 -0400)]
One more FD_CLOEXEC case, missed in 131d45a9.

7 years agoExplicitly use and check for FD_CLOEXEC.
Jarkko Hietaniemi [Wed, 26 Aug 2015 12:55:37 +0000 (08:55 -0400)]
Explicitly use and check for FD_CLOEXEC.

This may break places which have the FD_CLOEXEC functionality
but do not have the FD_CLOEXEC define.

In any case, using a boolean for the F_SETFD flag is icky.
Using an explicit 1 is also dubious.

7 years agoNote that the all the fd flags are saved/restored.
Jarkko Hietaniemi [Wed, 26 Aug 2015 12:53:45 +0000 (08:53 -0400)]
Note that the all the fd flags are saved/restored.

FD_CLOEXEC is currently usually the only defined fd flag
for F_GETFD/F_SETFD, but let's not assume that.

7 years agolib/utf8.t: EBCDIC fixes
Karl Williamson [Mon, 18 May 2015 17:16:18 +0000 (11:16 -0600)]
lib/utf8.t: EBCDIC fixes

Some of the test chose code points that did not match its assumptions as
to their classifications.

And some of the tests were extended to work on 1047 EBCDIC

7 years agot/op/split.t: Generalize for EBCDIC
Karl Williamson [Mon, 18 May 2015 16:18:51 +0000 (10:18 -0600)]
t/op/split.t: Generalize for EBCDIC

Whatever the bug was that caused some of these to need to be skipped,
it's gone now.  Also some of the tests are easily adapted to work on
EBCDIC platforms.

7 years agoperlguts: Wrap macro name with C<>
Karl Williamson [Thu, 7 May 2015 03:05:19 +0000 (21:05 -0600)]
perlguts: Wrap macro name with C<>

7 years agot/op/utf8decode.t: Better SKIP message
Karl Williamson [Mon, 18 May 2015 16:30:57 +0000 (10:30 -0600)]
t/op/utf8decode.t: Better SKIP message

7 years agolib/utf8.t: Add some tests to stress EBCDIC
Karl Williamson [Mon, 18 May 2015 16:47:50 +0000 (10:47 -0600)]
lib/utf8.t: Add some tests to stress EBCDIC

The tests for the Latin1 \xFF aren't a fair test of UTF-8 on EBCDIC
platforms, because it is generally a UTF-8 invariant character, so is
the same regardless of being in UTF-8 or not.  This adds some tests
where the UTF-EBCDIC version is 2 bytes (as well as the UTF-8 version).

7 years agot/base/lex.t: Use more standard test for EBCDIC
Karl Williamson [Mon, 18 May 2015 16:02:08 +0000 (10:02 -0600)]
t/base/lex.t: Use more standard test for EBCDIC

This makes it easier to grep for these things.  The typical test is for
the ord("A"), not some other character.  Since this is in t/base, it
doesn't use helper scripts.

7 years agot/op/tr.t: Clarify skip tests message
Karl Williamson [Fri, 15 May 2015 19:34:07 +0000 (13:34 -0600)]
t/op/tr.t: Clarify skip tests message

7 years agoop/chr.t: Better skip message
Karl Williamson [Wed, 19 Aug 2015 01:49:02 +0000 (19:49 -0600)]
op/chr.t: Better skip message

7 years agoVarious .t files: Use globals to see if on EBCDIC
Karl Williamson [Fri, 3 Apr 2015 18:06:39 +0000 (12:06 -0600)]
Various .t files: Use globals to see if on EBCDIC

These globals are already available; by using them instead of rolling
our own, it makes it easer to grep for these kinds of instances.

7 years agoRevert "Update Pod-Simple to CPAN version 3.31"
Tony Cook [Tue, 25 Aug 2015 02:08:45 +0000 (12:08 +1000)]
Revert "Update Pod-Simple to CPAN version 3.31"

This reverts commit 354f3e4ea74293dacec2ca84d3762435e9c45701.

This broken Win32 builds, see

7 years agoperldelta: Fix typo
Karl Williamson [Mon, 24 Aug 2015 20:07:32 +0000 (14:07 -0600)]
perldelta: Fix typo

Spotted by Lukas Mai

7 years agotest implicit anchors using [perl #125810]
Lukas Mai [Mon, 24 Aug 2015 19:43:11 +0000 (21:43 +0200)]
test implicit anchors using [perl #125810]

7 years agoimplicitly anchor .{0,} like .* [perl #125810]
Lukas Mai [Mon, 24 Aug 2015 19:42:38 +0000 (21:42 +0200)]
implicitly anchor .{0,} like .* [perl #125810]

7 years agoregexec.c: Move a #define next to related code
Karl Williamson [Sun, 23 Aug 2015 16:45:43 +0000 (10:45 -0600)]
regexec.c: Move a #define next to related code

One message here uses a static array, and one uses a #define.  I don't
think it really matters, but they should be adjacent.

7 years agoOutput bad locale warning in regex synthetic start class
Karl Williamson [Sun, 23 Aug 2015 16:45:22 +0000 (10:45 -0600)]
Output bad locale warning in regex synthetic start class

perl detects some locale errors when a new locale is entered.  It stores
these up to output upon first use of something that uses that locale.  A
synthetic start class (SSC) is used by the regex optimizer under certain
circumstances.  Prior to this patch, it was possible for the stored up
bad locale message to not be raised if the match failed the SSC.  This
patch fixes this by changing the node type of the SSC to be one that
checks for the stored-up message should there be locale-dependent
portions of the pattern.

7 years agoPATCH: [perl 125825] {n}+ possessive quantifier broken
Karl Williamson [Mon, 24 Aug 2015 18:50:47 +0000 (12:50 -0600)]
PATCH: [perl 125825] {n}+ possessive quantifier broken

I was unaware of this construct when I wrote the commit that broke it,
and there were no tests for it.  Now there are.

7 years agoFurther clarification to [perl #125805] perldelta
Karl Williamson [Mon, 24 Aug 2015 19:35:52 +0000 (13:35 -0600)]
Further clarification to [perl #125805] perldelta

7 years agoMake qr/(?[ ])/ work in UTF-8 locales
Karl Williamson [Sun, 23 Aug 2015 16:30:02 +0000 (10:30 -0600)]
Make qr/(?[ ])/ work in UTF-8 locales

Previously use of this under /l regex rules was a compile time error.
Now it works like \b{wb} and \b{sb}, which compile under locale rules
and always work like Unicode says they should.  A UTF-8 locale implies
Unicode rules, and the goal is for it to work seamlessly with the rest
of perl.  This construct was the only one I am aware of that didn't work
seamlessly (not counting OS interfaces) under UTF-8 LC_CTYPE locales.

For all three of these constructs, use with a non-UTF-8 runtime locale
raises a warning, and Unicode rules are used anyway.

UTF-8 locale collation still has problems, but this is low priority to
fix, as it's a lot of work, and if one really cares, one should be using

7 years agoregcomp.c: Add a parameter to static function
Karl Williamson [Sun, 23 Aug 2015 16:25:16 +0000 (10:25 -0600)]
regcomp.c: Add a parameter to static function

This will be used by the next commit

7 years agoregcomp.h: Fold 2 ANYOF flags into a single one
Karl Williamson [Sat, 22 Aug 2015 04:21:57 +0000 (22:21 -0600)]
regcomp.h: Fold 2 ANYOF flags into a single one

The ANYOF_FLAGS bits are all used up, but a future commit wants one.
This commit frees up a bit by sharing two of the existing
comparatively-rarely-used ones.  One bit is used only under /d matching
rules, while the other is used only when not under /d.  Only the latter
bit is used in synthetic start classes.  The previous commit introduced
an ANYOFD node type corresponding to /d.  An SSC never is this type.
Thus, the bits have mutually exclusive meanings, and we can use the node
type to distinguish between the two meanings of the combined bit.

An alternative implementation would have been to use the
ANYOF_HAS_NONBITMAP_NON_UTF8_MATCHES non-/d bit instead of the one
chosen.  But this is used more frequently, so the disambiguation would
have been exercised more frequently, slowing execution down ever so
slightly; more importantly, this one required fewer code changes, by a
slight amount.

7 years agoAdd ANYOFD regex node
Karl Williamson [Fri, 21 Aug 2015 19:06:53 +0000 (13:06 -0600)]
Add ANYOFD regex node

This is like an ANYOF node, but just for when /d is in effect.  It will
be used in future commits

7 years agoperldebguts: Add clarification
Karl Williamson [Fri, 21 Aug 2015 15:54:05 +0000 (09:54 -0600)]
perldebguts: Add clarification

7 years agoperldelta: Improve wording for [perl #125805]
Karl Williamson [Mon, 24 Aug 2015 17:17:46 +0000 (11:17 -0600)]
perldelta: Improve wording for [perl #125805]

7 years agopodcheck.t: regenerate db
Karl Williamson [Mon, 24 Aug 2015 17:03:18 +0000 (11:03 -0600)]
podcheck.t: regenerate db

Commit e128eaa17ab039e9db53073c7ac6c5093b3628d9 introduced 2 new overly
long verbatim pod lines that were causing podcheck.t failures in
pedantic mode.  This suppresses those failures.

7 years agoPATCH: [perl #125805] Perl segfaults with a regex_sets error message
Karl Williamson [Mon, 24 Aug 2015 03:39:04 +0000 (21:39 -0600)]
PATCH: [perl #125805] Perl segfaults with a regex_sets error message

This fix required an extra test of the return value of a function.

7 years agoUpdate Pod-Simple to CPAN version 3.31
Chris 'BinGOs' Williams [Mon, 24 Aug 2015 10:06:47 +0000 (11:06 +0100)]
Update Pod-Simple to CPAN version 3.31


2015-08-23   Marc Green <>
  * Release 3.31
  No changes since 3.30_1.

2015-07-19   Marc Green <>
  * Release 3.30_1
  Simplified the detection of case-insensitivity in Pod::Simple::Search.

  Fixed "Use of uninitialized value $1 in lc" warning in

  If @INC includes the current directory symbol, '.', the survey()
  method of Pod::Simple::Search no longer excludes it from its list
  of directories to search. Instead, The survey() and find() methods
  now both exclude duplicate directories from @INC (RT #102344).

  Moved source repository and updated links to new perl-pod GitHub

  Improved repository links and added GitHub issue tracking link to
  the distribution metadata.

  Switched from File::Spec's catdir to catfile for path names, to
  fix failures on VMS. Also now use Unix path semantics where
  they're not required to be platform-specific. Thanks to Craig A.
  Berry for the patch (RT #105511).

  Improved the example use of the 'html_encode_chars()' method in
  the Pod::Simple::XHTML documentation. Patch from Randy Stauner.

7 years agoUpgrade to Thread::Queue 3.06
Jerry D. Hedden [Sat, 22 Aug 2015 20:40:50 +0000 (16:40 -0400)]
Upgrade to Thread::Queue 3.06

For: RT #125864

7 years agoAdd missing URL for 5.23.2 release announcement
Steve Hay [Sat, 22 Aug 2015 22:38:32 +0000 (23:38 +0100)]
Add missing URL for 5.23.2 release announcement

7 years agoAdd epigraph for 5.20.3-RC1
Steve Hay [Sat, 22 Aug 2015 22:37:10 +0000 (23:37 +0100)]
Add epigraph for 5.20.3-RC1

7 years agoPerl 5.20.3-RC1 today
Steve Hay [Sat, 22 Aug 2015 20:27:24 +0000 (21:27 +0100)]
Perl 5.20.3-RC1 today

7 years agoImport Module::CoreList changes for 5.20.3-RC1
Steve Hay [Sat, 22 Aug 2015 20:22:37 +0000 (21:22 +0100)]
Import Module::CoreList changes for 5.20.3-RC1

7 years agoRemove superfluous line in code sample.
James E Keenan [Sat, 22 Aug 2015 00:24:52 +0000 (20:24 -0400)]
Remove superfluous line in code sample.

Per suggestion by Egor Korablev in RT #125860.

7 years agoPOSIX: version bump for d7a0f0b
Jarkko Hietaniemi [Fri, 21 Aug 2015 12:33:21 +0000 (08:33 -0400)]
POSIX: version bump for d7a0f0b

7 years agoPOSIX: mention the Inf, NaN constants; other small tweaks
Jarkko Hietaniemi [Fri, 21 Aug 2015 12:25:10 +0000 (08:25 -0400)]
POSIX: mention the Inf, NaN constants; other small tweaks

7 years agomktables: Comment changes only
Karl Williamson [Thu, 20 Aug 2015 17:52:51 +0000 (11:52 -0600)]
mktables: Comment changes only