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.
This commit is contained in:
parent
20ae37f03c
commit
91ce9f644c
22 changed files with 75 additions and 1192 deletions
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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]*)
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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)))
|
|
@ -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
|
|
@ -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
|
||||
'')
|
|
@ -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;
|
||||
}
|
|
@ -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' );
|
||||
}
|
||||
|
|
|
@ -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
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue