[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