This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl5.git
12 years ago[perl #81424] Make Deparse handle /aelemfast_lex/
Father Chrysostomos [Sat, 24 Dec 2011 02:44:43 +0000 (18:44 -0800)]
[perl #81424] Make Deparse handle /aelemfast_lex/

B::Deparse’s pure_string subroutine, that checks whether an op tree
can fit in double-quotish syntax, didn’t know about aelemfast_lex, or,
formerly, aelemfast on lexical variables.  (It did know how to han-
dle aelemfast for package variables.)  Consequently it was deparsing
/$a[0]/ as $a[0] for a lexical @a.

/$a[0]/ with a package variable looks like this:

9        </> match() lK/RTIME ->a
8           <|> regcomp(other->9) sK/1 ->9
6              <1> regcreset sK/1 ->7
-                 <1> ex-aelem sK/2 ->8
-                    <1> ex-rv2av sKR/1 ->-
7                       <#> aelemfast[*s] s/1 ->8
-                    <0> ex-const s ->-

There are two null ops (ex-*) before the aelemfast.

/$a[0]/ with a lexical variable looks like this:

9        </> match() lK/RTIME ->a
8           <|> regcomp(other->9) sK/1 ->9
6              <1> regcreset sK/1 ->7
-                 <1> ex-aelem sK/2 ->8
7                    <0> aelemfast_lex[@s:1,2] sR/1 ->8
-                    <0> ex-const s ->-

There is only one null op (ex-aelem).

12 years agoConsistent use of spaces after dots in Deparse’s pod
Father Chrysostomos [Sat, 24 Dec 2011 01:55:42 +0000 (17:55 -0800)]
Consistent use of spaces after dots in Deparse’s pod

12 years agoperldiag: Consistent use of spaces after dots
Father Chrysostomos [Sat, 24 Dec 2011 00:38:57 +0000 (16:38 -0800)]
perldiag: Consistent use of spaces after dots

6903afa2b8 missed a few.

12 years agosv.c: consistent spaces after dots in apidocs
Father Chrysostomos [Fri, 23 Dec 2011 23:51:29 +0000 (15:51 -0800)]
sv.c: consistent spaces after dots in apidocs

12 years agoUpdate a perldiag entry for 5.16
Father Chrysostomos [Fri, 23 Dec 2011 22:45:30 +0000 (14:45 -0800)]
Update a perldiag entry for 5.16

I’m not deleting it, as one may run error messages from an older perl
through a newer splain.

12 years agoDon’t clobber all magic when clobbering vstring
Father Chrysostomos [Fri, 23 Dec 2011 22:28:33 +0000 (14:28 -0800)]
Don’t clobber all magic when clobbering vstring

This code in sv_setsv, introduced in ece467f9b3, can’t possi-
bly be right:

    if ( SvVOK(dstr) )
    {
/* need to nuke the magic */
mg_free(dstr);
    }

And here is a test to prove it:

sub TIESCALAR { bless[]}
sub STORE {}
tie $@, "";
$@ = v0;
warn tied $@; # main=ARRAY(0xc0ffee)
$@ = 3;
warn tied $@; # something’s wrong

It blows away tiedness.

You could do that to any variable.

Let’s see:

$! = v0;
$! = 3;
open foo, 'oentuhaeontu' or die $!;  # 3 at - line 3.

Youch!

Let’s just free vstring magic, shall we?

12 years agover.t: require test.pl in a BEGIN block
Father Chrysostomos [Fri, 23 Dec 2011 22:20:17 +0000 (14:20 -0800)]
ver.t: require test.pl in a BEGIN block

so that lazy people like me can omit parentheses.

12 years ago[perl #29070] Add vstring set-magic
Father Chrysostomos [Fri, 23 Dec 2011 22:18:16 +0000 (14:18 -0800)]
[perl #29070] Add vstring set-magic

Some operators, like pp_complement, assign their argument to TARG
(which copies vstring magic), modify it in place, and then call set-
magic.  That’s supposed to work, but vstring magic was remaining as it
was, such that ~v7 would still be treated as "v7" by vstring-aware
code, even though the resulting string is not "\7".

This commit adds vstring set-magic that checks to see whether the pv
still matches the vstring.  It cannot simply free the vstring magic,
as that would prevent $x=v0 from working.

12 years agoregexp.h: remove completely redundant return statement
Ævar Arnfjörð Bjarmason [Fri, 23 Dec 2011 22:17:35 +0000 (22:17 +0000)]
regexp.h: remove completely redundant return statement

Remove a redundant return() statement at the end of the
get_regex_charset_name function. The "default" case for the above
switch statement will always return for us.

This was added intentionally in v5.14.0-354-g0984e55 by Jim Cromie,
but the rationale for doing so is that we might have a compiler bug
here, but we're pretty screwed anyway if switch statements stop
working as advertised by the standard so there's no reason to be
defensive in this particular case.

This is also causing a lot of whine from Sun Studio 12 Update 1:

    regexp.h", line 329: warning: statement not reached

12 years agoSync Locale-Maketext version in Maintainers.pl with CPAN
Chris 'BinGOs' Williams [Fri, 23 Dec 2011 21:37:15 +0000 (21:37 +0000)]
Sync Locale-Maketext version in Maintainers.pl with CPAN

12 years agoSync Exporter version in Maintainers.pl with CPAN
Chris 'BinGOs' Williams [Fri, 23 Dec 2011 21:34:05 +0000 (21:34 +0000)]
Sync Exporter version in Maintainers.pl with CPAN

12 years agoMove Tie-File out of cpan/ and into dist/
Todd Rinaldo [Fri, 23 Dec 2011 20:17:58 +0000 (20:17 +0000)]
Move Tie-File out of cpan/ and into dist/

Tie::File has not been changed on CPAN since 2003. It has meanwhile been
actively maintained in p5p.

Signed-off-by: Chris 'BinGOs' Williams <chris@bingosnet.co.uk>
12 years agoDon’t double-free hint hash if copying dies
Father Chrysostomos [Fri, 23 Dec 2011 17:40:52 +0000 (09:40 -0800)]
Don’t double-free hint hash if copying dies

In this horrendous piece of code, the attempt to clone GvHV(PL_hintgv)
in save_hints dies because the NEXTKEY method cannot be found.  But
that happens while GvHV(PL_hintgv) still points to the old value.  So
the old hash gets freed in the new scope (when it unwinds due to the
error in trying to find NEXTKEY) and then gets freed in the outer
scope, too, resulting in the dreaded ‘Attempt to free unrefer-
enced scalar’.

    package namespace::clean::_TieHintHash;

    sub TIEHASH  { bless[] }
    sub STORE    { $_[0][0]{$_[1]} = $_[2] }
    sub FETCH    { $_[0][0]{$_[1]} }
    sub FIRSTKEY { my $a = scalar keys %{$_[0][0]}; each %{$_[0][0]} }
  # Intentionally commented out:
  #  sub NEXTKEY  { each %{$_[0][0]} }

    package main;

    BEGIN {
$^H{foo} = "bar"; # activate localisation magic
tie( %^H, 'namespace::clean::_TieHintHash' ); # sabotage %^H
$^H{foo} = "bar"; # create an element in the tied hash
    }
    { ; } # clone the tied hint hash

The solution is to set GvHV(PL_hintgv) to NULL when copying it.

12 years agoDeparse: remove special casing for main stash
Father Chrysostomos [Fri, 23 Dec 2011 16:43:22 +0000 (08:43 -0800)]
Deparse: remove special casing for main stash

This was to prevent infinite recursion, but the previous commit
added a more general mechanism, rendering this redundant.

12 years ago[perl #91384] Deparse and stash circularities
Father Chrysostomos [Fri, 23 Dec 2011 16:41:36 +0000 (08:41 -0800)]
[perl #91384] Deparse and stash circularities

This commit modifies B::Deparse::stash_subs to keep track of which
stashes it has seen, in order to avoid looping on circularities.

12 years agoFix the calculation for development time so it doesn't come up with things like ...
Dave Rolsky [Fri, 23 Dec 2011 17:01:34 +0000 (11:01 -0600)]
Fix the calculation for development time so it doesn't come up with things like "2 months" between two dev releases

There were a couple bugs ...

First, we should just use the date of the two commits we're looking at rather
than looking at all the commits in between and picking the earliest one. This
can find _much_ earlier things that weren't merged until much later, which
really throws the numbers off.

Second, when calculating the number of weeks and months, we shouldn't use
POSIX::ceil(), that rounds up 4.01 weeks to 5. Instead, I wrote a simple
rounding function that does standard rounding.

12 years agoPort utils test to VMS.
Craig A. Berry [Fri, 23 Dec 2011 12:16:35 +0000 (06:16 -0600)]
Port utils test to VMS.

The utilities from utils.lst end with a .com extension, and the
pseudo-shebang line looks quite different.

12 years agoIncrease $arybase::VERSION to 0.03
Father Chrysostomos [Thu, 22 Dec 2011 17:55:53 +0000 (09:55 -0800)]
Increase $arybase::VERSION to 0.03

12 years agoEek! I left some debug code in arybase.xs
Father Chrysostomos [Thu, 22 Dec 2011 17:55:28 +0000 (09:55 -0800)]
Eek! I left some debug code in arybase.xs

12 years agoDeparse.pm: Uncomment version code
Father Chrysostomos [Thu, 22 Dec 2011 06:29:46 +0000 (22:29 -0800)]
Deparse.pm: Uncomment version code

12 years agospeed up feature-checking slightly
Father Chrysostomos [Thu, 22 Dec 2011 00:15:32 +0000 (16:15 -0800)]
speed up feature-checking slightly

When seeing whether the cop hint hash contains the given feature,
Perl_feature_is_enabled only needs to see whether the hint hash ele-
ment exists.  It doesn’t need to turn it into a scalar.

12 years agoDeparse "a::]"->[0], etc., correctly
Father Chrysostomos [Wed, 21 Dec 2011 21:04:42 +0000 (13:04 -0800)]
Deparse "a::]"->[0], etc., correctly

The package name should not be omitted when the name begins with punc-
tuation unless the variable is in the main package.

"]"->[0] is force into the main package.
"a::]"->[0] is not.

12 years agoDeparse "string"->[$expr] and ->{$expr} correctly
Father Chrysostomos [Wed, 21 Dec 2011 20:55:56 +0000 (12:55 -0800)]
Deparse "string"->[$expr] and ->{$expr} correctly

This commit finishes the work done by b89b7257 and be6cf5cf0a by mak-
ing "string"->[...] and "string"->{...} in general deparse correctly
when "string" is not a valid identifier.

12 years agoUpdate Term-UI to CPAN version 0.30
Chris 'BinGOs' Williams [Thu, 22 Dec 2011 14:25:54 +0000 (14:25 +0000)]
Update Term-UI to CPAN version 0.30

  [DELTA]

  Changes for 0.30        Wed Dec 21 23:30:39 GMT 2011
  =====================================================
  * Resolve PAUSE indexer problems

  Changes for 0.28        Wed Dec 21 22:26:05 GMT 2011
  =====================================================
  * Apply Debian patches [rt.cpan.org #73400]

12 years agoAdded porting tests for CUSTOMIZED files
Chris 'BinGOs' Williams [Thu, 15 Dec 2011 23:11:51 +0000 (23:11 +0000)]
Added porting tests for CUSTOMIZED files

In Porting/Maintainers.pl CUSTOMIZED is a list of files that have been
customized within the Perl core. These tests make SHA digests of the
customized files and do a comparison previously stored digests to
ensure that customization is not lost when updating from upstream.

Update MANIFEST with the customized files

Add --regen ability to porting/customized.t and some documentation

12 years agoCorrect the Pod used to block comment a section of git log output.
Nicholas Clark [Thu, 22 Dec 2011 08:23:47 +0000 (09:23 +0100)]
Correct the Pod used to block comment a section of git log output.

Commit 31940c077ae95db7 added some git log output. To avoid the need to
re-indent it, it was "commented out" using Pod. However, the Pod used was
buggy. It used a =for, when it should have used a =begin/=end pair.

Without this, Pod renderers display the "comment" as if it is part of the
documentation, which isn't desired.

12 years agoAdd t/porting/utils.t, to test that utility scripts still compile.
Nicholas Clark [Wed, 21 Dec 2011 11:29:06 +0000 (12:29 +0100)]
Add t/porting/utils.t, to test that utility scripts still compile.

Right now, without this, it's possible to pass the all the regression tests
even if one has introduced syntax errors into scripts such as installperl
or installman. No tests fail, so it's fair game to push the commit.
Obviously this breaks installing perl, but we won't spot this.

Whilst we can't easily test that the various scripts *work*, we can at least
check that we've not made any trivial screw ups.

12 years agocorelist-perldelta.pl now requires Algorithm::Diff instead of using it.
Nicholas Clark [Wed, 21 Dec 2011 19:19:10 +0000 (20:19 +0100)]
corelist-perldelta.pl now requires Algorithm::Diff instead of using it.

This way ./perl -Ilib -c Porting/corelist-perldelta.pl can be used to syntax
check it.

corelist-perldelta.pl was not importing symbols from Algorithm::Diff, so
there are no changes in runtime behaviour.

12 years agoPorting/cherrymaint now requires LWP::UserAgent instead of using it.
Nicholas Clark [Wed, 21 Dec 2011 18:24:52 +0000 (19:24 +0100)]
Porting/cherrymaint now requires LWP::UserAgent instead of using it.

This way ./perl -Ilib -c Porting/cherrymaint can be used to syntax check it.

cherrymaint was not importing symbols from LWP::UserAgent, so there are no
changes in runtime behaviour.

12 years agoPorting/checkURL.pl now requires rather than uses all non-core modules.
Nicholas Clark [Wed, 21 Dec 2011 18:14:13 +0000 (19:14 +0100)]
Porting/checkURL.pl now requires rather than uses all non-core modules.

This way ./perl -Ilib -c Porting/checkURL.pl can be used to syntax check it.

Only File::Slurp and URI::Find::Simple were actually relying on C<use> to
import subroutines - replace the two uses with fully qualified names.
All other packages are needed for object constructors, not imports, so there
is no change in loading them with C<require>.

12 years agoUpdate CPANPLUS to CPAN version 0.9115
Chris 'BinGOs' Williams [Wed, 21 Dec 2011 20:06:41 +0000 (20:06 +0000)]
Update CPANPLUS to CPAN version 0.9115

  [DELTA]

  Changes for 0.9115      Tue Dec 20 21:10:24 2011
  ================================================
  * Added new config option 'allow_unknown_prereqs'
    to resolve issues with 0.9114 release

12 years agoCopy hints from tied hh to inner compile scopes
Father Chrysostomos [Wed, 21 Dec 2011 20:29:12 +0000 (12:29 -0800)]
Copy hints from tied hh to inner compile scopes

Entries from a tied %^H were not being copied to inner compile-time
scopes, resulting in %^H appearing empty in BEGIN blocks, even
though the underlying he chain *was* being propagated properly (so
(caller)[10] at run time still worked.

I was surprised that, in writing tests for this, I produced another
crash.  I thought I had fixed them with 95cf23680 and 7ef9d42ce.  It
turns out that pp_helem doesn’t support hashes with null values.
(That’s a separate bug that needs fixing, since the XS API allows for
them.)  For now, cloning the hh properly stops pp_helem from getting a
null value.

12 years agoregen pod issues
Father Chrysostomos [Wed, 21 Dec 2011 18:51:55 +0000 (10:51 -0800)]
regen pod issues

12 years agopodcheck.t: skip make-rmg-checklist
Father Chrysostomos [Wed, 21 Dec 2011 18:51:38 +0000 (10:51 -0800)]
podcheck.t: skip make-rmg-checklist

12 years agoFix pod errors in rmg
Father Chrysostomos [Wed, 21 Dec 2011 18:43:34 +0000 (10:43 -0800)]
Fix pod errors in rmg

12 years agoAdd Porting/make_rmg-checklist to MANIFEST
Father Chrysostomos [Wed, 21 Dec 2011 18:39:32 +0000 (10:39 -0800)]
Add Porting/make_rmg-checklist to MANIFEST

12 years agoDeparse "string"->[0] correctly
Father Chrysostomos [Wed, 21 Dec 2011 16:17:01 +0000 (08:17 -0800)]
Deparse "string"->[0] correctly

"foo"->[0] and $foo[0] compile down to the same thing.  B::Deparse was
assuming that an rv2gv with a gv kid would have to be $foo[0] syntax,
so it didn’t take things like '!@T#$'->[0] into account.

This commit only fixes aelemfast.  It is related to b89b7257.

12 years agoWe don't care about "Pragma" vs. "Pragmata"
Florian Ragwitz [Wed, 21 Dec 2011 18:25:24 +0000 (19:25 +0100)]
We don't care about "Pragma" vs. "Pragmata"

12 years agoFail if one if the sections we want isn't there
Florian Ragwitz [Wed, 21 Dec 2011 18:25:07 +0000 (19:25 +0100)]
Fail if one if the sections we want isn't there

12 years agoAdd mention of what we want changed on dev.perl.org
Dave Rolsky [Wed, 21 Dec 2011 17:57:54 +0000 (11:57 -0600)]
Add mention of what we want changed on dev.perl.org

Also mention that the site is in github and the release manager can do the
edit him or herself if they want to.

12 years agoTweak RMG headings to make the generated checklist more useful
Dave Rolsky [Wed, 21 Dec 2011 17:40:00 +0000 (11:40 -0600)]
Tweak RMG headings to make the generated checklist more useful

12 years agoShow --html flag for make-rmg-checklist
Dave Rolsky [Wed, 21 Dec 2011 17:15:07 +0000 (11:15 -0600)]
Show --html flag for make-rmg-checklist

12 years agoNo need for empty =for checklist element
Dave Rolsky [Wed, 21 Dec 2011 17:14:06 +0000 (11:14 -0600)]
No need for empty =for checklist element

12 years agoAdd a section on making a checklist
Dave Rolsky [Wed, 21 Dec 2011 17:13:48 +0000 (11:13 -0600)]
Add a section on making a checklist

12 years agoLots of improvements for the checklist generator
Dave Rolsky [Wed, 21 Dec 2011 17:13:41 +0000 (11:13 -0600)]
Lots of improvements for the checklist generator

- Include the original RMG in the generated document
- Generate pod or HTML - no need for Markdent

12 years agoAdd a script to generate a release checklist from the RMG
Dave Rolsky [Tue, 20 Dec 2011 21:21:49 +0000 (15:21 -0600)]
Add a script to generate a release checklist from the RMG

12 years agoPorting/podtidy can pass 'columns' to Pod::Tidy::tidy_files().
Nicholas Clark [Wed, 21 Dec 2011 13:36:43 +0000 (14:36 +0100)]
Porting/podtidy can pass 'columns' to Pod::Tidy::tidy_files().

Pod::Tidy 0.10 added this. It's cleaner than setting $Text::Wrap::columns.

12 years agoSync Maintainers.pl with CPAN for Module-CoreList
Chris 'BinGOs' Williams [Wed, 21 Dec 2011 10:51:06 +0000 (10:51 +0000)]
Sync Maintainers.pl with CPAN for Module-CoreList

12 years agoIn installman, move the call to File::Find::find() to the top level.
Nicholas Clark [Wed, 21 Dec 2011 09:56:26 +0000 (10:56 +0100)]
In installman, move the call to File::Find::find() to the top level.

The code to recursively scan a directory with File::File::find() is now only
used by one caller of podset(), so move it to the call point, reducing the
amount of conditional code within podset(). The first argument to podset()
is now always a reference to a hash of "work to be done". Add an optional
fourth argument to give the directory name for diagnostics.

12 years agoLazier instructions for removing stale perldeltas for 5.x.0-RC0
Nicholas Clark [Wed, 21 Dec 2011 09:22:17 +0000 (10:22 +0100)]
Lazier instructions for removing stale perldeltas for 5.x.0-RC0

The previous instructions were unaware that most of what they describe is
already automated.

12 years agoMerge the refactoring that abolishes pod.lst to blead.
Nicholas Clark [Wed, 21 Dec 2011 08:57:59 +0000 (09:57 +0100)]
Merge the refactoring that abolishes pod.lst to blead.

12 years agoRe-order entries in the 'master' array returned by get_pod_metadata().
Nicholas Clark [Mon, 19 Dec 2011 19:44:39 +0000 (20:44 +0100)]
Re-order entries in the 'master' array returned by get_pod_metadata().

Now it returns just the pod's name, its filename, and the flags (if any).

12 years agoPrune unused entries from the 'master' array returned by get_pod_metadata().
Nicholas Clark [Mon, 19 Dec 2011 19:01:29 +0000 (20:01 +0100)]
Prune unused entries from the 'master' array returned by get_pod_metadata().

The description is only used to generate MANIFEST entries now from 'readmes'
and 'pods'. now that perl.pod is the master and is no longer generated from
pod.lst

The leafname/podname distinction is only used by is_duplicate_pod(), so can
be replaced by simple flag, 'dual'.

Replace the now-unused entries with undef to preserve the indices.

12 years agoRationalise use of the Pod metadata structure returned by get_pod_metadata().
Nicholas Clark [Mon, 19 Dec 2011 18:34:56 +0000 (19:34 +0100)]
Rationalise use of the Pod metadata structure returned by get_pod_metadata().

Nothing uses the entries in the 'master' array for the for the elements
flagged as 'aux', so don't generate them. Only buildtoc uses the the 'aux'
hash, and only the keys in sorted order, so replace the hash with a sorted
array.

All entries in the 'master' array are now defined, and references to 5
element arrays, so remove code that checks for this. Likewise, as the 'aux'
flag is no longer used, remove code related to it.

When generating the entries for README files in %our_pods in the consistency
checking code in get_pod_metadata, $_->[4] and $_->[1] will always be equal,
as no READMEs are copied from dual life modules. So use $_->[1] instead, as
this permits a future simplification.

12 years agoEliminate pod.lst. pod/perl.pod is now the master file for Pod metadata.
Nicholas Clark [Mon, 19 Dec 2011 13:45:17 +0000 (14:45 +0100)]
Eliminate pod.lst. pod/perl.pod is now the master file for Pod metadata.

perl.pod already contained virtually all the information in pod.lst. Add
the remainder as =begin and =for Pod blocks.

As perl.pod no longer needs to be regenerated, remove the redundant code from
Porting/pod_rules.pl. Update (nearly) all references to pod.lst.

12 years agoFixing crash in hint.t
Father Chrysostomos [Wed, 21 Dec 2011 07:06:20 +0000 (23:06 -0800)]
Fixing crash in hint.t

The test that was added in 95cf23680e tickled another bug in the same
code in Perl_hv_copy_hints_hv than the one it fixed, but not on the
committer’s machine.

Not only can a HE from a tied hash have a null entry, but it can also
have an SV for its key.  Treating it as a hek and trying to read flags
from it may result in other code being told to free something it
shouldn’t because the SV, when looked at as a hek, appeared to have
the HVhek_FREEKEY flag.

12 years ago[perl #91416] Deparse open("blah blah blah") properly
Father Chrysostomos [Wed, 21 Dec 2011 06:53:13 +0000 (22:53 -0800)]
[perl #91416] Deparse open("blah blah blah") properly

‘open bareword’ compiles down to

  open
    `--+--pushmark
       `--gv

whereas ‘open "string"’ compiles down to

  open
    `--+--pushmark
       `--rv2gv
            `----gv

the same as ‘open *glob’.

B::Deparse was deparsing the child of the rv2gv, in order to deparse
things like open(my $fh...) as they were entered, instead of
open(*my $fh), which wouldn’t work.  gvops were being deparsed as
the name.  But this meant that ‘open "open"’ would be deparsed as
‘open open’, which does something different, ‘open’ being a keyword.
It also did that with ‘open '%^$^$%'’, which would deparse without the
quotation marks.

This commit changes the deparsing of filehandle-op -> rv2gv -> gv,
by keeping the explicit * present if the name of the gv is a valid
identifier  (so open("foo") and open(*foo), which compile identi-
cally, both come out as open(*foo)), or by using quotation marks if
it is not.

12 years agoIncrease $B::Deparse::VERSION to 1.11
Father Chrysostomos [Wed, 21 Dec 2011 02:02:43 +0000 (18:02 -0800)]
Increase $B::Deparse::VERSION to 1.11

12 years agocharnames tests: Add names to some more tests
Karl Williamson [Mon, 19 Dec 2011 19:30:10 +0000 (12:30 -0700)]
charnames tests: Add names to some more tests

12 years agotest.pl: Add comment
Karl Williamson [Mon, 19 Dec 2011 19:29:45 +0000 (12:29 -0700)]
test.pl: Add comment

12 years agoAutoload charnames for \N{name}
Karl Williamson [Mon, 19 Dec 2011 03:45:14 +0000 (20:45 -0700)]
Autoload charnames for \N{name}

This autoloads charnames.pm when needed.  It uses the :full and :short
options.  :loose is not used because of its relative unfamiliarity in
the Perl community, and is slower.  (If someone later added a typical
"use charnames qw(:full)", things that previously matched under :loose
would start to fail, causing confustion.  If :loose does become more
common, we can change this in the future to use it; the converse isn't
true.)

The callable functions in the module are not automatically loaded.  To
access them, an explicity "use charnames" must be provided.

Thanks to Tony Cook for doing a code inspection and finding a missing
SPAGAIN.

12 years agotoke.c: Reorder a test
Karl Williamson [Sat, 1 Oct 2011 19:50:33 +0000 (13:50 -0600)]
toke.c: Reorder a test

This is in preparation for a later commit

12 years agocharnames.t: Rmv extra blank in comment
Karl Williamson [Thu, 8 Dec 2011 05:30:47 +0000 (22:30 -0700)]
charnames.t: Rmv extra blank in comment

12 years agocharnames: Split into two modules
Karl Williamson [Thu, 8 Dec 2011 03:48:01 +0000 (20:48 -0700)]
charnames: Split into two modules

This takes the source and splits it into two modules with the only
changes those that are required to get them to work together.

This is in preparation for future commits

12 years agopod nits
Karl Williamson [Sun, 4 Dec 2011 04:37:48 +0000 (21:37 -0700)]
pod nits

12 years ago[perl #106282] Don’t crash cloning tied %^H
Father Chrysostomos [Tue, 20 Dec 2011 23:25:18 +0000 (15:25 -0800)]
[perl #106282] Don’t crash cloning tied %^H

When hv_iternext_flags is called on a tied hash, the hash entry (HE)
that it returns has no value.  Perl_hv_copy_hints_hv, added in commit
5b9c067131, was assuming that it would have a value and calling
sv_magic on it, resulting in a crash.

Commit b50b205 made namespace::clean’s test suite crash, because
strict.pm started using %^H.  It was already possible to crash
namespace::clean with other hh-using pragmata, like sort:

    # namespace::clean 0.21 only uses ties in the absence of B:H:EOS
    use Devel::Hide 'B::Hooks::EndOfScope';
    use sort "stable";
    use namespace::clean;
    use sort "stable";
    {;}

It was possible to trigger the crash with no modules like this:

    package namespace::clean::_TieHintHash;

    sub TIEHASH  { bless[] }
    sub STORE    { $_[0][0]{$_[1]} = $_[2] }
    sub FETCH    { $_[0][0]{$_[1]} }
    sub FIRSTKEY { my $a = scalar keys %{$_[0][0]}; each %{$_[0][0]} }
    sub NEXTKEY  { each %{$_[0][0]} }

    package main;

    BEGIN {
$^H{foo} = "bar";
tie( %^H, 'namespace::clean::_TieHintHash' );
$^H{foo} = "bar";
    }
    { ; }

This commit puts in a simple null check before calling sv_magic.  Tied
hint hashes still do not work, but they now only work as badly as in
5.8 (i.e., they don’t crash).

I don’t think tied hint hashes can ever be made to work properly, even
if we do make Perl_hv_copy_hints_hv copy the hash properly, because in
the scope where %^H is tied, the tie magic takes precedence over hint
magic, preventing the underlying he chain from being updated.  So
hints set in that scope will just not stick.

12 years agoLink to release announcement in epigraphs.pod
Dave Rolsky [Tue, 20 Dec 2011 22:13:53 +0000 (16:13 -0600)]
Link to release announcement in epigraphs.pod

12 years agoAdd a step asking release managers to blog about their epigraph
Dave Rolsky [Tue, 20 Dec 2011 21:43:31 +0000 (15:43 -0600)]
Add a step asking release managers to blog about their epigraph

12 years agoAdd the 5.15.6 epigraph
Dave Rolsky [Tue, 20 Dec 2011 21:41:47 +0000 (15:41 -0600)]
Add the 5.15.6 epigraph

12 years agoAdd details on how to figure out if rt.perl.org needs to be updated.
Dave Rolsky [Tue, 20 Dec 2011 21:39:27 +0000 (15:39 -0600)]
Add details on how to figure out if rt.perl.org needs to be updated.

12 years agoCreate a perldelta for 5.15.7
Dave Rolsky [Tue, 20 Dec 2011 21:30:25 +0000 (15:30 -0600)]
Create a perldelta for 5.15.7

12 years agoMerge branch 'drolsky/release-5.15.6' into blead
Dave Rolsky [Tue, 20 Dec 2011 18:04:39 +0000 (12:04 -0600)]
Merge branch 'drolsky/release-5.15.6' into blead

12 years agoAdd perldelta entry for new version of Module::CoreList v5.15.6
Dave Rolsky [Tue, 20 Dec 2011 17:23:36 +0000 (11:23 -0600)]
Add perldelta entry for new version of Module::CoreList

12 years agoFix version of Module::CoreList in 5.15.6
Dave Rolsky [Tue, 20 Dec 2011 17:22:05 +0000 (11:22 -0600)]
Fix version of Module::CoreList in 5.15.6

12 years agoAdd Changes entry for Module::CoreList
Dave Rolsky [Tue, 20 Dec 2011 17:19:58 +0000 (11:19 -0600)]
Add Changes entry for Module::CoreList

12 years agopod_rules.pl was always (re)building everything, not what was asked for.
Nicholas Clark [Tue, 20 Dec 2011 10:33:26 +0000 (11:33 +0100)]
pod_rules.pl was always (re)building everything, not what was asked for.

The bug was introduced by commit b78c110439167132, which split
Porting/pod_rules.pl out from pod/buildtoc. The previous code in buildtoc
would correctly honour the command line options, and only (re)build the
requested files.

12 years agoUse tr/_// instead of eval $VERSION
Steffen Mueller [Tue, 20 Dec 2011 07:42:45 +0000 (08:42 +0100)]
Use tr/_// instead of eval $VERSION

Also bumps the version of all contained modules to 3.39_01, which is the
version of a new PathTools CPAN release (and the code is in sync with
this commit).

12 years agoAdd 5.15.6 release date to perlhist
Dave Rolsky [Tue, 20 Dec 2011 02:00:14 +0000 (20:00 -0600)]
Add 5.15.6 release date to perlhist

12 years agoUpdated Module::CoreList for 5.15.6 - including $VERSION bump
Dave Rolsky [Tue, 20 Dec 2011 01:52:11 +0000 (19:52 -0600)]
Updated Module::CoreList for 5.15.6 - including $VERSION bump

12 years agoBump the perl version in various places for 5.15.6
Dave Rolsky [Mon, 19 Dec 2011 22:57:48 +0000 (16:57 -0600)]
Bump the perl version in various places for 5.15.6

12 years agoFinal pass through perldelta
Dave Rolsky [Mon, 19 Dec 2011 22:44:01 +0000 (16:44 -0600)]
Final pass through perldelta

- copy edited for clarity & typos
- standardized on two spaces after a period
- detabified
- ran it through a spellchecker
- ran it through podtidy one last time

12 years agoRemove an XXX note - questions resolved
Dave Rolsky [Mon, 19 Dec 2011 21:55:54 +0000 (15:55 -0600)]
Remove an XXX note - questions resolved

12 years agoThe POSIX TCSANOW appears to have been introduced in 5.15.3
Dave Rolsky [Mon, 19 Dec 2011 21:51:38 +0000 (15:51 -0600)]
The POSIX TCSANOW appears to have been introduced in 5.15.3

12 years agoNot going to document 43d9ecf either
Dave Rolsky [Mon, 19 Dec 2011 21:47:15 +0000 (15:47 -0600)]
Not going to document 43d9ecf either

12 years agoNot going to document f300909 in perldelta
Dave Rolsky [Mon, 19 Dec 2011 21:46:26 +0000 (15:46 -0600)]
Not going to document f300909 in perldelta

12 years agoPerldelta for b0f2e9e - buildtoc fixes
Dave Rolsky [Mon, 19 Dec 2011 21:46:09 +0000 (15:46 -0600)]
Perldelta for b0f2e9e - buildtoc fixes

12 years agoSmall pod fix - s/build/built/
Dave Rolsky [Mon, 19 Dec 2011 21:38:10 +0000 (15:38 -0600)]
Small pod fix - s/build/built/

12 years agoClean up perldelta.pod for release
Dave Rolsky [Mon, 19 Dec 2011 21:36:10 +0000 (15:36 -0600)]
Clean up perldelta.pod for release

- Removed all the empty sections
- Ran it through podtidy

Still need to resolve some open questions/missing changes and run it through a
spellchecker.

12 years agoUpdate CPANPLUS to CPAN version 0.9114
Chris 'BinGOs' Williams [Mon, 19 Dec 2011 21:34:59 +0000 (21:34 +0000)]
Update CPANPLUS to CPAN version 0.9114

  [DELTA]

  Changes for 0.9114      Mon Dec 19 21:15:38 2011
  ================================================
  * Fail earlier on unresolvable prereqs as per
    [rt.cpan.org #73310]

12 years agoSync Maintainers.pl with teh CPAN
Chris 'BinGOs' Williams [Mon, 19 Dec 2011 19:15:39 +0000 (19:15 +0000)]
Sync Maintainers.pl with teh CPAN

12 years agoSelfLoader: Version bump to match CPAN release
Steffen Mueller [Mon, 19 Dec 2011 19:05:43 +0000 (20:05 +0100)]
SelfLoader: Version bump to match CPAN release

12 years agoExtUtils::ParseXS: Version bump and changelog for CPAN release
Steffen Mueller [Mon, 19 Dec 2011 17:05:24 +0000 (18:05 +0100)]
ExtUtils::ParseXS: Version bump and changelog for CPAN release

12 years agoRestructure the heredocs in perlmodlib.PL so the file as-is is valid Pod.
Nicholas Clark [Mon, 19 Dec 2011 15:25:44 +0000 (16:25 +0100)]
Restructure the heredocs in perlmodlib.PL so the file as-is is valid Pod.

Using =cut as the heredoc terminator makes the whole file parse as
(reasonably) sane Pod as-is to anything that attempts to brute-force treat
it as such. The content is already useful - this just makes it tidier, by
stopping anything doing this mistaking the rest of the Perl code for Pod.

12 years agoAdd autodoc.pl to the 'no_index' section of META.yml
Nicholas Clark [Mon, 19 Dec 2011 14:07:00 +0000 (15:07 +0100)]
Add autodoc.pl to the 'no_index' section of META.yml

This stops search.cpan.org mistaking its stub contents for the (full,
generated) perlapi manpage.

12 years agoMerge installman and pod/buildtoc improvements to blead.
Nicholas Clark [Mon, 19 Dec 2011 13:09:40 +0000 (14:09 +0100)]
Merge installman and pod/buildtoc improvements to blead.

12 years agoNote the user-visible installman changes in perldelta.
Nicholas Clark [Mon, 19 Dec 2011 09:21:28 +0000 (10:21 +0100)]
Note the user-visible installman changes in perldelta.

12 years agoSome pod_lib.pl cleanups.
Nicholas Clark [Mon, 19 Dec 2011 07:14:23 +0000 (08:14 +0100)]
Some pod_lib.pl cleanups.

Eliminate the file-scoped lexical %Readmepods. Use slurp_or_die() instead of
coding it longhand.

12 years agoinstallman should use the data in pod.lst to track dual-life pods in lib/
Nicholas Clark [Sun, 18 Dec 2011 19:13:11 +0000 (20:13 +0100)]
installman should use the data in pod.lst to track dual-life pods in lib/

This ensures that perlfaq*, perlglossary, perlxs, perlxstut and perldoc's
man pages are installed in man1, not man3, along with any future dual-life
pods. This is an improvement on commit 0beff067932254cd which only dealt with
perlfaq* and perlglossary, and had the unfortunate side effect of also
causing these 11 files to be installed to bin/

12 years agoVarious installman cleanups.
Nicholas Clark [Fri, 16 Dec 2011 15:47:40 +0000 (16:47 +0100)]
Various installman cleanups.

Eliminate the C<use File::Copy> and various $Is_* vars, unneeded since
commit 9e6fc21fcd859351 moved the code that uses them into install_lib.pl
Move the filename-based skip code into the callback for File::Find::find(),
as this saves ever storing them in %$modpods.
Eliminate @to_process, which has been mostly redundant since commit
a274383458745101, and completely redundant since commits 02bc0c09b2a02ba6^
and 02bc0c09b2a02ba6.
Eliminate the batchlimit command line option, which has been redundant since
commit a274383458745101.

12 years agoIn installman, pod2man() now takes a hashref instead of a list of scripts.
Nicholas Clark [Sun, 18 Dec 2011 18:36:14 +0000 (19:36 +0100)]
In installman, pod2man() now takes a hashref instead of a list of scripts.

Avoid needless splitting and joining of paths when processing the "scripts"
from utils.lst. Remove the unused lexical $where2. Remove an inaccurate
comment about nochdir.