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;}