Introduce Perl 5.12.1

Acknowledgements:	kuriyama
This commit is contained in:
Sergey Skvortsov 2010-07-15 14:48:51 +00:00
parent fac7f3b3c8
commit c82c63a794
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=257819
33 changed files with 3147 additions and 2399 deletions

View file

@ -99,7 +99,9 @@ PERL_LEVEL= 0
PERL_ARCH?= mach PERL_ARCH?= mach
.if ${PERL_LEVEL} >= 501000 .if ${PERL_LEVEL} >= 501200
PERL_PORT?= perl5.12
.elif ${PERL_LEVEL} >= 501000
PERL_PORT?= perl5.10 PERL_PORT?= perl5.10
.else # ${PERL_LEVEL} < 501000 .else # ${PERL_LEVEL} < 501000
PERL_PORT?= perl5.8 PERL_PORT?= perl5.8
@ -149,7 +151,7 @@ masked_PERL_LEVEL= ${PERL_LEVEL}
.if ${want_perl_sign} == "+" .if ${want_perl_sign} == "+"
.if ${USE_PERL5_LEVEL} > ${masked_PERL_LEVEL} .if ${USE_PERL5_LEVEL} > ${masked_PERL_LEVEL}
USE_PERL5_REASON?= requires Perl ${want_perl_ver} or later, install lang/perl5.8 or lang/perl5.10 and try again USE_PERL5_REASON?= requires Perl ${want_perl_ver} or later, install lang/perl5.8 or lang/perl5.10 or lang/perl5.12 and try again
IGNORE= ${USE_PERL5_REASON} IGNORE= ${USE_PERL5_REASON}
.endif # ${USE_PERL5_LEVEL} > ${masked_PERL_LEVEL} .endif # ${USE_PERL5_LEVEL} > ${masked_PERL_LEVEL}
.elif ${want_perl_sign} == "" .elif ${want_perl_sign} == ""

View file

@ -1474,7 +1474,9 @@ PERL_LEVEL=0
PERL_ARCH?= mach PERL_ARCH?= mach
.if ${PERL_LEVEL} >= 501000 .if ${PERL_LEVEL} >= 501200
PERL_PORT?= perl5.12
.elif ${PERL_LEVEL} >= 501000
PERL_PORT?= perl5.10 PERL_PORT?= perl5.10
.else .else
PERL_PORT?= perl5.8 PERL_PORT?= perl5.8

View file

@ -5,6 +5,30 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades. you update your ports collection, before attempting any port upgrades.
20100715:
AFFECTS: users of lang/perl*
AUTHOR: skv@FreeBSD.org
lang/perl5.12 is out. If you want to switch to it from, for example
lang/perl5.10, that is:
Portupgrade users:
0) Fix pkgdb.db (for safety):
pkgdb -Ff
1) Reinstall new version of Perl (5.12):
env DISABLE_CONFLICTS=1 portupgrade -o lang/perl5.12 -f perl-5.10.\*
2) Reinstall everything that depends on Perl:
portupgrade -fr perl
Portmaster users:
env DISABLE_CONFLICTS=1 portmaster -o lang/perl5.12 lang/perl5.10
portmaster -r perl-
Note: If the "perl-" glob matches more than one port you will need to
specify the name of the Perl directory in /var/db/pkg explicitly.
20100626: 20100626:
AFFECTS: users of japanese/ibus-mozc AFFECTS: users of japanese/ibus-mozc
AUTHOR: daichi@FreeBSD.org AUTHOR: daichi@FreeBSD.org

View file

@ -244,6 +244,7 @@
SUBDIR += pcc SUBDIR += pcc
SUBDIR += pecl-perl SUBDIR += pecl-perl
SUBDIR += perl5.10 SUBDIR += perl5.10
SUBDIR += perl5.12
SUBDIR += perl5.8 SUBDIR += perl5.8
SUBDIR += petite-chez SUBDIR += petite-chez
SUBDIR += pfe-devel SUBDIR += pfe-devel

View file

@ -21,7 +21,8 @@ DIST_SUBDIR= perl
MAINTAINER= skv@FreeBSD.org MAINTAINER= skv@FreeBSD.org
COMMENT= Practical Extraction and Report Language COMMENT= Practical Extraction and Report Language
CONFLICTS= perl-5.6.* perl-5.8.* perl-threaded-5.8.* CONFLICTS= perl-5.6.* perl-5.8.* perl-threaded-5.8.* \
perl-5.12.* perl-threaded-5.12.*
MAKE_JOBS_UNSAFE= yes MAKE_JOBS_UNSAFE= yes
OPTIONS= DEBUGGING "Build with debugging support" off \ OPTIONS= DEBUGGING "Build with debugging support" off \

View file

@ -7,7 +7,6 @@
PORTNAME= perl PORTNAME= perl
PORTVERSION= ${PERL_VERSION} PORTVERSION= ${PERL_VERSION}
PORTREVISION= 2
CATEGORIES= lang devel perl5 CATEGORIES= lang devel perl5
MASTER_SITES= CPAN \ MASTER_SITES= CPAN \
${MASTER_SITE_LOCAL:S/$/:local/} \ ${MASTER_SITE_LOCAL:S/$/:local/} \
@ -21,8 +20,8 @@ DIST_SUBDIR= perl
MAINTAINER= skv@FreeBSD.org MAINTAINER= skv@FreeBSD.org
COMMENT= Practical Extraction and Report Language COMMENT= Practical Extraction and Report Language
CONFLICTS= perl-5.6.* perl-5.8.* perl-threaded-5.8.* CONFLICTS= perl-5.6.* perl-5.8.* perl-threaded-5.8.* \
MAKE_JOBS_UNSAFE= yes perl-5.10.* perl-threaded-5.10.*
OPTIONS= DEBUGGING "Build with debugging support" off \ OPTIONS= DEBUGGING "Build with debugging support" off \
GDBM "Build GDBM_File extension" off \ GDBM "Build GDBM_File extension" off \
@ -36,7 +35,7 @@ OPTIONS= DEBUGGING "Build with debugging support" off \
PORTSCOUT= limitw:1,even PORTSCOUT= limitw:1,even
PERL_VERSION= 5.10.1 PERL_VERSION= 5.12.1
PERL_ARCH= mach PERL_ARCH= mach
SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION} SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION}
SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL} SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL}
@ -148,7 +147,7 @@ LINK_USRBIN= yes
LINK_USRBIN= no LINK_USRBIN= no
.endif .endif
LATEST_LINK= perl NO_LATEST_LINK= yes
.if defined(WITH_GDBM) .if defined(WITH_GDBM)
MAN3+= GDBM_File.3 MAN3+= GDBM_File.3
@ -213,7 +212,7 @@ post-install:
PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
test: build test: build
@(cd ${WRKSRC}; make test) @(cd ${WRKSRC}; TEST_JOBS=${MAKE_JOBS_NUMBER} make test_harness)
regression-test: test regression-test: test

View file

@ -20,6 +20,14 @@ MAN1+= perl5004delta.1
MAN1+= perl5005delta.1 MAN1+= perl5005delta.1
MAN1+= perl5100delta.1 MAN1+= perl5100delta.1
MAN1+= perl5101delta.1 MAN1+= perl5101delta.1
MAN1+= perl5110delta.1
MAN1+= perl5111delta.1
MAN1+= perl5112delta.1
MAN1+= perl5113delta.1
MAN1+= perl5114delta.1
MAN1+= perl5115delta.1
MAN1+= perl5120delta.1
MAN1+= perl5121delta.1
MAN1+= perl561delta.1 MAN1+= perl561delta.1
MAN1+= perl56delta.1 MAN1+= perl56delta.1
MAN1+= perl570delta.1 MAN1+= perl570delta.1
@ -111,10 +119,8 @@ MAN1+= perllexwarn.1
MAN1+= perllinux.1 MAN1+= perllinux.1
MAN1+= perllocale.1 MAN1+= perllocale.1
MAN1+= perllol.1 MAN1+= perllol.1
MAN1+= perlmachten.1
MAN1+= perlmacos.1 MAN1+= perlmacos.1
MAN1+= perlmacosx.1 MAN1+= perlmacosx.1
MAN1+= perlmint.1
MAN1+= perlmod.1 MAN1+= perlmod.1
MAN1+= perlmodinstall.1 MAN1+= perlmodinstall.1
MAN1+= perlmodlib.1 MAN1+= perlmodlib.1
@ -131,12 +137,12 @@ MAN1+= perlopentut.1
MAN1+= perlos2.1 MAN1+= perlos2.1
MAN1+= perlos390.1 MAN1+= perlos390.1
MAN1+= perlos400.1 MAN1+= perlos400.1
MAN1+= perlothrtut.1
MAN1+= perlpacktut.1 MAN1+= perlpacktut.1
MAN1+= perlperf.1 MAN1+= perlperf.1
MAN1+= perlplan9.1 MAN1+= perlplan9.1
MAN1+= perlpod.1 MAN1+= perlpod.1
MAN1+= perlpodspec.1 MAN1+= perlpodspec.1
MAN1+= perlpolicy.1
MAN1+= perlport.1 MAN1+= perlport.1
MAN1+= perlpragma.1 MAN1+= perlpragma.1
MAN1+= perlqnx.1 MAN1+= perlqnx.1
@ -172,6 +178,7 @@ MAN1+= perltw.1
MAN1+= perlunicode.1 MAN1+= perlunicode.1
MAN1+= perlunifaq.1 MAN1+= perlunifaq.1
MAN1+= perluniintro.1 MAN1+= perluniintro.1
MAN1+= perluniprops.1
MAN1+= perlunitut.1 MAN1+= perlunitut.1
MAN1+= perlutil.1 MAN1+= perlutil.1
MAN1+= perluts.1 MAN1+= perluts.1
@ -202,6 +209,7 @@ MAN1+= splain.1
MAN1+= xsubpp.1 MAN1+= xsubpp.1
MAN3+= AnyDBM_File.3 MAN3+= AnyDBM_File.3
MAN3+= App::Cpan.3
MAN3+= App::Prove.3 MAN3+= App::Prove.3
MAN3+= App::Prove::State.3 MAN3+= App::Prove::State.3
MAN3+= App::Prove::State::Result.3 MAN3+= App::Prove::State::Result.3
@ -281,7 +289,6 @@ MAN3+= CPANPLUS::Shell::Default::Plugins::HOWTO.3
MAN3+= CPANPLUS::Shell::Default::Plugins::Remote.3 MAN3+= CPANPLUS::Shell::Default::Plugins::Remote.3
MAN3+= CPANPLUS::Shell::Default::Plugins::Source.3 MAN3+= CPANPLUS::Shell::Default::Plugins::Source.3
MAN3+= Carp.3 MAN3+= Carp.3
MAN3+= Carp::Heavy.3
MAN3+= Class::ISA.3 MAN3+= Class::ISA.3
MAN3+= Class::Struct.3 MAN3+= Class::Struct.3
MAN3+= Compress::Raw::Bzip2.3 MAN3+= Compress::Raw::Bzip2.3
@ -491,6 +498,7 @@ MAN3+= Module::Build.3
MAN3+= Module::Build::API.3 MAN3+= Module::Build::API.3
MAN3+= Module::Build::Authoring.3 MAN3+= Module::Build::Authoring.3
MAN3+= Module::Build::Base.3 MAN3+= Module::Build::Base.3
MAN3+= Module::Build::Bundling.3
MAN3+= Module::Build::Compat.3 MAN3+= Module::Build::Compat.3
MAN3+= Module::Build::ConfigData.3 MAN3+= Module::Build::ConfigData.3
MAN3+= Module::Build::Cookbook.3 MAN3+= Module::Build::Cookbook.3
@ -511,7 +519,6 @@ MAN3+= Module::Build::Platform::aix.3
MAN3+= Module::Build::Platform::cygwin.3 MAN3+= Module::Build::Platform::cygwin.3
MAN3+= Module::Build::Platform::darwin.3 MAN3+= Module::Build::Platform::darwin.3
MAN3+= Module::Build::Platform::os2.3 MAN3+= Module::Build::Platform::os2.3
MAN3+= Module::Build::YAML.3
MAN3+= Module::CoreList.3 MAN3+= Module::CoreList.3
MAN3+= Module::Load.3 MAN3+= Module::Load.3
MAN3+= Module::Load::Conditional.3 MAN3+= Module::Load::Conditional.3
@ -557,6 +564,9 @@ MAN3+= Pod::Man.3
MAN3+= Pod::ParseLink.3 MAN3+= Pod::ParseLink.3
MAN3+= Pod::ParseUtils.3 MAN3+= Pod::ParseUtils.3
MAN3+= Pod::Parser.3 MAN3+= Pod::Parser.3
MAN3+= Pod::Perldoc.3
MAN3+= Pod::Perldoc::BaseTo.3
MAN3+= Pod::Perldoc::GetOptsOO.3
MAN3+= Pod::Perldoc::ToChecker.3 MAN3+= Pod::Perldoc::ToChecker.3
MAN3+= Pod::Perldoc::ToMan.3 MAN3+= Pod::Perldoc::ToMan.3
MAN3+= Pod::Perldoc::ToNroff.3 MAN3+= Pod::Perldoc::ToNroff.3
@ -694,10 +704,10 @@ MAN3+= Unicode::UCD.3
MAN3+= User::grent.3 MAN3+= User::grent.3
MAN3+= User::pwent.3 MAN3+= User::pwent.3
MAN3+= XS::APItest.3 MAN3+= XS::APItest.3
MAN3+= XS::APItest::KeywordRPN.3
MAN3+= XS::Typemap.3 MAN3+= XS::Typemap.3
MAN3+= XSLoader.3 MAN3+= XSLoader.3
MAN3+= attributes.3 MAN3+= attributes.3
MAN3+= attrs.3
MAN3+= autodie.3 MAN3+= autodie.3
MAN3+= autodie::exception.3 MAN3+= autodie::exception.3
MAN3+= autodie::exception::system.3 MAN3+= autodie::exception::system.3
@ -711,6 +721,7 @@ MAN3+= blib.3
MAN3+= bytes.3 MAN3+= bytes.3
MAN3+= charnames.3 MAN3+= charnames.3
MAN3+= constant.3 MAN3+= constant.3
MAN3+= deprecate.3
MAN3+= diagnostics.3 MAN3+= diagnostics.3
MAN3+= encoding.3 MAN3+= encoding.3
MAN3+= encoding::warnings.3 MAN3+= encoding::warnings.3
@ -718,6 +729,7 @@ MAN3+= feature.3
MAN3+= fields.3 MAN3+= fields.3
MAN3+= filetest.3 MAN3+= filetest.3
MAN3+= if.3 MAN3+= if.3
MAN3+= inc::latest.3
MAN3+= integer.3 MAN3+= integer.3
MAN3+= less.3 MAN3+= less.3
MAN3+= lib.3 MAN3+= lib.3
@ -742,4 +754,3 @@ MAN3+= version::Internals.3
MAN3+= vmsish.3 MAN3+= vmsish.3
MAN3+= warnings.3 MAN3+= warnings.3
MAN3+= warnings::register.3 MAN3+= warnings::register.3

View file

@ -1,6 +1,6 @@
MD5 (perl/perl-5.10.1.tar.bz2) = 82400c6d34f7b7b43d0196c76cd2bbb1 MD5 (perl/perl-5.12.1.tar.bz2) = f7f2d7f5aaac15a75028381b159a560f
SHA256 (perl/perl-5.10.1.tar.bz2) = 9385f2c8c2ca8b1dc4a7c31903f1f8dc8f2ba867dc2a9e5c93012ed6b564e826 SHA256 (perl/perl-5.12.1.tar.bz2) = e9189f09447b2b90a1d186b418f91e583eba41eec238e8f5b8730f71d5fc1ec5
SIZE (perl/perl-5.10.1.tar.bz2) = 11608061 SIZE (perl/perl-5.12.1.tar.bz2) = 12296076
MD5 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 2dcad380d91c60aaa4ac6db29d997712 MD5 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 2dcad380d91c60aaa4ac6db29d997712
SHA256 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = f700acc5ca29c6ef94460d23acffde77834e883cdb7cd043dbdb7c7d709a9392 SHA256 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = f700acc5ca29c6ef94460d23acffde77834e883cdb7cd043dbdb7c7d709a9392
SIZE (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 8430 SIZE (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 8430

View file

@ -1,5 +1,5 @@
--- lib/ExtUtils/t/INST_PREFIX.t.orig Wed Feb 15 12:46:31 2006 --- cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t.orig Wed Feb 15 12:46:31 2006
+++ lib/ExtUtils/t/INST_PREFIX.t Wed Feb 15 12:46:52 2006 +++ cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t Wed Feb 15 12:46:52 2006
@@ -16,7 +16,7 @@ BEGIN { @@ -16,7 +16,7 @@ BEGIN {
} }

View file

@ -1,5 +1,5 @@
--- lib/ExtUtils/MM_Any.pm.orig Wed Feb 15 12:20:43 2006 --- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm.orig Wed Feb 15 12:20:43 2006
+++ lib/ExtUtils/MM_Any.pm Wed Feb 15 12:22:29 2006 +++ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm Wed Feb 15 12:22:29 2006
@@ -1069,13 +1069,14 @@ sub init_INSTALL_from_PREFIX { @@ -1069,13 +1069,14 @@ sub init_INSTALL_from_PREFIX {
('$(PREFIX)') x 3; ('$(PREFIX)') x 3;
} }

View file

@ -1,95 +0,0 @@
# http://rt.perl.org/rt3//Public/Bug/Display.html?id=69973
# http://perl5.git.perl.org/perl.git/commitdiff_plain/0abd0d78a73da1c4d13b1c700526b7e5d03b32d4?hp=fe88edf0c4ada4230b84bdb5417029b8f766694a
diff --git a/ext/re/t/regop.t b/ext/re/t/regop.t
index 9118bf6..46e6ec0 100644
--- ext/re/t/regop.t
+++ ext/re/t/regop.t
@@ -231,12 +231,12 @@ anchored "ABC" at 0
#Freeing REx: "(\\.COM|\\.EXE|\\.BAT|\\.CMD|\\.VBS|\\.VBE|\\.JS|\\.JSE|\\."......
%MATCHED%
floating ""$ at 3..4 (checking floating)
-1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
-stclass EXACTF <.> minlen 3
-Found floating substr ""$ at offset 30...
-Does not contradict STCLASS...
-Guessed: match at offset 26
-Matching stclass EXACTF <.> against ".exe"
+#1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
+#stclass EXACTF <.> minlen 3
+#Found floating substr ""$ at offset 30...
+#Does not contradict STCLASS...
+#Guessed: match at offset 26
+#Matching stclass EXACTF <.> against ".exe"
---
#Compiling REx "[q]"
#size 12 nodes Got 100 bytes for offset annotations.
diff --git a/regcomp.c b/regcomp.c
index 6e9fa26..eb5f12f 100644
--- regcomp.c
+++ regcomp.c
@@ -2833,13 +2833,18 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
}
} else {
/*
- Currently we assume that the trie can handle unicode and ascii
- matches fold cased matches. If this proves true then the following
- define will prevent tries in this situation.
-
- #define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
-*/
+ Currently we do not believe that the trie logic can
+ handle case insensitive matching properly when the
+ pattern is not unicode (thus forcing unicode semantics).
+
+ If/when this is fixed the following define can be swapped
+ in below to fully enable trie logic.
+
#define TRIE_TYPE_IS_SAFE 1
+
+*/
+#define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
+
if ( last && TRIE_TYPE_IS_SAFE ) {
make_trie( pRExC_state,
startbranch, first, cur, tail, count,
diff --git a/regexec.c b/regexec.c
index 402ede3..ec09c28 100644
--- regexec.c
+++ regexec.c
@@ -1105,16 +1105,15 @@ Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, char *strpos,
#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len, \
uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
- UV uvc_unfolded = 0; \
switch (trie_type) { \
case trie_utf8_fold: \
if ( foldlen>0 ) { \
- uvc_unfolded = uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
+ uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
foldlen -= len; \
uscan += len; \
len=0; \
} else { \
- uvc_unfolded = uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
+ uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
uvc = to_uni_fold( uvc, foldbuf, &foldlen ); \
foldlen -= UNISKIP( uvc ); \
uscan = foldbuf + UNISKIP( uvc ); \
@@ -1140,7 +1139,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
uvc = (UV)*uc; \
len = 1; \
} \
- \
if (uvc < 256) { \
charid = trie->charmap[ uvc ]; \
} \
@@ -1153,9 +1151,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
charid = (U16)SvIV(*svpp); \
} \
} \
- if (!charid && trie_type == trie_utf8_fold && !UTF) { \
- charid = trie->charmap[uvc_unfolded]; \
- } \
} STMT_END
#define REXEC_FBC_EXACTISH_CHECK(CoNd) \

View file

@ -1,46 +0,0 @@
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=71952
# http://perl5.git.perl.org/perl.git/commitdiff_plain/1f15e670edb515b744e9021b4a42a7955da83093?hp=1f730e6c11736bad913e605b064200a67117e898
diff --git a/sv.c b/sv.c
index 4e80e18..a3eb187 100644
--- sv.c
+++ sv.c
@@ -5664,7 +5664,8 @@ Perl_sv_clear(pTHX_ register SV *const sv)
&& !CvCONST(destructor)
/* Don't bother calling an empty destructor */
&& (CvISXSUB(destructor)
- || CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))
+ || (CvSTART(destructor)
+ && (CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))))
{
SV* const tmpref = newRV(sv);
SvREADONLY_on(tmpref); /* DESTROY() could be naughty */
diff --git a/t/op/method.t b/t/op/method.t
index afa8cfb..b602ca2 100644
--- t/op/method.t
+++ t/op/method.t
@@ -10,7 +10,7 @@ BEGIN {
require "test.pl";
}
-print "1..78\n";
+print "1..79\n";
@A::ISA = 'B';
@B::ISA = 'C';
@@ -292,3 +292,16 @@ EOT
"check if UNIVERSAL::AUTOLOAD works",
);
}
+
+# Test for #71952: crash when looking for a nonexistent destructor
+# Regression introduced by fbb3ee5af3d4
+{
+ fresh_perl_is(<<'EOT',
+sub M::DESTROY; bless {}, "M" ; print "survived\n";
+EOT
+ "survived",
+ {},
+ "no crash with a declared but missing DESTROY method"
+ );
+}
+

View file

@ -1,61 +0,0 @@
--- perl.c
+++ perl.c
#else /* IAMSUID */
@@ -4882,6 +4882,28 @@
incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE);
#endif
+#ifdef SITEARCH_EXP
+ /* sitearch is always relative to sitelib on Windows for
+ * DLL-based path intuition to work correctly */
+# if !defined(WIN32)
+ incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE);
+# endif
+#endif
+
+#ifdef SITELIB_EXP
+# if defined(WIN32)
+ /* this picks up sitearch as well */
+ incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
+# else
+ incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
+# endif
+#endif
+
+#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
+ /* Search for version-specific dirs below here */
+ incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
+#endif
+
#ifdef ARCHLIB_EXP
incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
#endif
@@ -4915,28 +4937,6 @@
incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE);
#endif
-#ifdef SITEARCH_EXP
- /* sitearch is always relative to sitelib on Windows for
- * DLL-based path intuition to work correctly */
-# if !defined(WIN32)
- incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE);
-# endif
-#endif
-
-#ifdef SITELIB_EXP
-# if defined(WIN32)
- /* this picks up sitearch as well */
- incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
-# else
- incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
-# endif
-#endif
-
-#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
- /* Search for version-specific dirs below here */
- incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
-#endif
-
#ifdef PERL_VENDORARCH_EXP
/* vendorarch is always relative to vendorlib on Windows for
* DLL-based path intuition to work correctly */

File diff suppressed because it is too large Load diff

View file

@ -7,7 +7,6 @@
PORTNAME= perl PORTNAME= perl
PORTVERSION= ${PERL_VERSION} PORTVERSION= ${PERL_VERSION}
PORTREVISION= 2
CATEGORIES= lang devel perl5 CATEGORIES= lang devel perl5
MASTER_SITES= CPAN \ MASTER_SITES= CPAN \
${MASTER_SITE_LOCAL:S/$/:local/} \ ${MASTER_SITE_LOCAL:S/$/:local/} \
@ -21,8 +20,8 @@ DIST_SUBDIR= perl
MAINTAINER= skv@FreeBSD.org MAINTAINER= skv@FreeBSD.org
COMMENT= Practical Extraction and Report Language COMMENT= Practical Extraction and Report Language
CONFLICTS= perl-5.6.* perl-5.8.* perl-threaded-5.8.* CONFLICTS= perl-5.6.* perl-5.8.* perl-threaded-5.8.* \
MAKE_JOBS_UNSAFE= yes perl-5.10.* perl-threaded-5.10.*
OPTIONS= DEBUGGING "Build with debugging support" off \ OPTIONS= DEBUGGING "Build with debugging support" off \
GDBM "Build GDBM_File extension" off \ GDBM "Build GDBM_File extension" off \
@ -36,7 +35,7 @@ OPTIONS= DEBUGGING "Build with debugging support" off \
PORTSCOUT= limitw:1,even PORTSCOUT= limitw:1,even
PERL_VERSION= 5.10.1 PERL_VERSION= 5.12.1
PERL_ARCH= mach PERL_ARCH= mach
SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION} SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION}
SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL} SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL}
@ -148,7 +147,7 @@ LINK_USRBIN= yes
LINK_USRBIN= no LINK_USRBIN= no
.endif .endif
LATEST_LINK= perl NO_LATEST_LINK= yes
.if defined(WITH_GDBM) .if defined(WITH_GDBM)
MAN3+= GDBM_File.3 MAN3+= GDBM_File.3
@ -213,7 +212,7 @@ post-install:
PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
test: build test: build
@(cd ${WRKSRC}; make test) @(cd ${WRKSRC}; TEST_JOBS=${MAKE_JOBS_NUMBER} make test_harness)
regression-test: test regression-test: test

View file

@ -20,6 +20,14 @@ MAN1+= perl5004delta.1
MAN1+= perl5005delta.1 MAN1+= perl5005delta.1
MAN1+= perl5100delta.1 MAN1+= perl5100delta.1
MAN1+= perl5101delta.1 MAN1+= perl5101delta.1
MAN1+= perl5110delta.1
MAN1+= perl5111delta.1
MAN1+= perl5112delta.1
MAN1+= perl5113delta.1
MAN1+= perl5114delta.1
MAN1+= perl5115delta.1
MAN1+= perl5120delta.1
MAN1+= perl5121delta.1
MAN1+= perl561delta.1 MAN1+= perl561delta.1
MAN1+= perl56delta.1 MAN1+= perl56delta.1
MAN1+= perl570delta.1 MAN1+= perl570delta.1
@ -111,10 +119,8 @@ MAN1+= perllexwarn.1
MAN1+= perllinux.1 MAN1+= perllinux.1
MAN1+= perllocale.1 MAN1+= perllocale.1
MAN1+= perllol.1 MAN1+= perllol.1
MAN1+= perlmachten.1
MAN1+= perlmacos.1 MAN1+= perlmacos.1
MAN1+= perlmacosx.1 MAN1+= perlmacosx.1
MAN1+= perlmint.1
MAN1+= perlmod.1 MAN1+= perlmod.1
MAN1+= perlmodinstall.1 MAN1+= perlmodinstall.1
MAN1+= perlmodlib.1 MAN1+= perlmodlib.1
@ -131,12 +137,12 @@ MAN1+= perlopentut.1
MAN1+= perlos2.1 MAN1+= perlos2.1
MAN1+= perlos390.1 MAN1+= perlos390.1
MAN1+= perlos400.1 MAN1+= perlos400.1
MAN1+= perlothrtut.1
MAN1+= perlpacktut.1 MAN1+= perlpacktut.1
MAN1+= perlperf.1 MAN1+= perlperf.1
MAN1+= perlplan9.1 MAN1+= perlplan9.1
MAN1+= perlpod.1 MAN1+= perlpod.1
MAN1+= perlpodspec.1 MAN1+= perlpodspec.1
MAN1+= perlpolicy.1
MAN1+= perlport.1 MAN1+= perlport.1
MAN1+= perlpragma.1 MAN1+= perlpragma.1
MAN1+= perlqnx.1 MAN1+= perlqnx.1
@ -172,6 +178,7 @@ MAN1+= perltw.1
MAN1+= perlunicode.1 MAN1+= perlunicode.1
MAN1+= perlunifaq.1 MAN1+= perlunifaq.1
MAN1+= perluniintro.1 MAN1+= perluniintro.1
MAN1+= perluniprops.1
MAN1+= perlunitut.1 MAN1+= perlunitut.1
MAN1+= perlutil.1 MAN1+= perlutil.1
MAN1+= perluts.1 MAN1+= perluts.1
@ -202,6 +209,7 @@ MAN1+= splain.1
MAN1+= xsubpp.1 MAN1+= xsubpp.1
MAN3+= AnyDBM_File.3 MAN3+= AnyDBM_File.3
MAN3+= App::Cpan.3
MAN3+= App::Prove.3 MAN3+= App::Prove.3
MAN3+= App::Prove::State.3 MAN3+= App::Prove::State.3
MAN3+= App::Prove::State::Result.3 MAN3+= App::Prove::State::Result.3
@ -281,7 +289,6 @@ MAN3+= CPANPLUS::Shell::Default::Plugins::HOWTO.3
MAN3+= CPANPLUS::Shell::Default::Plugins::Remote.3 MAN3+= CPANPLUS::Shell::Default::Plugins::Remote.3
MAN3+= CPANPLUS::Shell::Default::Plugins::Source.3 MAN3+= CPANPLUS::Shell::Default::Plugins::Source.3
MAN3+= Carp.3 MAN3+= Carp.3
MAN3+= Carp::Heavy.3
MAN3+= Class::ISA.3 MAN3+= Class::ISA.3
MAN3+= Class::Struct.3 MAN3+= Class::Struct.3
MAN3+= Compress::Raw::Bzip2.3 MAN3+= Compress::Raw::Bzip2.3
@ -491,6 +498,7 @@ MAN3+= Module::Build.3
MAN3+= Module::Build::API.3 MAN3+= Module::Build::API.3
MAN3+= Module::Build::Authoring.3 MAN3+= Module::Build::Authoring.3
MAN3+= Module::Build::Base.3 MAN3+= Module::Build::Base.3
MAN3+= Module::Build::Bundling.3
MAN3+= Module::Build::Compat.3 MAN3+= Module::Build::Compat.3
MAN3+= Module::Build::ConfigData.3 MAN3+= Module::Build::ConfigData.3
MAN3+= Module::Build::Cookbook.3 MAN3+= Module::Build::Cookbook.3
@ -511,7 +519,6 @@ MAN3+= Module::Build::Platform::aix.3
MAN3+= Module::Build::Platform::cygwin.3 MAN3+= Module::Build::Platform::cygwin.3
MAN3+= Module::Build::Platform::darwin.3 MAN3+= Module::Build::Platform::darwin.3
MAN3+= Module::Build::Platform::os2.3 MAN3+= Module::Build::Platform::os2.3
MAN3+= Module::Build::YAML.3
MAN3+= Module::CoreList.3 MAN3+= Module::CoreList.3
MAN3+= Module::Load.3 MAN3+= Module::Load.3
MAN3+= Module::Load::Conditional.3 MAN3+= Module::Load::Conditional.3
@ -557,6 +564,9 @@ MAN3+= Pod::Man.3
MAN3+= Pod::ParseLink.3 MAN3+= Pod::ParseLink.3
MAN3+= Pod::ParseUtils.3 MAN3+= Pod::ParseUtils.3
MAN3+= Pod::Parser.3 MAN3+= Pod::Parser.3
MAN3+= Pod::Perldoc.3
MAN3+= Pod::Perldoc::BaseTo.3
MAN3+= Pod::Perldoc::GetOptsOO.3
MAN3+= Pod::Perldoc::ToChecker.3 MAN3+= Pod::Perldoc::ToChecker.3
MAN3+= Pod::Perldoc::ToMan.3 MAN3+= Pod::Perldoc::ToMan.3
MAN3+= Pod::Perldoc::ToNroff.3 MAN3+= Pod::Perldoc::ToNroff.3
@ -694,10 +704,10 @@ MAN3+= Unicode::UCD.3
MAN3+= User::grent.3 MAN3+= User::grent.3
MAN3+= User::pwent.3 MAN3+= User::pwent.3
MAN3+= XS::APItest.3 MAN3+= XS::APItest.3
MAN3+= XS::APItest::KeywordRPN.3
MAN3+= XS::Typemap.3 MAN3+= XS::Typemap.3
MAN3+= XSLoader.3 MAN3+= XSLoader.3
MAN3+= attributes.3 MAN3+= attributes.3
MAN3+= attrs.3
MAN3+= autodie.3 MAN3+= autodie.3
MAN3+= autodie::exception.3 MAN3+= autodie::exception.3
MAN3+= autodie::exception::system.3 MAN3+= autodie::exception::system.3
@ -711,6 +721,7 @@ MAN3+= blib.3
MAN3+= bytes.3 MAN3+= bytes.3
MAN3+= charnames.3 MAN3+= charnames.3
MAN3+= constant.3 MAN3+= constant.3
MAN3+= deprecate.3
MAN3+= diagnostics.3 MAN3+= diagnostics.3
MAN3+= encoding.3 MAN3+= encoding.3
MAN3+= encoding::warnings.3 MAN3+= encoding::warnings.3
@ -718,6 +729,7 @@ MAN3+= feature.3
MAN3+= fields.3 MAN3+= fields.3
MAN3+= filetest.3 MAN3+= filetest.3
MAN3+= if.3 MAN3+= if.3
MAN3+= inc::latest.3
MAN3+= integer.3 MAN3+= integer.3
MAN3+= less.3 MAN3+= less.3
MAN3+= lib.3 MAN3+= lib.3
@ -742,4 +754,3 @@ MAN3+= version::Internals.3
MAN3+= vmsish.3 MAN3+= vmsish.3
MAN3+= warnings.3 MAN3+= warnings.3
MAN3+= warnings::register.3 MAN3+= warnings::register.3

View file

@ -1,6 +1,6 @@
MD5 (perl/perl-5.10.1.tar.bz2) = 82400c6d34f7b7b43d0196c76cd2bbb1 MD5 (perl/perl-5.12.1.tar.bz2) = f7f2d7f5aaac15a75028381b159a560f
SHA256 (perl/perl-5.10.1.tar.bz2) = 9385f2c8c2ca8b1dc4a7c31903f1f8dc8f2ba867dc2a9e5c93012ed6b564e826 SHA256 (perl/perl-5.12.1.tar.bz2) = e9189f09447b2b90a1d186b418f91e583eba41eec238e8f5b8730f71d5fc1ec5
SIZE (perl/perl-5.10.1.tar.bz2) = 11608061 SIZE (perl/perl-5.12.1.tar.bz2) = 12296076
MD5 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 2dcad380d91c60aaa4ac6db29d997712 MD5 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 2dcad380d91c60aaa4ac6db29d997712
SHA256 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = f700acc5ca29c6ef94460d23acffde77834e883cdb7cd043dbdb7c7d709a9392 SHA256 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = f700acc5ca29c6ef94460d23acffde77834e883cdb7cd043dbdb7c7d709a9392
SIZE (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 8430 SIZE (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 8430

View file

@ -1,5 +1,5 @@
--- lib/ExtUtils/t/INST_PREFIX.t.orig Wed Feb 15 12:46:31 2006 --- cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t.orig Wed Feb 15 12:46:31 2006
+++ lib/ExtUtils/t/INST_PREFIX.t Wed Feb 15 12:46:52 2006 +++ cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t Wed Feb 15 12:46:52 2006
@@ -16,7 +16,7 @@ BEGIN { @@ -16,7 +16,7 @@ BEGIN {
} }

View file

@ -1,5 +1,5 @@
--- lib/ExtUtils/MM_Any.pm.orig Wed Feb 15 12:20:43 2006 --- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm.orig Wed Feb 15 12:20:43 2006
+++ lib/ExtUtils/MM_Any.pm Wed Feb 15 12:22:29 2006 +++ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm Wed Feb 15 12:22:29 2006
@@ -1069,13 +1069,14 @@ sub init_INSTALL_from_PREFIX { @@ -1069,13 +1069,14 @@ sub init_INSTALL_from_PREFIX {
('$(PREFIX)') x 3; ('$(PREFIX)') x 3;
} }

View file

@ -1,95 +0,0 @@
# http://rt.perl.org/rt3//Public/Bug/Display.html?id=69973
# http://perl5.git.perl.org/perl.git/commitdiff_plain/0abd0d78a73da1c4d13b1c700526b7e5d03b32d4?hp=fe88edf0c4ada4230b84bdb5417029b8f766694a
diff --git a/ext/re/t/regop.t b/ext/re/t/regop.t
index 9118bf6..46e6ec0 100644
--- ext/re/t/regop.t
+++ ext/re/t/regop.t
@@ -231,12 +231,12 @@ anchored "ABC" at 0
#Freeing REx: "(\\.COM|\\.EXE|\\.BAT|\\.CMD|\\.VBS|\\.VBE|\\.JS|\\.JSE|\\."......
%MATCHED%
floating ""$ at 3..4 (checking floating)
-1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
-stclass EXACTF <.> minlen 3
-Found floating substr ""$ at offset 30...
-Does not contradict STCLASS...
-Guessed: match at offset 26
-Matching stclass EXACTF <.> against ".exe"
+#1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
+#stclass EXACTF <.> minlen 3
+#Found floating substr ""$ at offset 30...
+#Does not contradict STCLASS...
+#Guessed: match at offset 26
+#Matching stclass EXACTF <.> against ".exe"
---
#Compiling REx "[q]"
#size 12 nodes Got 100 bytes for offset annotations.
diff --git a/regcomp.c b/regcomp.c
index 6e9fa26..eb5f12f 100644
--- regcomp.c
+++ regcomp.c
@@ -2833,13 +2833,18 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
}
} else {
/*
- Currently we assume that the trie can handle unicode and ascii
- matches fold cased matches. If this proves true then the following
- define will prevent tries in this situation.
-
- #define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
-*/
+ Currently we do not believe that the trie logic can
+ handle case insensitive matching properly when the
+ pattern is not unicode (thus forcing unicode semantics).
+
+ If/when this is fixed the following define can be swapped
+ in below to fully enable trie logic.
+
#define TRIE_TYPE_IS_SAFE 1
+
+*/
+#define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
+
if ( last && TRIE_TYPE_IS_SAFE ) {
make_trie( pRExC_state,
startbranch, first, cur, tail, count,
diff --git a/regexec.c b/regexec.c
index 402ede3..ec09c28 100644
--- regexec.c
+++ regexec.c
@@ -1105,16 +1105,15 @@ Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, char *strpos,
#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len, \
uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
- UV uvc_unfolded = 0; \
switch (trie_type) { \
case trie_utf8_fold: \
if ( foldlen>0 ) { \
- uvc_unfolded = uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
+ uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
foldlen -= len; \
uscan += len; \
len=0; \
} else { \
- uvc_unfolded = uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
+ uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
uvc = to_uni_fold( uvc, foldbuf, &foldlen ); \
foldlen -= UNISKIP( uvc ); \
uscan = foldbuf + UNISKIP( uvc ); \
@@ -1140,7 +1139,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
uvc = (UV)*uc; \
len = 1; \
} \
- \
if (uvc < 256) { \
charid = trie->charmap[ uvc ]; \
} \
@@ -1153,9 +1151,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
charid = (U16)SvIV(*svpp); \
} \
} \
- if (!charid && trie_type == trie_utf8_fold && !UTF) { \
- charid = trie->charmap[uvc_unfolded]; \
- } \
} STMT_END
#define REXEC_FBC_EXACTISH_CHECK(CoNd) \

View file

@ -1,46 +0,0 @@
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=71952
# http://perl5.git.perl.org/perl.git/commitdiff_plain/1f15e670edb515b744e9021b4a42a7955da83093?hp=1f730e6c11736bad913e605b064200a67117e898
diff --git a/sv.c b/sv.c
index 4e80e18..a3eb187 100644
--- sv.c
+++ sv.c
@@ -5664,7 +5664,8 @@ Perl_sv_clear(pTHX_ register SV *const sv)
&& !CvCONST(destructor)
/* Don't bother calling an empty destructor */
&& (CvISXSUB(destructor)
- || CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))
+ || (CvSTART(destructor)
+ && (CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))))
{
SV* const tmpref = newRV(sv);
SvREADONLY_on(tmpref); /* DESTROY() could be naughty */
diff --git a/t/op/method.t b/t/op/method.t
index afa8cfb..b602ca2 100644
--- t/op/method.t
+++ t/op/method.t
@@ -10,7 +10,7 @@ BEGIN {
require "test.pl";
}
-print "1..78\n";
+print "1..79\n";
@A::ISA = 'B';
@B::ISA = 'C';
@@ -292,3 +292,16 @@ EOT
"check if UNIVERSAL::AUTOLOAD works",
);
}
+
+# Test for #71952: crash when looking for a nonexistent destructor
+# Regression introduced by fbb3ee5af3d4
+{
+ fresh_perl_is(<<'EOT',
+sub M::DESTROY; bless {}, "M" ; print "survived\n";
+EOT
+ "survived",
+ {},
+ "no crash with a declared but missing DESTROY method"
+ );
+}
+

View file

@ -1,61 +0,0 @@
--- perl.c
+++ perl.c
#else /* IAMSUID */
@@ -4882,6 +4882,28 @@
incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE);
#endif
+#ifdef SITEARCH_EXP
+ /* sitearch is always relative to sitelib on Windows for
+ * DLL-based path intuition to work correctly */
+# if !defined(WIN32)
+ incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE);
+# endif
+#endif
+
+#ifdef SITELIB_EXP
+# if defined(WIN32)
+ /* this picks up sitearch as well */
+ incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
+# else
+ incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
+# endif
+#endif
+
+#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
+ /* Search for version-specific dirs below here */
+ incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
+#endif
+
#ifdef ARCHLIB_EXP
incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
#endif
@@ -4915,28 +4937,6 @@
incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE);
#endif
-#ifdef SITEARCH_EXP
- /* sitearch is always relative to sitelib on Windows for
- * DLL-based path intuition to work correctly */
-# if !defined(WIN32)
- incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE);
-# endif
-#endif
-
-#ifdef SITELIB_EXP
-# if defined(WIN32)
- /* this picks up sitearch as well */
- incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
-# else
- incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
-# endif
-#endif
-
-#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
- /* Search for version-specific dirs below here */
- incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
-#endif
-
#ifdef PERL_VENDORARCH_EXP
/* vendorarch is always relative to vendorlib on Windows for
* DLL-based path intuition to work correctly */

File diff suppressed because it is too large Load diff

View file

@ -7,7 +7,6 @@
PORTNAME= perl PORTNAME= perl
PORTVERSION= ${PERL_VERSION} PORTVERSION= ${PERL_VERSION}
PORTREVISION= 2
CATEGORIES= lang devel perl5 CATEGORIES= lang devel perl5
MASTER_SITES= CPAN \ MASTER_SITES= CPAN \
${MASTER_SITE_LOCAL:S/$/:local/} \ ${MASTER_SITE_LOCAL:S/$/:local/} \
@ -21,8 +20,8 @@ DIST_SUBDIR= perl
MAINTAINER= skv@FreeBSD.org MAINTAINER= skv@FreeBSD.org
COMMENT= Practical Extraction and Report Language COMMENT= Practical Extraction and Report Language
CONFLICTS= perl-5.6.* perl-5.8.* perl-threaded-5.8.* CONFLICTS= perl-5.6.* perl-5.8.* perl-threaded-5.8.* \
MAKE_JOBS_UNSAFE= yes perl-5.10.* perl-threaded-5.10.*
OPTIONS= DEBUGGING "Build with debugging support" off \ OPTIONS= DEBUGGING "Build with debugging support" off \
GDBM "Build GDBM_File extension" off \ GDBM "Build GDBM_File extension" off \
@ -36,7 +35,7 @@ OPTIONS= DEBUGGING "Build with debugging support" off \
PORTSCOUT= limitw:1,even PORTSCOUT= limitw:1,even
PERL_VERSION= 5.10.1 PERL_VERSION= 5.12.1
PERL_ARCH= mach PERL_ARCH= mach
SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION} SITE_PERL_REL?= lib/perl5/site_perl/${PERL_VERSION}
SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL} SITE_PERL?= ${LOCALBASE}/${SITE_PERL_REL}
@ -148,7 +147,7 @@ LINK_USRBIN= yes
LINK_USRBIN= no LINK_USRBIN= no
.endif .endif
LATEST_LINK= perl NO_LATEST_LINK= yes
.if defined(WITH_GDBM) .if defined(WITH_GDBM)
MAN3+= GDBM_File.3 MAN3+= GDBM_File.3
@ -213,7 +212,7 @@ post-install:
PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
test: build test: build
@(cd ${WRKSRC}; make test) @(cd ${WRKSRC}; TEST_JOBS=${MAKE_JOBS_NUMBER} make test_harness)
regression-test: test regression-test: test

View file

@ -20,6 +20,14 @@ MAN1+= perl5004delta.1
MAN1+= perl5005delta.1 MAN1+= perl5005delta.1
MAN1+= perl5100delta.1 MAN1+= perl5100delta.1
MAN1+= perl5101delta.1 MAN1+= perl5101delta.1
MAN1+= perl5110delta.1
MAN1+= perl5111delta.1
MAN1+= perl5112delta.1
MAN1+= perl5113delta.1
MAN1+= perl5114delta.1
MAN1+= perl5115delta.1
MAN1+= perl5120delta.1
MAN1+= perl5121delta.1
MAN1+= perl561delta.1 MAN1+= perl561delta.1
MAN1+= perl56delta.1 MAN1+= perl56delta.1
MAN1+= perl570delta.1 MAN1+= perl570delta.1
@ -111,10 +119,8 @@ MAN1+= perllexwarn.1
MAN1+= perllinux.1 MAN1+= perllinux.1
MAN1+= perllocale.1 MAN1+= perllocale.1
MAN1+= perllol.1 MAN1+= perllol.1
MAN1+= perlmachten.1
MAN1+= perlmacos.1 MAN1+= perlmacos.1
MAN1+= perlmacosx.1 MAN1+= perlmacosx.1
MAN1+= perlmint.1
MAN1+= perlmod.1 MAN1+= perlmod.1
MAN1+= perlmodinstall.1 MAN1+= perlmodinstall.1
MAN1+= perlmodlib.1 MAN1+= perlmodlib.1
@ -131,12 +137,12 @@ MAN1+= perlopentut.1
MAN1+= perlos2.1 MAN1+= perlos2.1
MAN1+= perlos390.1 MAN1+= perlos390.1
MAN1+= perlos400.1 MAN1+= perlos400.1
MAN1+= perlothrtut.1
MAN1+= perlpacktut.1 MAN1+= perlpacktut.1
MAN1+= perlperf.1 MAN1+= perlperf.1
MAN1+= perlplan9.1 MAN1+= perlplan9.1
MAN1+= perlpod.1 MAN1+= perlpod.1
MAN1+= perlpodspec.1 MAN1+= perlpodspec.1
MAN1+= perlpolicy.1
MAN1+= perlport.1 MAN1+= perlport.1
MAN1+= perlpragma.1 MAN1+= perlpragma.1
MAN1+= perlqnx.1 MAN1+= perlqnx.1
@ -172,6 +178,7 @@ MAN1+= perltw.1
MAN1+= perlunicode.1 MAN1+= perlunicode.1
MAN1+= perlunifaq.1 MAN1+= perlunifaq.1
MAN1+= perluniintro.1 MAN1+= perluniintro.1
MAN1+= perluniprops.1
MAN1+= perlunitut.1 MAN1+= perlunitut.1
MAN1+= perlutil.1 MAN1+= perlutil.1
MAN1+= perluts.1 MAN1+= perluts.1
@ -202,6 +209,7 @@ MAN1+= splain.1
MAN1+= xsubpp.1 MAN1+= xsubpp.1
MAN3+= AnyDBM_File.3 MAN3+= AnyDBM_File.3
MAN3+= App::Cpan.3
MAN3+= App::Prove.3 MAN3+= App::Prove.3
MAN3+= App::Prove::State.3 MAN3+= App::Prove::State.3
MAN3+= App::Prove::State::Result.3 MAN3+= App::Prove::State::Result.3
@ -281,7 +289,6 @@ MAN3+= CPANPLUS::Shell::Default::Plugins::HOWTO.3
MAN3+= CPANPLUS::Shell::Default::Plugins::Remote.3 MAN3+= CPANPLUS::Shell::Default::Plugins::Remote.3
MAN3+= CPANPLUS::Shell::Default::Plugins::Source.3 MAN3+= CPANPLUS::Shell::Default::Plugins::Source.3
MAN3+= Carp.3 MAN3+= Carp.3
MAN3+= Carp::Heavy.3
MAN3+= Class::ISA.3 MAN3+= Class::ISA.3
MAN3+= Class::Struct.3 MAN3+= Class::Struct.3
MAN3+= Compress::Raw::Bzip2.3 MAN3+= Compress::Raw::Bzip2.3
@ -491,6 +498,7 @@ MAN3+= Module::Build.3
MAN3+= Module::Build::API.3 MAN3+= Module::Build::API.3
MAN3+= Module::Build::Authoring.3 MAN3+= Module::Build::Authoring.3
MAN3+= Module::Build::Base.3 MAN3+= Module::Build::Base.3
MAN3+= Module::Build::Bundling.3
MAN3+= Module::Build::Compat.3 MAN3+= Module::Build::Compat.3
MAN3+= Module::Build::ConfigData.3 MAN3+= Module::Build::ConfigData.3
MAN3+= Module::Build::Cookbook.3 MAN3+= Module::Build::Cookbook.3
@ -511,7 +519,6 @@ MAN3+= Module::Build::Platform::aix.3
MAN3+= Module::Build::Platform::cygwin.3 MAN3+= Module::Build::Platform::cygwin.3
MAN3+= Module::Build::Platform::darwin.3 MAN3+= Module::Build::Platform::darwin.3
MAN3+= Module::Build::Platform::os2.3 MAN3+= Module::Build::Platform::os2.3
MAN3+= Module::Build::YAML.3
MAN3+= Module::CoreList.3 MAN3+= Module::CoreList.3
MAN3+= Module::Load.3 MAN3+= Module::Load.3
MAN3+= Module::Load::Conditional.3 MAN3+= Module::Load::Conditional.3
@ -557,6 +564,9 @@ MAN3+= Pod::Man.3
MAN3+= Pod::ParseLink.3 MAN3+= Pod::ParseLink.3
MAN3+= Pod::ParseUtils.3 MAN3+= Pod::ParseUtils.3
MAN3+= Pod::Parser.3 MAN3+= Pod::Parser.3
MAN3+= Pod::Perldoc.3
MAN3+= Pod::Perldoc::BaseTo.3
MAN3+= Pod::Perldoc::GetOptsOO.3
MAN3+= Pod::Perldoc::ToChecker.3 MAN3+= Pod::Perldoc::ToChecker.3
MAN3+= Pod::Perldoc::ToMan.3 MAN3+= Pod::Perldoc::ToMan.3
MAN3+= Pod::Perldoc::ToNroff.3 MAN3+= Pod::Perldoc::ToNroff.3
@ -694,10 +704,10 @@ MAN3+= Unicode::UCD.3
MAN3+= User::grent.3 MAN3+= User::grent.3
MAN3+= User::pwent.3 MAN3+= User::pwent.3
MAN3+= XS::APItest.3 MAN3+= XS::APItest.3
MAN3+= XS::APItest::KeywordRPN.3
MAN3+= XS::Typemap.3 MAN3+= XS::Typemap.3
MAN3+= XSLoader.3 MAN3+= XSLoader.3
MAN3+= attributes.3 MAN3+= attributes.3
MAN3+= attrs.3
MAN3+= autodie.3 MAN3+= autodie.3
MAN3+= autodie::exception.3 MAN3+= autodie::exception.3
MAN3+= autodie::exception::system.3 MAN3+= autodie::exception::system.3
@ -711,6 +721,7 @@ MAN3+= blib.3
MAN3+= bytes.3 MAN3+= bytes.3
MAN3+= charnames.3 MAN3+= charnames.3
MAN3+= constant.3 MAN3+= constant.3
MAN3+= deprecate.3
MAN3+= diagnostics.3 MAN3+= diagnostics.3
MAN3+= encoding.3 MAN3+= encoding.3
MAN3+= encoding::warnings.3 MAN3+= encoding::warnings.3
@ -718,6 +729,7 @@ MAN3+= feature.3
MAN3+= fields.3 MAN3+= fields.3
MAN3+= filetest.3 MAN3+= filetest.3
MAN3+= if.3 MAN3+= if.3
MAN3+= inc::latest.3
MAN3+= integer.3 MAN3+= integer.3
MAN3+= less.3 MAN3+= less.3
MAN3+= lib.3 MAN3+= lib.3
@ -742,4 +754,3 @@ MAN3+= version::Internals.3
MAN3+= vmsish.3 MAN3+= vmsish.3
MAN3+= warnings.3 MAN3+= warnings.3
MAN3+= warnings::register.3 MAN3+= warnings::register.3

View file

@ -1,6 +1,6 @@
MD5 (perl/perl-5.10.1.tar.bz2) = 82400c6d34f7b7b43d0196c76cd2bbb1 MD5 (perl/perl-5.12.1.tar.bz2) = f7f2d7f5aaac15a75028381b159a560f
SHA256 (perl/perl-5.10.1.tar.bz2) = 9385f2c8c2ca8b1dc4a7c31903f1f8dc8f2ba867dc2a9e5c93012ed6b564e826 SHA256 (perl/perl-5.12.1.tar.bz2) = e9189f09447b2b90a1d186b418f91e583eba41eec238e8f5b8730f71d5fc1ec5
SIZE (perl/perl-5.10.1.tar.bz2) = 11608061 SIZE (perl/perl-5.12.1.tar.bz2) = 12296076
MD5 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 2dcad380d91c60aaa4ac6db29d997712 MD5 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 2dcad380d91c60aaa4ac6db29d997712
SHA256 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = f700acc5ca29c6ef94460d23acffde77834e883cdb7cd043dbdb7c7d709a9392 SHA256 (perl/BSDPAN-5.12.1_20100713.tar.bz2) = f700acc5ca29c6ef94460d23acffde77834e883cdb7cd043dbdb7c7d709a9392
SIZE (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 8430 SIZE (perl/BSDPAN-5.12.1_20100713.tar.bz2) = 8430

View file

@ -1,5 +1,5 @@
--- lib/ExtUtils/t/INST_PREFIX.t.orig Wed Feb 15 12:46:31 2006 --- cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t.orig Wed Feb 15 12:46:31 2006
+++ lib/ExtUtils/t/INST_PREFIX.t Wed Feb 15 12:46:52 2006 +++ cpan/ExtUtils-MakeMaker/t/INST_PREFIX.t Wed Feb 15 12:46:52 2006
@@ -16,7 +16,7 @@ BEGIN { @@ -16,7 +16,7 @@ BEGIN {
} }

View file

@ -1,5 +1,5 @@
--- lib/ExtUtils/MM_Any.pm.orig Wed Feb 15 12:20:43 2006 --- cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm.orig Wed Feb 15 12:20:43 2006
+++ lib/ExtUtils/MM_Any.pm Wed Feb 15 12:22:29 2006 +++ cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm Wed Feb 15 12:22:29 2006
@@ -1069,13 +1069,14 @@ sub init_INSTALL_from_PREFIX { @@ -1069,13 +1069,14 @@ sub init_INSTALL_from_PREFIX {
('$(PREFIX)') x 3; ('$(PREFIX)') x 3;
} }

View file

@ -1,95 +0,0 @@
# http://rt.perl.org/rt3//Public/Bug/Display.html?id=69973
# http://perl5.git.perl.org/perl.git/commitdiff_plain/0abd0d78a73da1c4d13b1c700526b7e5d03b32d4?hp=fe88edf0c4ada4230b84bdb5417029b8f766694a
diff --git a/ext/re/t/regop.t b/ext/re/t/regop.t
index 9118bf6..46e6ec0 100644
--- ext/re/t/regop.t
+++ ext/re/t/regop.t
@@ -231,12 +231,12 @@ anchored "ABC" at 0
#Freeing REx: "(\\.COM|\\.EXE|\\.BAT|\\.CMD|\\.VBS|\\.VBE|\\.JS|\\.JSE|\\."......
%MATCHED%
floating ""$ at 3..4 (checking floating)
-1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
-stclass EXACTF <.> minlen 3
-Found floating substr ""$ at offset 30...
-Does not contradict STCLASS...
-Guessed: match at offset 26
-Matching stclass EXACTF <.> against ".exe"
+#1:1[1] 3:2[1] 5:2[64] 45:83[1] 47:84[1] 48:85[0]
+#stclass EXACTF <.> minlen 3
+#Found floating substr ""$ at offset 30...
+#Does not contradict STCLASS...
+#Guessed: match at offset 26
+#Matching stclass EXACTF <.> against ".exe"
---
#Compiling REx "[q]"
#size 12 nodes Got 100 bytes for offset annotations.
diff --git a/regcomp.c b/regcomp.c
index 6e9fa26..eb5f12f 100644
--- regcomp.c
+++ regcomp.c
@@ -2833,13 +2833,18 @@ S_study_chunk(pTHX_ RExC_state_t *pRExC_state, regnode **scanp,
}
} else {
/*
- Currently we assume that the trie can handle unicode and ascii
- matches fold cased matches. If this proves true then the following
- define will prevent tries in this situation.
-
- #define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
-*/
+ Currently we do not believe that the trie logic can
+ handle case insensitive matching properly when the
+ pattern is not unicode (thus forcing unicode semantics).
+
+ If/when this is fixed the following define can be swapped
+ in below to fully enable trie logic.
+
#define TRIE_TYPE_IS_SAFE 1
+
+*/
+#define TRIE_TYPE_IS_SAFE (UTF || optype==EXACT)
+
if ( last && TRIE_TYPE_IS_SAFE ) {
make_trie( pRExC_state,
startbranch, first, cur, tail, count,
diff --git a/regexec.c b/regexec.c
index 402ede3..ec09c28 100644
--- regexec.c
+++ regexec.c
@@ -1105,16 +1105,15 @@ Perl_re_intuit_start(pTHX_ REGEXP * const rx, SV *sv, char *strpos,
#define REXEC_TRIE_READ_CHAR(trie_type, trie, widecharmap, uc, uscan, len, \
uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
- UV uvc_unfolded = 0; \
switch (trie_type) { \
case trie_utf8_fold: \
if ( foldlen>0 ) { \
- uvc_unfolded = uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
+ uvc = utf8n_to_uvuni( uscan, UTF8_MAXLEN, &len, uniflags ); \
foldlen -= len; \
uscan += len; \
len=0; \
} else { \
- uvc_unfolded = uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
+ uvc = utf8n_to_uvuni( (U8*)uc, UTF8_MAXLEN, &len, uniflags ); \
uvc = to_uni_fold( uvc, foldbuf, &foldlen ); \
foldlen -= UNISKIP( uvc ); \
uscan = foldbuf + UNISKIP( uvc ); \
@@ -1140,7 +1139,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
uvc = (UV)*uc; \
len = 1; \
} \
- \
if (uvc < 256) { \
charid = trie->charmap[ uvc ]; \
} \
@@ -1153,9 +1151,6 @@ uvc, charid, foldlen, foldbuf, uniflags) STMT_START { \
charid = (U16)SvIV(*svpp); \
} \
} \
- if (!charid && trie_type == trie_utf8_fold && !UTF) { \
- charid = trie->charmap[uvc_unfolded]; \
- } \
} STMT_END
#define REXEC_FBC_EXACTISH_CHECK(CoNd) \

View file

@ -1,46 +0,0 @@
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=71952
# http://perl5.git.perl.org/perl.git/commitdiff_plain/1f15e670edb515b744e9021b4a42a7955da83093?hp=1f730e6c11736bad913e605b064200a67117e898
diff --git a/sv.c b/sv.c
index 4e80e18..a3eb187 100644
--- sv.c
+++ sv.c
@@ -5664,7 +5664,8 @@ Perl_sv_clear(pTHX_ register SV *const sv)
&& !CvCONST(destructor)
/* Don't bother calling an empty destructor */
&& (CvISXSUB(destructor)
- || CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))
+ || (CvSTART(destructor)
+ && (CvSTART(destructor)->op_next->op_type != OP_LEAVESUB))))
{
SV* const tmpref = newRV(sv);
SvREADONLY_on(tmpref); /* DESTROY() could be naughty */
diff --git a/t/op/method.t b/t/op/method.t
index afa8cfb..b602ca2 100644
--- t/op/method.t
+++ t/op/method.t
@@ -10,7 +10,7 @@ BEGIN {
require "test.pl";
}
-print "1..78\n";
+print "1..79\n";
@A::ISA = 'B';
@B::ISA = 'C';
@@ -292,3 +292,16 @@ EOT
"check if UNIVERSAL::AUTOLOAD works",
);
}
+
+# Test for #71952: crash when looking for a nonexistent destructor
+# Regression introduced by fbb3ee5af3d4
+{
+ fresh_perl_is(<<'EOT',
+sub M::DESTROY; bless {}, "M" ; print "survived\n";
+EOT
+ "survived",
+ {},
+ "no crash with a declared but missing DESTROY method"
+ );
+}
+

View file

@ -1,61 +0,0 @@
--- perl.c
+++ perl.c
#else /* IAMSUID */
@@ -4882,6 +4882,28 @@
incpush(APPLLIB_EXP, TRUE, TRUE, TRUE, TRUE);
#endif
+#ifdef SITEARCH_EXP
+ /* sitearch is always relative to sitelib on Windows for
+ * DLL-based path intuition to work correctly */
+# if !defined(WIN32)
+ incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE);
+# endif
+#endif
+
+#ifdef SITELIB_EXP
+# if defined(WIN32)
+ /* this picks up sitearch as well */
+ incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
+# else
+ incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
+# endif
+#endif
+
+#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
+ /* Search for version-specific dirs below here */
+ incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
+#endif
+
#ifdef ARCHLIB_EXP
incpush(ARCHLIB_EXP, FALSE, FALSE, TRUE, TRUE);
#endif
@@ -4915,28 +4937,6 @@
incpush(PRIVLIB_EXP, FALSE, FALSE, TRUE, TRUE);
#endif
-#ifdef SITEARCH_EXP
- /* sitearch is always relative to sitelib on Windows for
- * DLL-based path intuition to work correctly */
-# if !defined(WIN32)
- incpush(SITEARCH_EXP, FALSE, FALSE, TRUE, TRUE);
-# endif
-#endif
-
-#ifdef SITELIB_EXP
-# if defined(WIN32)
- /* this picks up sitearch as well */
- incpush(SITELIB_EXP, TRUE, FALSE, TRUE, TRUE);
-# else
- incpush(SITELIB_EXP, FALSE, FALSE, TRUE, TRUE);
-# endif
-#endif
-
-#if defined(SITELIB_STEM) && defined(PERL_INC_VERSION_LIST)
- /* Search for version-specific dirs below here */
- incpush(SITELIB_STEM, FALSE, TRUE, TRUE, TRUE);
-#endif
-
#ifdef PERL_VENDORARCH_EXP
/* vendorarch is always relative to vendorlib on Windows for
* DLL-based path intuition to work correctly */

File diff suppressed because it is too large Load diff

View file

@ -25,7 +25,8 @@ PATCHFILES= defined-or-${PERL_VERSION}.bz2
MAINTAINER= skv@FreeBSD.org MAINTAINER= skv@FreeBSD.org
COMMENT= Practical Extraction and Report Language COMMENT= Practical Extraction and Report Language
CONFLICTS= perl-5.6.* perl-5.10.* perl-threaded-5.10.* CONFLICTS= perl-5.6.* perl-5.10.* perl-threaded-5.10.* \
perl-5.12.* perl-threaded-5.12.*
OPTIONS= DEBUGGING "Build with debugging support" off \ OPTIONS= DEBUGGING "Build with debugging support" off \
GDBM "Build GDBM_File extension" off \ GDBM "Build GDBM_File extension" off \