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