Leopold Toetsch wrote:
>
> Benjamin Goldberg <[EMAIL PROTECTED]> wrote:
>
> > I would suggest the opnames/categories "mutate," "alias," and
> > "create."
>
> IMHO, we could leave PASM syntax as it is and create opcode aliases
> inside the assembler ...
You mean leave the old ops with their names, but merely make new aliases
for them with the scheme I suggested?
I would rather rename the ops, but make their old names aliases to the
new names.
Of course, in theory, there should be no visible difference whatsoever
between these two ideas :)
(Well, maybe for decompiling.)
> > I believe that the most in^H^H logical shorthand spellings of these
> > opcodes would be ":=", "=", and "<==", for alias, mutate, and create,
> > respectively.
>
> But what I really want to have is these in the PIR code (except for the
> "create" one, which is:
>
> $P0 = new PerlInt
>
> With an underlying create op, that does assign a value too, it could
> then be
>
> $P0 = new PerlInt (42)
>
> or something.
But that would tempt people to do:
$P0 = new SomethingElse (42)
Which sadly wouldn't work, since neither the create ops, nor the "new"
op, generalize that way.
But if the syntax is:
$P0 <== 42
, we would not be impling a generality which doesn't exist. Also, it
removes redundancy, since "42" already implies PerlInt, so we don't need
to spell that name out.
--
$a=24;split//,240513;s/\B/ => /for@@=qw(ac ab bc ba cb ca
);{push(@b,$a),($a-=6)^=1 for 2..$a/6x--$|;print "[EMAIL PROTECTED]
]\n";((6<=($a-=6))?$a+=$_[$a%6]-$a%6:($a=pop @b))&&redo;}