| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
I’m not deleting it, as one may run error messages from an older perl
through a newer splain.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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?
|
|
|
|
| |
so that lazy people like me can omit parentheses.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This was to prevent infinite recursion, but the previous commit
added a more general mechanism, rendering this redundant.
|
|
|
|
|
| |
This commit modifies B::Deparse::stash_subs to keep track of which
stashes it has seen, in order to avoid looping on circularities.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The utilities from utils.lst end with a .com extension, and the
pseudo-shebang line looks quite different.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
[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]
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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>.
|
|
|
|
|
|
|
|
|
| |
[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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
"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.
|
| |
|
| |
|
|
|
|
|
| |
Also mention that the site is in github and the release manager can do the
edit him or herself if they want to.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- Include the original RMG in the generated document
- Generate pod or HTML - no need for Markdent
|
| |
|
|
|
|
| |
Pod::Tidy 0.10 added this. It's cleaner than setting $Text::Wrap::columns.
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The previous instructions were unaware that most of what they describe is
already automated.
|
|\ |
|
| |
| |
| |
| | |
Now it returns just the pod's name, its filename, and the flags (if any).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|