Ticket #1520 (new bug)
Opened 12 years ago
P6metaclass cannot derive from already-`register`ed PMC type
Reported by: | Austin_Hastings | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | library | Version: | 2.2.0 |
Severity: | medium | Keywords: | |
Cc: | Language: | ||
Patch status: | Platform: |
Description
Registering a PMC-proxy seems to be enough to prevent its use as a parent class.
austin@andLinux:~/kakapo$ cat test.nqp INIT { P6metaclass.register('Hash'); } class Foo is Hash { INIT { say("Hello, Foo"); } } austin@andLinux:~/kakapo$ parrot-nqp test.nqp Could not build C3 linearization: ambiguous hierarchy current instr.: 'parrot;P6metaclass;register' pc 532 (runtime/parrot/library/P6object.pir:408) called from Sub '' pc -1 ((unknown file):-1) called from Sub 'parrot;PCT;HLLCompiler;evalpmc' pc 972 (compilers/pct/src/PCT/HLLCompiler.pir:538) ... call repeated 1 times called from Sub 'parrot;PCT;HLLCompiler;compile' pc 388 (compilers/pct/src/PCT/HLLCompiler.pir:287) called from Sub 'parrot;PCT;HLLCompiler;eval' pc 992 (compilers/pct/src/PCT/HLLCompiler.pir:556) called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1303 (compilers/pct/src/PCT/HLLCompiler.pir:707) called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1489 (compilers/pct/src/PCT/HLLCompiler.pir:794) called from Sub 'parrot;NQP;Compiler;main' pc -1 ((unknown file):-1)
I suspect (based on scanning a trace, but not based on poring over the trace) that the problem lies in the get_parrotclass method.
The major impact for me is interoperation between the Kakapo library, which registers a large collection of PMC types, and the PCT/PGE tools, which build many of their classes as subtypes of Hash.
Note: See
TracTickets for help on using
tickets.