4 hours agoop_sibling_splice(): handle custom ops blead
David Mitchell [Mon, 27 Apr 2015 13:02:38 +0000]
op_sibling_splice(): handle custom ops

op_sibling_splice() decides whether a parent op has an op_last field
that needs updating based on the op's class. However, it it didn't
handle OP_CUSTOM ops.

Spotted by Zefram.

25 hours agoperlhacktips: Add character set portability tip
Karl Williamson [Sun, 26 Apr 2015 15:37:39 +0000]
perlhacktips: Add character set portability tip

25 hours agoperlhacktips: Nit, clarification
Karl Williamson [Sun, 26 Apr 2015 15:37:11 +0000]
perlhacktips: Nit, clarification

2 days ago[perl #123737] Fix assertion failure with 0$#{
David Mitchell [Sat, 25 Apr 2015 16:07:03 +0000]
[perl #123737] Fix assertion failure with 0$#{

This is a follow-up to FC's 488bc579589, which stopped assertion
failures on parsing 0${. A similar code path still failed with

The fix is similar to the previous fix, although I suspect a more general
fix is needed - perhaps moving the fixes into S_no_op() - but not this
close to the 5.22 release.

3 days agocorrect the deprecation data in Module::CoreList
Aristotle Pagaltzis [Fri, 24 Apr 2015 03:04:56 +0000]
correct the deprecation data in Module::CoreList

3 days agoperlapi: Wrap long verbatim lines to 79 columns
Karl Williamson [Fri, 24 Apr 2015 00:10:31 +0000]
perlapi: Wrap long verbatim lines to 79 columns

3 days agoRegen podcheck db
Karl Williamson [Fri, 24 Apr 2015 00:21:38 +0000]
Regen podcheck db

Recent commits have caused it to fail under -i-pedantic

4 days agoCoreList: eliminate trailing spaces from some versions
Ricardo Signes [Thu, 23 Apr 2015 11:50:53 +0000]
CoreList: eliminate trailing spaces from some versions

reported by perlancar, [perl #124364]

4 days agoix t/uni.parser.t under EBCDIC
David Mitchell [Thu, 23 Apr 2015 11:31:34 +0000]
ix t/uni.parser.t under EBCDIC

A test I added recently made assumptions about what bytes a char
utf8-encodes, which are different under UTF-EBCDIC.

4 days ago[perl #124357] make sure which_perl() can find ./perl on in op/dump.t tonyc/openbsd-dump
Tony Cook [Tue, 21 Apr 2015 03:50:58 +0000]
[perl #124357] make sure which_perl() can find ./perl on in op/dump.t

OpenBSD doesn't set $^X to an absolute path. and since op/dump.t
chdir()s to a temp directory, which_perl() produced "./perl" which
is useless in the new directory.

Instead manually set $^X to an absolute path so which_perl() can find
it after the chdir.  This should be safe on the platforms we allow
op/dump.t to run on.

4 days agoperlebcdic: Correction, clarification
Karl Williamson [Wed, 22 Apr 2015 15:25:43 +0000]
perlebcdic: Correction, clarification

5 days agoRT #124207: assert failure in ck_stringify()
David Mitchell [Wed, 22 Apr 2015 15:26:40 +0000]
RT #124207: assert failure in ck_stringify()

v5.21.4-416-g73f4c4f converted (among other things) stringify(join(...))
into just join(...).  It asserted that the stringify didn't have any extra
children, which it won't normally do, since in something like "@a-" the
elements of the stringify get bundled up into a single tree of concats
etc, and stringify just sees a single top-level join or concat or
whatever. However during error recovery weird stuff can get left on the

So rather than asserting no more kids, skip the optimisation if there are
more kids.

5 days agos/.../$_++/ge assertion failure
David Mitchell [Wed, 22 Apr 2015 11:27:36 +0000]
s/.../$_++/ge assertion failure

The code that updated pos() on a match string assumed that it was SvPOK().
Cunning code like the following converted $_ to SvIOK only:

    $_ = 0;

6 days agoModule-CoreList-5.20150420 is now on CPAN (thanks BinGOs!)
Steve Hay [Mon, 20 Apr 2015 23:38:05 +0000]
Module-CoreList-5.20150420 is now on CPAN (thanks BinGOs!)

6 days agoPrepare Module::CoreList for 5.21.12 (although it's unlikely to happen)
Steve Hay [Mon, 20 Apr 2015 23:19:51 +0000]
Prepare Module::CoreList for 5.21.12 (although it's unlikely to happen)

6 days agoBump version for 5.21.12 (although it's unlikely to happen)
Steve Hay [Mon, 20 Apr 2015 23:03:07 +0000]
Bump version for 5.21.12 (although it's unlikely to happen)

6 days agoCreate new perldelta for 5.21.12 (although it's unlikely to happen)
Steve Hay [Mon, 20 Apr 2015 22:52:47 +0000]
Create new perldelta for 5.21.12 (although it's unlikely to happen)

6 days ago5.21.11 is now released
Steve Hay [Mon, 20 Apr 2015 22:40:34 +0000]
5.21.11 is now released

6 days agoTwo-space indent for poetry in epigraphs.pod
Steve Hay [Mon, 20 Apr 2015 22:39:34 +0000]
Two-space indent for poetry in epigraphs.pod

6 days agoAdd 5.21.11 epigraph
Steve Hay [Mon, 20 Apr 2015 22:37:09 +0000]
Add 5.21.11 epigraph

6 days ago5.21.11 today v5.21.11
Steve Hay [Mon, 20 Apr 2015 19:40:07 +0000]
5.21.11 today

6 days agoFinalize perldelta
Steve Hay [Mon, 20 Apr 2015 19:39:53 +0000]
Finalize perldelta

6 days agoUpdate Module::CoreList for 5.21.11
Steve Hay [Mon, 20 Apr 2015 19:31:25 +0000]
Update Module::CoreList for 5.21.11

6 days agoperldelta - Wrap to 79 columns and other minor copy-editing
Steve Hay [Mon, 20 Apr 2015 19:27:13 +0000]
perldelta - Wrap to 79 columns and other minor copy-editing

6 days agoperldelta - Remove boilerplate sections except for Acknowledgements
Steve Hay [Mon, 20 Apr 2015 19:12:40 +0000]
perldelta - Remove boilerplate sections except for Acknowledgements

6 days agoperldelta - Fill in rt.perl.org links
Steve Hay [Mon, 20 Apr 2015 19:07:49 +0000]
perldelta - Fill in rt.perl.org links

6 days agoperldelta - One more module update
Steve Hay [Mon, 20 Apr 2015 19:07:11 +0000]
perldelta - One more module update

7 days agoCPAN.pm: Fix "Redundant argument in sprintf"
Andreas Koenig [Mon, 20 Apr 2015 16:11:01 +0000]
CPAN.pm: Fix "Redundant argument in sprintf"

RT #122159

5.22-tobe includes a new warning type, "Redundant argument in sprintf".
Stop CPAN emitting such a warning.

To quote Andreas from the ticket:
"I'll jump to 2.12 then in my copy and will not release a 2.11"

7 days agoperldelta - Update with remaining changes
Steve Hay [Mon, 20 Apr 2015 13:22:01 +0000]
perldelta - Update with remaining changes

7 days agoSkip testing for PL_warn_locale
Max Maischein [Wed, 8 Apr 2015 16:59:26 +0000]
Skip testing for PL_warn_locale

When building Perl without locale support, as it happens to be the
situation on Android, that symbol is not available for exporting. So
we always skip it.

7 days agoperldelta - Begin updating with bug fixes etc
Steve Hay [Mon, 20 Apr 2015 08:07:13 +0000]
perldelta - Begin updating with bug fixes etc

7 days agoperldelta - Document new test script
Steve Hay [Mon, 20 Apr 2015 07:34:50 +0000]
perldelta - Document new test script

7 days agoperldelta - Documentation updates
Steve Hay [Mon, 20 Apr 2015 07:34:19 +0000]
perldelta - Documentation updates

7 days agoperldelta - Update modules
Steve Hay [Mon, 20 Apr 2015 07:27:13 +0000]
perldelta - Update modules

7 days agoperldiag: escape all "<--HERE"
SHIRAKATA Kentaro [Sat, 18 Apr 2015 15:24:51 +0000]
perldiag: escape all "<--HERE"

Committer: Correct two instances of double 'S<' encoding.

For: RT # 124334

7 days ago[MERGE] update PERL_OP_PARENT implementation
David Mitchell [Sun, 19 Apr 2015 18:24:03 +0000]
[MERGE] update PERL_OP_PARENT implementation

* op_sibling renamed op_sibparent on PERL_OP_PARENT builds
* renamed op_lastsib to op_moresib
* Perl_op_parent() now only available on PERL_OP_PARENT builds
* OpSIBLING_set removed
* OpMORESIB_set OpLASTSIB_set OpMAYBESIB_set added
* op_sibling_splice() accepts a NULL parent arg

See the thread starting

7 days agoperldelta for PERL_OP_PARENT changes
David Mitchell [Sun, 19 Apr 2015 18:21:48 +0000]
perldelta for PERL_OP_PARENT changes

7 days agoadd Op(MORE|LAST|MAYBE)SIB_set; rm OpSIBLING_set
David Mitchell [Fri, 17 Apr 2015 22:59:46 +0000]

the OpSIBLING_set() macro just set the op_sibling/op_sibparent field,
and didn't update op_moresib.

Remove this macro, and replace it with the three macros


which also set op_moresib appropriately. These were suggested by Zefram.

Then in the remaining areas in op.c where low-level op_sibling/op_moresib
tweaking is done, use the new macros instead (so if nothing else, they get
used and tested.)

7 days agoop_parent(): only exist under -DPERL_OP_PARENT
David Mitchell [Fri, 17 Apr 2015 19:38:49 +0000]
op_parent(): only exist under -DPERL_OP_PARENT

Make the function Perl_op_parent() only be present in perls built with
-DPERL_OP_PARENT. Previously the function was present in all builds, but
always returned NULL on non PERL_OP_PARENT builds.

7 days agorpeep(): use op_sibling_splice()
David Mitchell [Fri, 17 Apr 2015 19:12:54 +0000]
rpeep(): use op_sibling_splice()

There is an optimisation in rpeep() to convert the optree produced
by 'my $x; my $x' into the optree that would have been produced by
'my ($x, $y)', which allows a padrange optimisation to kick in a bit

Currently the optree is morphed at this point by directly using
OpSIBLING_set() etc. This commit makes it use op_sibling_splice() instead.
We can do this following on from the previous commit, which allows
op_sibling_splice() to be used when we don't know the parent, as long as
we are only splicing in the middle of the children, not at either end.

As well as being cleaner, it also serves as a test for the new feature
of op_sibling_splice().

7 days agoop_sibling_splice(): allow NULL parent arg
David Mitchell [Fri, 17 Apr 2015 16:50:36 +0000]
op_sibling_splice(): allow NULL parent arg

If the splicing doesn't affect the first or last sibling of an op_sibling
chain, then we don't need access to the parent op of the siblings (to
access/update op_first, op_last, OPf_KIDS etc). So allow an NULL parent
arg in that case.

7 days agorename op_lastsib to op_moresib, and invert logic
David Mitchell [Fri, 17 Apr 2015 15:52:20 +0000]
rename op_lastsib to op_moresib, and invert logic

Rather than having a flag which indicates that there are no more siblings,
have a flag which indicates that there are more siblings. This flag was
only introduced during the current blead cycle, so no production releases
know about it.

7 days agoop_sibling => op_sibparent under PERL_OP_PARENT
David Mitchell [Fri, 17 Apr 2015 14:15:57 +0000]
op_sibling => op_sibparent under PERL_OP_PARENT

On perls built under -DPERL_OP_PARENT, rename the op_sibling OP field
to op_sibparent, since it can now contain either a pointer to the next
sibling if not the last sibling, or back to the parent if it is.

Code written to work under PERL_OP_PARENT should be using macros like
OpSIBLING() rather than accessing op_sibling directly, so this should
be a transparent change. It will also make code naughtily accessing this
field directly give a compile error.

7 days agoskip some asserts on non-PERL_OP_PARENT builds
David Mitchell [Wed, 15 Apr 2015 15:05:05 +0000]
skip some asserts on non-PERL_OP_PARENT builds

Some asserts I added for for the op_lastsib stuff, while correct
on non-PERL_OP_PARENT builds, aren't necessary, and just increase the
risk of breakage of some hypothetical CPAN module that is doing strange

8 days agoperlop: Nits and update for v5.22
Karl Williamson [Sun, 19 Apr 2015 02:29:34 +0000]
perlop: Nits and update for v5.22

8 days agoperlhack: Nits and update for v5.22
Karl Williamson [Thu, 16 Apr 2015 16:22:14 +0000]
perlhack: Nits and update for v5.22

8 days agot/loc_tools.pl: Comments only
Karl Williamson [Thu, 16 Apr 2015 16:18:09 +0000]
t/loc_tools.pl: Comments only

The next commit will make this file publicly known.  Add comments that
some functions are internal only.

8 days agofix some minor compiler warnings
David Mitchell [Sat, 18 Apr 2015 17:47:14 +0000]
fix some minor compiler warnings

S_deb_curcv's first param differed in constness between declaration and

GIMME_V can return an I32, so don't assign it to a U8.

8 days agoSmall typographical corrections to documentation.
SHIRAKATA Kentaro [Sat, 18 Apr 2015 17:46:39 +0000]
Small typographical corrections to documentation.

Commit modifies 4 of 5 files in patch submitted by author in RT #124335.

9 days agodo not index the modules under lib/perl5db
Ricardo Signes [Sat, 18 Apr 2015 13:33:41 +0000]
do not index the modules under lib/perl5db

These are there for testing, and there is nothing to index
under lib/perl5db anyway.  This has, in the past, led to junk
in 02packages.

I think this is probably not the perfect way to do this, but
it works and also does not seem like the worst way...

10 days agoupdates to perlbook.pod
Herbert Breunung [Fri, 17 Apr 2015 11:57:58 +0000]
updates to perlbook.pod

10 days agoGrammatical correction in inline comment.
James E Keenan [Fri, 17 Apr 2015 10:54:27 +0000]
Grammatical correction in inline comment.

10 days agofix t/uni/parser.t test
David Mitchell [Fri, 17 Apr 2015 10:39:12 +0000]
fix t/uni/parser.t test

The test I recently added expected a specific set of error strings to
be output when running a small expected-fail program. One of those strings
was 'Wide character in print', which doesn't appear if the test is
run under PERL_UNICODE="".

So replace the expected string with a regex.

10 days agocorelist: use || not // to run on older perls
Ricardo Signes [Thu, 16 Apr 2015 20:38:01 +0000]
corelist: use || not // to run on older perls

11 days agoUpdate Config::Perl::V to version 0.24
H.Merijn Brand [Thu, 16 Apr 2015 14:27:12 +0000]
Update Config::Perl::V to version 0.24

Added USE_QUADMATH to signature

11 days agoperldelta for 41ef2c66e0da, 902d16915db2
Tony Cook [Thu, 16 Apr 2015 00:24:24 +0000]
perldelta for 41ef2c66e0da902d16915db2

11 days agobump perl5db.pl's $VERSION
Tony Cook [Wed, 15 Apr 2015 23:51:03 +0000]
bump perl5db.pl's $VERSION

11 days agoJames McCoy is now a perl AUTHOR
Tony Cook [Wed, 15 Apr 2015 23:50:48 +0000]
James McCoy is now a perl AUTHOR

11 days agolib/perl5db.pl: Restore noop lock prototype
James McCoy [Fri, 20 Mar 2015 02:55:18 +0000]
lib/perl5db.pl: Restore noop lock prototype

cde405a6b9b86bd8110f63531b42d89590a4c56e removed the lock prototype
"because it's already a do-nothing weak keyword without threads".
However, that causes "perl -d threaded-script.pl" to complain

    lock can only be used on shared values at /usr/share/perl/5.20/perl5db.pl line 4101.
    BEGIN failed--compilation aborted at threaded-script.pl line 2.
    lock can only be used on shared values at /usr/share/perl/5.20/perl5db.pl line 2514.
    END failed--call queue aborted at threaded-script.pl line 2.
    Unbalanced scopes: 3 more ENTERs than LEAVEs

because threaded-script.pl's importing of threads::shared enable's
lock()'s non-noop behavior.  Restoring the lock() prototype fixes the
inconsistency between lock() and share() usage.

Signed-off-by: James McCoy <vega.james@gmail.com>

11 days ago[perl #124127] fix cloning arrays with unused elements
Tony Cook [Tue, 14 Apr 2015 05:59:03 +0000]
[perl #124127] fix cloning arrays with unused elements

ce0d59fd changed arrays to use NULL instead of &PL_sv_undef for
unused elements, unfortunately it missed updating sv_dup_common()'s
initialization of unused elements, leaving them as &PL_sv_undef.

This resulted in modification of read only value errors at runtime.

12 days agocorelist: bump test count
Ricardo Signes [Wed, 15 Apr 2015 16:41:10 +0000]
corelist: bump test count

12 days agocope with versions that do not match x.yyyzzz in corelist
Ricardo Signes [Wed, 15 Apr 2015 16:40:36 +0000]
cope with versions that do not match x.yyyzzz in corelist

Without this, we might be asked about 5.020 but be unable to climb
the delta tree because there is no delta entry for 5.020, only for

This is a poor solution for now, because (for example) some versions
are not stored in x.yyyzzz format.  One is eveni n x.yyyzz!  We
should store things in a normalized format, and normalize arguments
on input.

For now, this will do.

12 days agofix fencepost error in Module::CoreList is_core
Ricardo Signes [Wed, 15 Apr 2015 16:24:10 +0000]
fix fencepost error in Module::CoreList is_core

12 days agoassertion failure on interpolated parse err
David Mitchell [Wed, 15 Apr 2015 07:47:18 +0000]
assertion failure on interpolated parse err

RT# 124216

When paring the interpolated string "$X", where X is a unicode char that
is not a legal variable name, failure to restore things properly during
error recovery led to corrupted state and assertion failures.

In more detail:

When parsing a double-quoted string, S_sublex_push() saves most of the
current parser state. On parse error, the save stack is popped back,
which restores all that state. However, PL_lex_defer wasn't being saved,
so if we were in the middle of handling a forced token, PL_lex_state gets
restored from PL_lex_defer, and suddenly the lexer thinks we're back
inside an interpolated string again. So S_sublex_done() gets called
multiple times, too many scopes are popped, and things like PL_compcv are
freed prematurely.

Note that in order to reproduce:

* we must be within a double quoted context;
* we must be parsing a var  (which causes a forced token);
* the variable name must be illegal, which implies unicode, as
  chr(0..255) are all legal names;
* the terminating string quote must be the last char of the input
  file, as this code:

if (PL_bufptr == PL_bufend)
    return REPORT(sublex_done());

  won't trigger an extra call to sublex_done() otherwise.

I'm sure this bug affects other cases too, but this was the only way I
found to reproduce.

2 weeks agoperlport: Various nits
Karl Williamson [Fri, 10 Apr 2015 02:39:39 +0000]
perlport: Various nits

2 weeks agoperldelta for 070e2677bff6
Tony Cook [Fri, 10 Apr 2015 00:33:16 +0000]
perldelta for 070e2677bff6

2 weeks ago[perl #123971] fix long double pack padding on newer GCC
Tony Cook [Thu, 9 Apr 2015 05:45:16 +0000]
[perl #123971] fix long double pack padding on newer GCC

2 weeks agoRegen podcheck db
Karl Williamson [Thu, 9 Apr 2015 18:51:52 +0000]
Regen podcheck db

Commit 9e86103257aa44e18c24957134bcddc6d4158581 made a change that
podcheck thinks might be a problem (but it really isn't), so has to be
silenced.  The whining happened only in pedantic mode

2 weeks agoFix regression in 5.21: /[A-Z]/ai
Karl Williamson [Thu, 9 Apr 2015 18:01:37 +0000]
Fix regression in 5.21: /[A-Z]/ai

/[A-Z]/ai should match KELVIN SIGN, as it folds to a 'k'.  It should not
match under /aai, as that restricts fold matching.  But I tested for the
wrong symbol which ended up forbidding both /ai and /aai.

This commit changes to the correct symbol.  I also reordered the 'if'
while I was at it as a nano optimisation, to test for the /aa last, as
that is the less common part of the '&&' test.

2 weeks agoFix/simplify VMS-specific info in perlport.
Craig A. Berry [Thu, 9 Apr 2015 16:01:59 +0000]
Fix/simplify VMS-specific info in perlport.

It turns out that accumulating hastily-written patches for 20+
years does not make for the greatest reading experience, not to
mention the promises still being made that hadn't been true for
a long time, and the verbose explanations of things people really
don't need to worry about when running recent versions of Perl
on VMS versions released in the last 10 or 15 years.

Thanks to kwh for pointing out one of the more incoherent sentences,
which prompted me to take a closer look.

2 weeks agoskip t/op/dump.t under Address Sanitizer
David Mitchell [Thu, 9 Apr 2015 14:23:42 +0000]
skip t/op/dump.t under Address Sanitizer

On my Fedora 20 system, when a process built with "clang
-fsanitize=address" coredumps, some clever root process called
abrt-install-ccpp-hook spends hours reading in zillions of zero bytes from
stdin. I guess this is due to ASan storing instrumentation data at very high
addresses, so the memory image of the dumping process consists of
terrabytes of intervening zeroes.

Whether the abrt system is doing doing something useful or is merely
buggy, the net effect is that t/op/dump.t (which purposely does a
coredump) causes the entire test harness to hang.

This commit just makes t/op/dump.c skip tests if -fsanitize is in

2 weeks agokeep FOO read-only in 'FOO'->f()
David Mitchell [Thu, 9 Apr 2015 09:50:51 +0000]
keep FOO read-only in 'FOO'->f()

RT #123619

The new method code (d648ffcb179) was replacing the const SV attached to
the const op with a shared-string version, but was failing to make the new
SV read-only.

2 weeks agoRevert "pp_helem: Remove branch seemingly untaken (v2)"
Steffen Mueller [Wed, 8 Apr 2015 20:31:41 +0000]
Revert "pp_helem: Remove branch seemingly untaken (v2)"

This reverts commit d9dc8e0c5019810bfa3840ecadb302a2f01e01ae because it
breaks autovivification.pm. Vincent writes in a mail to p5p:

  > This is a friendly notification that this change, while
  > being correct as far as I can tell, has broken
  > autovivification.pm (the CPAN module) quite heavily.
  > fixing the module to make it work with blead will probably
  > require a complete rewrite

So clearly, this change isn't worth having.

Karl Williamson [Mon, 30 Mar 2015 22:42:28 +0000]

2 weeks agoperldelta for c0388966161b, bd8b97a1c641
Tony Cook [Tue, 7 Apr 2015 00:50:40 +0000]
perldelta for c0388966161bbd8b97a1c641

2 weeks agofix dmake test for gcc
Tony Cook [Wed, 1 Apr 2015 05:40:33 +0000]
fix dmake test for gcc

a752046a added TESTPREPGCC to allow VC++ builds to succeed, but
unfortunately defined TESTPREPGCC after use, which meant the
test-prep-gcc target wasn't being treated as a dependency.

Define TESTPREPGCC earlier.

3 weeks agoutfebcdic.h: Remove comments
Karl Williamson [Mon, 6 Apr 2015 15:23:58 +0000]
utfebcdic.h: Remove comments

One is false, and one is addressed now in the perlebcdic.pod

3 weeks agofix #123976 Win32 GCC miniperl needs -fno-strict-aliasing
Daniel Dragan [Mon, 6 Apr 2015 01:39:14 +0000]
fix #123976 Win32 GCC miniperl needs -fno-strict-aliasing

just like full perl uses -fno-strict-aliasing

3 weeks agoRegen podcheck db
Karl Williamson [Sun, 5 Apr 2015 02:48:54 +0000]
Regen podcheck db

Commit a81f7519ba607e6fb9838391ed0be7603c01ca2b fixed a problem
in perlvms.

3 weeks agoperlpodspec: Nit
Karl Williamson [Sun, 5 Apr 2015 02:48:27 +0000]
perlpodspec: Nit

3 weeks agoSome updates for perlvms.pod.
Craig A. Berry [Sat, 4 Apr 2015 23:00:14 +0000]
Some updates for perlvms.pod.

Remove some woefully out-of-date and/or incorrect material and fix
a few other nits.

3 weeks agoperlpodspec: Finish EBCDIC updates
Karl Williamson [Sat, 4 Apr 2015 17:58:25 +0000]
perlpodspec: Finish EBCDIC updates

This is a follow up to bd940430ebc41b7b346cc761cc46be9674f34111

3 weeks agoperlpodspec: Nits
Karl Williamson [Sat, 4 Apr 2015 17:57:34 +0000]
perlpodspec: Nits

Some of these weren't displaying correctly.

3 weeks agoperlebcdic: Clarifications, update
Karl Williamson [Fri, 3 Apr 2015 17:48:48 +0000]
perlebcdic: Clarifications, update

3 weeks agoperllocale: Update for EBCDIC
Karl Williamson [Fri, 3 Apr 2015 17:46:59 +0000]
perllocale: Update for EBCDIC

3 weeks agoperllocale: Nit
Karl Williamson [Fri, 3 Apr 2015 17:46:31 +0000]
perllocale: Nit

3 weeks agotoke.c: UTF-8 aware warning cleanups
Alex Vandiver [Tue, 31 Mar 2015 07:46:41 +0000]
toke.c: UTF-8 aware warning cleanups

3 weeks agopod/perluniintro: Update for EBCDIC and newer Unicode handling
Karl Williamson [Tue, 31 Mar 2015 03:28:33 +0000]
pod/perluniintro: Update for EBCDIC and newer Unicode handling

This commit revises this document to account for the new 5.22 EBCDIC
handling.  It updates the advice for how to make sure your strings and
regular expression patterns are interpreted as Unicode to prefer \N{}
and charnames().  These automatically are portable to EBCDIC as well as
guaranteeing that the Unicode bug will not bite you.

3 weeks agopod/perluniintro: Nits
Karl Williamson [Tue, 31 Mar 2015 03:26:39 +0000]
pod/perluniintro: Nits

4 weeks agoop.c: avoid direct op_sibling access
David Mitchell [Mon, 30 Mar 2015 14:53:07 +0000]
op.c: avoid direct op_sibling access

Since the introduction of OpSIBLING(), op_sibling_splice() etc, a few
places in op.c have started directly accessing/manipulating op_sibling
again. Use the higher-level macros/functions instead.

4 weeks agoPerl_save_re_context(): re-indent after last commit
David Mitchell [Wed, 25 Mar 2015 17:11:40 +0000]
Perl_save_re_context(): re-indent after last commit

whitespace-only change.

4 weeks agosave_re_context(): do "local $n" with no PL_curpm
David Mitchell [Wed, 25 Mar 2015 16:59:04 +0000]
save_re_context(): do "local $n" with no PL_curpm

RT #124109.

2c1f00b9036 localised PL_curpm to NULL when calling swash init code
(i.e. perl-level code that is loaded and executed when something
like "lc $large_codepoint" is executed).

b4fa55d3f1 followed this up by gutting Perl_save_re_context(), since
that function did, basically,

    if (PL_curpm) {
        for (i = 1; i <= RX_NPARENS(PM_GETRE(PL_curpm))) {
            do the C equivalent of the perl code "local ${i}";

and now that PL_curpm was null, the code wasn't called any more.  However,
it turns out that the localisation *was* still needed, it's just that
nothing in the test suite actually tested for it.

In something like the following:

    $x = "\x{41c}";
    $x =~ /(.*)/;
    $s = lc $1;

pp_lc() calls get magic on $1, which sets $1's PV value to a copy of the
substring captured by the current pattern match.
Then pp_lc() calls a function to convert the string to upper case, which
triggers a swash load, which calls perl code that does a pattern match
and, most importantly, uses the value of $1. This triggers get magic on
$1, which overwrites $1's PV value with a new value. When control returns
to pp_lc(), $1 now holds the wrong string value.

Hence $1, $2 etc need localising as well as PL_curpm.

The old way that Perl_save_re_context() used to work (localising
$1..${RX_NPARENS}) won't work directly when PL_curpm is NULL (as in the
swash case), since we don't know how many vars to localise.

In this case, hard-code it as localising $1,$2,$3 and add a porting
test file that checks that the utf8.pm code and dependences don't
use anything outside those 3 vars.

4 weeks agoRevert "Gut Perl_save_re_context"
David Mitchell [Wed, 25 Mar 2015 16:21:31 +0000]
Revert "Gut Perl_save_re_context"

This reverts commit b4fa55d3f12c6d98b13a8b3db4f8d921c8e56edc.

Turns out we need Perl_save_re_context() after all

4 weeks agoRevert "Don’t call save_re_context"
David Mitchell [Thu, 19 Mar 2015 20:35:57 +0000]
Revert "Don’t call save_re_context"

This reverts commit d28a9254e445aee7212523d9a7ff62ae0a743fec.

Turns out we need save_re_context() after all

4 weeks agoRevert "Mathomise save_re_context"
David Mitchell [Thu, 19 Mar 2015 20:30:04 +0000]
Revert "Mathomise save_re_context"

This reverts commit 0ddd4a5b1910c8bfa9b7e55eb0db60a115fe368c.

Turns out we need the save_re_context() function after all.

4 weeks agoRemove 'use lib' left over from refactoring -- five years ago!
James E Keenan [Sun, 22 Mar 2015 22:23:41 +0000]
Remove 'use lib' left over from refactoring -- five years ago!

Per report by kentnl++ in RT #124151.

Increment $VERSION across dist/ExtUtils-ParseXS/lib.  Add perldelta entry.

4 weeks agoNo need to list FindExt in perldelta - it isn't an installed module
Steve Hay [Mon, 30 Mar 2015 07:38:07 +0000]
No need to list FindExt in perldelta - it isn't an installed module

4 weeks agoSort list of upgraded modules in perldelta
Steve Hay [Mon, 30 Mar 2015 07:35:36 +0000]
Sort list of upgraded modules in perldelta

4 weeks agoperldelta for previous commit
Steve Hay [Mon, 30 Mar 2015 07:34:26 +0000]
perldelta for previous commit

4 weeks agoUpgrade IO-Socket-IP from version 0.36 to 0.37
Steve Hay [Thu, 26 Mar 2015 08:26:27 +0000]
Upgrade IO-Socket-IP from version 0.36 to 0.37