On Thu, 19 Apr 2007, chromatic via RT wrote:

> On Thursday 19 April 2007 11:24, Andy Dougherty wrote:
> 
> > But if you actually try it with perl-5.6.2, the build proceeds for a
> > while and then dies with
> >
> >     perl5.6 tools/build/pmc2c.pl --vtable
> >     "longmess" is not exported by the Carp module at
> > /home/doughera/src/parrot/parrot-andy/tools/build/../../lib/Parrot/Pmc2c/PC
> >CMETHOD.pm line 8
> 
> > What is the actual intent?  Requiring builders to run at least perl-5.8
> > does not seem unreasonable to me, but neither would requiring
> > developers to stick with perl-5.6 seem unreasonable.  Parrot should,
> > however, be consistent.
> 
> It looks like we could replace that longmess call in the WARN handler with 
> Carp::cluck() instead without changing the intent.

I had already tried that and immediately ran into a bunch of other
little things.  Before diving in (or encouraging others to dive in) I
thought it prudent to ask the more general question.

But, since you ask, on to details:

Fixing lib/Parrot/Pmc2c/PCCMETHOD.pm, the next relevant message I see is
(I have folded the long lines)

    perl5.6 tools/build/ops2pm.pl src/ops/core.ops src/ops/bit.ops
    src/ops/cmp.ops src/ops/debug.ops src/ops/experimental.ops
    src/ops/io.ops src/ops/math.ops src/ops/object.ops src/ops/pic.ops
    src/ops/pmc.ops src/ops/set.ops src/ops/stack.ops src/ops/stm.ops
    src/ops/string.ops src/ops/sys.ops src/ops/var.ops

    Bareword found where operator expected at lib/Parrot/Ops2pm/Utils.pm
    line 536, near "$MODULE Data::Dumper"
            (Missing operator before Data::Dumper?)

Naturally, the resulting lib/Parrot/OpLib/core.pm file is not correct.
A diff between core.pm and and one generated by perl-5.8 runs to
over 40,000 lines.  Yet, amazingly, the build continued!  Somehow the
tools/build/ops2pm.pl script still managed to return a successful status.

Ignoring that problem for the moment, the next problem shows up with
pmc2c.pl:

    perl5.6 tools/build/pmc2c.pl --vtable
    Global symbol "%decl" requires explicit package name at 
/home/doughera/src/parrot/parrot-perl5.6/tools/build/../../lib/Parrot/Pmc2c/delegate.pm
 line 99.
    Compilation failed in require at 
/home/doughera/src/parrot/parrot-perl5.6/tools/build/../../lib/Parrot/Pmc2c.pm 
line 1220.
    Compilation failed in require at 
/home/doughera/src/parrot/parrot-perl5.6/tools/build/../../lib/Parrot/Pmc2c/Library.pm
 line 29.
    BEGIN failed--compilation aborted at 
/home/doughera/src/parrot/parrot-perl5.6/tools/build/../../lib/Parrot/Pmc2c/Library.pm
 line 29.
    Compilation failed in require at 
/home/doughera/src/parrot/parrot-perl5.6/tools/build/../../lib/Parrot/Pmc2c/Utils.pm
 line 9.
    BEGIN failed--compilation aborted at 
/home/doughera/src/parrot/parrot-perl5.6/tools/build/../../lib/Parrot/Pmc2c/Utils.pm
 line 9.
    Compilation failed in require at tools/build/pmc2c.pl line 12.
    BEGIN failed--compilation aborted at tools/build/pmc2c.pl line 12.

pmc2c.pl --dump fails with the same error message.

Working around those problems by building those files with perl-5.8, the
next problem is with the 3-arg open() in lib/Test/Builder.pm:

t/configure/01-options...................Unknown open() mode '>&' at
/home/doughera/src/parrot/parrot-perl5.6/t/configure/../../lib/Test/Builder.pm
line 1217.
Compilation failed in require at
/home/doughera/src/parrot/parrot-perl5.6/t/configure/../../lib/Test/More.pm
line 6.
BEGIN failed--compilation aborted at
/home/doughera/src/parrot/parrot-perl5.6/t/configure/../../lib/Test/More.pm
line 6.
Compilation failed in require at t/configure/01-options.t line 15.
BEGIN failed--compilation aborted at t/configure/01-options.t line 15.
t/configure/01-options...................dubious                             
        Test returned status 255 (wstat 65280, 0xff00)

At this point, I stopped.

Executive summary:  There are a lot of little things.  Each one is
probably fixable without too much effort, but it's not worth the effort
unless someone else cares enough to routinely test with perl-5.6.

Otherwise, the requirements (in README and Configure.pl) should simply be 
changed to perl-5.8.whatever.

I'll be happy to help anyone who wants help getting perl-5.6 installed.

-- 
    Andy Dougherty              [EMAIL PROTECTED]

Reply via email to