Permalink
Browse files

merge with master

  • Loading branch information...
Reini Urban
Reini Urban committed Jan 8, 2012
2 parents ea70429 + 63a630f commit 928655ad79792507dde4b4e9c96db16f209dfd4e
Showing with 82 additions and 166 deletions.
  1. +6 −1 Changes
  2. +18 −12 lib/B/C.pm
  3. +10 −10 log.modules-5.008009d
  4. +13 −13 log.modules-5.008009d-nt
  5. +6 −6 log.modules-5.010001d-nt
  6. +6 −6 log.modules-5.012004
  7. +0 −110 log.modules-5.014000-m
  8. +6 −6 log.modules-5.014002d
  9. +0 −2 t/modules.t
  10. +17 −0 t/release-testing.sh
View
@@ -6,12 +6,17 @@
1.37 2012-01-xx rurban
Save %main:: stashes w/o -fno-stash. Switched to git, added github mirror
Fixed hashes, when mixed compiled and load-time for >5.8.
+ Note that shared HEK's (post-5.10) will come up with duplicate entries
+ for the same keys; one compile-time created and one run-time created with
+ a different random hash seed, which might lead to strange CV proto warnings.
+ E.g. "Prototype mismatch: sub bytes::length (_) vs (_)"
* C: issue79: save stashes also, but only values which are also
stashes to avoid a second walker besides savecv, and thus do not
walk into unneeded territory; B::STASHGV (46, issue 79)
Fixed vulnerability to oCERT-2011-003 style DOS attacks. Do not
- pre-compute hashes, use random hash seed from perl startup.
+ pre-compute hashes for hv_store(), use fresh random hash seed.
+ But shared_hek() has a limited API which does not allow this.
New -fno-stash with -O2 to omit stashes which are rarely needed.
UNIVERSAL methods were not correctly stored, which led to method not
found at run-time errors.
View
@@ -1629,7 +1629,7 @@ sub B::PVLV::save {
}
} else {
if ($shared_hek) { # avoid free of static hek's
- $free->add(" SvFAKE_off($s);");
+ $free->add(" SvFAKE_off(&$s);");
} else {
push @static_free, $s if $len and !$in_endav;
}
@@ -1680,7 +1680,7 @@ sub B::PVIV::save {
}
} else {
if ($shared_hek) { # avoid free of static hek's
- $free->add(" SvFAKE_off($s);");
+ $free->add(" SvFAKE_off(&$s);");
} else {
push @static_free, $s if $len and !$in_endav;
}
@@ -1768,7 +1768,7 @@ sub B::PVNV::save {
}
} else {
if ($shared_hek) { # avoid free of static hek's
- $free->add(" SvFAKE_off($s);");
+ $free->add(" SvFAKE_off(&$s);");
} else {
push @static_free, $s if $len and !$in_endav;
}
@@ -2004,7 +2004,7 @@ sub B::PVMG::save {
$xpvmgsect->index, $sv->REFCNT, $sv->FLAGS, $savesym));
my $s = "sv_list[".$svsect->index."]";
if ($shared_hek) { # avoid free of static hek's
- $free->add(" SvFAKE_off($s);");
+ $free->add(" SvFAKE_off(&$s);");
} else {
push @static_free, $s if $len and $B::C::pv_copy_on_grow and !$in_endav;
}
@@ -2481,9 +2481,15 @@ sub B::CV::save {
$xs = "XS_version_noop";
}
}
- if ($fullname eq 'Internals::hv_clear_placeholders') {
+ elsif ($fullname eq 'Internals::hv_clear_placeholders') {
$xs = 'XS_Internals_hv_clear_placehold';
}
+ elsif ($fullname eq 'Tie::Hash::NamedCapture::FIRSTKEY') {
+ $xs = 'XS_Tie_Hash_NamedCapture_FIRSTK';
+ }
+ elsif ($fullname eq 'Tie::Hash::NamedCapture::NEXTKEY') {
+ $xs = 'XS_Tie_Hash_NamedCapture_NEXTK';
+ }
warn sprintf( "core XSUB $xs CV 0x%x\n", $$cv )
if $debug{cv};
if (!$ENV{DL_NOWARN} and $stashname eq 'DynaLoader' and $] >= 5.015002 and $] < 5.015004) {
@@ -4631,16 +4637,16 @@ sub in_static_core {
# version has an external ::vxs
sub static_core_packages {
my @pkg = qw(Internals utf8 UNIVERSAL);
- # Tie::Hash::NamedCapture is dynamic
- push @pkg, qw(version) if $] >= 5.010; # partially static and dynamic
- push @pkg, qw(DynaLoader) if $Config{usedl};
+ push @pkg, 'version' if $] >= 5.010; # partially static and dynamic
+ push @pkg, 'Tie::Hash::NamedCapture' if $] < 5.014; # dynamic since 5.14
+ push @pkg, 'DynaLoader' if $Config{usedl};
# Win32CORE only in official cygwin pkg. And it needs to be bootstrapped,
# handled by static_ext.
- push @pkg, qw(Cygwin) if $^O eq 'cygwin';
- push @pkg, qw(NetWare) if $^O eq 'NetWare';
- push @pkg, qw(OS2) if $^O eq 'os2';
+ push @pkg, 'Cygwin' if $^O eq 'cygwin';
+ push @pkg, 'NetWare' if $^O eq 'NetWare';
+ push @pkg, 'OS2' if $^O eq 'os2';
push @pkg, qw(VMS VMS::Filespec vmsish) if $^O eq 'VMS';
- #push @pkg, qw(PerlIO) if $] >= 5.008006; # get_layers only
+ #push @pkg, 'PerlIO' if $] >= 5.008006; # get_layers only
return @pkg;
}
View
@@ -1,4 +1,4 @@
-# B::C::VERSION = 1.37 a6ed5a7 2012-01-04 | Do not initialize CONSTSUB XS methods twice
+# B::C::VERSION = 1.37 f172242 2012-01-05 | skip compiling O::
# perlversion = 5.008009d
# path = /usr/local/bin/perl5.8.9d
# platform = linux 64bit threaded debug
@@ -72,7 +72,7 @@ pass Carp::Clan
pass Module::Pluggable
pass if(1) => "Sys::Hostname"
pass Text::Balanced
-skip DBI
+pass DBI
pass Time::Local
skip IO::Scalar
skip Sub::Identify
@@ -85,25 +85,25 @@ pass Encode
pass Variable::Magic
pass CGI
pass B::Hooks::EndOfScope
-skip Test::Pod
+pass Test::Pod
skip Digest::SHA1
pass namespace::clean
skip Class::Inspector
skip Clone
-skip XML::NamespaceSupport
-skip XML::SAX
+pass XML::NamespaceSupport
+pass XML::SAX
pass YAML
fail MooseX::Types #TODO 5.8
pass Class::Singleton
pass DateTime::TimeZone
pass DateTime::Locale
pass DateTime
-skip IO::String
+pass IO::String
skip AppConfig
skip UNIVERSAL::require
skip Template::Stash
-# 83 / 100 modules tested with B-C-1.37 - perl-5.008009d
-# pass 81 / 83 (97.6%)
-# fail 2 / 83 (2.4%)
+# 88 / 100 modules tested with B-C-1.37 - perl-5.008009d
+# pass 86 / 88 (97.7%)
+# fail 2 / 88 (2.3%)
# todo 2 / 2 (100.0%)
-# skip 17 / 100 (17.0% not installed)
+# skip 12 / 100 (12.0% not installed)
View
@@ -1,4 +1,4 @@
-# B::C::VERSION = 1.37 a6ed5a7 2012-01-04 | Do not initialize CONSTSUB XS methods twice
+# B::C::VERSION = 1.37 f172242 2012-01-05 | skip compiling O::
# perlversion = 5.008009d-nt
# path = /usr/local/bin/perl5.8.9d-nt
# platform = linux 64bit non-threaded debug
@@ -34,11 +34,11 @@ pass Digest::MD5
pass Sub::Uplevel
pass URI
pass HTML::Tagset
-skip HTML::Parser
+pass HTML::Parser
pass Test::Exception
pass Net::Cmd
-skip Compress::Raw::Zlib
-skip Compress::Raw::Bzip2
+pass Compress::Raw::Zlib
+pass Compress::Raw::Bzip2
pass IO::Compress::Base
pass LWP
pass Storable
@@ -72,7 +72,7 @@ pass Carp::Clan
pass Module::Pluggable
pass if(1) => "Sys::Hostname"
pass Text::Balanced
-skip DBI
+pass DBI
pass Time::Local
skip IO::Scalar
skip Sub::Identify
@@ -85,25 +85,25 @@ pass Encode
skip Variable::Magic
pass CGI
skip B::Hooks::EndOfScope
-skip Test::Pod
+pass Test::Pod
skip Digest::SHA1
pass namespace::clean
skip Class::Inspector
skip Clone
-skip XML::NamespaceSupport
-skip XML::SAX
+pass XML::NamespaceSupport
+pass XML::SAX
pass YAML
skip MooseX::Types
pass Class::Singleton
pass DateTime::TimeZone
pass DateTime::Locale
pass DateTime
-skip IO::String
+pass IO::String
skip AppConfig
skip UNIVERSAL::require
skip Template::Stash
-# 77 / 100 modules tested with B-C-1.37 - perl-5.008009d-nt
-# pass 76 / 77 (98.7%)
-# fail 1 / 77 (1.3%)
+# 85 / 100 modules tested with B-C-1.37 - perl-5.008009d-nt
+# pass 84 / 85 (98.8%)
+# fail 1 / 85 (1.2%)
# todo 2 / 1 (200.0%)
-# skip 23 / 100 (23.0% not installed)
+# skip 15 / 100 (15.0% not installed)
View
@@ -1,4 +1,4 @@
-# B::C::VERSION = 1.37 a6ed5a7 2012-01-04 | Do not initialize CONSTSUB XS methods twice
+# B::C::VERSION = 1.37 f172242 2012-01-05 | skip compiling O::
# perlversion = 5.010001d-nt
# path = /usr/local/bin/perl5.10.1-nt
# platform = linux 64bit non-threaded debug
@@ -66,7 +66,7 @@ pass Class::Data::Inheritable
pass Try::Tiny
pass Devel::GlobalDestruction #TODO 5.10.x crash
pass Class::MOP
-pass Moose #TODO 5.10.x crash
+fail Moose #TODO 5.10.x crash
pass Test::Deep
pass Carp::Clan
pass Module::Pluggable
@@ -93,7 +93,7 @@ pass Clone
pass XML::NamespaceSupport
pass XML::SAX
pass YAML
-pass MooseX::Types
+fail MooseX::Types
pass Class::Singleton
pass DateTime::TimeZone
pass DateTime::Locale
@@ -103,7 +103,7 @@ skip AppConfig
pass UNIVERSAL::require
skip Template::Stash
# 93 / 100 modules tested with B-C-1.37 - perl-5.010001d-nt
-# pass 93 / 93 (100.0%)
-# fail 0 / 93 (0.0%)
-# todo 3 / 0 ()
+# pass 91 / 93 (97.8%)
+# fail 2 / 93 (2.2%)
+# todo 3 / 2 (150.0%)
# skip 7 / 100 (7.0% not installed)
View
@@ -1,4 +1,4 @@
-# B::C::VERSION = 1.37 a6ed5a7 2012-01-04 | Do not initialize CONSTSUB XS methods twice
+# B::C::VERSION = 1.37 f172242 2012-01-05 | skip compiling O::
# perlversion = 5.012004
# path = /usr/bin/perl5.12.4
# platform = linux 64bit threaded
@@ -66,7 +66,7 @@ pass Class::Data::Inheritable
pass Try::Tiny
pass Devel::GlobalDestruction
pass Class::MOP
-pass Moose
+fail Moose
pass Test::Deep
pass Carp::Clan
pass Module::Pluggable
@@ -93,7 +93,7 @@ pass Clone
pass XML::NamespaceSupport
pass XML::SAX
pass YAML
-pass MooseX::Types
+fail MooseX::Types
pass Class::Singleton
pass DateTime::TimeZone
pass DateTime::Locale
@@ -103,7 +103,7 @@ pass AppConfig
pass UNIVERSAL::require
pass Template::Stash
# 100 / 100 modules tested with B-C-1.37 - perl-5.012004
-# pass 100 / 100 (100.0%)
-# fail 0 / 100 (0.0%)
-# todo 1 / 0 ()
+# pass 98 / 100 (98.0%)
+# fail 2 / 100 (2.0%)
+# todo 1 / 2 (50.0%)
# skip 0 / 100 (0.0% not installed)
View
@@ -1,110 +0,0 @@
-# B::C::VERSION = 1.32 r1000 M
-# perlversion = 5.014000-m
-# path = /usr/local/bin/perl5.14.0-m
-# platform = darwin 64bit
-# multi perl
-pass Exporter
-pass Text::Tabs
-pass Text::Wrap
-pass Test::Harness
-pass Pod::Escapes
-pass Pod::Simple
-pass IO
-pass Scalar::Util
-pass Getopt::Long
-pass Pod::Parser
-pass ExtUtils::MakeMaker #TODO > 5.13
-pass Test::Simple
-pass ExtUtils::Manifest
-pass Pod::Text
-pass constant
-pass Test
-pass Data::Dumper
-pass File::Spec
-pass File::Temp
-pass ExtUtils::Install
-pass Text::ParseWords
-pass ExtUtils::CBuilder
-pass ExtUtils::ParseXS
-pass Module::Build #TODO 5.13 without threads
-pass File::Path
-pass XSLoader
-pass MIME::Base64
-pass Digest
-pass Digest::MD5
-pass Sub::Uplevel
-pass URI
-pass HTML::Tagset
-pass HTML::Parser
-pass Test::Exception
-pass Net::Cmd
-pass Compress::Raw::Zlib
-pass Compress::Raw::Bzip2
-pass IO::Compress::Base
-pass LWP #TODO without threads
-pass Storable
-pass base
-pass List::MoreUtils
-pass Params::Util
-pass Task::Weaken
-pass Class::Accessor
-pass Test::Tester
-pass Sub::Install
-pass Attribute::Handlers #TODO always
-pass Data::OptList
-pass Sub::Exporter
-pass Test::NoWarnings
-pass version
-pass Params::Validate
-pass Sub::Name
-pass Filter::Util::Call
-pass Algorithm::C3
-pass Class::C3
-pass Scope::Guard
-pass MRO::Compat
-pass Time::HiRes
-pass Class::Data::Inheritable
-pass Try::Tiny
-pass Devel::GlobalDestruction
-pass Class::MOP #TODO always
-pass Moose #TODO always
-pass Test::Deep
-pass Carp::Clan
-pass Module::Pluggable
-pass if(1) => "Sys::Hostname"
-pass Text::Balanced
-pass DBI
-pass Time::Local
-pass IO::Scalar
-pass Sub::Identify
-pass Class::ISA
-pass FCGI
-pass Tree::DAG_Node
-pass Path::Class
-pass Test::Warn
-pass Encode
-pass Variable::Magic
-pass CGI
-pass B::Hooks::EndOfScope
-pass Test::Pod
-pass Digest::SHA1
-pass namespace::clean
-pass Class::Inspector
-pass Clone
-pass XML::NamespaceSupport
-pass XML::SAX
-pass YAML
-pass MooseX::Types #TODO always
-pass Class::Singleton
-pass DateTime::TimeZone
-pass DateTime::Locale
-pass DateTime
-pass IO::String
-pass AppConfig
-pass UNIVERSAL::require
-pass Template::Stash
-# 100 / 100 modules tested with B-C-1.32 - perl-5.014000-m
-# pass 100 / 100 (100.0%)
-# fail 0 / 100 (0.0%)
-# todo 7 / 0 ()
-# skip 0 / 100 (0.0% not installed)
Oops, something went wrong.

0 comments on commit 928655a

Please sign in to comment.