This is a live mirror of the Perl 5 development currently hosted at
11 years agoDocument BEGIN, END, etc. in perlsyn
David Golden [Fri, 30 Sep 2011 01:12:25 +0000 (21:12 -0400)]
Document BEGIN, END, etc. in perlsyn

This adds a brief note that blocks can be preceded by a
compilation phase keyword and points the reader to
perlmod for the gory details.

11 years agoAdd lib/ as a target for
Nicholas Clark [Thu, 29 Sep 2011 22:45:49 +0000 (00:45 +0200)]
Add lib/ as a target for

Add -Ilib to the command line generated when -e is used.

Now you can use --target=lib/ -e 'use Config; ...' to test code
that needs Config, but doesn't require building perl.

11 years can build miniperl in parallel for earlier perl versions.
Nicholas Clark [Thu, 29 Sep 2011 22:17:34 +0000 (00:17 +0200)] can build miniperl in parallel for earlier perl versions.

Makefile bugs that caused problems for parallel builds were for targets built
after miniperl.

Also add an editor block to

11 years agoAdd Porting/, to automate bisecting a perl code test case.
Nicholas Clark [Thu, 29 Sep 2011 20:44:45 +0000 (22:44 +0200)]
Add Porting/, to automate bisecting a perl code test case.

11 years agoupdate valgrind URL and platforms
Tony Cook [Thu, 29 Sep 2011 05:47:30 +0000 (15:47 +1000)]
update valgrind URL and platforms

11 years agoAdd darwin to the list of valgrind platforms
Tony Cook [Thu, 29 Sep 2011 05:43:02 +0000 (15:43 +1000)]
Add darwin to the list of valgrind platforms

11 years agoMakefile.SH: emit make valgrind* targets only on linux
Jim Cromie [Wed, 28 Sep 2011 22:11:13 +0000 (16:11 -0600)]
Makefile.SH: emit make valgrind* targets only on linux

This inserts several case $osname in linux) spitshell ... esac
statements to emit valgrind targets only where valgrind is available.
Platform dependence is better than checking for valgrind executable
because it serves as a subtle hint that it can be installed.
Other platforms can be added by those who have them.

11 years agoMakefile.SH: fix ?= gmake-isms
Jim Cromie [Wed, 28 Sep 2011 21:12:07 +0000 (15:12 -0600)]
Makefile.SH: fix ?= gmake-isms

commit c7b956bbbaff changed Makefile.SH to emit gmake-only syntax, fix
that by doing so only on linux, by inserting a spitshell dependent on
osname.  This isnt the most direct fix, but it starts to isolate
linux-only/mostly stuff, like test.valgrind.

11 years agoperldelta for ExtUtils::MakeMaker version 6.61_01.
George Greer [Wed, 28 Sep 2011 22:34:59 +0000 (18:34 -0400)]
perldelta for ExtUtils::MakeMaker version 6.61_01.

11 years agoUpdate ExtUtils::MakeMaker to CPAN version 6.61_01
George Greer [Wed, 28 Sep 2011 03:16:09 +0000 (23:16 -0400)]
Update ExtUtils::MakeMaker to CPAN version 6.61_01


6.61_01  Sat Sep 24 22:16:13 PDT 2011
    * Liblist::Kid now checks the ActiveState MinGW library path environment
      variable [MITHALDU]
    * Further fixes to the Win32 quoting rules.  Fixes failures on VC8+.
      [ #69528] [SHAY]

11 years agoAdd missing C on </p> construct
Dave Rolsky [Mon, 26 Sep 2011 19:18:42 +0000 (14:18 -0500)]
Add missing C on </p> construct

11 years agoMake a new section for vars related to interpreter state
Dave Rolsky [Mon, 26 Sep 2011 14:28:58 +0000 (09:28 -0500)]
Make a new section for vars related to interpreter state

This is a little arbitrary, for example one could argue that @INC and %INC
belong in there. My main goal was to move stuff that you're less likely to
care about later in the document. Basically, this is the stuff that wizards
care about and mere mortals generally don't.

11 years agoMove $0 and $$ together
Dave Rolsky [Mon, 26 Sep 2011 14:23:13 +0000 (09:23 -0500)]
Move $0 and $$ together

11 years agoMove uid & gid variable docs next to each other
Dave Rolsky [Mon, 26 Sep 2011 14:22:43 +0000 (09:22 -0500)]
Move uid & gid variable docs next to each other

11 years agoUpdate README.freebsd with the new approach for making $^X absolute.
Nicholas Clark [Wed, 28 Sep 2011 09:38:28 +0000 (11:38 +0200)]
Update README.freebsd with the new approach for making $^X absolute.

11 years agoMerge the improved $^X absolute pathname conversion.
Nicholas Clark [Wed, 28 Sep 2011 09:07:32 +0000 (11:07 +0200)]
Merge the improved $^X absolute pathname conversion.

11 years agoNote the improved $^X absolute pathname conversion in perldelta.pod
Nicholas Clark [Wed, 28 Sep 2011 08:54:44 +0000 (10:54 +0200)]
Note the improved $^X absolute pathname conversion in perldelta.pod

11 years agoTeach Configure about "procselfexe" on Solaris and NetBSD
Nicholas Clark [Tue, 27 Sep 2011 22:15:32 +0000 (00:15 +0200)]
Teach Configure about "procselfexe" on Solaris and NetBSD

Configure would already find /proc/self/exe on NetBSD, where /proc/self is
a symlink to /proc/curproc. However, the revised probe avoids the extra
symlink traversal. Configure did not previously probe for the
relevant path on Solaris, /proc/self/path/a.out

Rename the description of /proc/curproc/file from BSD to FreeBSD, as it seems
that of the "big 3" BSDs, only FreeBSD uses this path.

Based on a patch from Johann 'Myrkraverk' Oskarsson.

11 years agoIn Configure, refactor the test for procselfexe into a loop.
Nicholas Clark [Tue, 27 Sep 2011 21:47:39 +0000 (23:47 +0200)]
In Configure, refactor the test for procselfexe into a loop.

This removes code duplication, and makes it easy to add more variants.
Based on a patch from Johann 'Myrkraverk' Oskarsson.

11 years agoWhere available, use _NSGetExecutablePath() to make $^X absolute.
Nicholas Clark [Wed, 21 Sep 2011 14:33:09 +0000 (15:33 +0100)]
Where available, use _NSGetExecutablePath() to make $^X absolute.

In Configure, check whether _NSGetExecutablePath() can be used to find the
absolute pathname of the executable. If so, set usensgetexecutablepath in and USE_NSGETEXECUTABLEPATH in config.h. If this is set, then use
this approach in S_set_caret_X() to canonicalise $^X as an absolute
path. This approach works on OS X, and possible on other platforms that
use dyld.

11 years agoWhere available, use sysctl() with KERN_PROC_PATHNAME to make $^X absolute.
Nicholas Clark [Wed, 21 Sep 2011 12:32:58 +0000 (14:32 +0200)]
Where available, use sysctl() with KERN_PROC_PATHNAME to make $^X absolute.

In Configure, check whether sysctl() and KERN_PROC_PATHNAME can be used
to find the absolute pathname of the executable. If so, set
usekernprocpathname in and USE_KERN_PROC_PATHNAME in config.h.
If this is set, then use this approach in S_set_caret_X() to canonicalise
$^X as an absolute path. This approach works on (at least) FreeBSD, and
doesn't rely on the /proc filesystem existing, or /proc/curproc/file being

11 years agoUpgrade perlfaq from version 5.0150034 to 5.0150035
Florian Ragwitz [Tue, 27 Sep 2011 09:31:50 +0000 (11:31 +0200)]
Upgrade perlfaq from version 5.0150034 to 5.0150035

11 years agoAvoid a "use of uninitialized value" warning from pwent.t
Nicholas Clark [Tue, 27 Sep 2011 08:59:52 +0000 (10:59 +0200)]
Avoid a "use of uninitialized value" warning from pwent.t

16acebfd4bd4723d refactored parts of t/op/pwent.t and enabled warnings.
The refactoring was not the cause - the previous t/op/pwent.t code would
warn if run with -w.

On OS X (and presumably any other platform where the test processes the
output of /usr/bin/dscl), where a user does not have a real name, dscl does
not output a corresponding line, and as a result the test's processing code
had undef in a data structure. The implicit conversion of this to an empty
string was correct for the test to pass, but generates a warning when
warnings are enabled. Hence disable this specific warning for the minimal
scope where the conversion is wanted behaviour.

11 years agoDual-life perlglossary.pod as part of perlfaq
Florian Ragwitz [Mon, 26 Sep 2011 16:53:55 +0000 (18:53 +0200)]
Dual-life perlglossary.pod as part of perlfaq

11 years agoAdd 5.14.2 to perlhist
Florian Ragwitz [Mon, 26 Sep 2011 10:04:56 +0000 (12:04 +0200)]
Add 5.14.2 to perlhist

11 years agoAdd 5.14.2-RC1 to perlhist
Florian Ragwitz [Mon, 19 Sep 2011 05:18:57 +0000 (07:18 +0200)]
Add 5.14.2-RC1 to perlhist

11 years agoAdd the 5.14.2 perldelta
Florian Ragwitz [Mon, 26 Sep 2011 15:24:48 +0000 (17:24 +0200)]
Add the 5.14.2 perldelta

11 years agoAdd the 5.14.2 epigraph
Florian Ragwitz [Mon, 26 Sep 2011 15:12:32 +0000 (17:12 +0200)]
Add the 5.14.2 epigraph

11 years agopodcheck.t: Work for scripts/utilities under VMS
Karl Williamson [Sun, 25 Sep 2011 17:19:59 +0000 (11:19 -0600)]
podcheck.t: Work for scripts/utilities under VMS

 As noted in the comments in the code for this commit, VMS builds
 add a '.com' suffix to scripts and utilities and hence their names don't
 match what is in podcheck's db.  This canonicalizes such names
 back to what the db is expecting.

11 years agot/re/re_tests: Add TODO
Karl Williamson [Sun, 25 Sep 2011 16:43:19 +0000 (10:43 -0600)]
t/re/re_tests: Add TODO

11 years agoperlrebackslash: Add missing paren to example
Karl Williamson [Sun, 25 Sep 2011 16:42:30 +0000 (10:42 -0600)]
perlrebackslash: Add missing paren to example

11 years agopodcheck.t: New method for skipping .PL files
Karl Williamson [Sun, 25 Sep 2011 16:38:14 +0000 (10:38 -0600)]
podcheck.t: New method for skipping .PL files

This reverts most of commit df80274d3278c640a5e0fbf3982950bb5ca9d7bc
and uses a different method to exclude .PL files, suggested by Nicholas

It uses the MANIFEST to find such files and then excludes them based on
the full path name.

11 years agopodcheck.t: Remove extra loop initialization
Karl Williamson [Sun, 25 Sep 2011 16:25:07 +0000 (10:25 -0600)]
podcheck.t: Remove extra loop initialization

I think its clearer to put the subroutine call in each line of

11 years agopodcheck.t: Move hash declaration to earlier in file
Karl Williamson [Sun, 25 Sep 2011 16:22:57 +0000 (10:22 -0600)]
podcheck.t: Move hash declaration to earlier in file

The only change is to move a block of code around.  This is to prepare
for future commits

11 years agopodcheck.t: Move subroutine defn earlier in file
Karl Williamson [Sun, 25 Sep 2011 17:00:26 +0000 (11:00 -0600)]
podcheck.t: Move subroutine defn earlier in file

This is to prepare for future commits, to avoid a warning message
about prototype checking

11 years agopodcheck.t: Don't calc value twice
Karl Williamson [Sun, 25 Sep 2011 15:40:27 +0000 (09:40 -0600)]
podcheck.t: Don't calc value twice

11 years agopodcheck.t: remove unused variable
Karl Williamson [Sun, 25 Sep 2011 15:37:39 +0000 (09:37 -0600)]
podcheck.t: remove unused variable

11 years agoSynchronise Module::CoreList version in
Chris 'BinGOs' Williams [Sun, 25 Sep 2011 14:22:40 +0000 (15:22 +0100)]
Synchronise Module::CoreList version in

11 years agoadd a couple missing LEAVEs in perlio_async_run()
Chip [Tue, 20 Sep 2011 06:51:49 +0000 (23:51 -0700)]
add a couple missing LEAVEs in perlio_async_run()

11 years agoAvoid a double free with CORE->lc
Father Chrysostomos [Sun, 25 Sep 2011 01:56:57 +0000 (18:56 -0700)]
Avoid a double free with CORE->lc

The code for autovivifying coresubs for method calls ended up calling
hv_store(stash,name,len,(SV *)gv,0) where gv is already in the stash
under that entry.  Since hv_store takes ownership of one reference
count and decrements that of what it overwrites (which is the same gv
in this case), it ends up freeing the gv prematurely.

It ended up making that call because S_maybe_add_coresub needs the
stash to get its ENAME (which happens when called by gv_fetchmeth),
but it also assumed that the presence of the stash meant the gv
needed to be stored in it (as is the case with the other caller,

This patch reuses the fullen (full length) parameter as a flag to
indicate that that hv_store call should be skipped.

These workarounds for the assumptions that newATTRSUB makes are start-
ing to make inlining look very attractive....

11 years agoregexp.t: print diagnostics with leading '#'
Karl Williamson [Thu, 22 Sep 2011 23:34:35 +0000 (17:34 -0600)]
regexp.t: print diagnostics with leading '#'

Some test platforms don't like unexpected output without the comment
prefix character

11 years agoAdd t/porting/checkcfgvar.t to run Porting/ as a test.
Nicholas Clark [Fri, 23 Sep 2011 14:30:22 +0000 (16:30 +0200)]
Add t/porting/checkcfgvar.t to run Porting/ as a test.

Add TAP generation and a --tap option to Porting/

In checkcfgvar.t, document its purpose, and the likely way to fix the
problems that it has flagged up. This is a prototype before adding similar
instructions to the other t/porting tests.

11 years agoA small refactor of
Nicholas Clark [Fri, 23 Sep 2011 13:05:49 +0000 (15:05 +0200)]
A small refactor of

For --list, only print the name out in one place.
Remove a now-redundant sort for --regen.
Alert the user if default values are not being added because --default was
not specified.

11 years agoRefactor t/porting/regen.t to use TestInit q(T A);
Nicholas Clark [Fri, 23 Sep 2011 14:55:20 +0000 (16:55 +0200)]
Refactor t/porting/regen.t to use TestInit q(T A);

Previously it had custom code to change directory to the top of the source
tree, and to convert the library paths to absolute. TestInit has common code
for this.

11 years ago[perl #92898] Clarify (*THEN)’s scope
Father Chrysostomos [Sat, 24 Sep 2011 04:33:58 +0000 (21:33 -0700)]
[perl #92898] Clarify (*THEN)’s scope

11 years agoDocument open fh, "<:"
Father Chrysostomos [Fri, 23 Sep 2011 13:16:14 +0000 (06:16 -0700)]
Document open fh, "<:"

11 years agoMove the test for recursive call to Perl_load_module to t/io/perlio.t
Nicholas Clark [Fri, 23 Sep 2011 10:48:20 +0000 (12:48 +0200)]
Move the test for recursive call to Perl_load_module to t/io/perlio.t

It's a croak(), not a warning, so doesn't really belong in lib/warnings.t
[This also implicitly fixes the wrong expected output of 69dc7e4bdb8e397c]

11 years agoCorrect the expected results for the first perlio warnings subtest.
Nicholas Clark [Fri, 23 Sep 2011 09:43:37 +0000 (11:43 +0200)]
Correct the expected results for the first perlio warnings subtest.

11 years agoTest perl #96008: use and require affected by
Father Chrysostomos [Fri, 23 Sep 2011 05:32:48 +0000 (22:32 -0700)]
Test perl #96008: use and require affected by

11 years ago[perl #96008] use and require are affected by the open pragma
Brian Fraser [Fri, 23 Sep 2011 05:31:46 +0000 (22:31 -0700)]
[perl #96008] use and require are affected by the open pragma

% perl -e 'print "package F;\n # \xF1\n;1;"' >
% perl '-Mopen=:encoding(utf8)' -e 'require ""'
utf8 "\xF1" does not map to Unicode at line 1.

Bit of a surprising discovery; Turns out that passing a single ":" for
the layers skips the fetch from the context layers:
perl -wE 'use open qw( :encoding(UTF-8) ); open my $fh, "<:", "etc"; say PerlIO::get_layers($fh);'

That will only get the relevant default layers, while removing the
colons makes it work as usual -- So we can abuse this (mis)feature to
fix the bug.

11 years agoMove/rewrite test for Recursive call to Perl_load_module
Father Chrysostomos [Fri, 23 Sep 2011 05:29:16 +0000 (22:29 -0700)]
Move/rewrite test for Recursive call to Perl_load_module

This test was relying on a bug in require that causes it to use what-
ever I/O layers are active in require‘s *caller* when opening a file
[perl #96008].

This rewrites the test using the example in ticket #75722.
Since it no longer has anything to do with, it is now in

11 years agoMake CORE->method work
Father Chrysostomos [Thu, 22 Sep 2011 23:28:46 +0000 (16:28 -0700)]
Make CORE->method work

This will probably not be used, but ought to be here for complete-
ness’ sake.

Method lookup needs to trigger the autovivification of coresubs.
Since it does not use gv_fetchpvn_flags, the coresub-autovification is
now in a separate static function, so that both standard gv lookup and
method lookup can share it.

11 years agoperlre: Note a bug's existence
Karl Williamson [Thu, 22 Sep 2011 16:42:30 +0000 (10:42 -0600)]
perlre: Note a bug's existence

11 years agore_tests: Add TODO test
Karl Williamson [Thu, 22 Sep 2011 16:40:15 +0000 (10:40 -0600)]
re_tests: Add TODO test

11 years agopodcheck.t: Add comment
Karl Williamson [Thu, 22 Sep 2011 16:17:36 +0000 (10:17 -0600)]
podcheck.t: Add comment

11 years agoPorting/cherrymaint: Add comment
Karl Williamson [Thu, 22 Sep 2011 16:16:27 +0000 (10:16 -0600)]
Porting/cherrymaint: Add comment

11 years agomanifest.t: Clarify a test's wording
Karl Williamson [Thu, 22 Sep 2011 16:15:34 +0000 (10:15 -0600)]
manifest.t: Clarify a test's wording

11 years remove unused variable
David Golden [Thu, 22 Sep 2011 17:38:52 +0000 (13:38 -0400)] remove unused variable

11 years no longer tracks loaded modules
David Golden [Thu, 22 Sep 2011 17:33:06 +0000 (13:33 -0400)] no longer tracks loaded modules

Tracking modules loaded by to avoid reloading them means
that any module that wishes to force a reload can't just modify
%INC but must also interact with to clear its cache.

Removing the module-loaded checks have minimal impact.  The internal
call to require() is a NOP for a loaded module.  For an internal
package, the require() will fail with the same error message as
before, which then ignores.  Tracking modules loaded to avoid
this slight extra overhead is not worth the complexity for other
modules that wish to manipulate %INC.

11 years agoUse a real compile to test for stdbool.h
H.Merijn Brand [Thu, 22 Sep 2011 15:26:34 +0000 (17:26 +0200)]
Use a real compile to test for  stdbool.h

On some Solaris systems, <stdbool.h> is present, but will give an
error if used by a compiler that is not sufficiently c99-compliant.
Check for this by including <stdbool.h> and trying to compile a
short program that uses bool.

Signed-off-by: H.Merijn Brand <>
11 years agopodcheck.t: clarify its pod
Karl Williamson [Thu, 22 Sep 2011 15:19:02 +0000 (09:19 -0600)]
podcheck.t: clarify its pod

11 years agopodcheck.t: Is problem if cpan/non-cpan have same NAME
Karl Williamson [Thu, 22 Sep 2011 15:08:30 +0000 (09:08 -0600)]
podcheck.t: Is problem if cpan/non-cpan have same NAME

If a module whose upstream is cpan has the same NAME as a module that
isn't, that is a problem that should be warned about, as we shouldn't be
shipping two identically named modules, even if one is not under Perl
core's control.  (If two cpan modules have the same name, it is a
problem as well, but not anything we can do anything about, so warn only
when cpan warnings are enabled.)

11 years agopodcheck.t: Process files sorted caselessly
Karl Williamson [Thu, 22 Sep 2011 15:05:26 +0000 (09:05 -0600)]
podcheck.t: Process files sorted caselessly

In some situations previously, case was not important in the sort order;
this extends that to all situations.

11 years agopodcheck: Nits in comments
Karl Williamson [Thu, 22 Sep 2011 15:04:39 +0000 (09:04 -0600)]
podcheck: Nits in comments

11 years no longer modifies $VERSION
David Golden [Thu, 22 Sep 2011 15:09:33 +0000 (11:09 -0400)] no longer modifies $VERSION

Previously, modified the $VERSION of modules it loaded to
the string "-1, set by".  This is not a valid lax version
string and thus could not be parsed by (It is also an
encapsulation violation, as it modifies a global in another package.)

This patch removes the $VERSION modification code entirely and uses
a private hash to track which modules has successfully loaded.
This also eliminates a subtle bug in how was checking for
the existence of a package's VERSION scalar.

[Though the final mechanism is different, thank you to John Peacock for
proposing the initial patch to eliminate the "-1..." code from]

11 years agofold_grind.t: Ignore blank lines
Karl Williamson [Wed, 21 Sep 2011 16:15:02 +0000 (10:15 -0600)]
fold_grind.t: Ignore blank lines

This is in preparation for Unicode 6.1, which has blank lines in the
.txt file that fold_grind reads.  The line that strips off comments did
not work on plain null lines.

11 years accommodate non-standard mktables output
Karl Williamson [Wed, 21 Sep 2011 16:07:38 +0000 (10:07 -0600)] accommodate non-standard mktables output

Generally mktables generates the most compact tables possible.  But this
should not be relied on, and when called with the -anotate option,
the mktables tables will not be compact.  This will compact
non-compacted tables when reading them.

11 years Only calculate hex once
Karl Williamson [Wed, 21 Sep 2011 16:06:21 +0000 (10:06 -0600)] Only calculate hex once

This uses intermediate variables to store the output of hex(), with the
result that if there is an $end, its hex only is calculated once.

11 years agoadding in the list archive URL for the announcement
Stevan Little [Wed, 21 Sep 2011 14:23:10 +0000 (10:23 -0400)]
adding in the list archive URL for the announcement

11 years agoAdd an option to to add defaults for missing variables.
Nicholas Clark [Fri, 16 Sep 2011 17:32:03 +0000 (19:32 +0200)]
Add an option to to add defaults for missing variables.

This eases the updates of the files when a new Configure
variable is added.

11 years agoAdd a --regen option to to regenerate config files.
Nicholas Clark [Fri, 16 Sep 2011 17:01:33 +0000 (19:01 +0200)]
Add a --regen option to to regenerate config files.

Verify that the section of config file containing probed files is sorted
lexically. If --regen is used, updated the file on disk with a correctly
sorted version. (Except for, which has a different structure
not amenable to automatic analysis and update, hence still has to be
updated manually.)

Ensure all config files are correctly sorted.

11 years agoAdd empty Author and zip entries to symbian/ and uconfig{,64}.sh
Nicholas Clark [Fri, 16 Sep 2011 13:03:40 +0000 (15:03 +0200)]
Add empty Author and zip entries to symbian/ and uconfig{,64}.sh

This brackets the probed values sections consistently across all
type files, between Author and zip inclusive.

Move PERL_CONFIG_SH to the end of NetWare/config.wc and symbian/,
and PERL_CONFIG_SH CONFIGDOTSH to the end of win32/config.ce, to be
consistent with the other files.

11 years agoSort epoc/
Nicholas Clark [Fri, 16 Sep 2011 12:09:07 +0000 (14:09 +0200)]
Sort epoc/

This brings it back to the regular order: header information, probed values,
information about arguments to Configure, and values propagated from a
previous run.

11 years agoDe-duplicate epoc/
Nicholas Clark [Fri, 16 Sep 2011 11:33:07 +0000 (13:33 +0200)]
De-duplicate epoc/

"Don't Repeat Yourself" :-)

11 years agoEliminate duplicate contradictory values from epoc/
Nicholas Clark [Fri, 16 Sep 2011 10:59:51 +0000 (12:59 +0200)]
Eliminate duplicate contradictory values from epoc/

The two values for quadtype have been present since epoc/ was added
in 3a2f06e93704a418. quadtype is signed, (uquadtype is its unsigned
equivalent) hence remove the definition that uses unsigned long long.
The duplicate contradictory values for d_vendorarch were merged in by
b250498faaf6fbd0 (along with a lot of the non-contradictory duplication),
originating from commit eb0d51032951025d on the cfgperl branch.
The contradictory values for socksizetype arrived with the same commits.

11 years agoChange to permit trailing comments on config lines.
Nicholas Clark [Fri, 16 Sep 2011 14:09:33 +0000 (16:09 +0200)]
Change to permit trailing comments on config lines.

Convert the comment for _a in config.ce to a trailing comment.

11 years agoTighten the checking regex in
Nicholas Clark [Fri, 16 Sep 2011 13:36:07 +0000 (15:36 +0200)]
Tighten the checking regex in

Fix the dubious line in symbian/ which this exposes.

11 years agoIn, split the code out.
Nicholas Clark [Fri, 16 Sep 2011 10:19:15 +0000 (12:19 +0200)]
In, split the code out.

The handling is actually sufficiently different that it's
simpler to do it in its own loop. The two regexs for parsing
can be merged. Use non-capturing parens for the parts of regexs that don't
need to be captured.

11 years ago[perl #99660] Remove elems from hashes before freeing them
Father Chrysostomos [Wed, 21 Sep 2011 07:59:02 +0000 (00:59 -0700)]
[perl #99660] Remove elems from hashes before freeing them

Commit f50383f58 made the ‘HeVAL(entry) = &PL_sv_placeholder;’ in the
hash-element-deletion code unconditional.  In doing so, it put it
after the if/else statement containing the SvREFCNT_dec.  So the freed
SV was visible in the hash to destructors called by SvREFCNT_dec.

11 years ago[perl #93590] $tainted ~~ [...] failing
Father Chrysostomos [Tue, 20 Sep 2011 15:55:09 +0000 (08:55 -0700)]
[perl #93590] $tainted ~~ [...] failing

When smartmatch is about to start, to avoid calling get-magic (e.g.,
FETCH methods) more than once, it copies any argument that has

Tainting uses get-magic to taint the expression.  Calling mg_get(sv)
on a tainted scalar causes PL_tainted to be set, causing any scalars
modified by sv_setsv_flags to be tainted.  That means that tainting
magic gets copied from one scalar to another.

So when smartmatch tries to copy the variable to avoid repeated calls
to magic, it still copies taint magic to the new variable.

For $scalar ~~ @array (or ~~ [...]), S_do_smartmatch calls itself
recursively for each element of @array, with $scalar (on the suppos-
edly non-magical copy of $scalar) on the left and the element on
the right.

In that recursive call, it again does the get-magic check and copies
the argument.  Since the copied of a tainted variable on the LHS is
magical, it gets copied again.  Since the first copy is a mortal
(marked TEMP) with a refcount of one, the second copy steal its
string buffer.

The outer call to S_do_smartmatch then proceeds with the second ele-
ment of @array, without realising that its copy of $scalar has lost
its string buffer and is now undefined.

So these produce incorrect results under -T (where $^X is ‘perl’):

    $^X =~ ["whatever", undef]  # matches
    $^X =~ ["whatever", "perl"] # fails

This problem did not start occurring until this commit:

commit 8985fe98dcc5c0af2fadeac15dfbc13f553ee7fc
Author: David Mitchell <>
Date:   Thu Dec 30 10:32:44 2010 +0000

    Better handling of magic methods freeing the SV

mg_get used to increase the refcount unconditionally, pushing it on to
the mortals stack.  So the magical copy would have had a refcount of
2, preventing its string buffer from being stolen.  Now it has a ref-
erence count of 1.

This commit solves it by adding a new parameter to S_do_smartmatch
telling it that the variable has already been copied and does not even
need to be checked.  The $scalar~~@array case sets that parameter for
the recursive calls.  That avoids the whole string-stealing problem
*and* avoids extra unnecessary SVs.

11 years agoFix inability of lex_read_unichar to handle 80-FF under "no utf8;". lex_peek_unichar...
Eric Brine [Tue, 20 Sep 2011 00:16:41 +0000 (20:16 -0400)]
Fix inability of lex_read_unichar to handle 80-FF under "no utf8;". lex_peek_unichar is already correct.

11 years agoupdate TOC for perl5153delta
Stevan Little [Wed, 21 Sep 2011 03:54:55 +0000 (23:54 -0400)]
update TOC for perl5153delta

11 years agomoving old perldelta and creating new one
Stevan Little [Wed, 21 Sep 2011 03:41:54 +0000 (23:41 -0400)]
moving old perldelta and creating new one

11 years agoAdding in my choice of epigraph to epigraph.pod
Stevan Little [Wed, 21 Sep 2011 03:31:15 +0000 (23:31 -0400)]
Adding in my choice of epigraph to epigraph.pod

11 years agoNo need to go into this much detail in the pod (also podcheck doesn't like it) v5.15.3
Stevan Little [Wed, 21 Sep 2011 00:42:50 +0000 (20:42 -0400)]
No need to go into this much detail in the pod (also podcheck doesn't like it)

11 years agoTweak wording of the Notice based on Jesse's feedback
Stevan Little [Tue, 20 Sep 2011 22:12:39 +0000 (18:12 -0400)]
Tweak wording of the Notice based on Jesse's feedback

11 years agoAdding some Known Problems to perldelta
Stevan Little [Tue, 20 Sep 2011 21:46:40 +0000 (17:46 -0400)]
Adding some Known Problems to perldelta

11 years agoremoving the comment from the perldelta (and the previous perldelta as well)
Stevan Little [Tue, 20 Sep 2011 17:48:26 +0000 (13:48 -0400)]
removing the comment from the perldelta (and the previous perldelta as well)

11 years agofinalize perldelta
Stevan Little [Tue, 20 Sep 2011 16:53:49 +0000 (12:53 -0400)]
finalize perldelta

11 years agoadding new release to perlhist
Stevan Little [Tue, 20 Sep 2011 16:51:29 +0000 (12:51 -0400)]
adding new release to perlhist

11 years agofixing the path to pod2html in the release managers guide
Stevan Little [Tue, 20 Sep 2011 16:43:46 +0000 (12:43 -0400)]
fixing the path to pod2html in the release managers guide

11 years agoAdding the acknowledgements section to perldelta
Stevan Little [Tue, 20 Sep 2011 16:31:10 +0000 (12:31 -0400)]
Adding the acknowledgements section to perldelta

11 years agoUpdate Module::CoreList for 5.15.3
Stevan Little [Tue, 20 Sep 2011 01:24:56 +0000 (21:24 -0400)]
Update Module::CoreList for 5.15.3

11 years agoThe link to Devel::PPPort was not understood by porting/podcheck.t so we had to teach it
Stevan Little [Tue, 20 Sep 2011 00:54:33 +0000 (20:54 -0400)]
The link to Devel::PPPort was not understood by porting/podcheck.t so we had to teach it

11 years agoperldelta pod tweaks,.. this is not a link
Stevan Little [Tue, 20 Sep 2011 00:53:40 +0000 (20:53 -0400)]
perldelta pod tweaks,.. this is not a link

11 years agomanually updating INSTALL version "Upgrading from 5.X.Y or earlier" as specified...
Stevan Little [Tue, 20 Sep 2011 00:35:32 +0000 (20:35 -0400)]
manually updating INSTALL version "Upgrading from 5.X.Y or earlier" as specified in the RMG

11 years agobump version to 5.15.3 using Porting/bump-perl-version
Stevan Little [Mon, 19 Sep 2011 21:14:52 +0000 (17:14 -0400)]
bump version to 5.15.3 using Porting/bump-perl-version

11 years agoMore pod formatting tweaks
Stevan Little [Mon, 19 Sep 2011 21:26:34 +0000 (17:26 -0400)]
More pod formatting tweaks

11 years agoFix some pod errors reported by podchecker
Stevan Little [Mon, 19 Sep 2011 21:06:01 +0000 (17:06 -0400)]
Fix some pod errors reported by podchecker

11 years agoUpdating perldelta in preparation for the 5.13.3 release.
Stevan Little [Mon, 19 Sep 2011 20:45:12 +0000 (16:45 -0400)]
Updating perldelta in preparation for the 5.13.3 release.