r64822 - in /trunk/libmath-bigint-gmp-perl: CHANGES GMP.xs MANIFEST META.yml SIGNATURE debian/changelog inc/Devel/CheckLib.pm lib/Math/BigInt/GMP.pm t/pod_cov.t t/storable.t t/threads.t typemap

gregoa at users.alioth.debian.org gregoa at users.alioth.debian.org
Fri Nov 12 22:17:41 UTC 2010


Author: gregoa
Date: Fri Nov 12 22:17:35 2010
New Revision: 64822

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=64822
Log:
* New upstream release 1.32.

Added:
    trunk/libmath-bigint-gmp-perl/t/storable.t
      - copied unchanged from r64821, branches/upstream/libmath-bigint-gmp-perl/current/t/storable.t
Modified:
    trunk/libmath-bigint-gmp-perl/CHANGES
    trunk/libmath-bigint-gmp-perl/GMP.xs
    trunk/libmath-bigint-gmp-perl/MANIFEST
    trunk/libmath-bigint-gmp-perl/META.yml
    trunk/libmath-bigint-gmp-perl/SIGNATURE
    trunk/libmath-bigint-gmp-perl/debian/changelog
    trunk/libmath-bigint-gmp-perl/inc/Devel/CheckLib.pm
    trunk/libmath-bigint-gmp-perl/lib/Math/BigInt/GMP.pm
    trunk/libmath-bigint-gmp-perl/t/pod_cov.t
    trunk/libmath-bigint-gmp-perl/t/threads.t
    trunk/libmath-bigint-gmp-perl/typemap

Modified: trunk/libmath-bigint-gmp-perl/CHANGES
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/CHANGES?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/CHANGES (original)
+++ trunk/libmath-bigint-gmp-perl/CHANGES Fri Nov 12 22:17:35 2010
@@ -1,4 +1,27 @@
-2010-09-14 v1.06 rafl 5558 tests  DEVELOPMENT RELEASE
+2010-09-23 v1.32 rafl 5559 tests
+  * Re-upload 1.31 as a stable release without further changes.
+
+2010-09-21 v1.31 rafl 5559 tests  DEVELOPMENT RELEASE
+  * Add hooks for Storable (de-)serialisation.
+  * Avoid failure in the destructor if someone blessed nonsense into our class.
+
+2010-09-20 v1.30 rafl 5558 tests
+  * Re-upload 1.29 as a stable release without further changes.
+
+2010-09-19 v1.29 rafl 5558 tests  DEVELOPMENT RELEASE
+  * Attempt to fix a bug in the bundled version Devel::CheckLib.
+    It used to ignore @Config{qw(ccflags ldflags)} and only tried to look for
+    headers and libraries with the compiler's default include- and lib-paths as
+    well as those explicitly asked for by the user.
+
+2010-09-17 v1.28 rafl 5558 tests
+  * Re-upload 1.27 without further changes as a stable release.
+
+2010-09-15 v1.27 rafl 5558 tests  DEVELOPMENT RELEASE
+  * Try to support perls older than 5.8.8 again.
+    Tested with 5.8.7 and 5.6.2.
+
+2010-09-14 v1.26 rafl 5558 tests  DEVELOPMENT RELEASE
   * Error out early if libgmp or gmp.h are missing.
   * Clone Math::BigInt::GMP instances on thread cloning.
     This should make the module threadsafe.

Modified: trunk/libmath-bigint-gmp-perl/GMP.xs
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/GMP.xs?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/GMP.xs (original)
+++ trunk/libmath-bigint-gmp-perl/GMP.xs Fri Nov 12 22:17:35 2010
@@ -3,9 +3,35 @@
 #include "XSUB.h"
 #include "gmp.h"
 
+typedef mpz_t mpz_t_ornull;
+
 /* for Perl prior to v5.7.1 */
 #ifndef SvUOK
 #  define SvUOK(sv) SvIOK_UV(sv)
+#endif
+
+#ifndef PERL_UNUSED_ARG
+#  define PERL_UNUSED_ARG(x) ((void)x)
+#endif
+
+#ifndef gv_stashpvs
+#  define gv_stashpvs(name, create) gv_stashpvn(name, sizeof(name) - 1, create)
+#endif
+
+#ifndef PERL_MAGIC_ext
+#  define PERL_MAGIC_ext '~'
+#endif
+
+#if defined(USE_ITHREADS) && defined(MGf_DUP)
+#  define GMP_THREADSAFE 1
+#else
+#  define GMP_THREADSAFE 0
+#endif
+
+#ifdef sv_magicext
+#  define GMP_HAS_MAGICEXT 1
+#else
+#  define GMP_HAS_MAGICEXT 0
 #endif
 
 #define NEW_GMP_MPZ_T	   RETVAL = malloc (sizeof(mpz_t));
@@ -14,7 +40,7 @@
 #define GMP_GET_ARG_1 	   TEMP_1 = mpz_from_sv(y);
 #define GMP_GET_ARGS_0_1   GMP_GET_ARG_0; GMP_GET_ARG_1;
 
-#ifdef USE_ITHREADS
+#if GMP_THREADSAFE
 STATIC int
 dup_gmp_mpz (pTHX_ MAGIC *mg, CLONE_PARAMS *params)
 {
@@ -27,65 +53,100 @@
 }
 #endif
 
+#if GMP_HAS_MAGICEXT
 STATIC MGVTBL vtbl_gmp = {
   NULL, /* get */
   NULL, /* set */
   NULL, /* len */
   NULL, /* clear */
   NULL, /* free */
-#ifdef MGf_COPY
+# ifdef MGf_COPY
   NULL, /* copy */
-#endif
-#ifdef MGf_DUP
-# ifdef USE_ITHREADS
+# endif
+# ifdef MGf_DUP
+#  if GMP_THREADSAFE
   dup_gmp_mpz,
-# else
+#  else
   NULL, /* dup */
+#  endif
 # endif
-#endif
-#ifdef MGf_LOCAL
+# ifdef MGf_LOCAL
   NULL, /* local */
-#endif
+# endif
 };
+#endif
+
+STATIC void
+attach_mpz_to_sv (SV *sv, mpz_t *mpz)
+{
+#if GMP_THREADSAFE
+  MAGIC *mg;
+#endif
+#if !GMP_HAS_MAGICEXT
+  SV *refaddr = sv_2mortal(newSViv(PTR2IV(mpz)));
+#endif
+
+  sv_bless(sv, gv_stashpvs("Math::BigInt::GMP", 0));
+
+#if GMP_THREADSAFE && GMP_HAS_MAGICEXT
+  mg =
+#endif
+#if GMP_HAS_MAGICEXT
+    sv_magicext(SvRV(sv), NULL, PERL_MAGIC_ext, &vtbl_gmp, (void *)mpz, 0);
+#else
+  sv_magic(SvRV(sv), NULL, PERL_MAGIC_ext, (void *)refaddr, HEf_SVKEY);
+#endif
+
+#if GMP_THREADSAFE && GMP_HAS_MAGICEXT
+  mg->mg_flags |= MGf_DUP;
+#endif
+}
 
 STATIC SV *
 sv_from_mpz (mpz_t *mpz)
 {
   SV *sv = newSV(0);
   SV *obj = newRV_noinc(sv);
-#ifdef USE_ITHREADS
-  MAGIC *mg;
-#endif
-
-  sv_bless(obj, gv_stashpvs("Math::BigInt::GMP", 0));
-
-#ifdef USE_ITHREADS
-  mg =
-#endif
-    sv_magicext(sv, NULL, PERL_MAGIC_ext, &vtbl_gmp, (void *)mpz, 0);
-
-#ifdef USE_ITHREADS
-  mg->mg_flags |= MGf_DUP;
-#endif
+
+  attach_mpz_to_sv(obj, mpz);
 
   return obj;
 }
 
-mpz_t *
+STATIC mpz_t *
+mpz_from_sv_nofail (SV *sv)
+{
+  MAGIC *mg;
+
+  if (!sv_derived_from(sv, "Math::BigInt::GMP"))
+    croak("not of type Math::BigInt::GMP");
+
+  for (mg = SvMAGIC(SvRV(sv)); mg; mg = mg->mg_moremagic) {
+    if (mg->mg_type == PERL_MAGIC_ext
+#if GMP_HAS_MAGICEXT
+        && mg->mg_virtual == &vtbl_gmp
+#endif
+        ) {
+#if GMP_HAS_MAGICEXT
+      return (mpz_t *)mg->mg_ptr;
+#else
+      return INT2PTR(mpz_t *, SvIV((SV *)mg->mg_ptr));
+#endif
+    }
+  }
+
+  return (mpz_t *)NULL;
+}
+
+STATIC mpz_t *
 mpz_from_sv (SV *sv)
 {
-  MAGIC *mg;
-
-  if (!sv_derived_from(sv, "Math::BigInt::GMP"))
-    croak("not of type Math::BigInt::GMP");
-
-  for (mg = SvMAGIC(SvRV(sv)); mg; mg = mg->mg_moremagic) {
-    if (mg->mg_type == PERL_MAGIC_ext && mg->mg_virtual == &vtbl_gmp) {
-      return (mpz_t *)mg->mg_ptr;
-    }
-  }
-
-  croak("failed to fetch mpz pointer");
+  mpz_t *mpz;
+
+  if (!(mpz = mpz_from_sv_nofail(sv)))
+    croak("failed to fetch mpz pointer");
+
+  return mpz;
 }
 
 /*
@@ -97,7 +158,7 @@
 PROTOTYPES: ENABLE
 
 ##############################################################################
-# _new() 
+# _new()
 
 mpz_t *
 _new(Class,x)
@@ -118,6 +179,25 @@
     RETVAL
 
 ##############################################################################
+# _new_attach()
+
+void
+_new_attach(Class,sv,x)
+    SV *sv
+    SV *x
+  PREINIT:
+    mpz_t *mpz;
+  CODE:
+    mpz = malloc (sizeof(mpz_t));
+    if (SvUOK(x)) {
+      mpz_init_set_si(*mpz, (UV)SvUV(x));
+    }
+    else {
+      mpz_init_set_str(*mpz, SvPV_nolen(x), 10);
+    }
+    attach_mpz_to_sv(sv, mpz);
+
+##############################################################################
 # _from_bin()
 
 mpz_t *
@@ -234,11 +314,13 @@
 
 void
 DESTROY(n)
-	mpz_t*	n
-
-  PPCODE:
-    mpz_clear(*n);
-    free(n);
+	mpz_t_ornull*	n
+
+  PPCODE:
+    if (n) {
+        mpz_clear(*n);
+        free(n);
+    }
 
 ##############################################################################
 # _num() - numify, return string so that atof() and atoi() can use it

Modified: trunk/libmath-bigint-gmp-perl/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/MANIFEST?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/MANIFEST (original)
+++ trunk/libmath-bigint-gmp-perl/MANIFEST Fri Nov 12 22:17:35 2010
@@ -23,6 +23,7 @@
 t/bigroot.t
 t/pod.t
 t/pod_cov.t
+t/storable.t
 t/threads.t
 TODO
 typemap

Modified: trunk/libmath-bigint-gmp-perl/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/META.yml?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/META.yml (original)
+++ trunk/libmath-bigint-gmp-perl/META.yml Fri Nov 12 22:17:35 2010
@@ -1,11 +1,11 @@
 ---
 name: Math-BigInt-GMP
 author: Tels
-version: 1.26
+version: 1.32
 version_from: lib/Math/BigInt/GMP.pm
 license: perl
 distribution_type: module
-generated_by: Math-BigInt-GMP version 1.26
+generated_by: Math-BigInt-GMP version 1.32
 installdirs: site
 requires:
   Math::BigInt: 1.9

Modified: trunk/libmath-bigint-gmp-perl/SIGNATURE
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/SIGNATURE?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/SIGNATURE (original)
+++ trunk/libmath-bigint-gmp-perl/SIGNATURE Fri Nov 12 22:17:35 2010
@@ -15,22 +15,22 @@
 Hash: SHA1
 
 SHA1 70d6187d0152848c922dc4360fa6dd3a3dc35c62 BUGS
-SHA1 6fd2ead704ecb3644c53e9233b20f479623c996e CHANGES
+SHA1 46af513c8db3c36f1731948054c05bdc4f08fd07 CHANGES
 SHA1 dda5ca4f413031e9efcaa1600461d5e2adaa3a40 CREDITS
-SHA1 1566e65e25fdde8f02c28bda8d04372c9fcac7a8 GMP.xs
+SHA1 080095890588199a038e4c2cd2c70df0dcdbf929 GMP.xs
 SHA1 fcb1ead705a964b5555ff355534cbcf8b4c176e5 INSTALL
 SHA1 d6a6c30ee6d9ba6b9afab8bbf6a25e1b23c744e0 LICENSE
-SHA1 d92d036825f848456802a2100373b7e021c1e4ed MANIFEST
+SHA1 babd5d074bee5dc8eb6463a155a7a6b5d978befb MANIFEST
 SHA1 f3190cb30c8df53e0fd78658ff9a6132e031042e MANIFEST.SKIP
-SHA1 6e2929ced41261ad0ec01242f7d8deacbd921833 META.yml
+SHA1 120504c97f61f35048dedb39a5031c30727068e9 META.yml
 SHA1 32b33a1c160e1efbf82b1bf8765cde8455a32550 Makefile.PL
 SHA1 e9de29b6e5e9a5e446231b5b12b644f6ed2caafc README
 SHA1 acf3dd42f0d8a87dd02ef9f5f74b894423ffd4d8 TODO
 SHA1 fd48d0d8750eb949e485d8136b5b424fe73e9775 build/README
 SHA1 7bcc4113830721ad6e37a1ea79df94a6987c836d build/leak.pl
 SHA1 ac25bda8a6eb9058a9e42a8943c3e11b9fed88dc build/leaktest
-SHA1 332c820b17158bafd87fb16c7e1401b29976952d inc/Devel/CheckLib.pm
-SHA1 463062389a2990c4a3079ffdfa351220fa3ed014 lib/Math/BigInt/GMP.pm
+SHA1 f1e5cb2590288936ff4a330903fb3f7de0b83d9b inc/Devel/CheckLib.pm
+SHA1 b1a5a482626ca59e6b0954aff7b4ad47cf7d1c82 lib/Math/BigInt/GMP.pm
 SHA1 b389295c7eb542fb89f55d37390a35ac582b5e6c t/bigfltpm.inc
 SHA1 a6659404498c1d7b74e055769710e00bf425e355 t/bigfltpm.t
 SHA1 0f8838bf47e9c21a95bc15db11f435836440525c t/bigintg.t
@@ -39,13 +39,14 @@
 SHA1 b68535cf9a33efa949c80b166302a866fd13cff9 t/biglog.t
 SHA1 7eda06bd6d27b4092ab7266b1659e3a6ed369b26 t/bigroot.t
 SHA1 17935f6d2607dfd441f6f59d69d5aaf282a16bfc t/pod.t
-SHA1 c7406b64a2eff28ca33248f647eee3199deb10dc t/pod_cov.t
-SHA1 808b09f78be228a7d6c91a3206ca5a10ca179c23 t/threads.t
-SHA1 d6074079ab439bd3485ed2a5d784996fcd9e717d typemap
+SHA1 4ee0586efb80691e061368a7700dc081889f1f03 t/pod_cov.t
+SHA1 f1bcab94173a57861fcc40ac90eb72f64aafea7f t/storable.t
+SHA1 e489ec79ce64d0d943e291a3eaa654298e6e49ab t/threads.t
+SHA1 20cf43acc1a728d0ee8245b106937a2a97900266 typemap
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.10 (GNU/Linux)
 
-iEYEARECAAYFAkyPqXsACgkQdC8qQo5jWl52pACdHSTVHW9GW4gZI6IMwxbUT7Hw
-qmgAnRYTZ3a//CB+lkDxAd4MVqmDF500
-=embN
+iEYEARECAAYFAkybovMACgkQdC8qQo5jWl5Z1wCfcQvqPXUBgiRtGwauc9PuQU1I
+RW4An3ZgjhuXqAgyu7eKSjqaMl46qGTs
+=8IPP
 -----END PGP SIGNATURE-----

Modified: trunk/libmath-bigint-gmp-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/debian/changelog?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/debian/changelog (original)
+++ trunk/libmath-bigint-gmp-perl/debian/changelog Fri Nov 12 22:17:35 2010
@@ -1,6 +1,4 @@
-libmath-bigint-gmp-perl (1.26-1) UNRELEASED; urgency=low
-
-  WAITS-FOR: libmath-bigint-perl 1.90
+libmath-bigint-gmp-perl (1.32-1) UNRELEASED; urgency=low
 
   [ gregor herrmann ]
   * debian/control: Changed: Switched Vcs-Browser field to ViewSVN
@@ -10,9 +8,7 @@
   * debian/watch: Update to ignore development releases.
 
   [ gregor herrmann ]
-  * New upstream release; the dist is named 1.26-TRIAL on CPAN (dev release);
-    upload as 1.26 and leave watch file since 1.27 should be the next release.
-    Upload to experimental. Closes: #395948.
+  * New upstream release 1.26-TRIAL (closes: #395948).
   * Convert to source format 3.0 (quilt).
   * Switch to debhelper 7.
   * Set Standards-Version to 3.9.1 (no changes).
@@ -21,7 +17,9 @@
   * Reformat debian/copyright (DEP5), add info about new third party file.
   * Add (build) dependency on libmath-bigint-perl >= 1.90.
 
- -- gregor herrmann <gregoa at debian.org>  Tue, 14 Sep 2010 23:29:49 +0200
+  * New upstream release 1.32.
+
+ -- gregor herrmann <gregoa at debian.org>  Fri, 12 Nov 2010 23:15:22 +0100
 
 libmath-bigint-gmp-perl (1.24-1) unstable; urgency=low
 

Modified: trunk/libmath-bigint-gmp-perl/inc/Devel/CheckLib.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/inc/Devel/CheckLib.pm?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/inc/Devel/CheckLib.pm (original)
+++ trunk/libmath-bigint-gmp-perl/inc/Devel/CheckLib.pm Fri Nov 12 22:17:35 2010
@@ -2,10 +2,12 @@
 
 package Devel::CheckLib;
 
+use 5.00405; #postfix foreach
 use strict;
 use vars qw($VERSION @ISA @EXPORT);
-$VERSION = '0.7';
+$VERSION = '0.8';
 use Config;
+use Text::ParseWords 'quotewords';
 
 use File::Spec;
 use File::Temp;
@@ -214,13 +216,16 @@
     my @cc = _findcc();
     my @missing;
     my @wrongresult;
+    my @use_headers;
 
     # first figure out which headers we can't find ...
     for my $header (@headers) {
+        push @use_headers, $header;
         my($ch, $cfile) = File::Temp::tempfile(
             'assertlibXXXXXXXX', SUFFIX => '.c'
         );
-        print $ch qq{#include <$header>\nint main(void) { return 0; }\n};
+        print $ch qq{#include <$_>\n} for @use_headers;
+        print $ch qq{int main(void) { return 0; }\n};
         close($ch);
         my $exefile = File::Temp::mktemp( 'assertlibXXXXXXXX' ) . $Config{_exe};
         my @sys_cmd;
@@ -325,12 +330,14 @@
 }
     
 sub _findcc {
+    my @flags = grep { length } map { quotewords('\s+', 0, $_) }
+        @Config{qw(ccflags ldflags)};
     my @paths = split(/$Config{path_sep}/, $ENV{PATH});
     my @cc = split(/\s+/, $Config{cc});
-    return @cc if -x $cc[0];
+    return (@cc, @flags) if -x $cc[0];
     foreach my $path (@paths) {
         my $compiler = File::Spec->catfile($path, $cc[0]) . $Config{_exe};
-        return ($compiler, @cc[1 .. $#cc]) if -x $compiler;
+        return ($compiler, @cc[1 .. $#cc], @flags) if -x $compiler;
     }
     die("Couldn't find your C compiler\n");
 }

Modified: trunk/libmath-bigint-gmp-perl/lib/Math/BigInt/GMP.pm
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/lib/Math/BigInt/GMP.pm?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/lib/Math/BigInt/GMP.pm (original)
+++ trunk/libmath-bigint-gmp-perl/lib/Math/BigInt/GMP.pm Fri Nov 12 22:17:35 2010
@@ -9,7 +9,7 @@
 
 use vars qw/$VERSION/;
 
-$VERSION = '1.26';
+$VERSION = '1.32';
 
 use XSLoader;
 XSLoader::load "Math::BigInt::GMP", $VERSION;
@@ -121,6 +121,17 @@
   ($x,$exact);
   }
 
+sub STORABLE_freeze {
+    my ($self, $cloning) = @_;
+    return Math::BigInt::GMP->_num($self);
+}
+
+sub STORABLE_thaw {
+    my ($self, $cloning, $serialized) = @_;
+    Math::BigInt::GMP->_new_attach($self, $serialized);
+    return $self;
+}
+
 1;
 __END__
 

Modified: trunk/libmath-bigint-gmp-perl/t/pod_cov.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/t/pod_cov.t?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/t/pod_cov.t (original)
+++ trunk/libmath-bigint-gmp-perl/t/pod_cov.t Fri Nov 12 22:17:35 2010
@@ -21,8 +21,8 @@
     $@ ? 0 : 1;
     };
 
-  my $trustme = { 
-    trustme => [ 'api_version' ], 
+  my $trustme = {
+    trustme => [ 'api_version', 'STORABLE_freeze', 'STORABLE_thaw' ],
     coverage_class => 'Pod::Coverage::CountParents',
     };
   pod_coverage_ok( 'Math::BigInt::GMP', $trustme, "All our Math::BigInt::GMP are covered" );

Modified: trunk/libmath-bigint-gmp-perl/t/threads.t
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/t/threads.t?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/t/threads.t (original)
+++ trunk/libmath-bigint-gmp-perl/t/threads.t Fri Nov 12 22:17:35 2010
@@ -8,6 +8,8 @@
 BEGIN {
     plan skip_all => 'Perl compiled without ithreads'
         unless $Config{useithreads};
+    plan skip_all => 'ithreads support requires perl 5.8 or newer'
+        unless $] >= 5.008000;
     plan tests => 22;
 }
 

Modified: trunk/libmath-bigint-gmp-perl/typemap
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libmath-bigint-gmp-perl/typemap?rev=64822&op=diff
==============================================================================
--- trunk/libmath-bigint-gmp-perl/typemap (original)
+++ trunk/libmath-bigint-gmp-perl/typemap Fri Nov 12 22:17:35 2010
@@ -1,8 +1,11 @@
 mpz_t *		MPZ
+mpz_t_ornull *	MPZ_NF
 
 INPUT
 MPZ
         $var = mpz_from_sv($arg);
+MPZ_NF
+        $var = mpz_from_sv_nofail($arg);
 
 OUTPUT
 MPZ




More information about the Pkg-perl-cvs-commits mailing list