In perl.git, the branch blead has been updated <https://perl5.git.perl.org/perl.git/commitdiff/78a643379185d2a728ff615b2a20bee0c66f9d4b?hp=498b84842835faa317bd30ea8a865ecb85dda258>
- Log ----------------------------------------------------------------- commit 78a643379185d2a728ff615b2a20bee0c66f9d4b Author: Father Chrysostomos <spr...@cpan.org> Date: Wed Nov 1 13:59:05 2017 -0700 Increase $Carp::Heavy::VERSION to 1.44 commit f12efe04b38a481959bf3e032bdabd77c32abddc Author: Father Chrysostomos <spr...@cpan.org> Date: Wed Nov 1 13:13:00 2017 -0700 Increase $Carp::VERSION to 1.44 commit b3937e202aaf10c2f8996e2993c880bb38a7a268 Author: Father Chrysostomos <spr...@cpan.org> Date: Wed Nov 1 13:11:27 2017 -0700 Carp: Don’t choke on ISA constant This broke some time between 1.29 (perl 5.18) and 1.3301 (perl 5.20): $ perl5.20.1 -e 'package Foo { use constant ISA => 42; Bar::f() } package Bar { use Carp; sub f { carp "tun syn" } }' Not a GLOB reference at /usr/local/lib/perl5/5.20.1/Carp.pm line 560. and still persisted in bleadperl (Carp 1.43) until this commit. The code that goes poking through the symbol table needs to take into account that not all stash elements are globs. commit 28e6a224ef79c1dd15a21ca9219838086e3df115 Author: Father Chrysostomos <spr...@cpan.org> Date: Tue Oct 31 22:18:10 2017 -0700 customized.dat: Add generator note So that people like me who do not do this very often can see just by looking at the file how it got generated. commit cc851c4b38a5e51a2c6b719e6d60e9a14fa0268e Author: Father Chrysostomos <spr...@cpan.org> Date: Tue Oct 31 22:12:42 2017 -0700 Porting/Maintainers.pl: vutil.c is no longer CUSTOMIZED commit 817794ed06753164373b1e73a0e98e885b1274ed Author: Father Chrysostomos <spr...@cpan.org> Date: Tue Oct 31 22:02:49 2017 -0700 Revert "vutil.c: use new SvPVCLEAR and constant string friendly macros" This reverts commit 7394beb1401a6ac5e5e19cff7f08486e5141126c. This change to vutil.c is unnecessary and makes it differ needlessly from the CPAN release (CPAN *is* upstream for this file), making syn- chronisation harder. ----------------------------------------------------------------------- Summary of changes: Porting/Maintainers.pl | 1 - dist/Carp/lib/Carp.pm | 5 +++-- dist/Carp/lib/Carp/Heavy.pm | 2 +- dist/Carp/t/Carp.t | 13 ++++++++++++- t/porting/customized.dat | 8 +++++--- t/porting/customized.t | 6 ++++++ vutil.c | 8 ++++---- 7 files changed, 31 insertions(+), 12 deletions(-) diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl index a96e7527fe..2fd88cceba 100755 --- a/Porting/Maintainers.pl +++ b/Porting/Maintainers.pl @@ -1251,7 +1251,6 @@ use File::Glob qw(:case); # only necessary with the CPAN release. 'CUSTOMIZED' => [ qw( lib/version.pm - vutil.c vxs.inc ), ], diff --git a/dist/Carp/lib/Carp.pm b/dist/Carp/lib/Carp.pm index 6127b26f54..623558aada 100644 --- a/dist/Carp/lib/Carp.pm +++ b/dist/Carp/lib/Carp.pm @@ -116,7 +116,7 @@ BEGIN { ; } -our $VERSION = '1.43'; +our $VERSION = '1.44'; $VERSION =~ tr/_//d; our $MaxEvalLen = 0; @@ -593,7 +593,8 @@ sub trusts_directly { for my $var (qw/ CARP_NOT ISA /) { # Don't try using the variable until we know it exists, # to avoid polluting the caller's namespace. - if ( $stash->{$var} && *{$stash->{$var}}{ARRAY} && @{$stash->{$var}} ) { + if ( $stash->{$var} && ref \$stash->{$var} eq 'GLOB' + && *{$stash->{$var}}{ARRAY} && @{$stash->{$var}} ) { return @{$stash->{$var}} } } diff --git a/dist/Carp/lib/Carp/Heavy.pm b/dist/Carp/lib/Carp/Heavy.pm index 4b8cbe1b94..84b1106545 100644 --- a/dist/Carp/lib/Carp/Heavy.pm +++ b/dist/Carp/lib/Carp/Heavy.pm @@ -2,7 +2,7 @@ package Carp::Heavy; use Carp (); -our $VERSION = '1.43'; +our $VERSION = '1.44'; $VERSION =~ tr/_//d; # Carp::Heavy was merged into Carp in version 1.12. Any mismatched versions diff --git a/dist/Carp/t/Carp.t b/dist/Carp/t/Carp.t index 65daed7c6c..b1e399d143 100644 --- a/dist/Carp/t/Carp.t +++ b/dist/Carp/t/Carp.t @@ -3,7 +3,7 @@ no warnings "once"; use Config; use IPC::Open3 1.0103 qw(open3); -use Test::More tests => 67; +use Test::More tests => 68; sub runperl { my(%args) = @_; @@ -488,6 +488,17 @@ SKIP: ); } +{ + package Mpar; + sub f { Carp::croak "tun syn" } + + package Phou; + $Phou::{ISA} = \42; + eval { Mpar::f }; +} +like $@, qr/tun syn/, 'Carp can handle non-glob ISA stash elems'; + + # New tests go here # line 1 "XA" diff --git a/t/porting/customized.dat b/t/porting/customized.dat index 4c49a767bf..3787dfa19b 100644 --- a/t/porting/customized.dat +++ b/t/porting/customized.dat @@ -1,3 +1,6 @@ +# Regenerate this file using: +# cd t +# ./perl -I../lib porting/customized.t --regen Devel::PPPort dist/Devel-PPPort/parts/embed.fnc e030719d9c6921810554a8e2d398543348b4878c Digest cpan/Digest/Digest.pm 43f7f544cb11842b2f55c73e28930da50774e081 Locale::Maketext::Simple cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm 57ed38905791a17c150210cd6f42ead22a7707b6 @@ -5,11 +8,11 @@ Math::Complex cpan/Math-Complex/lib/Math/Complex.pm 198ea6c6c584f5ea79a0fd7e9d41 Math::Complex cpan/Math-Complex/t/Complex.t 4f307ed6fc59f1e5fb0e6b11103fc631b6bdb335 Math::Complex cpan/Math-Complex/t/Trig.t 2682526e23a161d54732c2a66393fe4a234d1865 Memoize cpan/Memoize/Memoize.pm 902092ff91cdec9c7b4bd06202eb179e1ce26ca2 +NEXT cpan/NEXT/lib/NEXT.pm 2c83d03ee361816e53ccb931137d314ab878d19f +NEXT cpan/NEXT/t/next.t 66fd60eb0f75b6f3eea95d1dee745f9a7a348146 Net::Ping dist/Net-Ping/t/000_load.t deff5dc2ca54dae28cb19d3631427db127279ac2 Net::Ping dist/Net-Ping/t/001_new.t 90c9d63509b3efc8941449fbd1ca8b807fa42040 Net::Ping dist/Net-Ping/t/500_ping_icmp.t a003daa5eaf215e58234786bb1fbfbebf669bf44 -NEXT cpan/NEXT/lib/NEXT.pm 2c83d03ee361816e53ccb931137d314ab878d19f -NEXT cpan/NEXT/t/next.t 66fd60eb0f75b6f3eea95d1dee745f9a7a348146 Pod::Checker cpan/Pod-Checker/t/pod/contains_bad_pod.xr 73538fd80dfe6e19ad561fe034009b44460208f6 Pod::Checker cpan/Pod-Checker/t/pod/selfcheck.t 8ce3cfd38e4b9bcf5bc7fe7f2a14195e49aed7d8 Pod::Checker cpan/Pod-Checker/t/pod/testcmp.pl a0cd5c8eca775c7753f4464eee96fa916e3d8a16 @@ -22,5 +25,4 @@ perlfaq cpan/perlfaq/lib/perlfaq5.pod bcc1b6af3b6dff3973643acf8d5e741463374123 perlfaq cpan/perlfaq/lib/perlfaq8.pod bffbc0c8fa828aead24e0891a5e789369a8e0743 podlators pod/perlpodstyle.pod c6500c9950b46e8228d4adbc09a3ee2ef23de2d0 version cpan/version/lib/version.pm bee369df1bd84e09107a90d72ec12c38bcb97cce -version vutil.c 7aaa76516123ced7445abe3a015c58007854be85 version vxs.inc 8498104713e5ce189602dda55dca38bee780c297 diff --git a/t/porting/customized.t b/t/porting/customized.t index 5c3739198c..d425e5b775 100644 --- a/t/porting/customized.t +++ b/t/porting/customized.t @@ -74,10 +74,16 @@ my $data_fh; if ( $regen ) { open $data_fh, '>:raw', $customised or die "Can't open $customised"; + print $data_fh <<'#'; +# Regenerate this file using: +# cd t +# ./perl -I../lib porting/customized.t --regen +# } else { open $data_fh, '<:raw', $customised or die "Can't open $customised"; while (<$data_fh>) { + next if /^#/; chomp; my ($module,$file,$sha) = split ' '; $customised{ $module }->{ $file } = $sha; diff --git a/vutil.c b/vutil.c index c033820fa5..34c0b55d57 100644 --- a/vutil.c +++ b/vutil.c @@ -491,10 +491,10 @@ Perl_new_version(pTHX_ SV *ver) ver = SvRV(ver); /* Begin copying all of the elements */ - if ( hv_existss(MUTABLE_HV(ver), "qv") ) + if ( hv_exists(MUTABLE_HV(ver), "qv", 2) ) (void)hv_stores(MUTABLE_HV(hv), "qv", newSViv(1)); - if ( hv_existss(MUTABLE_HV(ver), "alpha") ) + if ( hv_exists(MUTABLE_HV(ver), "alpha", 5) ) (void)hv_stores(MUTABLE_HV(hv), "alpha", newSViv(1)); { SV ** svp = hv_fetchs(MUTABLE_HV(ver), "width", FALSE); @@ -840,7 +840,7 @@ Perl_vnumify(pTHX_ SV *vs) Perl_croak(aTHX_ "Invalid version object"); /* see if various flags exist */ - if ( hv_existss(MUTABLE_HV(vs), "alpha") ) + if ( hv_exists(MUTABLE_HV(vs), "alpha", 5 ) ) alpha = TRUE; if (alpha) { @@ -978,7 +978,7 @@ Perl_vstringify(pTHX_ SV *vs) return &PL_sv_undef; } else { - if ( hv_existss(MUTABLE_HV(vs), "qv") ) + if ( hv_exists(MUTABLE_HV(vs), "qv", 2) ) return VNORMAL(vs); else return VNUMIFY(vs); -- Perl5 Master Repository