[perl #59250] [BUG] MMD bug in FixedPMCArray.sort

Will Coleda via RT parrotbug-followup at parrotcode.org
Mon Sep 21 06:45:19 UTC 2009


On Tue Sep 23 14:32:13 2008, pmichaud wrote:
> The .sort method on FixedPMCArray fails with "no applicable methods"
> when given a MultiSub PMC as a comparison function.  Here's a sample
> PIR program:
> 
> $ cat x.pir
> .sub 'main'
>     .local pmc arr
>     arr = new 'FixedPMCArray'
>     arr = 4
>     arr[0] = 'just'
>     arr[1] = 'another'
>     arr[2] = 'perl'
>     arr[3] = 'hacker'
> 
>     ## called with normal Sub, works
>     $P0 = get_global 'cmpfn1'
>     arr.'sort'($P0)
>     $S0 = join ' ', arr
>     say $S0
> 
>     ## called with MultiSub, fails
>     $P0 = get_global 'cmpfn2'
>     arr.'sort'($P0)
>     $S0 = join ' ', arr
>     say $S0
> .end
> 
> .sub 'cmpfn1'
>     .param pmc a
>     .param pmc b
>     $I0 = cmp_str a, b
>     .return ($I0)
> .end
> 
> .sub 'cmpfn2' :multi(_, _)
>     .param pmc a
>     .param pmc b
>     $I0 = cmp_str a, b
>     .return ($I0)
> .end
> $ ./parrot x.pir
> another hacker just perl
> No applicable methods.
> 
> current instr.: 'main' pc -34072556 ((unknown file):-1)
> called from Sub 'main' pc 49 (x.pir:18)
> $
> 
> See also some of the analysis I did on the parrot-dev 
> mailing list (subject: "References to multis (at PIR level)")--
> I can repost that to the ticket if it would be helpful.
> 
> Pm

Now being tracked at https://trac.parrot.org/parrot/ticket/1039.


-- 
Will "Coke" Coleda


More information about the parrot-dev mailing list