platform/upstream/perl.git
12 years agoDisambiguate map { }
Abigail [Tue, 13 Mar 2012 17:37:49 +0000 (18:37 +0100)]
Disambiguate map { }

12 years agoMention Porting/sync-with-cpan
Abigail [Tue, 13 Mar 2012 17:34:32 +0000 (18:34 +0100)]
Mention Porting/sync-with-cpan

12 years agoAdd Porting/sync-with-cpan
Abigail [Tue, 13 Mar 2012 16:44:42 +0000 (17:44 +0100)]
Add Porting/sync-with-cpan

It helps if you actually commit the changes you make. :(

12 years agoScript to help out upgrading a cpan/ distro.
Abigail [Tue, 13 Mar 2012 16:14:21 +0000 (17:14 +0100)]
Script to help out upgrading a cpan/ distro.

This one is not complete yet, and its portability can be much improved.
But it helps me out right now, and it wouldn't be fair to keep it all to
myself.

12 years agoUpgrade Locale-Codes to 3.21
Abigail [Tue, 13 Mar 2012 14:01:17 +0000 (15:01 +0100)]
Upgrade Locale-Codes to 3.21

12 years agostop S_forget_pmop() SEGVing
David Mitchell [Tue, 13 Mar 2012 14:24:15 +0000 (14:24 +0000)]
stop S_forget_pmop() SEGVing

Commit 5bec93be re-purposed the SvMAGIC field of hashes being freed, on
the grounds that (a) any magic had been freed, (b) the refcnt was zero, so
no-one else could mess with the hash.

Unfortunately in the non-threaded case, PMOPs for m?? regexes have a
non-refcounted link back to their stash. When the stash is freed, any subs
in the stash are freed, which frees the PMOPs, which then see the freed
stash, and assume it still has magic because SvMAGIC is non-null.

The quick fix is to check the SvMAGICAL flags first; a longer term fix
would be to avoid the weak ref (e.g. by always using the threaded variant
of PmopSTASH, which stores the stash's *name* rather than a pointer to the
stash).

12 years agoMerge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Abigail [Tue, 13 Mar 2012 12:22:28 +0000 (13:22 +0100)]
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead

12 years agoExclude perlcritic.rc files.
Abigail [Tue, 13 Mar 2012 12:20:31 +0000 (13:20 +0100)]
Exclude perlcritic.rc files.

Listed perlcritic.rc in the @IGNORABLE array of Porting/Maintainers.pl,
and removed the files from the new cpan/CPAN-Meta and cpan/HTTP-Tiny distros.

12 years agoList the new files that came with the upgrade of CPAN-Meta
Abigail [Tue, 13 Mar 2012 12:20:03 +0000 (13:20 +0100)]
List the new files that came with the upgrade of CPAN-Meta

12 years agoRan zlib2ansi script against zlib-src/ to fix K&R-isms
Chris 'BinGOs' Williams [Tue, 13 Mar 2012 09:43:17 +0000 (09:43 +0000)]
Ran zlib2ansi script against zlib-src/ to fix K&R-isms

12 years agoUpgrade HTTP::Tiny to 0.017.
Abigail [Tue, 13 Mar 2012 01:32:44 +0000 (02:32 +0100)]
Upgrade HTTP::Tiny to 0.017.

12 years agoUpgrade cpan/CPAN-Meta to 2.120630
Abigail [Tue, 13 Mar 2012 01:02:18 +0000 (02:02 +0100)]
Upgrade cpan/CPAN-Meta to 2.120630

12 years agoSome files in cpan/Compress-Raw-Zlib have the x bit set.
Abigail [Tue, 13 Mar 2012 00:24:16 +0000 (01:24 +0100)]
Some files in cpan/Compress-Raw-Zlib have the x bit set.

12 years agoFixes type in commit 14c554185
Abigail [Mon, 12 Mar 2012 23:59:16 +0000 (00:59 +0100)]
Fixes type in commit 14c554185

In commit 14c554185, I updated the version of the wrong distro in
Porting/Maintainers.pl. This fixes this error.

12 years agoMerge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead
Abigail [Mon, 12 Mar 2012 23:54:14 +0000 (00:54 +0100)]
Merge branch 'blead' of ssh://perl5.git.perl.org/gitroot/perl into blead

12 years agoUpgrade Compress::Raw::Zlib to 2.051.
Abigail [Mon, 12 Mar 2012 23:53:07 +0000 (00:53 +0100)]
Upgrade Compress::Raw::Zlib to 2.051.

12 years agoUpgrade Compress-Raw-Bzip2 to version 2.049.
Abigail [Mon, 12 Mar 2012 21:49:31 +0000 (22:49 +0100)]
Upgrade Compress-Raw-Bzip2 to version 2.049.

12 years agoload Algorithm::Diff later in corelist-perldelta
Max Maischein [Sat, 10 Mar 2012 16:28:08 +0000 (17:28 +0100)]
load Algorithm::Diff later in corelist-perldelta

corelist-perldelta.pl is a bit schizophrenic. The part to generate the
new Perldelta text does not need Algorithm::Diff, but wants to be
run with the freshly built Perl. Ideally, the two usages get
clarified and split up into two separate programs. The added documentation
tries to give two helpful usages of the program.

12 years agoavoid some long-line errors in podcheck of Term-Readline
Ricardo Signes [Sat, 10 Mar 2012 21:21:49 +0000 (16:21 -0500)]
avoid some long-line errors in podcheck of Term-Readline

12 years agonew patch for Term::ReadLine event loop support
Ricardo Signes [Sat, 10 Mar 2012 17:14:42 +0000 (12:14 -0500)]
new patch for Term::ReadLine event loop support

  https://rt.perl.org/rt3/Ticket/Display.html?id=108470

This is more work from Darin McBride and Rocco Caputo to get the event
loop code offered earlier working, tested, and documented.

12 years agoUpgrade cpan/Archive-Tar to 1.84
Abigail [Mon, 12 Mar 2012 20:47:00 +0000 (21:47 +0100)]
Upgrade cpan/Archive-Tar to 1.84

12 years agoUpgrade Archive-Extract to 0.60
Abigail [Mon, 12 Mar 2012 20:12:26 +0000 (21:12 +0100)]
Upgrade Archive-Extract to 0.60

12 years agomake the pod2html tests work with fs with vols
Ricardo Signes [Mon, 12 Mar 2012 17:19:23 +0000 (13:19 -0400)]
make the pod2html tests work with fs with vols

  my $cwd = Cwd::cwd();
  my $new_dir  = catdir $cwd, "t";
  my $infile   = catfile $new_dir, "$podfile.pod";

Prior to these changes, we were getting the volume from $cwd, above, and
then basically ignoring it.  When the cwd was c:\foo, ignoring the
volume in the catdir/catfile operations would munge things to C:\foo,
which meant that later a native check of path prefix would fail:
C:\foo is not a prefix of c:\foo\bar because of the case difference in
the volume name.

The is a legitimate fix, but the code is still problematic in other
places because (a) it tends to do path operations with no consideration
for volumes and (b) it has at least one place where it decides whether
path X is below path Y by using substr/index instead of path checking
routines.

12 years agoSisyphus's fix for pod2html
Ricardo Signes [Tue, 6 Mar 2012 03:31:52 +0000 (22:31 -0500)]
Sisyphus's fix for pod2html

12 years agoperldelta for die propgation fix
Tony Cook [Sun, 11 Mar 2012 23:16:38 +0000 (10:16 +1100)]
perldelta for die propgation fix

12 years ago[rt #111654] properly propgate tainted errors
Tony Cook [Sun, 11 Mar 2012 03:38:57 +0000 (14:38 +1100)]
[rt #111654] properly propgate tainted errors

A magic value (such as a tainted string) may not have POK set, so call
SvPV() to find out if there's something in ERRSV to report.

Possibly this should be using SvPV_nomg(), but this is the first
request for magic in this code.  Maybe the code above should be
calling SvGETMAGIC() before checking SvROK().

12 years ago[rt #111654] TODO test for tainted die propagation
Tony Cook [Sun, 11 Mar 2012 03:27:29 +0000 (14:27 +1100)]
[rt #111654] TODO test for tainted die propagation

12 years agoDocument the updated version of Pod::Simple
Abigail [Sun, 11 Mar 2012 22:25:49 +0000 (23:25 +0100)]
Document the updated version of Pod::Simple

12 years agoUpgrade Pod-Simple to 3.20. This should fix issue 111520.
Abigail [Sun, 11 Mar 2012 17:05:18 +0000 (18:05 +0100)]
Upgrade Pod-Simple to 3.20. This should fix issue 111520.

12 years agosdbm.c: fix off-by-one access to global ".dir"
Reini Urban [Fri, 9 Mar 2012 15:11:50 +0000 (09:11 -0600)]
sdbm.c: fix off-by-one access to global ".dir"

Detected by clang -faddress-sanitizer.

The bug came in 081f72ad6fa2b76e0b3cd9046371b2dbd9130114, where
we started calculating lengths with sizeof on string constants
instead of using strlen.  Since string constants include the null
byte, sizeof(".dir"), for example, is 5, but we've been copying 6
bytes.

This patch resolves [perl #111586] and includes revisions by the
committer.

12 years agoregen pod issues
Father Chrysostomos [Thu, 8 Mar 2012 01:58:20 +0000 (17:58 -0800)]
regen pod issues

12 years agoperlvar: Fix long lines
Father Chrysostomos [Thu, 8 Mar 2012 01:08:51 +0000 (17:08 -0800)]
perlvar: Fix long lines

Also, make all indented code start with a four-space indent.  Before
this it was inconsistent throughout.

12 years agoDear perlvar: ${^WARNING_BITS} was added in 5.6
Father Chrysostomos [Thu, 8 Mar 2012 00:36:54 +0000 (16:36 -0800)]
Dear perlvar: ${^WARNING_BITS} was added in 5.6

12 years agoperlvar: Document ${^WARNING_BITS} better
Father Chrysostomos [Thu, 8 Mar 2012 00:36:07 +0000 (16:36 -0800)]
perlvar: Document ${^WARNING_BITS} better

Don’t refer people to warnings.pm for more information, as it
contains no more information about this variable.

Explain the scoping and also mention that the values are
considered internal.

12 years agoStop warning hint-checking from doing bad reads
Father Chrysostomos [Wed, 7 Mar 2012 22:12:08 +0000 (14:12 -0800)]
Stop warning hint-checking from doing bad reads

Setting ${^WARNING_BITS} should not allow perl to read past the end of
a mallocked buffer.  Previously the internal warning buffer would be
copied straight from ${^WARNING_BITS}, so a short value assigned to
that variable would cause the internal warning-checking code to read
past the end of the buffer (probably not in actual practice, due to
malloc’s rounding up, but theoretically).  Now, the buffer that is
allocated for storing the warning bits is padded with nulls to make it
long enough to prevent bad reads.

The stored length is still the same as what was assigned to
${^WARNING_BITS}, so that the value that comes out of it is the same
length (UTF8-ness aside)--not that it makes much difference in prac-
tice though, since only warnings.pm should care about this.

This came up as part of perl #111500.

12 years agoPorting/bisect.pl: Typos in diag msg
Father Chrysostomos [Fri, 2 Mar 2012 04:28:20 +0000 (20:28 -0800)]
Porting/bisect.pl: Typos in diag msg

12 years agofix warning in test.pl diagnostics output.
Craig A. Berry [Wed, 7 Mar 2012 13:12:00 +0000 (07:12 -0600)]
fix warning in test.pl diagnostics output.

2f137bbd018b assumed that $name is always defined, but it isn't
always, and when it's not the resulting undefined value warning
could corrupt test output and even make TODO tests trigger failure
with "unexpected output at test 0."

12 years agofix typo in src comment
David Mitchell [Tue, 6 Mar 2012 21:05:35 +0000 (21:05 +0000)]
fix typo in src comment

12 years agopods: Note future deprecation of unescaped "{"
Karl Williamson [Tue, 6 Mar 2012 16:07:46 +0000 (09:07 -0700)]
pods: Note future deprecation of unescaped "{"

12 years agoperllexwarn: Fix typos
Karl Williamson [Sun, 4 Mar 2012 19:33:03 +0000 (12:33 -0700)]
perllexwarn: Fix typos

12 years agobegin filling the 5.16.0 delta from 5.15.8
Ricardo Signes [Tue, 6 Mar 2012 02:25:31 +0000 (21:25 -0500)]
begin filling the 5.16.0 delta from 5.15.8

This is largely a copy and paste job.

12 years agoanother bus ride worth of collected delta editing
Ricardo Signes [Mon, 5 Mar 2012 23:56:52 +0000 (18:56 -0500)]
another bus ride worth of collected delta editing

12 years agoomnibus perl5160delta editing mess
Ricardo Signes [Tue, 21 Feb 2012 00:08:16 +0000 (19:08 -0500)]
omnibus perl5160delta editing mess

Omnibus not because it does all the editing, but because I did it
while riding the bus.

The preliminary editing is about 10% done.  Once things are better
pruned and in their place, I will go through to edit the prose.

12 years agofix slowdown in nested hash freeing
David Mitchell [Tue, 6 Mar 2012 14:26:27 +0000 (14:26 +0000)]
fix slowdown in nested hash freeing

Commit 104d7b69 made sv_clear free hashes iteratively rather than recursively;
however, my code didn't record the current hash index when freeing a
nested hash, which made the code go quadratic when freeing a large hash
with inner hashes, e.g.:

    my $r; $r->{$_} = { a => 1 } for 1..10_0000;

This was noticeable on such things as CPAN.pm being very slow to exit.

This commit fixes this by squirrelling away the old hash index in the
now-unused SvMAGIC field of the hash being freed.

12 years agoclarify that Apr 1 is not a hard RC0 date
Ricardo Signes [Mon, 5 Mar 2012 22:52:50 +0000 (17:52 -0500)]
clarify that Apr 1 is not a hard RC0 date

12 years agoreplace bogus non-ASCII dashlike char with -
Ricardo Signes [Mon, 5 Mar 2012 18:54:17 +0000 (13:54 -0500)]
replace bogus non-ASCII dashlike char with -

This was presumably brought in when I foolishly copied and pasted
the output from a version of groff that was over-eager to promote
"ugly" ASCII characters to "beautiful" non-ASCII ones.

12 years agofix documentation for exec's warning behavior
Eric Brine [Sat, 3 Mar 2012 02:47:39 +0000 (18:47 -0800)]
fix documentation for exec's warning behavior

This should self-consistently and correctly identify when exec
will warn.

[ commit message rewritten by rjbs ]

12 years agoGrammar and clarity fixes for exists() in pod/perlfunc.pod
Pau Amma\" (via RT) [Thu, 1 Mar 2012 18:48:23 +0000 (10:48 -0800)]
Grammar and clarity fixes for exists() in pod/perlfunc.pod

# New Ticket Created by  "Pau Amma"
# Please include the string:  [perl #111470]
# in the subject line of all future correspondence about this issue.
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=111470 >

See subject for suitable commit message

12 years agoTODO Failing tests for warnings in utf8 subcategories
Aaron Crane [Sat, 25 Feb 2012 13:40:11 +0000 (13:40 +0000)]
TODO Failing tests for warnings in utf8 subcategories

12 years agoregcomp.sym: Fix out-dated description
Karl Williamson [Sat, 3 Mar 2012 15:45:39 +0000 (08:45 -0700)]
regcomp.sym: Fix out-dated description

As a result of commit fab2782b37b5570d7f8f8065fd7d18621117ed49
the description is no longer valid.  This node type is trieable.

12 years agorework how the trie logic handles the newer EXACT nodetypes
Yves Orton [Sun, 19 Feb 2012 20:32:05 +0000 (21:32 +0100)]
rework how the trie logic handles the newer EXACT nodetypes

This cleans up and simplifies and extends how the trie
logic interacts with the new node types. This change ultimately
makes the EXACTFU, EXACTFU_SS, EXACTFU_NO_TRIE (renamed to
EXACTFU_TRICKYFOLD) work properly with the trie engine regardless
of whether the string is utf8 or latin1.

This patch depends on the following:

    EXACT              => utf8 or "binary" text

    EXACTFU            => either pre-folded utf8, or latin1 that has to be folded as though it was utf8
    EXACTFU_SS         => special case of EXACTFU to handle \xDF/ss (affects latin1 treatment)
    EXACTFU_TRICKYFOLD => special case of EXACTFU to handle tricky non-latin1 fold rules

    EXACTF             => "old style fold logic" untriable nodetype
    EXACTFA            => (currently) untriable nodetype
    EXACTFL            => (currently) untriable nodetype

See the comments in regcomp.sym for these fold types.

This patch involves a number of distinct, but related parts. Starting
from compilation:

* Simplify how we detect a triable sequence given the new nodetypes,
  this also probably fixed some "bugs" in how we detected certain
  sequences, like /||foo|bar/.

* Simplify how we read EXACTFU nodes under utf8 by removing the now
  redundant folding logic (EXACTFU nodes under utf8 are prefolded).
  Also extend this logic to handle latin1 patterns properly (in
  conjunction with  other changes)

* Part of the problems associated with EXACTFU_SS and EXACTFU_TRICKYFOLD
  have to do with how the trie logic interacts with the minlen logic.
  This change handles both by pessimising the minlen when encounting
  these nodetypes. One observation is that the minlen logic is basically
  broken, and works only because it conflates bytes and codepoints in
  such a way that we more or less always get a value small enough that things work out
  anyway. Fixing that is properly is the job of another patch.

* Part of the problem of doing folding under unicode rules is that
  there are a lot of foldings possible, some with strange rules. This
  means that the bitmap logic does not work correctly in all cases,
  as we currently do not have any way to populate it properly.
  So this patch disables the bitmap entirely when folding is involved
  until that is fixed.

The end result of this is: we can TRIE/AHOCORASICK any sequence of
EXACT, or EXACTFU (ish) nodes, regardless of utf8 or not, but we disable
the bitmap when folding.

A note for follow up relating to this patch is that the way EXACTFU_XXX
nodes are currently dealt with we wont build the "maximal" trie because
of their presence, instead creating a "jumptrie" consisting of either a
leading EXACTFU node followed by a EXACTFU_XXX node, or vice versa. We
should eventually address that.

12 years agomake test.pl show test number and name in failure diagnostics output
Yves Orton [Sun, 19 Feb 2012 20:04:44 +0000 (21:04 +0100)]
make test.pl show test number and name in failure diagnostics output

The old output would show only the line number as diagnostics
but not the test number, nor the test name, which often contains
very useful information. This patch makes sure this is visible in
the diagnostics output of test failures.

12 years agoSync Module-CoreList version in Maintainers.pl with CPAN
Chris 'BinGOs' Williams [Sat, 3 Mar 2012 10:54:08 +0000 (10:54 +0000)]
Sync Module-CoreList version in Maintainers.pl with CPAN

12 years agoadd "get rt.perl permissions" to RMG
Ricardo Signes [Fri, 2 Mar 2012 20:02:57 +0000 (15:02 -0500)]
add "get rt.perl permissions" to RMG

12 years agoupdate release schedule for next releasers
Ricardo Signes [Wed, 29 Feb 2012 00:52:40 +0000 (19:52 -0500)]
update release schedule for next releasers

12 years agoAdded Dave Rolsky and Max Maischein to the KEEPERS OF THE PUMPKIN.
Abigail [Thu, 1 Mar 2012 23:34:06 +0000 (00:34 +0100)]
Added Dave Rolsky and Max Maischein to the KEEPERS OF THE PUMPKIN.

12 years agoattributes.pm: Consistent spaces after dots in pod
Father Chrysostomos [Thu, 1 Mar 2012 20:32:25 +0000 (12:32 -0800)]
attributes.pm: Consistent spaces after dots in pod

12 years agoattributes.pm: Add caveat about lvalue subs
Father Chrysostomos [Thu, 1 Mar 2012 20:29:26 +0000 (12:29 -0800)]
attributes.pm: Add caveat about lvalue subs

12 years ago[perl #107366] Allow attributes to set :lvalue on defined sub
Father Chrysostomos [Thu, 1 Mar 2012 20:24:38 +0000 (12:24 -0800)]
[perl #107366] Allow attributes to set :lvalue on defined sub

This provides enough rope for those who want to hang themselves, and
also for those who know how to use the rope without hanging them-
selves. :-)

Since this is not generally a reliable thing to be doing, a warning is emitted whenever :lvalue is turned on or off on a defined subroutine.

But attributes.pm will flip the flag anyway.  :lvalue in a sub declar-
ation still refuses to modify a defined Perl sub, as before.

12 years agoAdd ambs to Maintainers.pl for ExtUtils::CBuilder
David Golden [Thu, 1 Mar 2012 15:48:28 +0000 (10:48 -0500)]
Add ambs to Maintainers.pl for ExtUtils::CBuilder

12 years agoStop the indexer from processing private modules
Florian Ragwitz [Wed, 29 Feb 2012 13:33:05 +0000 (15:33 +0200)]
Stop the indexer from processing private modules

12 years agoperldata: Two spaces after dots, please
Father Chrysostomos [Wed, 29 Feb 2012 06:05:46 +0000 (22:05 -0800)]
perldata: Two spaces after dots, please

12 years agoExplain why program must close __DATA__ handle.
jkeenan [Mon, 27 Feb 2012 17:34:10 +0000 (12:34 -0500)]
Explain why program must close __DATA__ handle.

Adapted from suggestion by David Golden++.  For RT #37033.

12 years agoBump Pod::Html version.
Craig A. Berry [Sun, 26 Feb 2012 15:21:31 +0000 (09:21 -0600)]
Bump Pod::Html version.

12 years agoPortability tweaks to Pod::Html's cache.t.
Craig A. Berry [Sun, 26 Feb 2012 15:18:04 +0000 (09:18 -0600)]
Portability tweaks to Pod::Html's cache.t.

We need to unixify the current working directory since we're going
to be comparing to the pod root that has been unixified internally
in Pod::Html.

Also clean up all versions of the generated files.

12 years agoBetter cross-platform unixify for Pod::Html.
Craig A. Berry [Sun, 26 Feb 2012 15:10:27 +0000 (09:10 -0600)]
Better cross-platform unixify for Pod::Html.

This is mostly borrowed from CPANPLUS with additional tweaks to
handle corner cases presented by the Pod::Html tests.  It seems
to work on VMS, Windows, and Mac OS X.

Also tweak _save_page to make the call to ab2rel more robust in
the case wherethe base is a special string indicating the current
working directory ('./', '[]', or '.\') rather than a literal path.

12 years agoDifferent differences for Pod::Html tests.
Craig A. Berry [Sun, 26 Feb 2012 15:07:42 +0000 (09:07 -0600)]
Different differences for Pod::Html tests.

Windows has FC (file compare), VMS has DIFFERENCES, and Linux is
certainly not the only OS that can do unified diff.

12 years agoregcomp.c: Add comment
Karl Williamson [Wed, 29 Feb 2012 00:27:43 +0000 (17:27 -0700)]
regcomp.c: Add comment

12 years agoregcomp.c: Add comment, reorder #define more logically
Karl Williamson [Wed, 29 Feb 2012 00:11:31 +0000 (17:11 -0700)]
regcomp.c: Add comment, reorder #define more logically

12 years agore/pat.t: Remove obsolete comment
Karl Williamson [Mon, 20 Feb 2012 18:32:18 +0000 (11:32 -0700)]
re/pat.t: Remove obsolete comment

12 years ago(?foo:...) loses passed in charset
Karl Williamson [Mon, 20 Feb 2012 18:27:03 +0000 (11:27 -0700)]
(?foo:...) loses passed in charset

This commit looks for the passed-in charset, and overrides it only if it
is /d and the pattern requires /u.  Previously the passed-in value was
ignored.

12 years agoPatch [perl #111400] [:upper:] broken for above Latin1
Karl Williamson [Tue, 28 Feb 2012 17:11:35 +0000 (10:11 -0700)]
Patch [perl #111400] [:upper:] broken for above Latin1

This was an off-by-one error caused by my failing to realize that things
had to be done differently at the 255/256 boundary depending on whether
U+00FF matched or did not match the property.

Two properties were affected, [:upper:] and [:punct:].  The bug was that
all code points above the first one > 255 that legitimately matches the
property will match whether or not they should.  In the case of
[:upper:], this meant that effectively anything from 256..infinity
matched.  For [:punct:], it was anything above U+037D.

12 years agoCorion's release is done. Check him off
Jesse Vincent [Tue, 28 Feb 2012 16:38:13 +0000 (11:38 -0500)]
Corion's release is done. Check him off

12 years agoav_fetch: de-duplicate small bit of code
David Mitchell [Mon, 27 Feb 2012 11:32:36 +0000 (11:32 +0000)]
av_fetch: de-duplicate small bit of code

make the code slightly smaller by changing

    if (A)
return X;
    if (B)
return X;

into
    `
    if (A || B)
return X;

12 years agoMerge the fixes for RT #37033 into blead.
Nicholas Clark [Mon, 27 Feb 2012 10:40:04 +0000 (11:40 +0100)]
Merge the fixes for RT #37033 into blead.

12 years agoThe parser should always close the file handle that it opened.
Nicholas Clark [Fri, 24 Feb 2012 15:13:29 +0000 (16:13 +0100)]
The parser should always close the file handle that it opened.

Previously it would leave the file handle open if it was (equal to) stdin,
on the assumption that this must have been because no script name was
supplied on the interpreter command line, so the interpreter was defaulting
to reading the script from standard input.

However, if the program has closed STDIN, then the next file handle opened
(for any reason) will have file descriptor 0. So in this situation, the
handle that require opened to read the module would be mistaken for the above
situation and left open. Effectively, this leaked a file handle.

This is now fixed, by explicitly tracking from parser creation time whether
it should keep the file handle open, and only setting this flag when
defaulting to reading the main program from standard input. This resolves
RT #37033.

12 years agoMove the close-on-exec logic to one place, at the end of S_open_script().
Nicholas Clark [Thu, 23 Feb 2012 16:45:26 +0000 (17:45 +0100)]
Move the close-on-exec logic to one place, at the end of S_open_script().

Now that the logic for stdin is implemented as an early return of NULL from
S_open_script(), in all cases that reach the end of S_open_script(), rsfp
is non-NULL, and a file handle that we wish to set to close on exec.

12 years agoChange S_open_script() to return NULL to signal "read from stdin".
Nicholas Clark [Thu, 23 Feb 2012 16:35:31 +0000 (17:35 +0100)]
Change S_open_script() to return NULL to signal "read from stdin".

Move the logic to assign PerlIO_stdin() to rsfp from S_open_script() to its
only caller, S_parse_body().

12 years agoIn perl.c, change S_open_script() to return rsfp.
Nicholas Clark [Thu, 23 Feb 2012 14:44:33 +0000 (15:44 +0100)]
In perl.c, change S_open_script() to return rsfp.

Previously it was being passed &rsfp as a parameter, because it was
returning another value, fdscript. However, the return value has been
ignored since commit cc69b689ee7c2745 removed suidperl in January 2009.

12 years agoIn struct yy_parser, change lex_flags to a U8, from part of a bitfield.
Nicholas Clark [Thu, 23 Feb 2012 10:41:01 +0000 (11:41 +0100)]
In struct yy_parser, change lex_flags to a U8, from part of a bitfield.

lex_flags holds 4 flag bits, with multiple flag bits manipulated together
at times, so they can't be split out into individual bitfields. This change
permits the C compiler to generate simpler code, reducing toke.o by about
400 bytes on this platform, but doesn't change the size of the structure.

lex_flags was added in commit 802a15e9c01d1a0b in August 2011, so is not in
any stable release.

12 years agoImprove the tests for -x
Nicholas Clark [Sun, 26 Feb 2012 14:24:21 +0000 (15:24 +0100)]
Improve the tests for -x

Test the error message generated when -x can't find a "#!perl" line.
Test that this error message still appears when -x is used with -e.

12 years agoImprove the tests for the -n and -p switches.
Nicholas Clark [Sun, 26 Feb 2012 13:15:02 +0000 (14:15 +0100)]
Improve the tests for the -n and -p switches.

Verify that -p actually runs the code in the program body.
Verify that -n doesn't implicitly print out the contents of $_.
For both, verify that an END block runs after the implicit loop.

12 years agoSimplify platform specific code in t/run/cloexec.t
Nicholas Clark [Sun, 26 Feb 2012 13:10:35 +0000 (14:10 +0100)]
Simplify platform specific code in t/run/cloexec.t

Don't assign to two lexical variables, $Is_VMS and $Is_Win32, only to use
them immediately for the same purpose - to skip the entire test.
In turn, there's no need to conditionally set $quote to a value suitable for
VMS or Win32, when neither OS ever runs the test.

The code has been this way since the file was added by commit
742218b34f58f961 in Nov 2006. Hence I don't think that the vestigial $quote
logic corresponds to pre-commit version that did run on these platforms.
Instead I infer that it has come from t/op/exec.t, used as a template for
running sub-scripts in a portable fashion.

12 years agoperldiag: Reflow for better splain output
Father Chrysostomos [Mon, 27 Feb 2012 01:25:24 +0000 (17:25 -0800)]
perldiag: Reflow for better splain output

12 years agoAdd an example how to fix '%s: command not found'
Max Maischein [Sun, 19 Feb 2012 20:04:34 +0000 (21:04 +0100)]
Add an example how to fix '%s: command not found'

12 years agoIncrease $attributes::VERSION to 0.18
Father Chrysostomos [Mon, 27 Feb 2012 00:15:03 +0000 (16:15 -0800)]
Increase $attributes::VERSION to 0.18

12 years agodoco improvement for attributes.pm
David Cantrell [Mon, 27 Feb 2012 00:13:18 +0000 (16:13 -0800)]
doco improvement for attributes.pm

It seems that many people have trouble understanding how to add custom
attributes to their subroutines.  Here's a doc patch that will
hopefully make things clearer:

12 years agoMake CPAN upstream for File::Temp
Father Chrysostomos [Sat, 25 Feb 2012 22:39:49 +0000 (14:39 -0800)]
Make CPAN upstream for File::Temp

It was set to undef, which meant it hadn’t been discussed.  In actuality,
it is actively maintained on CPAN.  See, for instance:

    https://rt.cpan.org/Ticket/Display.html?id=75077#txn-1038945

So this brings Maintainers.pl closer in line with reality.

12 years agoDon’t ‘normalise’ hints for bare ‘no feature’
Father Chrysostomos [Sat, 25 Feb 2012 22:26:13 +0000 (14:26 -0800)]
Don’t ‘normalise’ hints for bare ‘no feature’

‘Normalise’ in this case means to set $^H to indicate that features
are in %^H (FEATURE_BUNDLE_CUSTOM) and to make %^H contain the current
feature set.

Since ‘no feature’ sets the default feature bundle in $^H, this is
unnecessary in that case.

12 years agoregen/feature.pl: Show perl.h line num in error msg
Father Chrysostomos [Sat, 25 Feb 2012 22:14:07 +0000 (14:14 -0800)]
regen/feature.pl: Show perl.h line num in error msg

12 years agoperlfunc: bad wording
Father Chrysostomos [Sat, 25 Feb 2012 22:00:30 +0000 (14:00 -0800)]
perlfunc: bad wording

It is not features not in the current version, but those not in the
requested version, that are disabled.

12 years agoarybase.xs: Wrap PL_check safely
Father Chrysostomos [Sat, 25 Feb 2012 21:57:30 +0000 (13:57 -0800)]
arybase.xs: Wrap PL_check safely

12 years agoIncrease $arybase::VERSION to 0.05
Father Chrysostomos [Sat, 25 Feb 2012 21:54:51 +0000 (13:54 -0800)]
Increase $arybase::VERSION to 0.05

12 years agodon't taint $$ determined by getpid()
Zefram [Sat, 25 Feb 2012 20:32:09 +0000 (20:32 +0000)]
don't taint $$ determined by getpid()

Reading $$ in a tainted expression was tainting the internal sv_setiv()
on $$.  Since the value being set came directly from getpid(), it's
always safe, so override the tainting there.  Fixes [perl #109688].

12 years agoupdate perlfunc.html generator
Zefram [Sat, 25 Feb 2012 19:19:06 +0000 (19:19 +0000)]
update perlfunc.html generator

The format of the individual function HTML files has changed.  The index
generator needs to update to successfully extract the NAME sections.
Fixes [perl #107870].

12 years agodelay allocating trans table until needed
Zefram [Sat, 25 Feb 2012 15:41:17 +0000 (15:41 +0000)]
delay allocating trans table until needed

Previously, a table was being allocated for OP_TRANS(|R), in a
PVOP arrangement, as soon as the op was built.  However, it wasn't
used immediately, and for UTF8-flagged ops it would be thrown away,
replaced by an SV-based translation table in a SVOP or PADOP arrangement.
This mutation of the op structure occurred in pmtrans(), some time after
original op building.  If an error occurred before pmtrans(), requiring
the op to be freed, op_clear() would be misled by the UTF8 flags into
treating the PV as an SV or pad index, causing crashes in the latter
case [perl #102858].  op_clear() was implicitly assuming that pmtrans()
had been performed, due to lacking any explicit indication of the op's
state of construction.

Now, the PV table is allocated by pmtrans(), when it's actually going to
populate it.  The PV doesn't get allocated at all for UTF8-flagged ops.
Prior to pmtrans(), the op_pv/op_sv/op_padix field is all bits zero,
so there's no problem with freeing the op.

12 years agoUpdate the link for Module-Build/core integration
Chris 'BinGOs' Williams [Fri, 24 Feb 2012 21:17:55 +0000 (21:17 +0000)]
Update the link for Module-Build/core integration

12 years agomktables: Correct Unicode 6.1 omission
Karl Williamson [Fri, 24 Feb 2012 16:32:58 +0000 (09:32 -0700)]
mktables: Correct Unicode 6.1 omission

Unicode 6.1 erroneously omitted Takri as a script that uses two
characters, and have voted to publish the correction that this patch
makes.  There isn't an official Corrigendum yet.

12 years agocorrect a Pod foible that broke blead
Ricardo Signes [Fri, 24 Feb 2012 16:08:51 +0000 (11:08 -0500)]
correct a Pod foible that broke blead

12 years agoAdd description of new change process for http://dev.perl.org
Max Maischein [Fri, 24 Feb 2012 13:41:11 +0000 (14:41 +0100)]
Add description of new change process for dev.perl.org

Leo prefers now direct pull requests via Github.