develooper Front page | perl.perl6.compiler | Postings from April 2012

[perl #112624] Precompilation and roles don't mix

From:
Moritz Lenz
Date:
April 26, 2012 12:20
Subject:
[perl #112624] Precompilation and roles don't mix
Message ID:
rt-3.6.HEAD-4610-1335468022-291.112624-82-0@perl.org
# New Ticket Created by  Moritz Lenz 
# Please include the string:  [perl #112624]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=112624 >


Here is a bug which showed up in colomon++'s ABC module during
precompilation.

One needs three module files to reproduce this:


# file ./lib/A/Role.pm
use v6;
role A::Role { }

# file ./lib/A/Class1.pm
use v6;
use A::Role;
class A::Class1 does A::Role { }

# file ./lib/A/Class2.pm
use v6;
use A::Role;
use A::Class1;

class A::Classs2 does A::Role { }


running 'ufo && make' to precompile those modules produces this error:

mkdir -p `dirname 'blib/lib/A/Role.pir'`
env
PERL6LIB=/home/moritz/tmp/oddness/blib/lib:/home/moritz/tmp/oddness/lib:
perl6 --target=pir --output=blib/lib/A/Role.pir lib/A/Role.pm
mkdir -p `dirname 'blib/lib/A/Class1.pir'`
env
PERL6LIB=/home/moritz/tmp/oddness/blib/lib:/home/moritz/tmp/oddness/lib:
perl6 --target=pir --output=blib/lib/A/Class1.pir lib/A/Class1.pm
mkdir -p `dirname 'blib/lib/A/Class2.pir'`
env
PERL6LIB=/home/moritz/tmp/oddness/blib/lib:/home/moritz/tmp/oddness/lib:
perl6 --target=pir --output=blib/lib/A/Class2.pir lib/A/Class2.pm
===SORRY!===
None of the parametric role variants for 'A::Role' matched the arguments
supplied.
Cannot call ''; none of these signatures match:

make: *** [blib/lib/A/Class2.pir] Error 1


The fact that the list of candidates is empty indicates that it is lost
somewhere during the precompilation.



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About