This is a live mirror of the Perl 5 development currently hosted at
9 years agoAdded release manager test for copyright year
Smylers [Fri, 6 Sep 2013 10:56:07 +0000 (11:56 +0100)]
Added release manager test for copyright year

9 years agoTest that README and perl -v copyright years match
Smylers [Fri, 6 Sep 2013 10:07:27 +0000 (11:07 +0100)]
Test that README and perl -v copyright years match

9 years agoEnhance runperl doc to mention its return value
Smylers [Fri, 6 Sep 2013 09:37:29 +0000 (10:37 +0100)]
Enhance runperl doc to mention its return value

9 years ago[Merge] Make regexp error messages utf8-clean
Father Chrysostomos [Tue, 10 Sep 2013 15:36:43 +0000 (08:36 -0700)]
[Merge] Make regexp error messages utf8-clean

9 years agoMake the "Switch condition not recognized" error message UTF-8 clean
Brian Fraser [Thu, 29 Aug 2013 14:18:55 +0000 (11:18 -0300)]
Make the "Switch condition not recognized" error message UTF-8 clean

9 years agot/re/reg_mesg.t: Tests for latin1 error messages/warnings
Brian Fraser [Fri, 30 Aug 2013 16:10:16 +0000 (13:10 -0300)]
t/re/reg_mesg.t: Tests for latin1 error messages/warnings

9 years agoregcomp.c: Introduce vFAIL2utf8f to replace the APPLY(X,Y) hack
Brian Fraser [Fri, 6 Sep 2013 00:07:22 +0000 (21:07 -0300)]
regcomp.c: Introduce vFAIL2utf8f to replace the APPLY(X,Y) hack

The APPLY() hack was added in the previous commit to get
vFAIL4("%"UTF8f, UTF8fARG(a,b,c)) working.  Without it,
vFAIL4 would complain about missing arguments, since it only
saw one, but if replaced with vFAIL2, then Simple_vFAIL2 would
complain about having too many arguments.

This commit introduces a vFAIL2utf8f macro that works around
this and enables us to remove the hack.

9 years agoregcomp.c: Make all warnings and error messages UTF-8 clean
Brian Fraser [Fri, 30 Aug 2013 15:06:11 +0000 (12:06 -0300)]
regcomp.c: Make all warnings and error messages UTF-8 clean

9 years agoregcomp.c, S_compile_runtime_code: croak using the SVf format
Brian Fraser [Thu, 29 Aug 2013 14:36:12 +0000 (11:36 -0300)]
regcomp.c, S_compile_runtime_code: croak using the SVf format

This makes error messages from code like this:

    $f = "(?{q\0foo\0 + \x{FFFF}})";
    "a" =~ /^a$f/;

Be both UTF-8 and nul clean.

9 years agotoke.c: "Unrecognized character" error shouldn't leak memory or mangle characters.
Brian Fraser [Thu, 29 Aug 2013 14:26:58 +0000 (11:26 -0300)]
toke.c: "Unrecognized character" error shouldn't leak memory or mangle characters.

This error could've leaked memory if used within as eval, and could
cut off in the middle of a character, leaving worthless binary data
in the error message.

9 years agopp_ctl.c:pp_goto: Cast a boolean properly
Father Chrysostomos [Tue, 10 Sep 2013 15:17:51 +0000 (08:17 -0700)]
pp_ctl.c:pp_goto: Cast a boolean properly

Otherwise we might end up using AvARRAY on a tied array.

9 years agoRemove PERL_MICRO where it is conditionally used with other defines
David Leadbeater [Sat, 18 Aug 2012 15:44:32 +0000 (16:44 +0100)]
Remove PERL_MICRO where it is conditionally used with other defines

There are several cases where PERL_MICRO is used combined with defines
not set in uconfig.h, the additional test isn't needed.

9 years agoRemove including config.h (and co) in perlio.h
David Leadbeater [Sat, 18 Aug 2012 15:41:59 +0000 (16:41 +0100)]
Remove including config.h (and co) in perlio.h

As far as I can tell this is entirely dead code.

9 years agoRemove defining DIR* to void* on microperl
David Leadbeater [Sat, 18 Aug 2012 15:33:33 +0000 (16:33 +0100)]
Remove defining DIR* to void* on microperl

It's possible some older systems want sys/dir.h rather than dirent.h to
define DIR, however this is just a nasty workaround to the actual issue.

9 years agoUse PERL_INT_MAX, this works in microperl
David Leadbeater [Sat, 18 Aug 2012 15:26:11 +0000 (16:26 +0100)]
Use PERL_INT_MAX, this works in microperl

9 years agoSimplify the conditional logic for COW_REFCNT in Devel::Peek's test.
Nicholas Clark [Wed, 4 Sep 2013 13:14:03 +0000 (15:14 +0200)]
Simplify the conditional logic for COW_REFCNT in Devel::Peek's test.

Instead of having a comment on each COW_REFCNT line to skip the line on
earlier versions, move the skip into the existing code which skips the same
lines on current versions built without COW.

9 years agoFix Devel::Peek's tests when building with -DPERL_NO_COW
Nicholas Clark [Wed, 4 Sep 2013 12:55:00 +0000 (14:55 +0200)]
Fix Devel::Peek's tests when building with -DPERL_NO_COW

One test had a pattern with a (?:...)? construction split across two lines,
specifically enclosing the newline at the end of a line, and the line that

When perl is built with -DPERL_NO_COW or -DPERL_OLD_COPY_ON_WRITE the test's
do_test() driver routine would remove the second line, which included the
closing ')?', leaving a an invalid regex. The solution is to remove the
(?: )? completely, as the driver routine's line removal has the same intent
as the (?: )? construction.

9 years agoperldelta - Two more module upgrades
Steve Hay [Tue, 10 Sep 2013 08:11:07 +0000 (09:11 +0100)]
perldelta - Two more module upgrades

9 years agoCorrect typos reported by Terry Speirs++.
James E Keenan [Mon, 9 Sep 2013 23:05:05 +0000 (01:05 +0200)]
Correct typos reported by Terry Speirs++.

For: RT #119673

9 years agoUpdate EXCLUDED for CPAN-Meta-Requirements following 7cb95fb75d
Steve Hay [Mon, 9 Sep 2013 19:52:08 +0000 (20:52 +0100)]
Update EXCLUDED for CPAN-Meta-Requirements following 7cb95fb75d

9 years agort119311.t: typo
Father Chrysostomos [Mon, 9 Sep 2013 15:21:13 +0000 (08:21 -0700)]
rt119311.t: typo

9 years agoMake &xsub and goto &xsub work with tied @_
Father Chrysostomos [Mon, 9 Sep 2013 08:59:33 +0000 (01:59 -0700)]
Make &xsub and goto &xsub work with tied @_

This is the only place where tied @_ does not work, and there appears
to be no reason why it shouldn’t, apart from the fact that it hasn’t
been implemented.

Commit 67955e0c was what made &xsub work to begin with.  93965878572
introduced tied arrays and added the comment to pp_entersub saying
that @_ is not tiable.

goto &xsub has worked since perl 5.000, but 93965878572 did not make
it work with tied arrays.

9 years agoDumper.xs: Update comment
Father Chrysostomos [Mon, 9 Sep 2013 08:47:42 +0000 (01:47 -0700)]
Dumper.xs: Update comment

9 years agoperl5200delta: 2 modules fixed; one misspelt
Father Chrysostomos [Mon, 9 Sep 2013 08:16:27 +0000 (01:16 -0700)]
perl5200delta: 2 modules fixed; one misspelt

9 years agoExtUtils::Command has been synchronised to CPAN
Florian Ragwitz [Mon, 9 Sep 2013 13:18:19 +0000 (09:18 -0400)]
ExtUtils::Command has been synchronised to CPAN

9 years agoUpgrade Parse::CPAN::Meta from version 1.4405 to 1.4407
Steve Hay [Mon, 9 Sep 2013 08:09:45 +0000 (09:09 +0100)]
Upgrade Parse::CPAN::Meta from version 1.4405 to 1.4407

9 years agoUpgrade ExtUtils::CBuilder from version 0.280210 to 0.280212
Steve Hay [Mon, 9 Sep 2013 07:57:16 +0000 (08:57 +0100)]
Upgrade ExtUtils::CBuilder from version 0.280210 to 0.280212

9 years agoUpgrade CPAN::Meta from version 2.132140 to 2.132510
Steve Hay [Mon, 9 Sep 2013 07:46:18 +0000 (08:46 +0100)]
Upgrade CPAN::Meta from version 2.132140 to 2.132510

9 years agoSort the list of IGNORABLES in Porting/
Steve Hay [Mon, 9 Sep 2013 07:36:14 +0000 (08:36 +0100)]
Sort the list of IGNORABLES in Porting/

9 years agoAdd mods from #119433 to perl5200delta
Father Chrysostomos [Mon, 9 Sep 2013 08:08:57 +0000 (01:08 -0700)]
Add mods from #119433 to perl5200delta

9 years agoperlio.c: misuse of SvPV_nolen_const
Father Chrysostomos [Mon, 9 Sep 2013 07:53:43 +0000 (00:53 -0700)]
perlio.c: misuse of SvPV_nolen_const

SvPV_nolen_const takes only one argument and does not return
a length.

9 years agoFix buffer overflow with overlong identifiers
Father Chrysostomos [Mon, 9 Sep 2013 07:35:38 +0000 (00:35 -0700)]
Fix buffer overflow with overlong identifiers

This was introduced by commit 32833930e32dc in 5.17.10.

$  ./perl -Ilib -e Foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
Identifier too long at -e line 1.
Segmentation fault: 11

(That was an amusing use of macro parentheses for the while condition,
at least while it lasted.)

9 years agoFix -DP output
Father Chrysostomos [Mon, 9 Sep 2013 07:15:58 +0000 (00:15 -0700)]
Fix -DP output

broken by b66f3475d343.

$ ./perl -Ilib -DP
Screamer: entering, ptr=140185618803200, cnt=0
Screamer: entering: PerlIO * thinks ptr=140185618803200, cnt=%z, base=0
Screamer: going to getc, ptr=140185618803200, cnt=%z

The format is %zd, not %z.

9 years agoDon’t let reblessing point SvSTASH to a half-freed stash
Father Chrysostomos [Mon, 9 Sep 2013 06:05:40 +0000 (23:05 -0700)]
Don’t let reblessing point SvSTASH to a half-freed stash

We should set SvSTASH before calling SvREFCNT_dec on its old value,
otherwise we could free the old stash and trigger a DESTROY that sees
the object blessed into the half-freed stash.

Currently, a second call to bless inside DESTROY can trigger ‘Attempt
to free unreferenced scalar’, because it calls SvREFCNT_dec a second
time on the stash that already has a reference count of 0.

9 years agoFix assertion failure with -DT -e\"
Father Chrysostomos [Mon, 9 Sep 2013 01:51:56 +0000 (18:51 -0700)]
Fix assertion failure with -DT -e\"

$ ./perl -DT -e\"
Assertion failed: (s), function S_printbuf, file toke.c, line 479.
Abort trap: 6

9 years ago[perl #117265] fix various problems with safesyscalls
Tony Cook [Mon, 9 Sep 2013 05:36:26 +0000 (15:36 +1000)]
[perl #117265] fix various problems with safesyscalls

- handling "" overloading correctly
- avoid an extraneous warning from glob()

9 years ago[perl #117265] move the "glob failed" warning to the point of failure
Tony Cook [Thu, 5 Sep 2013 04:14:00 +0000 (14:14 +1000)]
[perl #117265] move the "glob failed" warning to the point of failure

This avoids an extraneous warning when globbing fails for other reasons.

9 years ago[perl #117265] do most glob \0 checks in the same place
Tony Cook [Tue, 3 Sep 2013 23:55:53 +0000 (09:55 +1000)]
[perl #117265] do most glob \0 checks in the same place

and before we do much processing

9 years ago[perl #117265] correctly handle overloaded strings
Tony Cook [Tue, 3 Sep 2013 00:17:35 +0000 (10:17 +1000)]
[perl #117265] correctly handle overloaded strings

9 years ago[perl #117265] TODO tests for overloading issues
Tony Cook [Mon, 2 Sep 2013 23:05:09 +0000 (09:05 +1000)]
[perl #117265] TODO tests for overloading issues

9 years agoFix line numbers with #! -d:foo and PERL5DB=$'\n'
Father Chrysostomos [Sun, 8 Sep 2013 20:49:22 +0000 (13:49 -0700)]
Fix line numbers with #! -d:foo and PERL5DB=$'\n'

Commit 2179133 inadvertently stopped the PERL5DB env var from being
truncated just before the first line break.  (I’m considering that
a bug fix.)

The result is that #!perl -d:foo will throw the line numbers off by
one, as will line breaks in PERL5DB:

$ PERL5DB='sub DB::DB{}'$'\n\n\n''' ./perl -dle 'warn "ok"'
ok at -e line 4.

#!perl -d:foo has thrown off line numbers since f0e67a1d291 in 5.12.

This commit fixes both, by storing the line number of #! -d or the
number 0 for -d on the command line in the new PL_parser->preambling
member, which now overrides any number in PL_curcop.

9 years agoTest line breaks in PERL5DB
Father Chrysostomos [Tue, 27 Aug 2013 20:20:39 +0000 (13:20 -0700)]
Test line breaks in PERL5DB

$ PERL5DB='sub DB::DB{} die' perl5.18.1 -dle 'print "ok"'
$ PERL5DB='sub DB::DB{}
die' perl5.18.1 -dle 'print "ok"'

So everything after the line break is ignored.

In bleadperl:

$ PERL5DB='sub DB::DB{} die' ./perl -dle 'print "ok"'
$ PERL5DB='sub DB::DB{}
die' ./perl -dle 'print "ok"'
Died at -e line 1.

Now the whole environment variable is used.  This was probably changed
by commit 2179133.

Let’s call it a bug fix and test it.

(The ‘at -e line 1’ is not right, but the next commit will fix it.)

9 years agoop.c:newSTATEOP: remove unnecessary null check
Father Chrysostomos [Wed, 28 Aug 2013 03:38:03 +0000 (20:38 -0700)]
op.c:newSTATEOP: remove unnecessary null check

If PL_parser is null, then the else block will crash on

9 years agoExtUtils::Manifest has been synchronised to CPAN
Florian Ragwitz [Sun, 8 Sep 2013 15:36:08 +0000 (11:36 -0400)]
ExtUtils::Manifest has been synchronised to CPAN

9 years agoRevert "Let av_push accept NULL values"
Father Chrysostomos [Sun, 8 Sep 2013 01:42:07 +0000 (18:42 -0700)]
Revert "Let av_push accept NULL values"

This reverts commit 7b6e8075e45ebc684565efbe3ce7b70435f20c79.

It turns out to be problematic, because it causes NULLs on the stack,
which XSUBs may trip on.

My main reason for it was actually to try to resolve some CPAN
failures, but it turns out that other fixes have removed the
need for that.

9 years agoMove herelines out of the lex_shared struct
Father Chrysostomos [Sun, 8 Sep 2013 01:34:24 +0000 (18:34 -0700)]
Move herelines out of the lex_shared struct

Previously, the line number was localised in lexing scopes.  herelines
had to be in the lex_shared struct so that inner lexing scopes
could peek into values belonging to outer lexing scopes and set the
herelines value belonging to the same scope that a here-doc body was
extracted from.  (herelines records how much extra to increase the
line number at the next line ending, to jump over a here-doc.)

In commit ffdb8b167e, I changed things so that lexing scopes no longer
localised the line number, except for here-docs, and the line number
was incremented within the inner lexing scope, instead of during the
initial scan for the terminator.  That meant the herelines value had
to be copied into the inner lexing scope.

For nested here-docs, the inner here-doc’s body is always inside the
outer here-doc, so no peeking into outer scopes is necessary.

Hence, there is no longer any reason for herelines to be inside the
lex_shared struct.  We can put it directly inside the parser struct.
Here-docs will localise it.  Other quote-like constructs will not (and
can avoid the copy.)

9 years agoRespect #line directives in here-docs
Father Chrysostomos [Sun, 8 Sep 2013 00:43:26 +0000 (17:43 -0700)]
Respect #line directives in here-docs

#line directives in here-docs used to be ignored after the heredoc:

#line 27
print __LINE__,"\n" # prints 27
; print __LINE__, "\n"; # prints 7

This commit changes that by recording in PL_multi_end the end of
the here-doc (more precisely, the last line of the body, before the
terminator) during the initial parse to find the terminator.  When
the body is parsed for double-quotish stuff, at the very end (in
sublex_done) the last line number is compared with the one recorded.
Any differences are applied to the current ‘herelines’ value, which
records how many line numbers need to be skipped when the line ending
after the here-doc marked (<<END) is reached.

It conflicts with a line number workaround in op.c, which hasn’t done
anything since I accidentally disabled it in 5.18.

Added in 0244c3a40, this code set the current line number to the end
of the here-doc when creating the substitution op for s//<<foo/e.
Before that, since the line number was localised to the lexing scope,
the new line number set by the here-doc would be undone when the s///
finished, throwing off all subsequent line numbers.

Commit 83944c0156 solved the problem of the line number for code after
the here-doc marker having the wrong line number (because the here-doc
parser would increase the line number by the number of lines in the
here-doc body straightaway).  It introduced the ‘herelines’ value,
recording how many lines the here-doc body contained, but without
updating the line number yet, so that code after the <<marker would
have the right line, but the next \n would increment the line number
by herelines+1.  That accidentally stopped PL_multi_end from having
the right value, disabling the line number code in op.c.  But the
other changes rendered that code unnecessary.

9 years agoregcomp.c:current_re_engine: Avoid %^H lookup when possible
Father Chrysostomos [Sat, 7 Sep 2013 20:34:24 +0000 (13:34 -0700)]
regcomp.c:current_re_engine: Avoid %^H lookup when possible

Modification of %^H sets a flag in PL_hints, so we can check
that flag to avoid the slight overhead of has lookup if %^H
has not been used.

9 years agoFix line numbers in <<foo,<<bar
Father Chrysostomos [Sat, 7 Sep 2013 07:27:28 +0000 (00:27 -0700)]
Fix line numbers in <<foo,<<bar

This used to print 9:

<<foo, <<bar
${warn __LINE__ }

even though the __LINE__ marker is on line 10.  In perl 5.18, I broke
it further, making it print 2.

This commit makes it print 10.  We just need to make sure
PL_multi_start is set correctly in scan_heredoc for a second here-doc
marker on the same line.

9 years agotoke.c: In sublex_push use multi_close to detect here-doc
Father Chrysostomos [Sat, 7 Sep 2013 06:45:36 +0000 (23:45 -0700)]
toke.c: In sublex_push use multi_close to detect here-doc

It is a lot simpler this way.  scan_heredoc already sets PL_multi_close
to '<' (the only code that does it).  That value does not appear to
be used anywhere.  Now it is.

Furthermore, this removes assumptions that the next commit will
likely violate.

9 years agoperldelta - More recent module upgrades
Steve Hay [Sun, 8 Sep 2013 00:40:56 +0000 (01:40 +0100)]
perldelta - More recent module upgrades

9 years agoData-Dumper/ An EBCDIC fix
Karl Williamson [Fri, 5 Apr 2013 18:21:21 +0000 (12:21 -0600)]
Data-Dumper/ An EBCDIC fix

Change the range 0-7F to the portable equivalent [:ascii:]

9 years agoTerm::ReadLine has been synchronised to CPAN
Florian Ragwitz [Sat, 7 Sep 2013 13:54:29 +0000 (09:54 -0400)]
Term::ReadLine has been synchronised to CPAN

9 years agoBump $Term::ReadLine::VERSION
Florian Ragwitz [Sat, 7 Sep 2013 14:13:25 +0000 (10:13 -0400)]
Bump $Term::ReadLine::VERSION

9 years agoAdd Tokuhiro Matsuno to AUTHORS
Florian Ragwitz [Sat, 7 Sep 2013 14:11:17 +0000 (10:11 -0400)]
Add Tokuhiro Matsuno to AUTHORS

9 years agoadded Term::ReadLine::EditLine support
Tokuhiro Matsuno [Sat, 26 Jan 2013 13:01:18 +0000 (22:01 +0900)]
added Term::ReadLine::EditLine support

9 years agoTerm::ReadLine has been synchronised to CPAN
Florian Ragwitz [Sat, 7 Sep 2013 13:54:29 +0000 (09:54 -0400)]
Term::ReadLine has been synchronised to CPAN

9 years agoFix processing of PERL_ENV_TABLES.
Craig A. Berry [Sat, 7 Sep 2013 11:55:25 +0000 (06:55 -0500)]
Fix processing of PERL_ENV_TABLES.

In a35dcc95dd24524931e I "improved" string safety in vms/vms.c by
converting to my_strlcpy and my_strlcat, but mangled the length
argument to my_strlcat when adding the name of the logical name
table specified in PERL_ENV_TABLES. This caused the command string
to be truncated, so a command that, for example, should have been:

    $ Show Logical * /Table=LNM$JOB

actually became:

    $ Show Logical * /Table=
    %DCL-W-VALREQ, missing qualifier or keyword value - supply all required values

Plus it turns out the strings holding the names of the tables were
being stored in dynamic string descriptors and were not
NUL-terminated, but the strl* functions require NUL-terminated
arguments.  So change those to static string descriptors and
allocate the exact amount of storage needed including room for a

This was a regression in 5.16.0, first reported a couple of days
ago by Mark Daniel on comp.os.vms:

Date: Fri, 06 Sep 2013 12:56:01 +0930
From: Mark Daniel <mark.daniel [AT]>
Newsgroups: comp.os.vms
Message-ID: <52294b4a$0$2875$c3e8da3$>

TODO: Figure out how and where to test this.

9 years agoFix PerlIO_get_cnt and friends
Leon Timmermans [Wed, 28 Aug 2013 13:06:29 +0000 (15:06 +0200)]
Fix PerlIO_get_cnt and friends

These functions worked with ints instead of SSize_t,

9 years agoFix segfault in filehandle duplication
Leon Timmermans [Sat, 7 Sep 2013 06:58:18 +0000 (08:58 +0200)]
Fix segfault in filehandle duplication

Previously PerlIOBase_dup didn't check if pushing the new layer succeeded
before (optionally) setting the utf8 flag. This could cause

9 years agoLet av_push accept NULL values
Father Chrysostomos [Sat, 7 Sep 2013 06:21:56 +0000 (23:21 -0700)]
Let av_push accept NULL values

Now that NULL is used for a nonexistent element, it is easy for XS
code to pass it to av_push().  av_store already accepts NULL, and
av_push already works with it on non-debugging builds, so there is
really no need for this restriction.

9 years agoStop Devel'Peek'Dump with no args from crashing
Father Chrysostomos [Sat, 7 Sep 2013 01:07:50 +0000 (18:07 -0700)]
Stop Devel'Peek'Dump with no args from crashing

I accidentally broke this in commit xxxxxxxx (5.19.3).  The crash hap-
pened at compile time.

9 years agoregcomp.c:S_concat_pat: Allow 64-bit array offsets
Father Chrysostomos [Fri, 6 Sep 2013 23:06:07 +0000 (16:06 -0700)]
regcomp.c:S_concat_pat: Allow 64-bit array offsets

9 years agoMake /@array/ handle nonexistent array elements
Father Chrysostomos [Fri, 6 Sep 2013 23:04:40 +0000 (16:04 -0700)]
Make /@array/ handle nonexistent array elements

Commit ce0d59f changed AVs to use NULLs for nonexistent elements.

S_concat_pat in regcomp.c needs to account for that, to
avoid crashing.

9 years agoAllow 64-bit array and stack offsets in entersub & goto
Father Chrysostomos [Fri, 6 Sep 2013 19:35:56 +0000 (12:35 -0700)]
Allow 64-bit array and stack offsets in entersub & goto

I don’t have enough memory to test this, but it needs to be done even-
tually anyway.

9 years agoStop &xsub and goto &xsub from crashing on undef *_
Father Chrysostomos [Fri, 6 Sep 2013 15:30:41 +0000 (08:30 -0700)]
Stop &xsub and goto &xsub from crashing on undef *_

$ perl -e 'undef *_; &Internals::V'
Segmentation fault: 11
$ perl -e 'sub { undef *_; goto &Internals::V }->()'
$ perl5.18.1 -e 'sub { undef *_; goto &Internals::V }->()'
Segmentation fault: 11

The goto case is actually a regression from 5.16 (049bd5ffd62), as
goto used to ignore changes to *_.  (Fixing one bug uncovers another.)

We shouldn’t assume that GvAV(PL_defgv) (*_{ARRAY}) gives us anything.

While we’re at it, since we have to add extra checks anyway, use them
to speed up empty @_ in goto (by checking items, rather than arg).

9 years agoUpdated ExtUtils::CBuilder to 0.280210
Leon Timmermans [Sat, 7 Sep 2013 04:31:53 +0000 (06:31 +0200)]
Updated ExtUtils::CBuilder to 0.280210

9 years agoperldelta - Note recent module upgrades
Steve Hay [Fri, 6 Sep 2013 22:36:17 +0000 (23:36 +0100)]
perldelta - Note recent module upgrades

9 years agoPATCH: [perl #119601] Bleadperl breaks ETHER/Devel-Declare
Karl Williamson [Fri, 6 Sep 2013 20:02:25 +0000 (14:02 -0600)]
PATCH: [perl #119601] Bleadperl breaks ETHER/Devel-Declare

I will not otherwise mention that stealing .c code from the core is a
dangerous practice.

This is actually a bug in the module, which had been masked until now.
The first two parameters to utf8_to_uvchr_buf() are both U8*.  But  both
's' and PL_bufend are char*.  The 's' has a cast to U8* in the failing
line, but not PL_bufend.

Interestingly, the line in the official toke.c (introduced in 4b88fb76)
has always been right, so the stealer didn't copy it correctly.

What de69f3af3 did was turn this former function call into a macro that
manipulates the parameters and calls another function, thereby removing
a layer of function call overhead.  The manipulation involves
subtracting 's' from PL_bufend, and this fails to compile due to the
missing cast on the latter parameter.

The problem goes away if the macro casts both parameters to U8*, and
that is what this commit does.

9 years agoRemove Configure hints for the old AT&T 3b1.
Andy Dougherty [Fri, 6 Sep 2013 12:44:52 +0000 (08:44 -0400)]
Remove Configure hints for the old AT&T 3b1.

I am unaware of any successful builds since the 5.005 era.

9 years agopp_goto: document the different branches
David Mitchell [Fri, 6 Sep 2013 14:54:10 +0000 (15:54 +0100)]
pp_goto: document the different branches

Te various different forms of goto (and dump) take different branches
through this big function. Document which branches handle which variants.
Also document the use of OPf_SPECIAL in OP_DUMP.

9 years agoUpdate ExtUtils-MakeMaker to CPAN version 6.76
Chris 'BinGOs' Williams [Fri, 6 Sep 2013 12:59:45 +0000 (13:59 +0100)]
Update ExtUtils-MakeMaker to CPAN version 6.76


6.76 Fri Sep  6 13:32:42 BST 2013

    No changes from 6.75_04

6.75_04 Thu Sep  5 12:07:59 BST 2013
    Bug fixes:
    * Sanitise make on MSWin32 when reporting Makefile type

6.75_03 Tue Sep  3 00:24:23 BST 2013
    New features:
    * Added RECURSIVE_TEST_FILES attribute to 'test'
    * Report the type of Makefile being generated

    Bug fixes:
    * RT#17041 more sortification of hashes to Makefile

6.75_02 Sun Sep  1 21:50:48 BST 2013
    Bug fixes:
    * RT#49043 binmode STDIN breaks prompt() on MSWin32
    * RT#14505 Handle -Wl,-rpath correctly
    * RT#17041 Sort manification and copying events for perceptive

6.75_01 Thu Aug 29 15:06:27 BST 2013
    New features:
    * Added NO_PERLLOCAL option to allow suppression of writing
      installs to perllocal.pod
    * Added NO_PACKLIST option to allow suppression of writing
      packlist files for installations

    Bug Fixes:
    * RT#32894 deal with legitimate linker flags correctly
    * RT#88222 check that Time::HiRes has 'stat' before using it

    Doc Fixes:
    * RT#87350 Document DLEXT parameter (sisyphus)

9 years agoUpdate README copyright to 2013
Smylers [Fri, 6 Sep 2013 05:02:41 +0000 (06:02 +0100)]
Update README copyright to 2013

For RT #119625.

9 years agoPut AV defelem creation code in one place
Father Chrysostomos [Fri, 6 Sep 2013 07:51:16 +0000 (00:51 -0700)]
Put AV defelem creation code in one place

9 years agoUse defelems for (goto) &xsub calls
Father Chrysostomos [Fri, 6 Sep 2013 07:17:05 +0000 (00:17 -0700)]
Use defelems for (goto) &xsub calls

Before ce0d59f:

$ perl -e '++$#_; &utf8::encode'
Modification of a read-only value attempted at -e line 1.

As of ce0d59f:

$ ./perl -Ilib -e '++$#_; &utf8::encode'
Assertion failed: (sv), function Perl_sv_utf8_encode, file sv.c, line 3581.
Abort trap: 6

Calling sub { utf8::encode($_[0]) } should be more or less equivalent
to calling utf8::encode, but it is not in this case:

$ ./perl -Ilib -we '++$#_; &{sub { utf8::encode($_[0]) }}'
Use of uninitialized value in subroutine entry at -e line 1.

In the first two examples above, an implementation detail is leaking
through.  What you are seeing is not the array element, but a place-
holder that indicates an element that has not been assigned to yet.

We should use defelem magic so that what the XSUB assigns to will cre-
ate an array element (as happens with utf8::encode($_[0])).

All of the above applies to goto &xsub as well.

9 years agopp_hot.c:pp_aelem: Use _NN in one spot
Father Chrysostomos [Fri, 6 Sep 2013 03:33:00 +0000 (20:33 -0700)]
pp_hot.c:pp_aelem: Use _NN in one spot

This av can never be null here.  av_len will already have failed an
assertion if it is.

9 years agoMake pp_splice handle nonexistent array elements
Father Chrysostomos [Thu, 5 Sep 2013 21:39:47 +0000 (14:39 -0700)]
Make pp_splice handle nonexistent array elements

Commit ce0d59f changed AVs to use NULLs for nonexistent elements.

pp_splice needs to take that into account and avoid pushing NULLs on
to the stack.

9 years agoUpdate Time-Piece to CPAN version 1.23
Chris 'BinGOs' Williams [Fri, 6 Sep 2013 12:24:57 +0000 (13:24 +0100)]
Update Time-Piece to CPAN version 1.23


  1.23      2013-09-06
        - add a LICENSE file (thanks, John Peacock!)
        - make sure Time::Seconds loads Exporter, which it relies on (thanks,
          GFUJI and TOKUHIROM!)
        - fix day of year parsing (like "%y%j") (thanks, Doug Wilson)

9 years agomore Slavic intelligibility: added Bosnian to Serbian and Croatian
Slaven Rezic [Sat, 6 Feb 2010 22:55:31 +0000 (23:55 +0100)]
more Slavic intelligibility: added Bosnian to Serbian and Croatian


For: RT #72594

9 years agoStop autodie test from changing a file to stop Git whining about uncommitted changes
Steve Hay [Thu, 5 Sep 2013 17:11:07 +0000 (18:11 +0100)]
Stop autodie test from changing a file to stop Git whining about uncommitted changes

The patch has been sent upstream as CPAN#88444.

9 years agoperldelta - Add note about DynaLoader change (commit 1e5d7f5401)
Steve Hay [Thu, 5 Sep 2013 16:38:13 +0000 (17:38 +0100)]
perldelta - Add note about DynaLoader change (commit 1e5d7f5401)

9 years agoLocale::Codes has been upgraded from version 3.26 to 3.27
Steve Hay [Thu, 5 Sep 2013 16:30:05 +0000 (17:30 +0100)]
Locale::Codes has been upgraded from version 3.26 to 3.27

9 years agoPATCH: Bump Locale-Codes from 3.26 to 3.27
Sullivan Beck [Thu, 5 Sep 2013 13:21:52 +0000 (09:21 -0400)]
PATCH: Bump Locale-Codes from 3.26 to 3.27

I just released Locale-Codes-3.27 which contains the core modules
Locale::Country, Locale::Language, and Locale::Currency.  The patch is
attached here.


The core modules Locale::Country, Locale::Language, and
Locale::Currency(all part of the Locale-Codes distribution) should be
updated on aregular basis. They contain "codes" from various internet
standardswhich change over time.

I plan on releasing new versions at 4 times a year to keep the
codesup-to-date. At this point, I'm not planning on any significant
codechanges (other than bug fixes), so the only significant
changesbetween releases should be to update the codes.

>From 708ae6e6e8a6e839cb9510513b82ee95eec80260 Mon Sep 17 00:00:00 2001
From: Sullivan Beck <>
Date: Thu, 5 Sep 2013 09:12:04 -0400
Subject: [PATCH] Bump Locale-Codes from 3.26 to 3.27

Signed-off-by: Chris 'BinGOs' Williams <>
9 years agoMake perltodo.pod match other deleted documents
Smylers [Thu, 5 Sep 2013 10:29:15 +0000 (11:29 +0100)]
Make perltodo.pod match other deleted documents

Have the title make clear it's now only a link to the to-do list.

Re-arrange the body content so the most useful thing — the link to the
current to-do list — is first and the history afterwards.

For RT #119615.

9 years agoAdd titles to deleted OO docs
Smylers [Thu, 5 Sep 2013 10:26:50 +0000 (11:26 +0100)]
Add titles to deleted OO docs

Helpful somebody who encounters these documents or their titles realize
they contain links to where current information can be found.

For RT #119615, based on Father Chrysostomos's comment in RT #119571.

9 years agoAdd missing word
Smylers [Thu, 5 Sep 2013 10:14:04 +0000 (11:14 +0100)]
Add missing word

For RT #119615.

9 years agoList deleted docs alphabetically
Smylers [Thu, 5 Sep 2013 10:01:53 +0000 (11:01 +0100)]
List deleted docs alphabetically

perlrepository was added at the end in 5edbc4ff, when I apparently failed
to notice the list was in alphabetical order.

For RT #119615.

9 years agoMultiple commits in 1 attachment in Patch Guide
Smylers [Thu, 5 Sep 2013 08:07:23 +0000 (09:07 +0100)]
Multiple commits in 1 attachment in Patch Guide

In the Super Quick Patch Guide, if a change involves multiple commits, put
them all in a single perlbug attachment.

Father Chrysostomos says it's easier like this, in a comment on
RT #119599.

It simplifies the instructions, and avoiding the need to mention mail

9 years agoutil.c:my_pclose: Use NULL in PL_fdpid
Father Chrysostomos [Thu, 5 Sep 2013 08:11:59 +0000 (01:11 -0700)]
util.c:my_pclose: Use NULL in PL_fdpid

PL_fdpid is an AV, and as of ce0d59f AVs use NULL for nonexist-
ent elements.

Without using NULL for deleted elements of PL_fdpid, we end up with
pipes appearing to be open after they have actually been closed.

I don’t know how to write a test for this, but it makes
Proc::ParallelLoop pass its tests.

9 years agoUpdate perlguts for the magic flags changes in 5.18
Father Chrysostomos [Thu, 5 Sep 2013 07:38:53 +0000 (00:38 -0700)]
Update perlguts for the magic flags changes in 5.18

9 years agoperlguts: Note that SvUTF8 is meaningful only after SvPV
Father Chrysostomos [Thu, 5 Sep 2013 07:33:01 +0000 (00:33 -0700)]
perlguts: Note that SvUTF8 is meaningful only after SvPV

9 years agoperlguts: consistent spaces after dots
Father Chrysostomos [Thu, 5 Sep 2013 07:22:31 +0000 (00:22 -0700)]
perlguts: consistent spaces after dots

It was inconsistent throughout.

9 years agoUpdate perlguts for NULL in AVs
Father Chrysostomos [Thu, 5 Sep 2013 07:03:32 +0000 (00:03 -0700)]
Update perlguts for NULL in AVs

9 years agoRemove references to GNU DLD from Configure and scripts.
Nicholas Clark [Fri, 23 Aug 2013 09:39:40 +0000 (11:39 +0200)]
Remove references to GNU DLD from Configure and scripts.

Specifically eliminated i_dld, a variable indicating that <dld.h> should be
included, and remove dld from the list of wanted libraries.

9 years agoRemove support for GNU DLD in DynaLoader.
Nicholas Clark [Thu, 5 Sep 2013 09:37:11 +0000 (11:37 +0200)]
Remove support for GNU DLD in DynaLoader.

GNU DLD was a library that provided dynamic linking on a.out based systems.
The last release was in 1996, and it has been superseded by dlopen.

9 years agoMove functions prematurely placed into mathoms back to utf8.c
Karl Williamson [Thu, 5 Sep 2013 04:31:01 +0000 (22:31 -0600)]
Move functions prematurely placed into mathoms back to utf8.c

These functions are still called by some CPAN-upstream modules, so can't
go into mathoms until those are fixed.  There are other changes needed
in these modules, so I'm deferring sending patching to their maintainers
until I know all the necessary changes.

9 years agoregcomp.c: Don't use mathoms function
Karl Williamson [Thu, 5 Sep 2013 04:26:07 +0000 (22:26 -0600)]
regcomp.c: Don't use mathoms function

utf8n_to_uvuni() is on its way out.  Instead, this code knows that the
UTF-8 it is looking at is valid (having been already checked earlier in
the regex compilation process), so use valid_utf8_to_uvchr().  This
allows us to get rid of a flag variable.

9 years agoperlapi: Remove newly obsolete statement
Karl Williamson [Thu, 5 Sep 2013 03:53:08 +0000 (21:53 -0600)]
perlapi: Remove newly obsolete statement

Since commit 010ab96b9b802bbf77168b5af384569e053cdb63, this function is
now longer a wrapper, so shouldn't be described as such.

9 years agoWhen sending an email manually so it can have multiple patches, point out
Smylers [Thu, 5 Sep 2013 01:39:33 +0000 (03:39 +0200)]
When sending an email manually so it can have multiple patches, point out
that Mutt can construct the email for you.

Obviously this isn't as generally relevant as the rest of the Guide, since
patchers will use many different mail clients. But it's a significant boon
for those who do use Mutt, and a very short addition to the Guide.

Mutt is singled out simply because it has this functionality; I suspect
that most other widely used mail clients don't.

Committer: Removed trailing whitespace.  Applied patch manually because other
lines in the file had been rebroken and patch no longer applied cleanly.

For: RT #119599

9 years agoMultiple commits in Super Quick Patch Guide
Smylers [Wed, 4 Sep 2013 11:37:36 +0000 (12:37 +0100)]
Multiple commits in Super Quick Patch Guide

How to use perlbug when a change is a series of commits, not a single

This is the advice RJBS gave me over IRC. Including it in the guide should
avoid him having to repeat the advice to others.

Committer: Added single quotes around one keyboard command.

For: RT #119599