diff options
author | adam <adam@pkgsrc.org> | 2013-08-31 15:28:32 +0000 |
---|---|---|
committer | adam <adam@pkgsrc.org> | 2013-08-31 15:28:32 +0000 |
commit | 5e66569094ac93d97ae6554db8c154fafa9a75ca (patch) | |
tree | ce8dd40c79c3c8f5cc230d44b4057438dc9a74e6 /lang/perl5 | |
parent | e63661cb110b318d2b75a6c37d769d2a947cb4d5 (diff) | |
download | pkgsrc-5e66569094ac93d97ae6554db8c154fafa9a75ca.tar.gz |
Changes 5.18.1:
* B has been upgraded from 1.42 to 1.42_01, fixing bugs related to lexical subroutines.
* Digest::SHA has been upgraded from 5.84 to 5.84_01, fixing a crashing bug.
* Module::CoreList has been upgraded from 2.89 to 2.96.
* Starting in v5.18.0, a construct like /[#](?{})/x would have its # incorrectly interpreted as a comment. The code block would be skipped, unparsed. This has been corrected.
* A number of memory leaks related to the new, experimental regexp bracketed character class feature have been plugged.
* The OP allocation code now returns correctly aligned memory in all cases for struct pmop. Previously it could return memory only aligned to a 4-byte boundary, which is not correct for an ithreads build with 64 bit IVs on some 32 bit platforms. Notably, this caused the build to fail completely on sparc GNU/Linux.
* The debugger's man command been fixed. It was broken in the v5.18.0 release. The man command is aliased to the names doc and perldoc - all now work again.
* @_ is now correctly visible in the debugger, fixing a regression introduced in v5.18.0's debugger.
* Fixed a small number of regexp constructions that could either fail to match or crash perl when the string being matched against was allocated above the 2GB line on 32-bit systems.
* Perl v5.16 inadvertently introduced a bug whereby calls to XSUBs that were not visible at compile time were treated as lvalues and could be assigned to, even when the subroutine was not an lvalue sub. This has been fixed.
* Perl v5.18 inadvertently introduced a bug whereby dual-vars (i.e. variables with both string and numeric values, such as $! ) where the truthness of the variable was determined by the numeric value rather than the string value.
* Perl v5.18 inadvertently introduced a bug whereby interpolating mixed up- and down-graded UTF-8 strings in a regex could result in malformed UTF-8 in the pattern: specifically if a downgraded character in the range \x80..\xff followed a UTF-8 string
* Lexical constants (my sub a() { 42 }) no longer crash when inlined.
* Parameter prototypes attached to lexical subroutines are now respected when compiling sub calls without parentheses. Previously, the prototypes were honoured only for calls with parentheses.
* Syntax errors in lexical subroutines in combination with calls to the same subroutines no longer cause crashes at compile time.
* The dtrace sub-entry probe now works with lexical subs, instead of crashing
* Undefining an inlinable lexical subroutine (my sub foo() { 42 } undef &foo) would result in a crash if warnings were turned on.
* Deep recursion warnings no longer crash lexical subroutines.
Diffstat (limited to 'lang/perl5')
-rw-r--r-- | lang/perl5/Makefile | 3 | ||||
-rw-r--r-- | lang/perl5/Makefile.common | 5 | ||||
-rw-r--r-- | lang/perl5/distinfo | 10 | ||||
-rw-r--r-- | lang/perl5/patches/patch-regexec.c | 64 | ||||
-rw-r--r-- | lang/perl5/patches/patch-t_re_pat__rt__report.t | 59 |
5 files changed, 8 insertions, 133 deletions
diff --git a/lang/perl5/Makefile b/lang/perl5/Makefile index ea7917ef28e..a2ceb479eca 100644 --- a/lang/perl5/Makefile +++ b/lang/perl5/Makefile @@ -1,9 +1,8 @@ -# $NetBSD: Makefile,v 1.208 2013/07/26 10:59:53 ryoon Exp $ +# $NetBSD: Makefile,v 1.209 2013/08/31 15:28:32 adam Exp $ .include "license.mk" .include "Makefile.common" -PKGREVISION= 2 COMMENT= Practical Extraction and Report Language CONFLICTS= perl-base-[0-9]* perl-thread-[0-9]* \ diff --git a/lang/perl5/Makefile.common b/lang/perl5/Makefile.common index fafbcc3b42a..c0609488f5a 100644 --- a/lang/perl5/Makefile.common +++ b/lang/perl5/Makefile.common @@ -1,12 +1,13 @@ -# $NetBSD: Makefile.common,v 1.18 2013/05/31 10:55:15 adam Exp $ +# $NetBSD: Makefile.common,v 1.19 2013/08/31 15:28:32 adam Exp $ # # used by lang/perl5/Makefile # used by databases/p5-gdbm/Makefile -DISTNAME= perl-5.18.0 +DISTNAME= perl-5.18.1 CATEGORIES= lang devel perl5 MASTER_SITES= ${MASTER_SITE_PERL_CPAN:S,/modules/by-module/$,/src/5.0/,} DISTFILES+= ${DISTNAME}${EXTRACT_SUFX} +EXTRACT_SUFX= .tar.bz2 MAINTAINER= pkgsrc-users@NetBSD.org HOMEPAGE= http://www.perl.org/ diff --git a/lang/perl5/distinfo b/lang/perl5/distinfo index fd0ab2b3454..66a6519363a 100644 --- a/lang/perl5/distinfo +++ b/lang/perl5/distinfo @@ -1,8 +1,8 @@ -$NetBSD: distinfo,v 1.108 2013/08/19 12:31:11 christos Exp $ +$NetBSD: distinfo,v 1.109 2013/08/31 15:28:32 adam Exp $ -SHA1 (perl-5.18.0.tar.gz) = f5a97a9fa4e9d0ef9c4b313c5b778a0e76291ee2 -RMD160 (perl-5.18.0.tar.gz) = 10774aa60a76b30579aedf23f4a21775301e3235 -Size (perl-5.18.0.tar.gz) = 17323206 bytes +SHA1 (perl-5.18.1.tar.bz2) = eb6b402682168a9735b2806d09c1ca5d567b2de8 +RMD160 (perl-5.18.1.tar.bz2) = 015c4c617474e1f2716a8c1484c44852ab459b74 +Size (perl-5.18.1.tar.bz2) = 14059628 bytes SHA1 (patch-aa) = 9066746c6e6ed0d58962f52de1ae773e210cfcb5 SHA1 (patch-ab) = ddddf24cfa96c3b95202c2081006e0c7216afa1d SHA1 (patch-ac) = cd918ae7aedddfcd3d555a1d1388c4c8719ccd12 @@ -16,8 +16,6 @@ SHA1 (patch-hints_cygwin.sh) = 1b21d927d6b7379754c4cd64a2b05d3632c35470 SHA1 (patch-hints_darwin.sh) = c561d1862f8ca76652a35741c691394eb8cda70a SHA1 (patch-hints_netbsd.sh) = 5b41a700282773b13cd0fefbcbef3a46ba0d2bfb SHA1 (patch-hv.c) = 0ed39926d620724db6d612a717d84b4efa129162 -SHA1 (patch-regexec.c) = 4fb7840347bd08739ae2dcb3d133212474e168fc -SHA1 (patch-t_re_pat__rt__report.t) = 139161459885bda91a2cbd0f96c57d6d88e52713 SHA1 (patch-ta) = a9d13eeec22733e4087942f217a0d47a19498a6f SHA1 (patch-zd) = 469602bc04b217f2d9929f5caeab43f77a74076f SHA1 (patch-ze) = 211ed6065ecf2ca02f8e95283c2d67a64c2e6b41 diff --git a/lang/perl5/patches/patch-regexec.c b/lang/perl5/patches/patch-regexec.c deleted file mode 100644 index 25f4d9785ed..00000000000 --- a/lang/perl5/patches/patch-regexec.c +++ /dev/null @@ -1,64 +0,0 @@ -$NetBSD: patch-regexec.c,v 1.1 2013/06/17 06:54:13 wiz Exp $ - -Fix regmatch pointer 32-bit wraparound regression - -Cherry-picked from: - -commit 285a3ca139d04d2ee1894c9a9110294ee8bb0309 -Merge: aad0429 dfb8f19 -Author: Tony Cook <tony@develop-help.com> -AuthorDate: Mon Jun 3 22:28:37 2013 +1000 -Commit: Tony Cook <tony@develop-help.com> -CommitDate: Mon Jun 3 22:28:37 2013 +1000 - - [perl #118175] avoid making pointers outside of objects - - In a couple of cases, when strings were allocated above the 2GB line - on 32-bit CPUs, this could cause regexps to act strangely - not matching - or crashing perl. - - The final patch in the set prevents pointer creation which the C standard - describes as undefined behaviour, but is typically safe (as long as the - pointer isn't derefed) - -This regression was introduced into 5.18.0 by commit -4063ade8503ac8877a02fc4eae8ebbe242b9110b. - ---- regexec.c.orig 2013-05-05 19:32:18.000000000 +0000 -+++ regexec.c -@@ -6662,7 +6662,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s - scan = *startposp; - if (max == REG_INFTY) - max = I32_MAX; -- else if (! utf8_target && scan + max < loceol) -+ else if (! utf8_target && loceol - scan > max) - loceol = scan + max; - - /* Here, for the case of a non-UTF-8 target we have adjusted <loceol> down -@@ -6711,7 +6711,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s - scan = loceol; - break; - case CANY: /* Move <scan> forward <max> bytes, unless goes off end */ -- if (utf8_target && scan + max < loceol) { -+ if (utf8_target && loceol - scan > max) { - - /* <loceol> hadn't been adjusted in the UTF-8 case */ - scan += max; -@@ -6730,7 +6730,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s - * can use UTF8_IS_INVARIANT() even if the pattern isn't UTF-8, as it's - * true iff it doesn't matter if the argument is in UTF-8 or not */ - if (UTF8_IS_INVARIANT(c) || (! utf8_target && ! is_utf8_pat)) { -- if (utf8_target && scan + max < loceol) { -+ if (utf8_target && loceol - scan > max) { - /* We didn't adjust <loceol> because is UTF-8, but ok to do so, - * since here, to match at all, 1 char == 1 byte */ - loceol = scan + max; -@@ -6910,7 +6910,7 @@ S_regrepeat(pTHX_ regexp *prog, char **s - /* FALLTHROUGH */ - - case POSIXA: -- if (utf8_target && scan + max < loceol) { -+ if (utf8_target && loceol - scan > max) { - - /* We didn't adjust <loceol> at the beginning of this routine - * because is UTF-8, but it is actually ok to do so, since here, to diff --git a/lang/perl5/patches/patch-t_re_pat__rt__report.t b/lang/perl5/patches/patch-t_re_pat__rt__report.t deleted file mode 100644 index 16485d6aeef..00000000000 --- a/lang/perl5/patches/patch-t_re_pat__rt__report.t +++ /dev/null @@ -1,59 +0,0 @@ -$NetBSD: patch-t_re_pat__rt__report.t,v 1.1 2013/06/17 06:54:13 wiz Exp $ - -Fix regmatch pointer 32-bit wraparound regression - -Cherry-picked from: - -commit 285a3ca139d04d2ee1894c9a9110294ee8bb0309 -Merge: aad0429 dfb8f19 -Author: Tony Cook <tony@develop-help.com> -AuthorDate: Mon Jun 3 22:28:37 2013 +1000 -Commit: Tony Cook <tony@develop-help.com> -CommitDate: Mon Jun 3 22:28:37 2013 +1000 - - [perl #118175] avoid making pointers outside of objects - - In a couple of cases, when strings were allocated above the 2GB line - on 32-bit CPUs, this could cause regexps to act strangely - not matching - or crashing perl. - - The final patch in the set prevents pointer creation which the C standard - describes as undefined behaviour, but is typically safe (as long as the - pointer isn't derefed) - -This regression was introduced into 5.18.0 by commit -4063ade8503ac8877a02fc4eae8ebbe242b9110b. - ---- t/re/pat_rt_report.t.orig 2013-05-01 02:52:56.000000000 +0000 -+++ t/re/pat_rt_report.t -@@ -22,7 +22,7 @@ BEGIN { - } - - --plan tests => 2530; # Update this when adding/deleting tests. -+plan tests => 2532; # Update this when adding/deleting tests. - - run_tests() unless caller; - -@@ -1158,6 +1158,21 @@ EOP - '$_ = "abc"; /b/g; $_ = "hello"; print eval q|$\'|,"\n"', - "c\n", {}, '$\' first mentioned after match'); - } -+ -+ { -+ # [perl #118175] threaded perl-5.18.0 fails pat_rt_report_thr.t -+ # this tests some related failures -+ # -+ # The tests in the block *only* fail when run on 32-bit systems -+ # with a malloc that allocates above the 2GB line. On the system -+ # in the report above that only happened in a thread. -+ my $s = "\x{1ff}" . "f" x 32; -+ ok($s =~ /\x{1ff}[[:alpha:]]+/gca, "POSIXA pointer wrap"); -+ -+ # this one segfaulted under the conditions above -+ # of course, CANY is evil, maybe it should crash -+ ok($s =~ /.\C+/, "CANY pointer wrap"); -+ } - } # End of sub run_tests - - 1; |