On Mon, 17 Nov 2008, Reini Urban via RT wrote:

> 2008/11/17 Andrew Dougherty <[EMAIL PROTECTED]>:
> > On Sun, 16 Nov 2008, chromatic via RT wrote:
> >
> >> Storable 2.18 required in r32744, which should resolve this issue.
> >
> > But the ultimate problem was that the issue was an unnecessary hurdle.
> > At the time of the bug report, I tried building with Storable-2.12 and
> > with 2.18 and observed *no difference*.  That means that Storable-2.13
> > wasn't really *required* at all.
> >
> > I agree that explicitly requiring 2.18 early on gives a failure with a
> > clear error message right away, which is definitely much better than
> > getting a failure a long time after you've started the process and walked
> > away.  It's just that no failure is necessary at all.  2.12 worked just
> > fine for parrot.
> 
> 2.12 only works okay for a newer perl > 5.8.6.
> 5.8.4 fails for sure, and I forgot if it was 5.8.6, which fixed
> overloading in CORE.

Sigh.  No.  5.8.4 does not fail for sure.  I tested that explicitly. Just 
to be sure, I decided to check again.  Here is the actual script I just 
ran (this was on Linux, just in case the patched OpenSolaris version of 
5.8.4 included a patch which happened to be relevant.)  The output at the 
end compares the directory trees for parrot built using Storable 2.12 and 
2.18.  The *only* differences reported are:

    1.  Different values for PARROT_CONFIG_DATE.
    2.  Binary files differ.  (Expected because of #1 above, as well
        as time stamps.)
    3.  The Storable version requirement patch (s/2.18/2.12/) I applied
        to get parrot to compile with plain 5.8.4.
    4.  The temp file names used in the test suite

There were no other differences.  None.  Each version fared identically on 
the test suite.  This is what I mean when I say that I tried building with 
Storable-2.12 and with 2.18 and observed no difference.

I am not saying that there are no bugs in the older Storable.  Just that 
version 2.12 worked fine for parrot.

#!/bin/sh
prefix=/tmp/perl-5.8.4
perl=$prefix/bin/perl

rm -rf $prefix
bzip2 -d -c perl-5.8.4.tar.bz2 | tar -xf -
cd perl-5.8.4
    sh Configure -Dprefix=$prefix -des
    make -j 4
    make install
cd ..

wget http://svn.perl.org/snapshots/parrot/parrot-latest.tar.gz

cat > patch-2.12 <<END_of_PATCH
diff -r -u parrot/lib/Parrot/Configure.pm parrot-2.12/lib/Parrot/Configure.pm
--- parrot/lib/Parrot/Configure.pm      2008-11-17 03:15:14.000000000 -0500
+++ parrot-2.12/lib/Parrot/Configure.pm 2008-11-17 11:32:27.000000000 -0500
@@ -40,7 +40,7 @@
 
 use lib qw(config);
 use Carp qw(carp);
-use Storable qw(2.18 nstore retrieve nfreeze thaw);
+use Storable qw(2.12 nstore retrieve nfreeze thaw);
 use Parrot::Configure::Data;
 use base qw(Parrot::Configure::Compiler);
 
diff -r -u parrot/lib/Parrot/Pmc2c/Pmc2cMain.pm 
parrot-2.12/lib/Parrot/Pmc2c/Pmc2cMain.pm
--- parrot/lib/Parrot/Pmc2c/Pmc2cMain.pm        2008-11-17 03:15:14.000000000 
-0500
+++ parrot-2.12/lib/Parrot/Pmc2c/Pmc2cMain.pm   2008-11-17 11:32:19.000000000 
-0500
@@ -4,7 +4,7 @@
 use strict;
 use warnings;
 
-use Storable 2.18;
+use Storable 2.12;
 use Parrot::PMC ();
 use Parrot::Pmc2c::VTable ();
 use Parrot::Pmc2c::Dumper;
END_of_PATCH

# Build using Storable 2.12 in 5.8.4.
gzip -d -c parrot-latest.tar.gz | tar -xf -
cd parrot
    patch -p1 -N < ../patch-2.12
    $perl Configure.pl
    make
    make test > test.log 2>&1
cd ..
mv parrot parrot-2.12

gzip -d -c Storable-2.18.tar.gz | tar -xf -
cd Storable-2.18
    $perl Makefile.PL
    make
    make install
cd ..

# Build using Storable 2.18
gzip -d -c parrot-latest.tar.gz | tar -xf -
cd parrot
    $perl Configure.pl
    make
    make test > test.log 2>&1
cd ..
mv parrot parrot-2.18
diff -r -u parrot-2.12 parrot-2.18

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to