diff options
author | Sergey Skvortsov <skv@FreeBSD.org> | 2010-05-06 17:05:45 +0000 |
---|---|---|
committer | Sergey Skvortsov <skv@FreeBSD.org> | 2010-05-06 17:05:45 +0000 |
commit | 6255bf69e04ec56e4ae8ba953b18920a88f10609 (patch) | |
tree | 7e1f141b98222a836359d65e822ff477782b5e20 /lang/perl5.16 | |
parent | 457022d0285fdd0ecaeb5fd3ac57944d2cc6658b (diff) | |
download | ports-6255bf69e04ec56e4ae8ba953b18920a88f10609.tar.gz ports-6255bf69e04ec56e4ae8ba953b18920a88f10609.zip |
Notes
Diffstat (limited to 'lang/perl5.16')
-rw-r--r-- | lang/perl5.16/Makefile | 3 | ||||
-rw-r--r-- | lang/perl5.16/distinfo | 6 | ||||
-rw-r--r-- | lang/perl5.16/files/patch-bug69973 | 95 | ||||
-rw-r--r-- | lang/perl5.16/files/patch-bug71952 | 46 |
4 files changed, 146 insertions, 4 deletions
diff --git a/lang/perl5.16/Makefile b/lang/perl5.16/Makefile index 55480b6b7b21..5adf79fac9db 100644 --- a/lang/perl5.16/Makefile +++ b/lang/perl5.16/Makefile @@ -7,6 +7,7 @@ PORTNAME= perl PORTVERSION= ${PERL_VERSION} +PORTREVISON= 1 CATEGORIES= lang devel perl5 MASTER_SITES= CPAN \ ${MASTER_SITE_LOCAL:S/$/:local/} \ @@ -159,7 +160,7 @@ BSDPAN_FILES= BSDPAN.pm BSDPAN/Override.pm Config.pm \ ExtUtils/MM_Unix.pm \ ExtUtils/MakeMaker.pm \ ExtUtils/Packlist.pm -BSDPAN_VERSION= ${PORTVERSION}_20090303 +BSDPAN_VERSION= 5.12.0_20100422 BSDPAN_WRKSRC= ${WRKDIR}/BSDPAN-${BSDPAN_VERSION} PKGINSTALL= ${WRKDIR}/pkg-install diff --git a/lang/perl5.16/distinfo b/lang/perl5.16/distinfo index 550d14bbe197..2aad41e9f7a9 100644 --- a/lang/perl5.16/distinfo +++ b/lang/perl5.16/distinfo @@ -1,6 +1,6 @@ MD5 (perl/perl-5.10.1.tar.bz2) = 82400c6d34f7b7b43d0196c76cd2bbb1 SHA256 (perl/perl-5.10.1.tar.bz2) = 9385f2c8c2ca8b1dc4a7c31903f1f8dc8f2ba867dc2a9e5c93012ed6b564e826 SIZE (perl/perl-5.10.1.tar.bz2) = 11608061 -MD5 (perl/BSDPAN-5.10.1_20090303.tar.bz2) = e8d27425aec2c15778963e260d24b44e -SHA256 (perl/BSDPAN-5.10.1_20090303.tar.bz2) = 84d0a016f80bea4b081e5688542f3d70acdebd5bbaaa7f32ea88d6f26839b502 -SIZE (perl/BSDPAN-5.10.1_20090303.tar.bz2) = 8193 +MD5 (perl/BSDPAN-5.12.0_20100422.tar.bz2) = 16918568ae943b416b36196f47015a34 +SHA256 (perl/BSDPAN-5.12.0_20100422.tar.bz2) = 9bbcb4056c9c80c572acdff24319fa9a3b9a2c368ea59dfecb84e965d82f93d9 +SIZE (perl/BSDPAN-5.12.0_20100422.tar.bz2) = 8301 diff --git a/lang/perl5.16/files/patch-bug69973 b/lang/perl5.16/files/patch-bug69973 new file mode 100644 index 000000000000..fe2119fe42a1 --- /dev/null +++ b/lang/perl5.16/files/patch-bug69973 @@ -0,0 +1,95 @@ +# 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) \ diff --git a/lang/perl5.16/files/patch-bug71952 b/lang/perl5.16/files/patch-bug71952 new file mode 100644 index 000000000000..c36c7d721edb --- /dev/null +++ b/lang/perl5.16/files/patch-bug71952 @@ -0,0 +1,46 @@ +# 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" ++ ); ++} ++ |