This is a live mirror of the Perl 5 development currently hosted at
8 years agoSkip two test modules from the check
Steve Hay [Thu, 17 Oct 2013 17:05:40 +0000 (18:05 +0100)]
Skip two test modules from the check

8 years agoPorting/ - Move most of ext/ and lib/ into _PERLLIB
Steve Hay [Thu, 17 Oct 2013 16:50:06 +0000 (17:50 +0100)]
Porting/ - Move most of ext/ and lib/ into _PERLLIB

Most ext/ and lib/ entries in %Modules only list a single folder or a couple
of files sharing the same basename and specify no more information other
than UPSTREAM => 'blead'. This information can be more succinctly conveyed
by a line in _PERLLIB.

Only the following ext/ and lib/ entries in %Modules now remain:

B (has EXCLUDED files)
B::Concise (has a MAINTAINER)
VMS::Stdio (has a MAINTAINER)
warnings (has a MAINTAINER and files from various places)

The middle four can probably move too if it is deemed that the MAINTAINER
information is not useful.

8 years agoPerlIO::scalar: stringify refs
David Mitchell [Thu, 17 Oct 2013 14:35:14 +0000 (15:35 +0100)]
PerlIO::scalar: stringify refs

If $s in
    open my $fh, "<",  \$s
or similar is a ref, then
stringify that ref: i.e. convert it from a ref into the string
"SCALAR(0x....)" or whatever.

This fixes

    RT #119529 Filehandle opened from ref to ref hangs on reading

which in this case was looping forever, since it kept thinking that
the var was a string ("SCALAR.."), but whose length was 0.

I haven't gone for a complete "always force var into a string" approach,
since PerlIO::scalar has quite a tolerance for "bad" vars; e.g.
it won't warn if $var is undef or a read-only constant number etc;
and it already normalises under some circumstances and not others.
So I've just increased the cases somewhat where it normalises.

Also, I didn't look to closely at the code that was looping (or to put it
another way, I looked at it but didn't understand it), so it could
conceivably still behave badly on some other strange type of variable that
manages to avoid getting normalised.

8 years agoPorting/ - Remove unnecessary Maintainers following 0cd7b4f8d7
Steve Hay [Thu, 17 Oct 2013 13:27:08 +0000 (14:27 +0100)]
Porting/ - Remove unnecessary Maintainers following 0cd7b4f8d7

8 years agoPorting/ - Remove remaining UPSTREAM => undef entries
Steve Hay [Thu, 17 Oct 2013 13:22:13 +0000 (14:22 +0100)]
Porting/ - Remove remaining UPSTREAM => undef entries

There is some agreement that the things left with UPSTREAM => undef (and
the only two other pod/ files that were tracked -- perldtrace and
perlreftut) are not worth tracking in this file anyway, so just remove

I've left s2p and made UPSTREAM => 'blead', as per comments in the first
thread cited below, for now. Maybe it should go too? Other than
regen/ there are no other files covered thaty aren't under
cpan/, dist/, ext/ and lib/ ...

8 years agoperldelta updates for recent changes
Steve Hay [Thu, 17 Oct 2013 12:51:37 +0000 (13:51 +0100)]
perldelta updates for recent changes

8 years agoUpgrade JSON::PP from version 2.27202_01 to 2.27203
Steve Hay [Thu, 17 Oct 2013 12:51:21 +0000 (13:51 +0100)]
Upgrade JSON::PP from version 2.27202_01 to 2.27203

Commit be08498a8d updated and perldelta.pod, but missed the
JSON/ file itself.

8 years agoFix Win32 build with MinGW/gcc-4.8+ which define some errno.h values >= 100
Steve Hay [Thu, 17 Oct 2013 12:29:28 +0000 (13:29 +0100)]
Fix Win32 build with MinGW/gcc-4.8+ which define some errno.h values >= 100

Commit ea95436966 made changes to how errno.h constants are handled for
VC++ 2010 and above, which have added new values in the range 100-140.

Some versions of gcc-4.8.0 and above are now catching up and provide some
of these new values too (e.g. binaries from
but not currently those from, but they don't provide
all of them. EADDRINUSE is provided, so convert_errno_to_wsa_error() gets
included, but the compilation fails because the following #defines which
VC++ 2010 and above provide are missing:


Simply ignore (#ifdef away) these constants for those compilers that don't
provide them.

8 years agoUpdated JSON-PP to CPAN version 2.27203
Chris 'BinGOs' Williams [Thu, 17 Oct 2013 11:14:27 +0000 (12:14 +0100)]
Updated JSON-PP to CPAN version 2.27203


  2.27203  Thu Oct 17 19:38:55 2013
    - fixed return/or in _incr_parse
      reported and patched by MAUKE, sprout and rjbs

8 years ago[perl #119505] Segfault from bad backreference
David Mitchell [Wed, 16 Oct 2013 12:59:12 +0000 (13:59 +0100)]
[perl #119505] Segfault from bad backreference

The code that parses regex backrefs (or ambiguous backref/octal) such as
\123, did a simple atoi(), which could wrap round to negative values on
long digit strings and cause seg faults.

Include a check on the length of the digit string, and if greater than 9
digits, assume it can never be a valid backref (obviating the need for the
atoi() call).

I've also simplified the code a bit, putting most of the \g handling code
into a single block, rather than doing multiple "if (isg) {...}".

8 years agoperldelta for e9d373c4
Tony Cook [Thu, 17 Oct 2013 05:31:11 +0000 (16:31 +1100)]
perldelta for e9d373c4

8 years ago[perl #119893] avoid waiting on pid 0
Tony Cook [Thu, 17 Oct 2013 04:29:58 +0000 (15:29 +1100)]
[perl #119893] avoid waiting on pid 0

When a filehandle is cloned into a standard handle, do_openn() copies
the pid from the original handle in PL_fdpid to the standard handle
and zeroes the entry for the original handle, so when the original
handle was closed Perl_my_pclose() would call wait4pid() with a pid of 0.

With v5.19.3-614-gd4c0274 I modified wait4pid(), perl's waitpid/wait4()
wrapper, to allow a pid of zero through to the actual system call when

These combined so that following v5.19.3-614-gd4c0274 in some
circumstances closing the original handle would block by calling
waitpid(0, ...) or wait4(0, ...), which waits for any child process in
the same process group to terminate.

This commit changes Perl_my_pclose() to wait for the child only when
the stored pid is positive.

8 years agoutf8.c: White-space only
Karl Williamson [Thu, 17 Oct 2013 03:53:23 +0000 (21:53 -0600)]
utf8.c: White-space only

This outdents code to the proper level given that the surrounding block
has been removed.

8 years agoChange mktables output for some tables to use hex
Karl Williamson [Thu, 17 Oct 2013 03:44:23 +0000 (21:44 -0600)]
Change mktables output for some tables to use hex

This makes all the tables in the lib/unicore/To directory that map from
code point to code point be formatted so that the mapped-to code point
is expressed as hexadecimal.

This allows for uniform treatment of these tables in utf8.c, and removes
the final use of strtol() in the (non-CPAN) core.  strtol() should be
avoided because it is subject to locale rules, and some older libc
implementations have been buggy.  It was used because Perl doesn't have
an efficient way of parsing a decimal number and advancing the parse
pointer to beyond it; we do have such a method for hex numbers.

The input to mktables published by Unicode is also in hex, so this now
conforms to that convention.

This also will facilitate the new work currently being done to read in
the tables that find the closing bracket given an opening one.

8 years agolib/Unicode/UCD.t: Do tests in deterministic order
Karl Williamson [Wed, 16 Oct 2013 16:27:18 +0000 (10:27 -0600)]
lib/Unicode/UCD.t: Do tests in deterministic order

I needed this in order to compare successive runs of this test

8 years agonumeric.c: nit in comment
Karl Williamson [Tue, 8 Oct 2013 03:00:26 +0000 (21:00 -0600)]
numeric.c: nit in comment

8 years agoPorting/ - Change UPSTREAM => undef to 'blead' for lib/ modules
Steve Hay [Wed, 16 Oct 2013 21:48:48 +0000 (22:48 +0100)]
Porting/ - Change UPSTREAM => undef to 'blead' for lib/ modules

8 years agoPorting/ - Change UPSTREAM => undef to 'blead' for ext/ modules
Steve Hay [Wed, 16 Oct 2013 21:27:32 +0000 (22:27 +0100)]
Porting/ - Change UPSTREAM => undef to 'blead' for ext/ modules

Split Win32CORE out from win32 to do this.

8 years agoPorting/ - Change UPSTREAM => undef to 'blead' for dist/ modules
Steve Hay [Wed, 16 Oct 2013 21:20:19 +0000 (22:20 +0100)]
Porting/ - Change UPSTREAM => undef to 'blead' for dist/ modules

There is only one module affected (XSLoader), already having a note to
revert it to 'blead' once 0.17 is released. That version is not yet
released, but blead is identical to 0.16, and I believe that note was not
quite correct -- it was a new *perl* release that was needed, not a new
CPAN release of XSLoader. The comment for the commit (e52529ca24) which
added the note is correct: "The problem (cmp_version.t failing) should
disappear after the next perl release." That was back when 5.17.3 had just
been released, and the problem has indeed gone away now.

8 years agoPorting/ - Change UPSTREAM => undef to 'cpan' for cpan/ modules
Steve Hay [Wed, 16 Oct 2013 21:14:01 +0000 (22:14 +0100)]
Porting/ - Change UPSTREAM => undef to 'cpan' for cpan/ modules

There is one exception to this: version should currently be regarded as
UPSTREAM => 'blead' (at its maintainer's request), but only until [cpan
#88458] is resolved, so it is not worth moving from cpan/ to dist/ in the
meantime since it will only move back again in due course.

8 years agoUpdate release schedule for 5.19.5
Steve Hay [Wed, 16 Oct 2013 16:56:54 +0000 (17:56 +0100)]
Update release schedule for 5.19.5

8 years agoperldelta - Fix up attributes addition, and add new warnings
Steve Hay [Wed, 16 Oct 2013 16:55:51 +0000 (17:55 +0100)]
perldelta - Fix up attributes addition, and add new warnings

8 years agoUpgrade Scalar-List-Utils from version 1.33 to 1.34
Steve Hay [Wed, 16 Oct 2013 16:47:23 +0000 (17:47 +0100)]
Upgrade Scalar-List-Utils from version 1.33 to 1.34

8 years agoAdding a prototype attribute.
Peter Martini [Sun, 13 Oct 2013 20:00:00 +0000 (16:00 -0400)]
Adding a prototype attribute.

This attribute adds an additional way of declaring a prototype for a
sub, making sub foo($$) and sub foo : prototype($$) equivalent.  The
intent is to keep the functionality of prototypes while allowing other
modules to use the syntactic space it currently occupies for other

The attribute is supported in attributes.xs to allow
attributes::->import to work, but if its defined inline via something
like sub foo : prototype($$) {}, it will not call out to the
attributes module.

For: RT #119251

8 years agoUpdate Extutils-MakeMaker to CPAN version 6.80
Chris 'BinGOs' Williams [Tue, 15 Oct 2013 15:19:53 +0000 (16:19 +0100)]
Update Extutils-MakeMaker to CPAN version 6.80


6.80 Tue Oct 15 16:04:50 BST 2013

    No changes from 6.79_04

6.79_04 Fri Oct 11 18:57:51 BST 2013
    Bug fixes:
    * Add CP_NONEMPTY to the list of tools in Makefile

6.79_03 Fri Oct 11 13:56:53 BST 2013
    Bug fixes:
    * don't copy .bs portably :)

6.79_02 Fri Oct 11 12:58:01 BST 2013
    Bug fixes:
    * RT#28992 don't copy .bs files if they are empty

8 years agoperldelta - Fill in selected bug fixes section
Steve Hay [Mon, 14 Oct 2013 13:00:52 +0000 (14:00 +0100)]
perldelta - Fill in selected bug fixes section

8 years agoperldelta - Fix typo
Steve Hay [Mon, 14 Oct 2013 12:52:42 +0000 (13:52 +0100)]
perldelta - Fix typo

8 years agoperldelta - Wrap lines to 79 characters
Steve Hay [Mon, 14 Oct 2013 12:32:58 +0000 (13:32 +0100)]
perldelta - Wrap lines to 79 characters

8 years agoperldelta - Fill in diagnostics section
Steve Hay [Mon, 14 Oct 2013 12:24:55 +0000 (13:24 +0100)]
perldelta - Fill in diagnostics section

8 years agoperldelta - Fill in documentation section
Steve Hay [Mon, 14 Oct 2013 12:21:11 +0000 (13:21 +0100)]
perldelta - Fill in documentation section

8 years agoperldelta - Fill in testing section
Steve Hay [Mon, 14 Oct 2013 12:05:30 +0000 (13:05 +0100)]
perldelta - Fill in testing section

8 years agoperldelta - Fill in updated modules section
Steve Hay [Mon, 14 Oct 2013 08:21:06 +0000 (09:21 +0100)]
perldelta - Fill in updated modules section

8 years agoFix autouse test, failing since commit 52102bb4f9
Steve Hay [Sun, 13 Oct 2013 16:47:05 +0000 (17:47 +0100)]
Fix autouse test, failing since commit 52102bb4f9

Only running test_porting and the tests of the module upgraded clearly
isn't always enough :-/

8 years agoUpgrade Scalar-List-Utils from version 1.32 to 1.33
Steve Hay [Sun, 13 Oct 2013 15:26:44 +0000 (16:26 +0100)]
Upgrade Scalar-List-Utils from version 1.32 to 1.33

8 years agopodcheck.t: Make blead pass again
Karl Williamson [Sat, 12 Oct 2013 04:54:36 +0000 (22:54 -0600)]
podcheck.t: Make blead pass again

Blead is failing sometimes on podcheck.t.  I don't fully understand the
reasons, but it is some sort of race condition.

The base problem that is causing this race to show up is a bug in the
new version 3.29 of Test::Harness.  It includes 2 pods that have the
same name.  This creates problems for reading the documentation in an
html browser.  The software that creates the hyperlinks uses the pod
name to figure out what the linked-to document is.  It cannot figure out
which one to link to when multiple pods have the same name, as here, so
podcheck raises an error.  Test::Harness should change so that the pods
have different names.  It's like having two different Unix commands
named 'foobar'.  Which one should `man foobar` display, if it could only
display one?

I haven't figured out how to fix the race yet, so this commit just
ignores one of the conflicting files for now.  The race has something to
do with the fact that these are both cpan files which are not normally
examined for pod problems, and so the error for one of them is getting
suppressed; and which one of the two gets suppressed varies.

This bug in Test::Harness also manifested itself as showing up a broken

8 years agoRun cd t;./perl -I../lib porting/podcheck.t --regen
James E Keenan [Fri, 11 Oct 2013 23:28:18 +0000 (01:28 +0200)]
Run cd t;./perl -I../lib porting/podcheck.t --regen

8 years agoRemove non-existent English variable names from perlvar
Dagfinn Ilmari Mannsåker [Thu, 10 Oct 2013 22:56:07 +0000 (23:56 +0100)]
Remove non-existent English variable names from perlvar

$OLD_PERL_VERSION was never exported (it was added commented-out in Perl
5.6.0, when $PERL_VERSION became $^V).  $OFMT and $ARRAY_BASE were
commented out in Perl 5.000.

8 years agoAdd to known_pod_issues.dat following Test-Harness upgrade
Steve Hay [Fri, 11 Oct 2013 11:20:18 +0000 (12:20 +0100)]
Add to known_pod_issues.dat following Test-Harness upgrade

Beyond.pod now has the same NAME as which causes three failures
in podcheck.t. Have them skipped for now. I will raise a CPAN/RT ticket to
get this resolved upstream.

8 years agoUpgrade Test::Harness from version 3.28 to 3.29
Steve Hay [Fri, 11 Oct 2013 10:21:27 +0000 (11:21 +0100)]
Upgrade Test::Harness from version 3.28 to 3.29

This includes the blead CUSTOMIZATION of t/source.t.

8 years agoSort MANIFEST
Steve Hay [Fri, 11 Oct 2013 08:21:41 +0000 (09:21 +0100)]

8 years agoUpgrade CPAN::Meta from 2.132661 to 2.132830
Steve Hay [Fri, 11 Oct 2013 08:16:54 +0000 (09:16 +0100)]
Upgrade CPAN::Meta from 2.132661 to 2.132830

8 years agoUpgrade File::Temp from version 0.2303 to 0.2304
Steve Hay [Fri, 11 Oct 2013 07:38:30 +0000 (08:38 +0100)]
Upgrade File::Temp from version 0.2303 to 0.2304

8 years agoperlebcdic: Make some examples simpler; wrap to 79 cols
Karl Williamson [Fri, 11 Oct 2013 03:58:48 +0000 (21:58 -0600)]
perlebcdic: Make some examples simpler; wrap to 79 cols

Some of the examples in this pod are far more complicated than they need
be.  This commit fixes most of them, while wrapping verbatim lines to
fit in 79 columns.

8 years agoUpdate to ExtUtils::MakeMaker 6.79_01.
Craig A. Berry [Fri, 11 Oct 2013 03:26:09 +0000 (22:26 -0500)]
Update to ExtUtils::MakeMaker 6.79_01.

Only one change:

    * Remove MM_TEST_ROOT feature for VMS test support

This feature depended on test directories created on the fly being
in a predictable location at a predictable depth, but as of 6.78
they aren't anymore, which caused a significant number of test
failures on VMS.

8 years agoUpgrade File::Temp from version 0.2302 to 0.2303
Steve Hay [Thu, 10 Oct 2013 12:02:05 +0000 (13:02 +0100)]
Upgrade File::Temp from version 0.2302 to 0.2303

(A formerly EXCLUDED test script has been removed from the CPAN distro.)

8 years agoperlexperiment: link to postderef ticket
Ricardo Signes [Wed, 9 Oct 2013 13:35:23 +0000 (09:35 -0400)]
perlexperiment: link to postderef ticket

8 years agoperldelta: fix minor errors in description of postderef
Ricardo Signes [Wed, 9 Oct 2013 01:17:39 +0000 (21:17 -0400)]
perldelta: fix minor errors in description of postderef

8 years agoUpgrade podlators from 2.5.2 to 2.5.3.
Steve Hay [Mon, 7 Oct 2013 07:53:10 +0000 (08:53 +0100)]
Upgrade podlators from 2.5.2 to 2.5.3.

8 years agoUpgrade Module-Metadata from version 1.000018 to 1.000019
Steve Hay [Mon, 7 Oct 2013 07:52:13 +0000 (08:52 +0100)]
Upgrade Module-Metadata from version 1.000018 to 1.000019

8 years agoPurge remaining references to PerlIO_sprintf and PerlIO_vsprintf().
Nicholas Clark [Mon, 7 Oct 2013 08:32:39 +0000 (10:32 +0200)]
Purge remaining references to PerlIO_sprintf and PerlIO_vsprintf().

Eliminate their function prototypes. Eliminate references in perlio.sym and which caused them to still be added to the Win32 linker

8 years agoRemove PerlIO_sprintf() and PerlIO_vsprintf()
Karl Williamson [Mon, 7 Oct 2013 04:14:45 +0000 (22:14 -0600)]
Remove PerlIO_sprintf() and PerlIO_vsprintf()

8 years agoEliminate trailing whitespace in pod command.
James E Keenan [Sun, 6 Oct 2013 23:03:36 +0000 (01:03 +0200)]
Eliminate trailing whitespace in pod command.

8 years agofix POD errors reported by newer pod2man
Dominic Hargreaves [Sun, 6 Oct 2013 12:45:22 +0000 (13:45 +0100)]
fix POD errors reported by newer pod2man

8 years agoEliminate reliance on some external tools for 'Porting/sync-with-cpan'
Max Maischein [Sun, 6 Oct 2013 19:03:19 +0000 (21:03 +0200)]
Eliminate reliance on some external tools for 'Porting/sync-with-cpan'

This series of patches eliminates the reliance on external
tools for Porting/sync-with-cpan .

If these changes stand the test of time, similar changes
can be applied to other Porting/ tools to reduce the
need for external tools.

8 years agoElide use of `grep`
Max Maischein [Thu, 3 Oct 2013 16:48:27 +0000 (18:48 +0200)]
Elide use of `grep`

The new approach uses more memory as it reads the whole
11 MB CPAN packages file into memory. Also, it makes
less use of parallel multiprocessing now available on
many machines.

8 years agoRun correct make
Max Maischein [Sat, 5 Oct 2013 18:01:44 +0000 (20:01 +0200)]
Run correct make

Use to determine correct kind of `make` tool

For Windows, the make process is supposed to get kicked off
in ./Win32.

We now run `make test-prep` before trying the module self-tests

8 years agoElide use of `chmod`
Max Maischein [Sat, 5 Oct 2013 17:59:11 +0000 (19:59 +0200)]
Elide use of `chmod`

We simplify life here and try to set Porting/Makefile.PL
always to mode 755 (u=rwx , ao=rx) instead of being
more precise.

8 years agoElide use of `ls`, `find` and `touch`
Max Maischein [Thu, 3 Oct 2013 16:38:36 +0000 (18:38 +0200)]
Elide use of `ls`, `find` and `touch`

File::Find and code copied from ExtUtils::Command do the same.

This patch makes the code to remove the exec bit a little less
efficient by not restricting itself to files that now have
the exec bit set, but instead looking at all files.

This change also uses $ENV{TEMP} in preference to
/tmp as a temp directory for caching the CPAN index.

8 years agoElide use of `rm`
Max Maischein [Thu, 3 Oct 2013 16:17:39 +0000 (18:17 +0200)]
Elide use of `rm`

We remove the reliance on an external 'rm' tool in
favour of using File::Path::remove_tree.

We also eliminate some dir-changing by using
more absolute directory names.

8 years agoFirst try with HTTP::Tiny, fallback on `wget`
Max Maischein [Tue, 21 May 2013 17:11:22 +0000 (19:11 +0200)]
First try with HTTP::Tiny, fallback on `wget`

This tries downloads first with the built-in HTTP::Tiny
before it falls back to the external `wget` tool. Arguably,
the reliance on `wget` could be eliminated to reduce the
amount of code clutter.

8 years agocorrect documentation of postfix glob deref
Ricardo Signes [Sat, 5 Oct 2013 19:26:40 +0000 (15:26 -0400)]
correct documentation of postfix glob deref

thanks, mst

8 years agoperldelta: experimental postfix dereference syntax
Ricardo Signes [Sat, 5 Oct 2013 18:58:46 +0000 (14:58 -0400)]
perldelta: experimental postfix dereference syntax

8 years agoMerge branch 'postderef' into blead
Ricardo Signes [Sat, 5 Oct 2013 18:41:27 +0000 (14:41 -0400)]
Merge branch 'postderef' into blead

8 years agotweak postfix deref docs, update for glob deref
Ricardo Signes [Sat, 5 Oct 2013 18:41:04 +0000 (14:41 -0400)]
tweak postfix deref docs, update for glob deref

8 years agonew warnings category, so bump
Ricardo Signes [Wed, 2 Oct 2013 16:08:49 +0000 (12:08 -0400)]
new warnings category, so bump

8 years agopreliminary postfix dereference docs
Ricardo Signes [Fri, 27 Sep 2013 02:44:00 +0000 (22:44 -0400)]
preliminary postfix dereference docs

This commit adds an overview of the feature to perlref and a pointer
to the section in perlref to perlop's documentation of the arrow.

If/when this feature becomes non-experimental, the documentation
should be merged upward into Using References.

This documentation was written against a previous state of the
branch.  Is should be fact-checked before any merge.

8 years agoFix a bug with ->@ inside "@{...}"
Father Chrysostomos [Mon, 16 Sep 2013 19:49:12 +0000 (12:49 -0700)]
Fix a bug with ->@ inside "@{...}"

When encountering ->@[ or ->@{, we should only record that we are
going to need a POSTJOIN at the top level of interpolation, not
inside any brackets.  Otherwise the ->@[ can interfere with an outer
"@{...}", causing syntax errors.

8 years agoMake postderef experimental
Father Chrysostomos [Mon, 16 Sep 2013 16:57:13 +0000 (09:57 -0700)]
Make postderef experimental

8 years agoAllow ->@ ->$ interpolation under postderef_qq feature
Father Chrysostomos [Mon, 16 Sep 2013 16:44:34 +0000 (09:44 -0700)]
Allow ->@ ->$ interpolation under postderef_qq feature

This turned out to be tricky.  Normally @ at the beginning of the
interpolated code signals to the lexer to emit ‘join($",’ immediately.
With "$_->@*" we would have to retract the $ _ -> tokens upon encoun-
tering @*, which we obviously cannot do.

Waiting until we reach the end of the interpolated text before emit-
ting anything could not work either, as it may contain BEGIN blocks
that affect the way part of the interpolated code is parsed.

So what we do is introduce an egregious or clever hack, depending on
how you look at it.

Normally, the lexer turns "@foo" into:

    stringify ( join ( $ " , @ foo ) )

(The " is a WORD token, representing a variable name.)

"$_" becomes:

    stringify ( $ _ )

We can turn "$_->@*" into:

    stringify ( $ _ -> @ * POSTJOIN )

Where POSTJOIN is a new lexer token with special handling that creates
a join op just the way join($", ...) does.

To make "foo$_->@*bar" work as well, we have to make POSTJOIN have
precedence just below ->, so that

    stringify ( "foo" . $ _ -> @ * POSTJOIN . "bar" )

(what the parser sees) is equivalent to:

    stringify ( "foo" . ( $ _ -> @ * POSTJOIN ) . "bar" )

8 years agoAdd postderef_qq feature feature
Father Chrysostomos [Sun, 15 Sep 2013 23:31:19 +0000 (16:31 -0700)]
Add postderef_qq feature feature

8 years agoHide postderef behind the feature feature
Father Chrysostomos [Sun, 15 Sep 2013 23:29:21 +0000 (16:29 -0700)]
Hide postderef behind the feature feature

8 years agotoke.c:postderef: rmv obsolete comment
Father Chrysostomos [Sun, 15 Sep 2013 23:22:41 +0000 (16:22 -0700)]
toke.c:postderef: rmv obsolete comment

8 years agoIncrease $feature::VERSION to 1.34
Father Chrysostomos [Sun, 15 Sep 2013 23:21:54 +0000 (16:21 -0700)]
Increase $feature::VERSION to 1.34

8 years agoAdd postderef feature feature
Father Chrysostomos [Sun, 15 Sep 2013 23:20:58 +0000 (16:20 -0700)]
Add postderef feature feature

8 years ago->%{ ->%[
Father Chrysostomos [Sun, 15 Sep 2013 23:07:11 +0000 (16:07 -0700)]
->%{ ->%[

8 years agoFix up postfixderef.t
Father Chrysostomos [Wed, 14 Aug 2013 01:12:58 +0000 (18:12 -0700)]
Fix up postfixderef.t

8 years agoAdd postfixderef.t to MANIFEST
Father Chrysostomos [Tue, 13 Aug 2013 21:22:20 +0000 (14:22 -0700)]
Add postfixderef.t to MANIFEST

8 years agoTests for postfix dereference
David Nicol [Tue, 13 Aug 2013 21:22:04 +0000 (14:22 -0700)]
Tests for postfix dereference

8 years agoPostfix dereference syntax
Father Chrysostomos [Fri, 5 Jul 2013 08:10:08 +0000 (01:10 -0700)]
Postfix dereference syntax

$_->$* means $$_ (and compiled down to the same op tree)
$_->@* means @$_ ( ditto ditto blah blah blah          )
$_->%* means %$_ (...)
$_->&* means &$_
$_->** means *$_
$_->@[...] means @$_[...]
$_->@{...} means @$_{...}
$_->*{...} means *$_{...}

$_->@* is not always equivalent to @$_, particularly in contexts like
@foo[0], which cannot be written foo->@*[0].  (Just omit the asterisk
and it works.)

8 years agoRemove pod/perlembed.pod in wake of RT #120093 corrections.
James E Keenan [Sat, 5 Oct 2013 13:00:38 +0000 (15:00 +0200)]
Remove pod/perlembed.pod in wake of RT #120093 corrections.

Provide author's preferred email address.

8 years agoUpdate Unicode-Normalize to CPAN version 1.17
Chris 'BinGOs' Williams [Sat, 5 Oct 2013 10:47:14 +0000 (11:47 +0100)]
Update Unicode-Normalize to CPAN version 1.17


1.17  Sat Oct  5 11:36:43 2013
    - assertion using unpack

8 years agomktables: Verify input files' version
Karl Williamson [Sat, 5 Oct 2013 03:15:01 +0000 (21:15 -0600)]
mktables: Verify input files' version

Since Unicode 3.2, all Unicode database source files (except
unfortunately, the most important one, UCD.txt), have their first lines
be identifying information, their name and version number.  This commit
checks that the version is the expected one.  This should prevent the
database from being out-of-sync.  Perl changes the names of some files
so that they are distinct on DOS filesystems, so we can't easily check
that the name in the file is the same as the name of the file.

8 years agoBump Unicode version
Karl Williamson [Sat, 5 Oct 2013 03:05:09 +0000 (21:05 -0600)]
Bump Unicode version

In commit a9c9e371c40cf388593577cf577494e91793f62a, I forgot to update
the Unicode version in the file that states it.

8 years agoFixed 27 issues in perlembed.pod reported by podcheck
Gideon Israel Dsouza [Thu, 3 Oct 2013 17:03:14 +0000 (22:33 +0530)]
Fixed 27 issues in perlembed.pod reported by podcheck

Fixed mostly lines exceeding 80 characters by decreasing leading
space in verbatim lines to one space. Also fixed long code lines
with a slash and line break.

Add Gideon Israel Dsouza to list of Perl authors.

For: RT #120093

8 years agoperlfunc: replace splice example with simpler one
Ricardo Signes [Fri, 4 Oct 2013 14:42:49 +0000 (10:42 -0400)]
perlfunc: replace splice example with simpler one

based on suggestions from Nicholas Clark and David Golden on

8 years agoRemove unused variable 'mark' from pp_last.
Nicholas Clark [Fri, 4 Oct 2013 13:51:13 +0000 (15:51 +0200)]
Remove unused variable 'mark' from pp_last.

mark is unused since commit 0c0c317c3b754aee,
"[perl #3112] Stop last from returning values"

8 years agoUpgrade to Unicode 6.3
Karl Williamson [Tue, 1 Oct 2013 15:26:40 +0000 (09:26 -0600)]
Upgrade to Unicode 6.3

8 years agomktables: Fix logic with binary vs enum properties
Karl Williamson [Fri, 4 Oct 2013 04:37:51 +0000 (22:37 -0600)]
mktables: Fix logic with binary vs enum properties

The code was confused about what certain variables signified, and raises
erroneous warnings at other times.  These bugs did not show up until
compiling Unicode 6.3.

8 years agomktables: Do some table-driven code generation
Karl Williamson [Fri, 4 Oct 2013 04:06:29 +0000 (22:06 -0600)]
mktables: Do some table-driven code generation

The Unicode Character Database consists of many files in various
different formats.  mktables has a single routine that processes the
most common format type.  Files with different formats are run through
filters to transform them into this format, so that almost all end up
being handles by this common function.

This commit adds a way of specifying the format for one of the other
format types, and then automatically generating the code to do the
transformation.  This doesn't work if the file has lines that have
special cases, such as if there is a known typo in it; the current
scheme can be used for those.

Unfortunately, all but one of the candidate files in Unicode 6.2 aren't
suitable for this table-driven approach.  But a second one is coming in
6.3, and I anticipate more in the future, as Unicode has tightened their
quality control significantly in recent releases.

8 years agoperluniprops: Add correct ignored files docs
Karl Williamson [Fri, 4 Oct 2013 03:52:14 +0000 (21:52 -0600)]
perluniprops: Add correct ignored files docs

Unicode furnishes various files that Perl ignores.  perluniprops lists
these, with a brief reason of what they are for and why they aren't used
by Perl.  Two files weren't listed, and one had a typo in the name and
an inadequate description.

8 years agolib/unicore/README.perl: Update
Karl Williamson [Tue, 1 Oct 2013 04:41:51 +0000 (22:41 -0600)]
lib/unicore/README.perl: Update

This changes this to conform to changes in Unicode 6.2

8 years agoPorting/ - Fix breakage since commit c676c8385f
Steve Hay [Thu, 3 Oct 2013 12:11:26 +0000 (13:11 +0100)]
Porting/ - Fix breakage since commit c676c8385f

8 years agoPorting/ - No need to list IGNORABLES as EXCLUDED
Steve Hay [Thu, 3 Oct 2013 08:04:57 +0000 (09:04 +0100)]
Porting/ - No need to list IGNORABLES as EXCLUDED

8 years agoPorting/ - Consistent quotes
Steve Hay [Thu, 3 Oct 2013 07:58:10 +0000 (08:58 +0100)]
Porting/ - Consistent quotes

8 years agoPorting/ - Use PAUSE user IDs
Steve Hay [Thu, 3 Oct 2013 07:56:56 +0000 (08:56 +0100)]
Porting/ - Use PAUSE user IDs

Since we now encourage the use of the DISTRIBUTION field to find the PAUSE
user ID of the maintainer rather than explicitly listing most maintainers,
it makes sense to also use PAUSE user IDs where possible for the few
MAINTAINERS that are still given explicitly.

8 years agoPorting/ - Remove most MAINTAINER fields
Steve Hay [Wed, 2 Oct 2013 17:16:33 +0000 (18:16 +0100)]
Porting/ - Remove most MAINTAINER fields

Remove the MAINTAINER field if it was 'p5p' (or 'blead', which was the case for
Unicode::UCD, presumably in error) or if there is a DISTRIBUTION field. Only a
few MAINTAINER fields are now left, for modules with non-'p5p' maintainers but
no CPAN distribution. For modules now having no MAINTAINER field, the maintainer
is understood to be either the Perl 5 Porters if there is no DISTRIBUTION field
or the UPSTREAM field is 'blead', or else the CPAN author whose PAUSE user ID
forms the first part of the DISTRIBUTION value.

Set up a legacy MAINTAINER field for backwards compatibility with existing
functionality in Porting/Maintainers, Porting/ and

The latter program now omits modules such as Attribute::Handlers from %upstream
and %bug_tracker in because the MAINTAINER is now understood to be
'p5p' since the UPSTREAM field is 'blead'. Previously it was included because a
non-'p5p' MAINTAINER was given, but that was really at odds with UPSTREAM being

8 years agoperlexperiment: add link for lexsubs
Ricardo Signes [Thu, 3 Oct 2013 01:11:35 +0000 (21:11 -0400)]
perlexperiment: add link for lexsubs

8 years agoperlfunc.pod: clarify return value of -X [perl #120077]
David Golden [Wed, 2 Oct 2013 18:03:29 +0000 (14:03 -0400)]
perlfunc.pod: clarify return value of -X [perl #120077]

8 years agoFix ext/File-Glob/t/threads.t filenames for VMS.
Craig A. Berry [Wed, 2 Oct 2013 02:43:13 +0000 (21:43 -0500)]
Fix ext/File-Glob/t/threads.t filenames for VMS.

As noted in

zero-length extensions always get a trailing dot on VMS, and the
easiest workaround is to always use an explicit extension.

8 years agoRegen META files for CPAN::Meta update
Chris 'BinGOs' Williams [Tue, 1 Oct 2013 12:15:39 +0000 (13:15 +0100)]
Regen META files for CPAN::Meta update