[perl #60016] [PATCH] Make basic Perl 6 tests pass

Allison Randal allison at perl.org
Fri Oct 24 03:13:29 UTC 2008


Patrick R. Michaud wrote:
> 
> The infix:<**=> code broke as part of the mmd branch merge, because
> the meaning of Parrot's 'pow' opcode has changed.  The infix:<**=>
> function used the Parrot opcode (src/builtins/assign.pir:80)
> 
>     a = a ** b          #  pow a, a, b
> 
> Before the MMD merge, this opcode meant "raise a to the power
> of b and store the result back in a".  However, after the mmd
> branch merge this opcode now means "create a new PMC containing
> the value of a raised to the b power and set register a to point
> to that new PMC, leaving the value of its original PMC alone".
> So, the pow opcode is no longer able to act as an inplace modifier.

The other math opcodes have two argument versions that call the 'i_' 
inplace vtable function. I can add these for 'pow' if needed.

Allison


More information about the parrot-dev mailing list