[perl #61286] [PATCH][PROPOSAL] box complements
Patrick R. Michaud
pmichaud at pobox.com
Fri Dec 19 23:08:40 UTC 2008
On Thu, Dec 11, 2008 at 06:19:14AM -0800, Will Coleda via RT wrote:
> On Thu Dec 11 01:51:23 2008, fperrad wrote:
> > The new opcode 'box' is limited by its 3 signatures that target Float,
> > Integer & String.
> > I propose the 3 following new opcodes :
>
> > - true
> > - false
>
> These can be approximated with:
>
> $P0 = box 1
> $P0 = box 0
Or, as Rakudo handles it:
$P0 = get_hll_global ['Bool'], 'True'
$P0 = get_hll_global ['Bool'], 'False'
The reason for "box" going to Integer/Float/String is because these
correspond directly to the int/num/string registers in Parrot, and
also to mimic what happens when doing a subroutine call that
autoboxes int/num/string, or certain vtable functions.
> > - undef or nil (less Perlish)
>
> undef and null are two different things in parrot, but we do have an
> opcode for one of them, at least:
>
> $P0 = null
And the other is simply
$P0 = new 'Undef'
> > After some experiments with bytecode translation,
> > in WMLScript (r33655) and in Lua (r33760),
> > it seems obvious that we need them.
>
> Can you explain why?
I agree -- without a clear use case for why these need to be
opcodes, and keeping my "let's have fewer opcode, not more" hat
firmly in place, I don't see the utility of adding these without
some specific use cases.
Pm
More information about the parrot-dev
mailing list