diff options
author | adam <adam@pkgsrc.org> | 2011-08-05 18:06:14 +0000 |
---|---|---|
committer | adam <adam@pkgsrc.org> | 2011-08-05 18:06:14 +0000 |
commit | 91ce9f644cbd38fc15aab39cd660222e88133bfa (patch) | |
tree | 16e2a212a2321415d8c868d0500e1ed4bf4e1fa5 /lang | |
parent | 20ae37f03cd5275231ad166aa2c56fe44512c1f4 (diff) | |
download | pkgsrc-91ce9f644cbd38fc15aab39cd660222e88133bfa.tar.gz |
Changes 5.14.1:
* Several modules were updated to fix minor bugs.
* Tests were fixed.
* Documentation was improved.
Changes 5.14.0:
* Unicode version 6.0 is now supported.
* Regular expressions can now be reset to the default modifiers.
* Four new regular expression modifiers, "/d", "/l" , "/u", and "/a", were
introduced.
* The substitution operators now support the modifier "/r" to work
non-destructively, leaving the original unmodified.
* Larger octals can now be specified.
* Array and hash operators can now experimentally operate directly on hard
references.
* printf-like functions now understand post-1980 size modifiers.
* Exception handling was made more reliable and consistent.
* Other enhancements and many bug fixes were made
PkgSrc:
* Fixed configuring on Mac OS X 10.7.
Diffstat (limited to 'lang')
-rw-r--r-- | lang/perl5/Makefile | 3 | ||||
-rw-r--r-- | lang/perl5/Makefile.common | 4 | ||||
-rw-r--r-- | lang/perl5/buildlink3.mk | 8 | ||||
-rw-r--r-- | lang/perl5/distinfo | 32 | ||||
-rw-r--r-- | lang/perl5/module.mk | 4 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ab | 4 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ad | 13 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ah | 4 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ai | 17 | ||||
-rw-r--r-- | lang/perl5/patches/patch-aq | 6 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ca | 46 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ck | 4 | ||||
-rw-r--r-- | lang/perl5/patches/patch-cn | 6 | ||||
-rw-r--r-- | lang/perl5/patches/patch-dm | 280 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ds | 109 | ||||
-rw-r--r-- | lang/perl5/patches/patch-dt | 606 | ||||
-rw-r--r-- | lang/perl5/patches/patch-hints_darwin.sh | 19 | ||||
-rw-r--r-- | lang/perl5/patches/patch-pp.c | 34 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ta | 4 | ||||
-rw-r--r-- | lang/perl5/patches/patch-zc | 45 | ||||
-rw-r--r-- | lang/perl5/patches/patch-ze | 15 | ||||
-rw-r--r-- | lang/perl5/version.mk | 4 |
22 files changed, 75 insertions, 1192 deletions
diff --git a/lang/perl5/Makefile b/lang/perl5/Makefile index 25170e80eb1..de31178e1c1 100644 --- a/lang/perl5/Makefile +++ b/lang/perl5/Makefile @@ -1,9 +1,8 @@ -# $NetBSD: Makefile,v 1.172 2011/05/16 07:59:04 abs Exp $ +# $NetBSD: Makefile,v 1.173 2011/08/05 18:06:14 adam Exp $ .include "license.mk" .include "Makefile.common" -PKGREVISION= 2 COMMENT= Practical Extraction and Report Language PKG_DESTDIR_SUPPORT= user-destdir diff --git a/lang/perl5/Makefile.common b/lang/perl5/Makefile.common index b846b8ce0b9..bab1b86006d 100644 --- a/lang/perl5/Makefile.common +++ b/lang/perl5/Makefile.common @@ -1,9 +1,9 @@ -# $NetBSD: Makefile.common,v 1.9 2010/09/09 20:35:43 sno Exp $ +# $NetBSD: Makefile.common,v 1.10 2011/08/05 18:06:14 adam Exp $ # # used by lang/perl5/Makefile # used by databases/p5-gdbm/Makefile -DISTNAME= perl-5.12.2 +DISTNAME= perl-5.14.1 CATEGORIES= lang devel perl5 MASTER_SITES= ${MASTER_SITE_PERL_CPAN:S,/modules/by-module/$,/src/5.0/,} DISTFILES+= ${DISTNAME}${EXTRACT_SUFX} diff --git a/lang/perl5/buildlink3.mk b/lang/perl5/buildlink3.mk index 0d6b1aefedd..fb639997dcc 100644 --- a/lang/perl5/buildlink3.mk +++ b/lang/perl5/buildlink3.mk @@ -1,4 +1,4 @@ -# $NetBSD: buildlink3.mk,v 1.47 2010/08/27 05:27:37 sno Exp $ +# $NetBSD: buildlink3.mk,v 1.48 2011/08/05 18:06:14 adam Exp $ BUILDLINK_TREE+= perl @@ -6,13 +6,13 @@ BUILDLINK_TREE+= perl PERL_BUILDLINK3_MK:= .include "../../mk/bsd.fast.prefs.mk" -PERL5_REQD+= 5.12.0 +PERL5_REQD+= 5.14.0 .for _perl5_ver_ in ${PERL5_REQD} BUILDLINK_API_DEPENDS.perl+= perl>=${_perl5_ver_} .endfor -# Prevent p5-* etc. packages built for 5.12.0 to be used +# Prevent p5-* etc. packages built for 5.14.0 to be used # with the next incompatible version of perl: -BUILDLINK_API_DEPENDS.perl+= perl<5.14.0 +BUILDLINK_API_DEPENDS.perl+= perl<5.16.0 BUILDLINK_PKGSRCDIR.perl?= ../../lang/perl5 diff --git a/lang/perl5/distinfo b/lang/perl5/distinfo index b3696bc6d4d..1080cae2c94 100644 --- a/lang/perl5/distinfo +++ b/lang/perl5/distinfo @@ -1,26 +1,18 @@ -$NetBSD: distinfo,v 1.76 2011/08/05 13:12:18 ryoon Exp $ +$NetBSD: distinfo,v 1.77 2011/08/05 18:06:14 adam Exp $ -SHA1 (perl-5.12.2.tar.gz) = c157f214a93ce20fc06dc9d9c902c05ad1327cb1 -RMD160 (perl-5.12.2.tar.gz) = b1fd7f05d96fa6a263d3622654af6b584c308ce4 -Size (perl-5.12.2.tar.gz) = 15143778 bytes +SHA1 (perl-5.14.1.tar.gz) = bd24b7572330c4f87a47ea841f88deb925245a8b +RMD160 (perl-5.14.1.tar.gz) = a4b324dc280367d183987dfdc6e43518abb4b252 +Size (perl-5.14.1.tar.gz) = 16321720 bytes SHA1 (patch-aa) = 4c8197cdc0595a17ba377a28c7457f923c2d9bf9 -SHA1 (patch-ab) = e3aa6bf9695addb9b754297120caf8683a625d1a +SHA1 (patch-ab) = b6104a02aa6fbeda2340042a93c2382d1a1965bb SHA1 (patch-ac) = c1893ea4cf4b89b03b3acc5dec9b5828d50c5dad -SHA1 (patch-ad) = 6018c045b0bce177eab86b16746e189cddbf140f -SHA1 (patch-ah) = aca6b4bf08809789058f3ec259c6df86df2aaf83 -SHA1 (patch-ai) = 5abdbbddcba79088996056ab88a34db5fcd16b01 -SHA1 (patch-aq) = 3ece22678e3e6dcd3cf641e6389ff203cbe351b9 -SHA1 (patch-ca) = e8340df59362d1d388a8b6ea36fc85d4b230a67f +SHA1 (patch-ah) = 6fe177646f0fc40f11f4b2b4f504ca45ddff1941 +SHA1 (patch-aq) = 0afdf2d8a262ea09e2df6efae705e7227dc9f06f +SHA1 (patch-ca) = 112a98b85e8e276d8a211b440596ceba4f3302db SHA1 (patch-ch) = 5b6a89c82e158bab0a5f06add48c28e600678099 -SHA1 (patch-ck) = 28207b8186c9ad194a1edc696159915bc16d1097 -SHA1 (patch-cn) = 7ca2b1ff19f8371637a34ec26779b37d74c74cca +SHA1 (patch-ck) = 5c381db130cdf4c315678e2d65380eaaa3065fee +SHA1 (patch-cn) = a88fcb04b32c6e446d77b62cb6883a04f04e2e75 SHA1 (patch-cp) = 0b22d334df24d128142855464bf6dd61d4d82975 -SHA1 (patch-dm) = 8e8a0ede0f371ef0ad3a0433912967f3b8f3dd43 -SHA1 (patch-ds) = e14502548e2b9579b9ac654bbc83d78cd249e8ab -SHA1 (patch-dt) = 4d15e650b3aa9a1c8e50e5f9db91d82db3b68b8f -SHA1 (patch-hints_darwin.sh) = 40e545a13938c96eab61cbf9d04050574a36a27b -SHA1 (patch-pp.c) = fc8eaa16bfb214d4c346827fbffa7cd345f46c4b -SHA1 (patch-ta) = 69f0d2df022eb8ff0dbcc77bde638cdc9c6391b1 -SHA1 (patch-zc) = c2a4c65a849f221294eaa61b52cd1fcb196e675b +SHA1 (patch-ta) = 51a3e02148e78eaab882125f859e59add39a4fbe SHA1 (patch-zd) = 15532739b4a582da322d3e51fc364905bacbcd7e -SHA1 (patch-ze) = 73ad81c7f4265837f5d0efca3f2432e7dde265a0 +SHA1 (patch-ze) = 82f03439ab59aac4adfcb895ca22a0bbaaa0a6d1 diff --git a/lang/perl5/module.mk b/lang/perl5/module.mk index 77502e577c4..0ba73465950 100644 --- a/lang/perl5/module.mk +++ b/lang/perl5/module.mk @@ -1,4 +1,4 @@ -# $NetBSD: module.mk,v 1.63 2010/08/27 05:27:37 sno Exp $ +# $NetBSD: module.mk,v 1.64 2011/08/05 18:06:14 adam Exp $ # # This Makefile fragment is intended to be included by packages that build # and install perl5 modules. @@ -214,7 +214,7 @@ PERL5_MAKE_FLAGS.makemaker+= ${_var_}=${PERL5_${_var_}:Q} # so override its value to the module's ${PREFIX}. # Also, set VENDORARCHEXP, so existing .packlist won't be read. # -PERL5_MAKE_FLAGS.makemaker+= PREFIX=${PREFIX:Q} VENDORARCHEXP=${DESTDIR}${PERL5_INSTALLVENDORARCH} +PERL5_MAKE_FLAGS.makemaker+= PREFIX=${PREFIX:Q} VENDORARCHEXP=${DESTDIR}${PERL5_INSTALLVENDORARCH} PERL5_MAKE_FLAGS+= ${PERL5_MAKE_FLAGS.${PERL5_MODTYPE}} MAKE_FLAGS+= ${PERL5_MAKE_FLAGS} diff --git a/lang/perl5/patches/patch-ab b/lang/perl5/patches/patch-ab index f8471b1a800..6638eddf46e 100644 --- a/lang/perl5/patches/patch-ab +++ b/lang/perl5/patches/patch-ab @@ -1,8 +1,8 @@ -$NetBSD: patch-ab,v 1.15 2009/12/14 06:36:57 seb Exp $ +$NetBSD: patch-ab,v 1.16 2011/08/05 18:06:14 adam Exp $ --- installperl.orig 2009-12-06 17:14:00.000000000 +0000 +++ installperl 2009-12-06 17:14:13.000000000 +0000 -@@ -355,7 +355,6 @@ +@@ -348,7 +348,6 @@ mkpath($installprivlib, $opts{verbose}, 0777); mkpath($installarchlib, $opts{verbose}, 0777); mkpath($installsitelib, $opts{verbose}, 0777) if ($installsitelib); diff --git a/lang/perl5/patches/patch-ad b/lang/perl5/patches/patch-ad deleted file mode 100644 index 0b67fabf5c5..00000000000 --- a/lang/perl5/patches/patch-ad +++ /dev/null @@ -1,13 +0,0 @@ -$NetBSD: patch-ad,v 1.15 2011/07/19 13:58:53 joerg Exp $ - ---- hints/netbsd.sh.orig 2011-07-15 12:39:37.000000000 +0000 -+++ hints/netbsd.sh -@@ -35,7 +35,7 @@ case "$osvers" in - d_dlopen=$define - d_dlerror=$define - cccdlflags="-DPIC -fPIC $cccdlflags" -- lddlflags="--whole-archive -shared $lddlflags" -+ lddlflags="-shared $lddlflags" - rpathflag="-Wl,-rpath," - case "$osvers" in - 1.[0-5]*) diff --git a/lang/perl5/patches/patch-ah b/lang/perl5/patches/patch-ah index 70a249e10bd..f43547f1f44 100644 --- a/lang/perl5/patches/patch-ah +++ b/lang/perl5/patches/patch-ah @@ -1,10 +1,10 @@ -$NetBSD: patch-ah,v 1.12 2010/08/27 05:27:37 sno Exp $ +$NetBSD: patch-ah,v 1.13 2011/08/05 18:06:14 adam Exp $ NetBSD's implementation sometimes returns "/"; reject that too. --- perl.c.orig 2010-05-21 14:41:18.000000000 +0000 +++ perl.c 2010-05-21 14:44:01.000000000 +0000 -@@ -1414,8 +1414,10 @@ +@@ -1422,8 +1422,10 @@ to the executable (or returning an error from the readlink). Any valid path has a '/' in it somewhere, so use that to validate the result. See http://www.freebsd.org/cgi/query-pr.cgi?pr=35703 diff --git a/lang/perl5/patches/patch-ai b/lang/perl5/patches/patch-ai deleted file mode 100644 index f214aed4aae..00000000000 --- a/lang/perl5/patches/patch-ai +++ /dev/null @@ -1,17 +0,0 @@ -$NetBSD: patch-ai,v 1.7 2009/05/02 18:42:32 sno Exp $ - ---- hints/solaris_2.sh.orig 2007-12-18 11:47:07.000000000 +0100 -+++ hints/solaris_2.sh 2009-05-02 10:14:48.292729716 +0200 -@@ -571,9 +571,9 @@ - lddlflags="$lddlflags -G -m64" - ;; - *) -- ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`" -- ldflags="$ldflags `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`" -- lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`" -+ ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null|sed 's/-xarch=generic64/-m64/g'`" -+ ldflags="$ldflags `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null|sed 's/-xarch=generic64/-m64/g'`" -+ lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null|sed 's/-xarch=generic64/-m64/g'`" - echo "int main() { return(0); } " > try.c - tryworkshopcc="${cc:-cc} try.c -o try $ccflags" - if test "$processor" = sparc; then diff --git a/lang/perl5/patches/patch-aq b/lang/perl5/patches/patch-aq index 2a48d25c28c..08ca8e66f6a 100644 --- a/lang/perl5/patches/patch-aq +++ b/lang/perl5/patches/patch-aq @@ -1,8 +1,8 @@ -$NetBSD: patch-aq,v 1.2 2008/10/10 21:58:43 he Exp $ +$NetBSD: patch-aq,v 1.3 2011/08/05 18:06:14 adam Exp $ --- XSUB.h.orig 2007-12-18 11:47:07.000000000 +0100 +++ XSUB.h -@@ -93,6 +93,9 @@ is a lexical $_ in scope. +@@ -94,6 +94,9 @@ is a lexical $_ in scope. #ifndef PERL_UNUSED_VAR # define PERL_UNUSED_VAR(x) ((void)x) #endif @@ -12,7 +12,7 @@ $NetBSD: patch-aq,v 1.2 2008/10/10 21:58:43 he Exp $ #define ST(off) PL_stack_base[ax + (off)] -@@ -116,15 +119,7 @@ is a lexical $_ in scope. +@@ -117,15 +120,7 @@ is a lexical $_ in scope. # define XS(name) EXPORT_C XSPROTO(name) #endif #ifndef XS diff --git a/lang/perl5/patches/patch-ca b/lang/perl5/patches/patch-ca index ba733c0d92e..2a6db696e5f 100644 --- a/lang/perl5/patches/patch-ca +++ b/lang/perl5/patches/patch-ca @@ -1,11 +1,8 @@ -$NetBSD: patch-ca,v 1.9 2011/01/30 21:31:43 wiz Exp $ +$NetBSD: patch-ca,v 1.10 2011/08/05 18:06:14 adam Exp $ -Hunk 7 (MirBSD) was submitted and accepted upstream, see -http://rt.perl.org/rt3/Ticket/Display.html?id=82532 - ---- Configure.orig 2010-09-06 23:30:32.000000000 +0000 -+++ Configure -@@ -3251,13 +3251,14 @@ EOM +--- Configure.orig 2011-06-09 22:04:29.000000000 +0200 ++++ Configure 2011-07-31 12:24:09.000000000 +0200 +@@ -3256,13 +3256,14 @@ EOM osvers="$3" ;; dragonfly) osname=dragonfly @@ -22,7 +19,7 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532 genix) osname=genix ;; gnu) osname=gnu osvers="$3" ;; -@@ -3279,7 +3280,7 @@ EOM +@@ -3284,7 +3285,7 @@ EOM MiNT) osname=mint ;; netbsd*) osname=netbsd @@ -31,7 +28,7 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532 ;; news-os) osvers="$3" case "$3" in -@@ -3290,7 +3291,7 @@ EOM +@@ -3295,7 +3296,7 @@ EOM next*) osname=next ;; nonstop-ux) osname=nonstopux ;; openbsd) osname=openbsd @@ -71,16 +68,23 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532 prefixvar=vendorlib . ./installprefix -@@ -8326,7 +8331,7 @@ if "$useshrplib"; then - solaris) - xxx="-R $shrpdir" - ;; -- freebsd|netbsd|openbsd|interix|dragonfly) -+ freebsd|mirbsd|netbsd|openbsd|interix|dragonfly) - xxx="-Wl,-R$shrpdir" - ;; - bsdos|linux|irix*|dec_osf|gnu*) -@@ -8339,7 +8344,7 @@ if "$useshrplib"; then +@@ -7510,6 +7515,15 @@ case "$nm_so_opt" in + ;; + esac + ++: Mac OS X 10.7 is different ++case "$osname" in ++ darwin) ++ case "$osvers" in ++ 11.*) ++ libnames="$libnames /usr/lib/system/libsystem_*.dylib" ++ esac ++esac ++ + : Figure out where the libc is located + case "$runnm" in + true) +@@ -8339,7 +8353,7 @@ if "$useshrplib"; then # beos doesn't like the default, either. ;; haiku) @@ -89,7 +93,7 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532 ;; hpux*) # hpux doesn't like the default, either. -@@ -9410,6 +9415,13 @@ EOCP +@@ -9410,6 +9424,13 @@ EOCP ;; esac @@ -103,7 +107,7 @@ http://rt.perl.org/rt3/Ticket/Display.html?id=82532 : Set the vendorbin variables case "$vendorprefix" in '') d_vendorbin="$undef" -@@ -18925,7 +18937,15 @@ RCAT(Rei,ser) +@@ -19061,7 +19082,15 @@ RCAT(Rei,ser) ACAT(Cir,cus) EOCP $cppstdin $cppflags $cppminus <cpp_stuff.c >cpp_stuff.out 2>&1 diff --git a/lang/perl5/patches/patch-ck b/lang/perl5/patches/patch-ck index 966851d7721..908b297af94 100644 --- a/lang/perl5/patches/patch-ck +++ b/lang/perl5/patches/patch-ck @@ -1,4 +1,4 @@ -$NetBSD: patch-ck,v 1.1 2005/06/24 06:43:47 jlam Exp $ +$NetBSD: patch-ck,v 1.2 2011/08/05 18:06:14 adam Exp $ --- hints/aix_4.sh.orig 2004-09-09 23:29:04.000000000 -0700 +++ hints/aix_4.sh 2005-03-08 18:42:35.000000000 -0700 @@ -103,9 +103,10 @@ @@ -15,7 +15,7 @@ $NetBSD: patch-ck,v 1.1 2005/06/24 06:43:47 jlam Exp $ cc=${cc:-cc} ccflags="$ccflags -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE" -@@ -297,6 +298,7 @@ +@@ -310,6 +311,7 @@ d_getgrent_r='undef' d_getpwent_r='undef' d_random_r='undef' diff --git a/lang/perl5/patches/patch-cn b/lang/perl5/patches/patch-cn index 1c6cc1b5b92..01b8511194f 100644 --- a/lang/perl5/patches/patch-cn +++ b/lang/perl5/patches/patch-cn @@ -1,8 +1,8 @@ -$NetBSD: patch-cn,v 1.2 2008/10/10 21:58:43 he Exp $ +$NetBSD: patch-cn,v 1.3 2011/08/05 18:06:14 adam Exp $ --- hints/hpux.sh.orig 2007-12-18 11:47:07.000000000 +0100 +++ hints/hpux.sh -@@ -376,7 +376,7 @@ case "$ccisgcc" in +@@ -377,7 +377,7 @@ case "$ccisgcc" in *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;; esac #ld="$cc" @@ -11,7 +11,7 @@ $NetBSD: patch-cn,v 1.2 2008/10/10 21:58:43 he Exp $ cccdlflags='-fPIC' #lddlflags='-shared' lddlflags='-b' -@@ -434,7 +434,7 @@ case "$ccisgcc" in +@@ -435,7 +435,7 @@ case "$ccisgcc" in toke_cflags="$toke_cflags;optimize=\"$opt\"" regexec_cflags="optimize=\"$opt\"" fi diff --git a/lang/perl5/patches/patch-dm b/lang/perl5/patches/patch-dm deleted file mode 100644 index 4c04b63d36f..00000000000 --- a/lang/perl5/patches/patch-dm +++ /dev/null @@ -1,280 +0,0 @@ -$NetBSD: patch-dm,v 1.1 2010/09/23 21:47:48 sno Exp $ - -Update Math::BigInt to 1.95 - ---- cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm.orig 2010-09-05 15:14:32.000000000 +0000 -+++ cpan/Math-BigInt/lib/Math/BigInt/CalcEmu.pm -@@ -5,7 +5,7 @@ use strict; - # use warnings; # dont use warnings for older Perls - use vars qw/$VERSION/; - --$VERSION = '0.05'; -+$VERSION = '0.06'; - - package Math::BigInt; - ---- cpan/Math-BigInt/lib/Math/BigInt/Calc.pm.orig 2010-09-05 15:14:32.000000000 +0000 -+++ cpan/Math-BigInt/lib/Math/BigInt/Calc.pm -@@ -1,10 +1,10 @@ - package Math::BigInt::Calc; - --use 5.006; -+use 5.006002; - use strict; - # use warnings; # dont use warnings for older Perls - --our $VERSION = '0.52'; -+our $VERSION = '0.54'; - - # Package to store unsigned big integers in decimal and do math with them - -@@ -1264,7 +1264,7 @@ sub _is_even - - sub _is_odd - { -- # return true if arg is even -+ # return true if arg is odd - (($_[1]->[0] & 1)) <=> 0; - } - -@@ -1536,22 +1536,20 @@ sub _nok - # ref to array, return ref to array - my ($c,$n,$k) = @_; - -- # ( 7 ) 7! 7*6*5 * 4*3*2*1 7 * 6 * 5 -- # ( - ) = --------- = --------------- = --------- -- # ( 3 ) 3! (7-3)! 3*2*1 * 4*3*2*1 3 * 2 * 1 -+ # ( 7 ) 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7 -+ # ( - ) = --------- = --------------- = --------- = 5 * - * - -+ # ( 3 ) (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3 - -- # compute n - k + 2 (so we start with 5 in the example above) -+ if (!_is_zero($c,$k)) -+ { - my $x = _copy($c,$n); -- - _sub($c,$n,$k); -- if (!_is_one($c,$n)) -- { - _inc($c,$n); - my $f = _copy($c,$n); _inc($c,$f); # n = 5, f = 6, d = 2 - my $d = _two($c); -- while (_acmp($c,$f,$x) <= 0) # f < n ? -+ while (_acmp($c,$f,$x) <= 0) # f <= n ? - { -- # n = (n * f / d) == 5 * 6 / 2 => n == 3 -+ # n = (n * f / d) == 5 * 6 / 2 - $n = _mul($c,$n,$f); $n = _div($c,$n,$d); - # f = 7, d = 3 - _inc($c,$f); _inc($c,$d); ---- cpan/Math-BigInt/lib/Math/BigInt.pm.orig 2010-09-05 15:14:32.000000000 +0000 -+++ cpan/Math-BigInt/lib/Math/BigInt.pm -@@ -16,9 +16,9 @@ package Math::BigInt; - # underlying lib might change the reference! - - my $class = "Math::BigInt"; --use 5.006; -+use 5.006002; - --$VERSION = '1.89_01'; -+$VERSION = '1.95'; - - @ISA = qw(Exporter); - @EXPORT_OK = qw(objectify bgcd blcm); -@@ -1260,7 +1260,7 @@ sub blog - # objectify is costly, so avoid it - if ((!ref($_[0])) || (ref($_[0]) ne ref($_[1]))) - { -- ($self,$x,$base,@r) = objectify(1,ref($x),@_); -+ ($self,$x,$base,@r) = objectify(2,@_); - } - - return $x if $x->modify('blog'); -@@ -1320,18 +1320,17 @@ sub bnok - } - else - { -- # ( 7 ) 7! 7*6*5 * 4*3*2*1 7 * 6 * 5 -- # ( - ) = --------- = --------------- = --------- -- # ( 3 ) 3! (7-3)! 3*2*1 * 4*3*2*1 3 * 2 * 1 -- -- # compute n - k + 2 (so we start with 5 in the example above) -- my $z = $x - $y; -- if (!$z->is_one()) -+ # ( 7 ) 7! 1*2*3*4 * 5*6*7 5 * 6 * 7 6 7 -+ # ( - ) = --------- = --------------- = --------- = 5 * - * - -+ # ( 3 ) (7-3)! 3! 1*2*3*4 * 1*2*3 1 * 2 * 3 2 3 -+ -+ if (!$y->is_zero()) - { -+ my $z = $x - $y; - $z->binc(); - my $r = $z->copy(); $z->binc(); - my $d = $self->new(2); -- while ($z->bacmp($x) <= 0) # f < x ? -+ while ($z->bacmp($x) <= 0) # f <= x ? - { - $r->bmul($z); $r->bdiv($d); - $z->binc(); $d->binc(); -@@ -1375,11 +1374,11 @@ sub bexp - else { $x = $u; } - } - --sub blcm -- { -+sub blcm -+ { - # (BINT or num_str, BINT or num_str) return BINT - # does not modify arguments, but returns new object -- # Lowest Common Multiplicator -+ # Lowest Common Multiple - - my $y = shift; my ($x); - if (ref($y)) -@@ -1498,13 +1497,13 @@ sub is_even - - sub is_positive - { -- # return true when arg (BINT or num_str) is positive (>= 0) -+ # return true when arg (BINT or num_str) is positive (> 0) - my ($self,$x) = ref($_[0]) ? (undef,$_[0]) : objectify(1,@_); - - return 1 if $x->{sign} eq '+inf'; # +inf is positive -- -+ - # 0+ is neither positive nor negative -- ($x->{sign} eq '+' && !$x->is_zero()) ? 1 : 0; -+ ($x->{sign} eq '+' && !$x->is_zero()) ? 1 : 0; - } - - sub is_negative -@@ -3136,8 +3135,8 @@ Math::BigInt - Arbitrary size integer/fl - $x->is_one('-'); # if $x is -1 - $x->is_odd(); # if $x is odd - $x->is_even(); # if $x is even -- $x->is_pos(); # if $x >= 0 -- $x->is_neg(); # if $x < 0 -+ $x->is_pos(); # if $x > 0 -+ $x->is_neg(); # if $x < 0 - $x->is_inf($sign); # if $x is +inf, or -inf (sign is default '+') - $x->is_int(); # if $x is an integer (not a float) - -@@ -3212,14 +3211,14 @@ Math::BigInt - Arbitrary size integer/fl - - $x->bfloor(); # return integer less or equal than $x - $x->bceil(); # return integer greater or equal than $x -- -+ - # The following do not modify their arguments: - - # greatest common divisor (no OO style) - my $gcd = Math::BigInt::bgcd(@values); -- # lowest common multiplicator (no OO style) -- my $lcm = Math::BigInt::blcm(@values); -- -+ # lowest common multiple (no OO style) -+ my $lcm = Math::BigInt::blcm(@values); -+ - $x->length(); # return number of digits in number - ($xl,$f) = $x->length(); # length of number and length of fraction part, - # latter is always 0 digits long for BigInts -@@ -3393,15 +3392,15 @@ to the math operation as additional para - print scalar $x->copy()->bdiv($y, 2); # print 4300 - print scalar $x->copy()->bdiv($y)->bround(2); # print 4300 - --Please see the section about L<ACCURACY AND PRECISION> for further details. -+Please see the section about L<ACCURACY and PRECISION> for further details. - - Value must be greater than zero. Pass an undef value to disable it: - - $x->accuracy(undef); - Math::BigInt->accuracy(undef); - --Returns the current accuracy. For C<$x->accuracy()> it will return either the --local accuracy, or if not defined, the global. This means the return value -+Returns the current accuracy. For C<< $x->accuracy() >> it will return either -+the local accuracy, or if not defined, the global. This means the return value - represents the accuracy that will be in effect for $x: - - $y = Math::BigInt->new(1234567); # unrounded -@@ -3443,15 +3442,15 @@ In Math::BigInt, passing a negative numb - numbers have digits after the dot. In L<Math::BigFloat>, it will round all - results to P digits after the dot. - --Please see the section about L<ACCURACY AND PRECISION> for further details. -+Please see the section about L<ACCURACY and PRECISION> for further details. - - Pass an undef value to disable it: - - $x->precision(undef); - Math::BigInt->precision(undef); - --Returns the current precision. For C<$x->precision()> it will return either the --local precision of $x, or if not defined, the global. This means the return -+Returns the current precision. For C<< $x->precision() >> it will return either -+the local precision of $x, or if not defined, the global. This means the return - value represents the prevision that will be in effect for $x: - - $y = Math::BigInt->new(1234567); # unrounded -@@ -3509,7 +3508,7 @@ See L<Input> for more info on accepted i - - =head2 from_bin() - -- $x = Math::BigInt->from_oct("0x10011"); # input is binary -+ $x = Math::BigInt->from_bin("0x10011"); # input is binary - - =head2 bnan() - -@@ -3605,7 +3604,7 @@ Returns -1, 0, 1 or undef. - - $x->bacmp($y); - --Compares $x with $y while ignoring their. Returns -1, 0, 1 or undef. -+Compares $x with $y while ignoring their sign. Returns -1, 0, 1 or undef. - - =head2 sign() - -@@ -3912,8 +3911,8 @@ does change $x in BigFloat. - - =head2 blcm() - -- blcm(@values); # lowest common multiplicator (no OO style) -- -+ blcm(@values); # lowest common multiple (no OO style) -+ - head2 length() - - $x->length(); -@@ -4654,8 +4653,8 @@ directly. - - =item * - --The private object hash keys like C<$x->{sign}> may not be changed, but --additional keys can be added, like C<$x->{_custom}>. -+The private object hash keys like C<< $x->{sign} >> may not be changed, but -+additional keys can be added, like C<< $x->{_custom} >>. - - =item * - ---- cpan/Math-BigInt/lib/Math/BigFloat.pm.orig 2010-09-05 15:14:32.000000000 +0000 -+++ cpan/Math-BigInt/lib/Math/BigFloat.pm -@@ -12,8 +12,8 @@ package Math::BigFloat; - # _a : accuracy - # _p : precision - --$VERSION = '1.60'; --require 5.006; -+$VERSION = '1.62'; -+require 5.006002; - - require Exporter; - @ISA = qw/Math::BigInt/; -@@ -3905,7 +3905,7 @@ Some routines (C<is_odd()>, C<is_even()> - C<is_nan()>) return true or false, while others (C<bcmp()>, C<bacmp()>) - return either undef, <0, 0 or >0 and are suited for sort. - --Actual math is done by using the class defined with C<with => Class;> (which -+Actual math is done by using the class defined with C<< with => Class; >> (which - defaults to BigInts) to represent the mantissa and exponent. - - The sign C</^[+-]$/> is stored separately. The string 'NaN' is used to diff --git a/lang/perl5/patches/patch-ds b/lang/perl5/patches/patch-ds deleted file mode 100644 index 2e17eaa7c3f..00000000000 --- a/lang/perl5/patches/patch-ds +++ /dev/null @@ -1,109 +0,0 @@ -$NetBSD: patch-ds,v 1.1 2010/09/23 21:47:48 sno Exp $ - -Update of threads::shared to 1.33 - ---- dist/threads-shared/shared.pm.orig 2010-09-06 23:30:32.000000000 +0000 -+++ dist/threads-shared/shared.pm -@@ -7,7 +7,7 @@ use warnings; - - use Scalar::Util qw(reftype refaddr blessed); - --our $VERSION = '1.32'; -+our $VERSION = '1.33'; - my $XS_VERSION = $VERSION; - $VERSION = eval $VERSION; - -@@ -187,7 +187,7 @@ threads::shared - Perl extension for sha - - =head1 VERSION - --This document describes threads::shared version 1.32 -+This document describes threads::shared version 1.33 - - =head1 SYNOPSIS - -@@ -527,7 +527,8 @@ that the contents of hash-based objects - mentioned limitation. See F<examples/class.pl> (in the CPAN distribution of - this module) for how to create a class that supports object sharing. - --Does not support C<splice> on arrays! -+Does not support C<splice> on arrays. Does not support explicitly changing -+array lengths via $#array -- use C<push> and C<pop> instead. - - Taking references to the elements of shared arrays and hashes does not - autovivify the elements, and neither does slicing a shared array/hash over -@@ -588,7 +589,7 @@ L<threads::shared> Discussion Forum on C - L<http://www.cpanforum.com/dist/threads-shared> - - Annotated POD for L<threads::shared>: --L<http://annocpan.org/~JDHEDDEN/threads-shared-1.32/shared.pm> -+L<http://annocpan.org/~JDHEDDEN/threads-shared-1.33/shared.pm> - - Source repository: - L<http://code.google.com/p/threads-shared/> ---- dist/threads-shared/shared.xs.orig 2010-09-06 23:30:32.000000000 +0000 -+++ dist/threads-shared/shared.xs -@@ -864,29 +864,32 @@ sharedsv_elem_mg_FETCH(pTHX_ SV *sv, MAG - { - dTHXc; - SV *saggregate = S_sharedsv_from_obj(aTHX_ mg->mg_obj); -- SV** svp; -+ SV** svp = NULL; - - ENTER_LOCK; -- if (SvTYPE(saggregate) == SVt_PVAV) { -- assert ( mg->mg_ptr == 0 ); -- SHARED_CONTEXT; -- svp = av_fetch((AV*) saggregate, mg->mg_len, 0); -- } else { -- char *key = mg->mg_ptr; -- I32 len = mg->mg_len; -- assert ( mg->mg_ptr != 0 ); -- if (mg->mg_len == HEf_SVKEY) { -- STRLEN slen; -- key = SvPV((SV *)mg->mg_ptr, slen); -- len = slen; -- if (SvUTF8((SV *)mg->mg_ptr)) { -- len = -len; -+ if (saggregate) { /* During global destruction, underlying -+ aggregate may no longer exist */ -+ if (SvTYPE(saggregate) == SVt_PVAV) { -+ assert ( mg->mg_ptr == 0 ); -+ SHARED_CONTEXT; -+ svp = av_fetch((AV*) saggregate, mg->mg_len, 0); -+ } else { -+ char *key = mg->mg_ptr; -+ I32 len = mg->mg_len; -+ assert ( mg->mg_ptr != 0 ); -+ if (mg->mg_len == HEf_SVKEY) { -+ STRLEN slen; -+ key = SvPV((SV *)mg->mg_ptr, slen); -+ len = slen; -+ if (SvUTF8((SV *)mg->mg_ptr)) { -+ len = -len; -+ } - } -+ SHARED_CONTEXT; -+ svp = hv_fetch((HV*) saggregate, key, len, 0); - } -- SHARED_CONTEXT; -- svp = hv_fetch((HV*) saggregate, key, len, 0); -+ CALLER_CONTEXT; - } -- CALLER_CONTEXT; - if (svp) { - /* Exists in the array */ - if (SvROK(*svp)) { -@@ -957,6 +960,12 @@ sharedsv_elem_mg_DELETE(pTHX_ SV *sv, MA - dTHXc; - MAGIC *shmg; - SV *saggregate = S_sharedsv_from_obj(aTHX_ mg->mg_obj); -+ -+ /* Object may not exist during global destruction */ -+ if (! saggregate) { -+ return (0); -+ } -+ - ENTER_LOCK; - sharedsv_elem_mg_FETCH(aTHX_ sv, mg); - if ((shmg = mg_find(sv, PERL_MAGIC_shared_scalar))) diff --git a/lang/perl5/patches/patch-dt b/lang/perl5/patches/patch-dt deleted file mode 100644 index 2c33424dcfc..00000000000 --- a/lang/perl5/patches/patch-dt +++ /dev/null @@ -1,606 +0,0 @@ -$NetBSD: patch-dt,v 1.2 2011/01/30 21:35:12 wiz Exp $ - -update of threads to 1.78 - ---- dist/threads/t/thread.t.orig 2010-09-06 23:30:32.000000000 +0000 -+++ dist/threads/t/thread.t -@@ -20,7 +20,7 @@ BEGIN { - } - - $| = 1; -- print("1..34\n"); ### Number of tests that will be run ### -+ print("1..35\n"); ### Number of tests that will be run ### - }; - - print("ok 1 - Loaded\n"); -@@ -161,7 +161,7 @@ package main; - - # bugid #24165 - --run_perl(prog => 'use threads 1.75;' . -+run_perl(prog => 'use threads 1.78;' . - 'sub a{threads->create(shift)} $t = a sub{};' . - '$t->tid; $t->join; $t->tid', - nolib => ($ENV{PERL_CORE}) ? 0 : 1, -@@ -304,6 +304,26 @@ SKIP: { - "counts of calls to DESTROY"); - } - -+# Bug 73330 - Apply magic to arg to ->object() -+{ -+ my @tids :shared; -+ -+ my $thr = threads->create(sub { -+ lock(@tids); -+ push(@tids, threads->tid()); -+ cond_signal(@tids); -+ }); -+ -+ { -+ lock(@tids); -+ cond_wait(@tids) while (! @tids); -+ } -+ -+ ok(threads->object($_), 'Got threads object') foreach (@tids); -+ -+ $thr->join(); -+} -+ - exit(0); - - # EOF ---- dist/threads/t/exit.t.orig 2010-09-06 23:30:32.000000000 +0000 -+++ dist/threads/t/exit.t -@@ -48,7 +48,7 @@ my $rc = $thr->join(); - ok(! defined($rc), 'Exited: threads->exit()'); - - --run_perl(prog => 'use threads 1.75;' . -+run_perl(prog => 'use threads 1.78;' . - 'threads->exit(86);' . - 'exit(99);', - nolib => ($ENV{PERL_CORE}) ? 0 : 1, -@@ -98,7 +98,7 @@ $rc = $thr->join(); - ok(! defined($rc), 'Exited: $thr->set_thread_exit_only'); - - --run_perl(prog => 'use threads 1.75 qw(exit thread_only);' . -+run_perl(prog => 'use threads 1.78 qw(exit thread_only);' . - 'threads->create(sub { exit(99); })->join();' . - 'exit(86);', - nolib => ($ENV{PERL_CORE}) ? 0 : 1, -@@ -108,7 +108,7 @@ run_perl(prog => 'use threads 1.75 qw(ex - is($?>>8, 86, "'use threads 'exit' => 'thread_only'"); - } - --my $out = run_perl(prog => 'use threads 1.75;' . -+my $out = run_perl(prog => 'use threads 1.78;' . - 'threads->create(sub {' . - ' exit(99);' . - '});' . -@@ -124,7 +124,7 @@ my $out = run_perl(prog => 'use threads - like($out, '1 finished and unjoined', "exit(status) in thread"); - - --$out = run_perl(prog => 'use threads 1.75 qw(exit thread_only);' . -+$out = run_perl(prog => 'use threads 1.78 qw(exit thread_only);' . - 'threads->create(sub {' . - ' threads->set_thread_exit_only(0);' . - ' exit(99);' . -@@ -141,7 +141,7 @@ $out = run_perl(prog => 'use threads 1.7 - like($out, '1 finished and unjoined', "set_thread_exit_only(0)"); - - --run_perl(prog => 'use threads 1.75;' . -+run_perl(prog => 'use threads 1.78;' . - 'threads->create(sub {' . - ' $SIG{__WARN__} = sub { exit(99); };' . - ' die();' . ---- dist/threads/t/basic.t.orig 2010-09-06 23:30:32.000000000 +0000 -+++ dist/threads/t/basic.t -@@ -27,7 +27,7 @@ sub ok { - - BEGIN { - $| = 1; -- print("1..33\n"); ### Number of tests that will be run ### -+ print("1..34\n"); ### Number of tests that will be run ### - }; - - use threads; -@@ -153,14 +153,17 @@ $thrx = threads->object(); - ok(30, ! defined($thrx), 'No object'); - $thrx = threads->object(undef); - ok(31, ! defined($thrx), 'No object'); --$thrx = threads->object(0); --ok(32, ! defined($thrx), 'No object'); - - threads->import('stringify'); - $thr1 = threads->create(sub {}); --ok(33, "$thr1" eq $thr1->tid(), 'Stringify'); -+ok(32, "$thr1" eq $thr1->tid(), 'Stringify'); - $thr1->join(); - -+# ->object($tid) works like ->self() when $tid is thread's TID -+$thrx = threads->object(threads->tid()); -+ok(33, defined($thrx), 'Main thread object'); -+ok(34, 0 == $thrx->tid(), "Check so that tid for threads work for main thread"); -+ - exit(0); - - # EOF ---- dist/threads/threads.xs.orig 2010-09-06 23:30:32.000000000 +0000 -+++ dist/threads/threads.xs -@@ -52,7 +52,7 @@ typedef perl_os_thread pthread_t; - - /* Values for 'state' member */ - #define PERL_ITHR_DETACHED 1 /* Thread has been detached */ --#define PERL_ITHR_JOINED 2 /* Thread has been joined */ -+#define PERL_ITHR_JOINED 2 /* Thread is being / has been joined */ - #define PERL_ITHR_FINISHED 4 /* Thread has finished execution */ - #define PERL_ITHR_THREAD_EXIT_ONLY 8 /* exit() only exits current thread */ - #define PERL_ITHR_NONVIABLE 16 /* Thread creation failed */ -@@ -71,7 +71,7 @@ typedef struct _ithread { - int state; /* Detached, joined, finished, etc. */ - int gimme; /* Context of create */ - SV *init_function; /* Code to run */ -- SV *params; /* Args to pass function */ -+ AV *params; /* Args to pass function */ - #ifdef WIN32 - DWORD thr; /* OS's idea if thread id */ - HANDLE handle; /* OS's waitable handle */ -@@ -215,7 +215,7 @@ S_ithread_clear(pTHX_ ithread *thread) - S_ithread_set(aTHX_ thread); - - SvREFCNT_dec(thread->params); -- thread->params = Nullsv; -+ thread->params = NULL; - - if (thread->err) { - SvREFCNT_dec(thread->err); -@@ -487,7 +487,7 @@ S_ithread_run(void * arg) - PL_perl_destruct_level = 2; - - { -- AV *params = (AV *)SvRV(thread->params); -+ AV *params = thread->params; - int len = (int)av_len(params)+1; - int ii; - -@@ -675,10 +675,13 @@ S_ithread_create( - IV stack_size, - int gimme, - int exit_opt, -- SV *params) -+ SV **params_start, -+ SV **params_end) - { - ithread *thread; - ithread *current_thread = S_ithread_get(aTHX); -+ AV *params; -+ SV **array; - - #if PERL_VERSION <= 8 && PERL_SUBVERSION <= 7 - SV **tmps_tmp = PL_tmps_stack; -@@ -781,7 +784,7 @@ S_ithread_create( - * they are created - */ - SvREFCNT_dec(PL_endav); -- PL_endav = newAV(); -+ PL_endav = NULL; - - clone_param.flags = 0; - if (SvPOK(init_function)) { -@@ -792,8 +795,13 @@ S_ithread_create( - SvREFCNT_inc(sv_dup(init_function, &clone_param)); - } - -- thread->params = sv_dup(params, &clone_param); -- SvREFCNT_inc_void(thread->params); -+ thread->params = params = newAV(); -+ av_extend(params, params_end - params_start - 1); -+ AvFILLp(params) = params_end - params_start - 1; -+ array = AvARRAY(params); -+ while (params_start < params_end) { -+ *array++ = SvREFCNT_inc(sv_dup(*params_start++, &clone_param)); -+ } - - #if PERL_VERSION <= 8 && PERL_SUBVERSION <= 7 - /* The code below checks that anything living on the tmps stack and -@@ -908,7 +916,6 @@ S_ithread_create( - #endif - /* Must unlock mutex for destruct call */ - MUTEX_UNLOCK(&MY_POOL.create_destruct_mutex); -- sv_2mortal(params); - thread->state |= PERL_ITHR_NONVIABLE; - S_ithread_free(aTHX_ thread); /* Releases MUTEX */ - #ifndef WIN32 -@@ -924,7 +931,6 @@ S_ithread_create( - } - - MY_POOL.running_threads++; -- sv_2mortal(params); - return (thread); - } - -@@ -942,7 +948,6 @@ ithread_create(...) - char *classname; - ithread *thread; - SV *function_to_call; -- AV *params; - HV *specs; - IV stack_size; - int context; -@@ -950,7 +955,8 @@ ithread_create(...) - SV *thread_exit_only; - char *str; - int idx; -- int ii; -+ SV **args_start; -+ SV **args_end; - dMY_POOL; - CODE: - if ((items >= 2) && SvROK(ST(1)) && SvTYPE(SvRV(ST(1)))==SVt_PVHV) { -@@ -988,18 +994,19 @@ ithread_create(...) - - context = -1; - if (specs) { -+ SV **svp; - /* stack_size */ -- if (hv_exists(specs, "stack", 5)) { -- stack_size = SvIV(*hv_fetch(specs, "stack", 5, 0)); -- } else if (hv_exists(specs, "stacksize", 9)) { -- stack_size = SvIV(*hv_fetch(specs, "stacksize", 9, 0)); -- } else if (hv_exists(specs, "stack_size", 10)) { -- stack_size = SvIV(*hv_fetch(specs, "stack_size", 10, 0)); -+ if ((svp = hv_fetch(specs, "stack", 5, 0))) { -+ stack_size = SvIV(*svp); -+ } else if ((svp = hv_fetch(specs, "stacksize", 9, 0))) { -+ stack_size = SvIV(*svp); -+ } else if ((svp = hv_fetch(specs, "stack_size", 10, 0))) { -+ stack_size = SvIV(*svp); - } - - /* context */ -- if (hv_exists(specs, "context", 7)) { -- str = (char *)SvPV_nolen(*hv_fetch(specs, "context", 7, 0)); -+ if ((svp = hv_fetch(specs, "context", 7, 0))) { -+ str = (char *)SvPV_nolen(*svp); - switch (*str) { - case 'a': - case 'A': -@@ -1018,27 +1025,27 @@ ithread_create(...) - default: - Perl_croak(aTHX_ "Invalid context: %s", str); - } -- } else if (hv_exists(specs, "array", 5)) { -- if (SvTRUE(*hv_fetch(specs, "array", 5, 0))) { -+ } else if ((svp = hv_fetch(specs, "array", 5, 0))) { -+ if (SvTRUE(*svp)) { - context = G_ARRAY; - } -- } else if (hv_exists(specs, "list", 4)) { -- if (SvTRUE(*hv_fetch(specs, "list", 4, 0))) { -+ } else if ((svp = hv_fetch(specs, "list", 4, 0))) { -+ if (SvTRUE(*svp)) { - context = G_ARRAY; - } -- } else if (hv_exists(specs, "scalar", 6)) { -- if (SvTRUE(*hv_fetch(specs, "scalar", 6, 0))) { -+ } else if ((svp = hv_fetch(specs, "scalar", 6, 0))) { -+ if (SvTRUE(*svp)) { - context = G_SCALAR; - } -- } else if (hv_exists(specs, "void", 4)) { -- if (SvTRUE(*hv_fetch(specs, "void", 4, 0))) { -+ } else if ((svp = hv_fetch(specs, "void", 4, 0))) { -+ if (SvTRUE(*svp)) { - context = G_VOID; - } - } - - /* exit => thread_only */ -- if (hv_exists(specs, "exit", 4)) { -- str = (char *)SvPV_nolen(*hv_fetch(specs, "exit", 4, 0)); -+ if ((svp = hv_fetch(specs, "exit", 4, 0))) { -+ str = (char *)SvPV_nolen(*svp); - exit_opt = (*str == 't' || *str == 'T') - ? PERL_ITHR_THREAD_EXIT_ONLY : 0; - } -@@ -1050,11 +1057,11 @@ ithread_create(...) - } - - /* Function args */ -- params = newAV(); -+ args_start = &ST(idx + 2); - if (items > 2) { -- for (ii=2; ii < items ; ii++) { -- av_push(params, SvREFCNT_inc(ST(idx+ii))); -- } -+ args_end = &ST(idx + items); -+ } else { -+ args_end = args_start; - } - - /* Create thread */ -@@ -1063,7 +1070,8 @@ ithread_create(...) - stack_size, - context, - exit_opt, -- newRV_noinc((SV*)params)); -+ args_start, -+ args_end); - if (! thread) { - XSRETURN_UNDEF; /* Mutex already unlocked */ - } -@@ -1236,7 +1244,7 @@ ithread_join(...) - PerlInterpreter *other_perl; - CLONE_PARAMS clone_params; - -- params_copy = (AV *)SvRV(thread->params); -+ params_copy = thread->params; - other_perl = thread->interp; - clone_params.stashes = newAV(); - clone_params.flags = CLONEf_JOIN_IN; -@@ -1337,6 +1345,7 @@ ithread_kill(...) - ithread *thread; - char *sig_name; - IV signal; -+ int no_handler = 1; - CODE: - /* Must have safe signals */ - if (PL_signals & PERL_SIGNALS_UNSAFE_FLAG) { -@@ -1366,11 +1375,21 @@ ithread_kill(...) - MUTEX_LOCK(&thread->mutex); - if (thread->interp) { - dTHXa(thread->interp); -- PL_psig_pend[signal]++; -- PL_sig_pending = 1; -+ if (PL_psig_pend && PL_psig_ptr[signal]) { -+ PL_psig_pend[signal]++; -+ PL_sig_pending = 1; -+ no_handler = 0; -+ } -+ } else { -+ /* Ignore signal to terminated thread */ -+ no_handler = 0; - } - MUTEX_UNLOCK(&thread->mutex); - -+ if (no_handler) { -+ Perl_croak(aTHX_ "Signal %s received in thread %"UVuf", but no signal handler set.", sig_name, thread->tid); -+ } -+ - /* Return the thread to allow for method chaining */ - ST(0) = ST(0); - /* XSRETURN(1); - implied */ -@@ -1409,6 +1428,7 @@ void - ithread_object(...) - PREINIT: - char *classname; -+ SV *arg; - UV tid; - ithread *thread; - int state; -@@ -1421,34 +1441,47 @@ ithread_object(...) - } - classname = (char *)SvPV_nolen(ST(0)); - -- if ((items < 2) || ! SvOK(ST(1))) { -+ /* Turn $tid from PVLV to SV if needed (bug #73330) */ -+ arg = ST(1); -+ SvGETMAGIC(arg); -+ -+ if ((items < 2) || ! SvOK(arg)) { - XSRETURN_UNDEF; - } - - /* threads->object($tid) */ -- tid = SvUV(ST(1)); -+ tid = SvUV(arg); - -- /* Walk through threads list */ -- MUTEX_LOCK(&MY_POOL.create_destruct_mutex); -- for (thread = MY_POOL.main_thread.next; -- thread != &MY_POOL.main_thread; -- thread = thread->next) -- { -- /* Look for TID */ -- if (thread->tid == tid) { -- /* Ignore if detached or joined */ -- MUTEX_LOCK(&thread->mutex); -- state = thread->state; -- MUTEX_UNLOCK(&thread->mutex); -- if (! (state & PERL_ITHR_UNCALLABLE)) { -- /* Put object on stack */ -- ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE)); -- have_obj = 1; -+ /* If current thread wants its own object, then behave the same as -+ ->self() */ -+ thread = S_ithread_get(aTHX); -+ if (thread->tid == tid) { -+ ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE)); -+ have_obj = 1; -+ -+ } else { -+ /* Walk through threads list */ -+ MUTEX_LOCK(&MY_POOL.create_destruct_mutex); -+ for (thread = MY_POOL.main_thread.next; -+ thread != &MY_POOL.main_thread; -+ thread = thread->next) -+ { -+ /* Look for TID */ -+ if (thread->tid == tid) { -+ /* Ignore if detached or joined */ -+ MUTEX_LOCK(&thread->mutex); -+ state = thread->state; -+ MUTEX_UNLOCK(&thread->mutex); -+ if (! (state & PERL_ITHR_UNCALLABLE)) { -+ /* Put object on stack */ -+ ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE)); -+ have_obj = 1; -+ } -+ break; - } -- break; - } -+ MUTEX_UNLOCK(&MY_POOL.create_destruct_mutex); - } -- MUTEX_UNLOCK(&MY_POOL.create_destruct_mutex); - - if (! have_obj) { - XSRETURN_UNDEF; ---- dist/threads/threads.pm.orig 2010-09-06 23:30:32.000000000 +0000 -+++ dist/threads/threads.pm -@@ -5,7 +5,7 @@ use 5.008; - use strict; - use warnings; - --our $VERSION = '1.75'; -+our $VERSION = '1.78'; - my $XS_VERSION = $VERSION; - $VERSION = eval $VERSION; - -@@ -134,7 +134,7 @@ threads - Perl interpreter-based threads - - =head1 VERSION - --This document describes threads version 1.75 -+This document describes threads version 1.78 - - =head1 SYNOPSIS - -@@ -361,9 +361,10 @@ key) will cause its ID to be used as the - =item threads->object($tid) - - This will return the I<threads> object for the I<active> thread associated --with the specified thread ID. Returns C<undef> if there is no thread --associated with the TID, if the thread is joined or detached, if no TID is --specified or if the specified TID is undef. -+with the specified thread ID. If C<$tid> is the value for the current thread, -+then this call works the same as C<-E<gt>self()>. Otherwise, returns C<undef> -+if there is no thread associated with the TID, if the thread is joined or -+detached, if no TID is specified or if the specified TID is undef. - - =item threads->yield() - -@@ -902,6 +903,18 @@ other threads are started afterwards. - If the above does not work, or is not adequate for your application, then file - a bug report on L<http://rt.cpan.org/Public/> against the problematic module. - -+=item Memory consumption -+ -+On most systems, frequent and continual creation and destruction of threads -+can lead to ever-increasing growth in the memory footprint of the Perl -+interpreter. While it is simple to just launch threads and then -+C<-E<gt>join()> or C<-E<gt>detach()> them, for long-lived applications, it is -+better to maintain a pool of threads, and to reuse them for the work needed, -+using L<queues|Thread::Queue> to notify threads of pending work. The CPAN -+distribution of this module contains a simple example -+(F<examples/pool_reuse.pl>) illustrating the creation, use and monitoring of a -+pool of I<reusable> threads. -+ - =item Current working directory - - On all platforms except MSWin32, the setting for the current working directory -@@ -975,7 +988,7 @@ involved, you may be able to work around - version of the object (e.g., using L<Data::Dumper> or L<Storable>), and then - reconstituting it in the joining thread. If you're using Perl 5.10.0 or - later, and if the class supports L<shared objects|threads::shared/"OBJECTS">, --you can pass them via L<shared queues| Thread::Queue>. -+you can pass them via L<shared queues|Thread::Queue>. - - =item END blocks in threads - -@@ -992,6 +1005,12 @@ mutexes that are needed to control funct - For this reason, the use of C<END> blocks in threads is B<strongly> - discouraged. - -+=item Open directory handles -+ -+Spawning threads with open directory handles (see -+L<opendir|perlfunc/"opendir DIRHANDLE,EXPR">) will crash the interpreter. -+L<[perl #75154]|http://rt.perl.org/rt3/Public/Bug/Display.html?id=75154> -+ - =item Perl Bugs and the CPAN Version of L<threads> - - Support for threads extends beyond the code in this module (i.e., -@@ -1021,7 +1040,7 @@ L<threads> Discussion Forum on CPAN: - L<http://www.cpanforum.com/dist/threads> - - Annotated POD for L<threads>: --L<http://annocpan.org/~JDHEDDEN/threads-1.75/threads.pm> -+L<http://annocpan.org/~JDHEDDEN/threads-1.78/threads.pm> - - Source repository: - L<http://code.google.com/p/threads-shared/> ---- /dev/null 2010-09-23 21:51:28.000000000 +0200 -+++ dist/threads/t/kill2.t 2010-09-23 21:47:56.000000000 +0200 -@@ -0,0 +1,68 @@ -+use strict; -+use warnings; -+ -+BEGIN { -+ require($ENV{PERL_CORE} ? '../../t/test.pl' : './t/test.pl'); -+ -+ use Config; -+ if (! $Config{'useithreads'}) { -+ skip_all(q/Perl not compiled with 'useithreads'/); -+ } -+} -+ -+use ExtUtils::testlib; -+ -+use threads; -+ -+BEGIN { -+ $| = 1; -+ print("1..3\n"); ### Number of tests that will be run ### -+}; -+ -+fresh_perl_is(<<'EOI', 'ok', { }, 'No signal handler in thread'); -+ use threads; -+ my $test = sub { -+ while(1) { sleep(1) } -+ }; -+ my $thr = threads->create($test); -+ threads->yield(); -+ $thr->detach(); -+ eval { -+ $thr->kill('STOP'); -+ }; -+ print(($@ =~ /no signal handler set/) ? 'ok' : 'not ok'); -+EOI -+ -+fresh_perl_is(<<'EOI', 'ok', { }, 'Handler to signal mismatch'); -+ use threads; -+ my $test = sub { -+ $SIG{'TERM'} = sub { threads->exit() }; -+ while(1) { sleep(1) } -+ }; -+ my $thr = threads->create($test); -+ threads->yield(); -+ $thr->detach(); -+ eval { -+ $thr->kill('STOP'); -+ }; -+ print(($@ =~ /no signal handler set/) ? 'ok' : 'not ok'); -+EOI -+ -+fresh_perl_is(<<'EOI', 'ok', { }, 'Handler and signal match'); -+ use threads; -+ my $test = sub { -+ $SIG{'STOP'} = sub { threads->exit() }; -+ while(1) { sleep(1) } -+ }; -+ my $thr = threads->create($test); -+ threads->yield(); -+ $thr->detach(); -+ eval { -+ $thr->kill('STOP'); -+ }; -+ print((! $@) ? 'ok' : 'not ok'); -+EOI -+ -+exit(0); -+ -+# EOF diff --git a/lang/perl5/patches/patch-hints_darwin.sh b/lang/perl5/patches/patch-hints_darwin.sh deleted file mode 100644 index 9398028274f..00000000000 --- a/lang/perl5/patches/patch-hints_darwin.sh +++ /dev/null @@ -1,19 +0,0 @@ -$NetBSD: patch-hints_darwin.sh,v 1.1 2011/08/05 13:12:18 ryoon Exp $ - -Patch from http://perl5.git.perl.org/perl.git/commitdiff/60a655a1ee05c577268377c1135ffabc34dbff43 - ---- /usr/tmp/lang/perl5/work/perl-5.12.2/hints/darwin.sh.orig 2010-09-05 15:14:33.000000000 +0000 -+++ /usr/tmp/lang/perl5/work/perl-5.12.2/hints/darwin.sh -@@ -68,8 +68,10 @@ esac - # Since we can build fat, the archname doesn't need the processor type - archname='darwin'; - --# nm works. --usenm='true'; -+# nm isn't known to work after Snow Leopard and XCode 4; testing with OS X 10.5 -+# and Xcode 3 shows a working nm, but pretending it doesn't work produces no -+# problems. -+usenm='false'; - - case "$optimize" in - '') diff --git a/lang/perl5/patches/patch-pp.c b/lang/perl5/patches/patch-pp.c deleted file mode 100644 index 23260c2c1b9..00000000000 --- a/lang/perl5/patches/patch-pp.c +++ /dev/null @@ -1,34 +0,0 @@ -$NetBSD: patch-pp.c,v 1.1 2011/04/07 04:03:58 taca Exp $ - -* Fix for http://secunia.com/advisories/43921/ from perl's git repository - (539689e74a). - ---- pp.c.orig 2010-09-06 23:30:32.000000000 +0000 -+++ pp.c -@@ -3949,6 +3949,8 @@ PP(pp_ucfirst) - SvCUR_set(dest, need - 1); - } - } -+ if (dest != source && SvTAINTED(source)) -+ SvTAINT(dest); - SvSETMAGIC(dest); - RETURN; - } -@@ -4222,6 +4224,8 @@ PP(pp_uc) - SvCUR_set(dest, d - (U8*)SvPVX_const(dest)); - } - } /* End of isn't utf8 */ -+ if (dest != source && SvTAINTED(source)) -+ SvTAINT(dest); - SvSETMAGIC(dest); - RETURN; - } -@@ -4433,6 +4437,8 @@ PP(pp_lc) - SvCUR_set(dest, d - (U8*)SvPVX_const(dest)); - } - } -+ if (dest != source && SvTAINTED(source)) -+ SvTAINT(dest); - SvSETMAGIC(dest); - RETURN; - } diff --git a/lang/perl5/patches/patch-ta b/lang/perl5/patches/patch-ta index 84d44ba1136..59d008268b7 100644 --- a/lang/perl5/patches/patch-ta +++ b/lang/perl5/patches/patch-ta @@ -1,10 +1,10 @@ -$NetBSD: patch-ta,v 1.3 2009/12/14 06:36:57 seb Exp $ +$NetBSD: patch-ta,v 1.4 2011/08/05 18:06:15 adam Exp $ On NetBSD, filesystems may be mounted with the noatime option. --- t/io/fs.t.orig 2009-12-06 21:03:51.000000000 +0000 +++ t/io/fs.t 2009-12-06 21:04:34.000000000 +0000 -@@ -281,15 +281,15 @@ +@@ -275,15 +275,15 @@ is( $atime, 500000001, 'atime' ); is( $mtime, 500000000 + $delta, 'mtime' ); } diff --git a/lang/perl5/patches/patch-zc b/lang/perl5/patches/patch-zc deleted file mode 100644 index aae3f5d1183..00000000000 --- a/lang/perl5/patches/patch-zc +++ /dev/null @@ -1,45 +0,0 @@ -$NetBSD: patch-zc,v 1.5 2011/01/30 21:35:32 wiz Exp $ - ---- Policy_sh.SH.orig 2010-04-26 08:08:20.000000000 +0000 -+++ Policy_sh.SH 2010-05-27 09:34:44.000000000 +0000 -@@ -165,7 +165,7 @@ - - # We don't know what to do with these yet. - html1dir) dflt='' ;; -- htm31dir) dflt='' ;; -+ html3dir) dflt='' ;; - - # Directories for site-specific add-on files - sitebin) dflt=$siteprefix/bin ;; -@@ -184,11 +184,11 @@ - ;; - sitearch) dflt="$sitelib/$archname" ;; - -- siteman1) dflt="$siteprefix/man/man1" ;; -- siteman3) dflt="$siteprefix/man/man3" ;; -+ siteman1dir) dflt="$siteprefix/man/man1" ;; -+ siteman3dir) dflt="$siteprefix/man/man3" ;; - # We don't know what to do with these yet. -- sitehtml1) dflt='' ;; -- sitehtm31dir) dflt='' ;; -+ sitehtml1dir) dflt='' ;; -+ sitehtml3dir) dflt='' ;; - - # Directories for vendor-supplied add-on files - # These are all usually empty. -@@ -213,11 +213,11 @@ - ;; - vendorarch) dflt="$vendorlib/$archname" ;; - -- vendorman1) dflt="$vendorprefix/man/man1" ;; -- vendorman3) dflt="$vendorprefix/man/man3" ;; -+ vendorman1dir) dflt="$vendorprefix/man/man1" ;; -+ vendorman3dir) dflt="$vendorprefix/man/man3" ;; - # We don't know what to do with these yet. -- vendorhtml1) dflt='' ;; -- vendorhtm3) dflt='' ;; -+ vendorhtml1dir) dflt='' ;; -+ vendorhtml3dir) dflt='' ;; - - esac # End of vendorprefix != '' - fi diff --git a/lang/perl5/patches/patch-ze b/lang/perl5/patches/patch-ze index 56e54fea8d8..99a51229df9 100644 --- a/lang/perl5/patches/patch-ze +++ b/lang/perl5/patches/patch-ze @@ -1,10 +1,21 @@ -$NetBSD: patch-ze,v 1.2 2011/01/30 21:35:24 wiz Exp $ +$NetBSD: patch-ze,v 1.3 2011/08/05 18:06:15 adam Exp $ Fixes compilation problem on Solaris/SPARC. --- perl.h.orig 2009-07-06 11:18:58.000000000 +0000 +++ perl.h -@@ -1435,6 +1435,10 @@ EXTERN_C char *crypt(const char *, const +@@ -1397,8 +1397,8 @@ EXTERN_C char *crypt(const char *, const + # endif + #else + # ifdef HAS_SYS_ERRLIST +- extern int sys_nerr; +- extern char *sys_errlist[]; ++ extern const int sys_nerr; ++ extern const char *const sys_errlist[]; + # ifndef Strerror + # define Strerror(e) \ + ((e) < 0 || (e) >= sys_nerr ? "(unknown)" : sys_errlist[e]) +@@ -1476,6 +1476,10 @@ EXTERN_C char *crypt(const char *, const */ #if defined(I_SYSMODE) && !defined(PERL_MICRO) diff --git a/lang/perl5/version.mk b/lang/perl5/version.mk index 506852c9a01..d6a666e153f 100644 --- a/lang/perl5/version.mk +++ b/lang/perl5/version.mk @@ -1,4 +1,4 @@ -# $NetBSD: version.mk,v 1.3 2005/05/27 22:15:53 jlam Exp $ +# $NetBSD: version.mk,v 1.4 2011/08/05 18:06:14 adam Exp $ # # Distill the PERL5_REQD list into a single value that is the highest # version of Perl required. @@ -25,7 +25,7 @@ _PERL5_PKG_SATISFIES_DEP!= \ . endif . endfor . if !empty(_PERL5_PKG_SATISFIES_DEP:M[yY][eE][sS]) -_PERL5_REQD= ${_version_} +_PERL5_REQD= ${_version_} . endif . endif . endfor |