r30894 - in /branches/upstream/libfreezethaw-perl/current: Changes FreezeThaw.pm MANIFEST META.yml Makefile.PL

rmayorga at users.alioth.debian.org rmayorga at users.alioth.debian.org
Fri Feb 20 05:28:58 UTC 2009


Author: rmayorga
Date: Fri Feb 20 05:28:53 2009
New Revision: 30894

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=30894
Log:
[svn-upgrade] Integrating new upstream version, libfreezethaw-perl (0.45)

Added:
    branches/upstream/libfreezethaw-perl/current/META.yml   (with props)
Modified:
    branches/upstream/libfreezethaw-perl/current/Changes
    branches/upstream/libfreezethaw-perl/current/FreezeThaw.pm
    branches/upstream/libfreezethaw-perl/current/MANIFEST
    branches/upstream/libfreezethaw-perl/current/Makefile.PL

Modified: branches/upstream/libfreezethaw-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libfreezethaw-perl/current/Changes?rev=30894&op=diff
==============================================================================
--- branches/upstream/libfreezethaw-perl/current/Changes (original)
+++ branches/upstream/libfreezethaw-perl/current/Changes Fri Feb 20 05:28:53 2009
@@ -23,3 +23,10 @@
 	`use strict'-complient.
 Version 0.43:
 	Correct save/restore of overloaded values, including repeated refs.
+Version 0.44:
+	Optimize thaw; apparently, with 5.8.8 \G in REx is not optimized;
+	  so implement along lines suggested by Bram [wizbit] (about 5x speedup
+          in some test cases).
+Version 0.45:
+	Maxpointer decimal width was wrongly calculated on 64bit machines with
+	  narrow NVs.

Modified: branches/upstream/libfreezethaw-perl/current/FreezeThaw.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libfreezethaw-perl/current/FreezeThaw.pm?rev=30894&op=diff
==============================================================================
--- branches/upstream/libfreezethaw-perl/current/FreezeThaw.pm (original)
+++ branches/upstream/libfreezethaw-perl/current/FreezeThaw.pm Fri Feb 20 05:28:53 2009
@@ -285,7 +285,7 @@
 use Exporter;
 
 @ISA = qw(Exporter);
-$VERSION = '0.43';
+$VERSION = '0.45';
 @EXPORT_OK = qw(freeze thaw cmpStr cmpStrHard safeFreeze);
 
 use strict;
@@ -319,6 +319,19 @@
 	      Regexp  => 0,
 	 );
 
+# This should better be done via pos() and \G, but apparently \G is not
+# optimized (bug in the REx optimizer???)
+BEGIN {
+  my $pointer_size   = length pack 'p', 0;
+  #my $max_dig0 = 3*$pointer_size;	# 8bits take less than 3 decimals
+	# Now calculate the exact value:
+  #my $max_pointer = sprintf "%.${max_dig0}g", 0x100**$pointer_size;
+  my $max_pointer = sprintf "%.0f", 0x100**$pointer_size;
+  die "Panic" if $max_pointer =~ /\D/;
+  my $max_pointer_l = length $max_pointer;
+  warn "Max pointer_l=$max_pointer_l" if $ENV{FREEZE_THAW_WARN};
+  eval "sub max_strlen_l () {$max_pointer_l}; 1" or die;
+}
 
 sub flushCache {$lock ^= rand; undef %saved;}
 
@@ -342,7 +355,7 @@
 sub freezeREx {$string .= '/' . length($_[0]) . '|' . $_[0]}
 
 sub thawString {	# Returns list: a string and offset of rest
-  substr($string, $_[0]) =~ /^\$(\d+)\|/
+  substr($string, $_[0], 2+max_strlen_l) =~ /^\$(\d+)\|/
     or confess "Wrong format of frozen string: " . substr($string, $_[0]);
   length($string) - $_[0] > length($1) + 1 + $1
     or confess "Frozen string too short: `" .
@@ -351,7 +364,7 @@
 }
 
 sub thawNumber {	# Returns list: a number and offset of rest
-  substr($string, $_[0]) =~ /^(\d+)\|/
+  substr($string, $_[0], 1+max_strlen_l) =~ /^(\d+)\|/
     or confess "Wrong format of frozen string: " . substr($string, $_[0]);
   ($1, $_[0] + length($1) + 1);
 }
@@ -364,7 +377,7 @@
 }
 
 sub thawREx {	# Returns list: a REx and offset of rest
-  substr($string, $_[0]) =~ m,^/(\d+)\|,
+  substr($string, $_[0], 2+max_strlen_l) =~ m,^/(\d+)\|,
     or confess "Wrong format of frozen REx: " . substr($string, $_[0]);
   length($string) - $_[0] > length($1) + 1 + $1
     or confess "Frozen string too short: `" .
@@ -381,7 +394,7 @@
 }
 
 sub thawArray {
-  substr($string, $_[0]) =~ /^[\@%](\d+)\|/ # % To make it possible thaw hashes
+  substr($string, $_[0], 2+max_strlen_l) =~ /^[\@%](\d+)\|/ # % To make it possible thaw hashes
     or confess "Wrong format of frozen array: \n$_[0]";
   my $count = $1;
   my $off = $_[0] + 2 + length $count;

Modified: branches/upstream/libfreezethaw-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libfreezethaw-perl/current/MANIFEST?rev=30894&op=diff
==============================================================================
--- branches/upstream/libfreezethaw-perl/current/MANIFEST (original)
+++ branches/upstream/libfreezethaw-perl/current/MANIFEST Fri Feb 20 05:28:53 2009
@@ -5,3 +5,4 @@
 Makefile.PL
 Changes
 README
+META.yml                                 Module meta-data (added by MakeMaker)

Added: branches/upstream/libfreezethaw-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libfreezethaw-perl/current/META.yml?rev=30894&op=file
==============================================================================
--- branches/upstream/libfreezethaw-perl/current/META.yml (added)
+++ branches/upstream/libfreezethaw-perl/current/META.yml Fri Feb 20 05:28:53 2009
@@ -1,0 +1,10 @@
+# http://module-build.sourceforge.net/META-spec.html
+#XXXXXXX This is a prototype!!!  It will change in the future!!! XXXXX#
+name:         FreezeThaw
+version:      0.45
+version_from: FreezeThaw.pm
+installdirs:  site
+requires:
+
+distribution_type: module
+generated_by: ExtUtils::MakeMaker version 6.30

Propchange: branches/upstream/libfreezethaw-perl/current/META.yml
------------------------------------------------------------------------------
    svn:executable = *

Modified: branches/upstream/libfreezethaw-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libfreezethaw-perl/current/Makefile.PL?rev=30894&op=diff
==============================================================================
--- branches/upstream/libfreezethaw-perl/current/Makefile.PL (original)
+++ branches/upstream/libfreezethaw-perl/current/Makefile.PL Fri Feb 20 05:28:53 2009
@@ -4,4 +4,5 @@
 WriteMakefile(
 	      NAME	=> 'FreezeThaw',
 	      VERSION_FROM => "FreezeThaw.pm",
+              AUTHOR    => 'Ilya Zakharevich <ilyaz at cpan.org>',
 	     );




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