Below is a list of opcodes that will go away or change soon (unless
someone loudly hollers of course). This list is also available as file
branches/leo-ctx5/DEPRECATED.
leo
Deprecated opcodes (branches/leo-ctx5 first)
findclass(out INT, in STR)
returns a boolean bit if the class exists. The opocde name is misleading
doesn't conform to other find_ ops and the functionality is covered by
C<find_type>.
use find_type > 0 instead
newsub(in INT, in INT, labelconst INT, labelconst INT)
Creates a sub in P0 and a continuation in P1. It was a premature
attempt to be able to create a return continuation outside a loop.
This isn't needed anymore due to continuation recycling and the opcode
also has implicit register usage (P0, P1).
use 3 arg newsub, find_global, set_p_pc, or just foo() syntax
isnull(in PMC, labelconst INT)
Despite it's name this is a branching opcode. The name is misleading.
use if_null or unless_null instead.
Register stack opcodes
pop{i,s,p,n}, popbottom{i,s,p,n}, poptop{i,s,p,n},
push{i,s,p,n}, pushbottom{i,s,p,n}, pushtop{i,s,p,n},
savetop, restoretop,
With the upcoming variable-sized register frame handling these opcodes
will stop working and are useless anyway.
use saveall/restoreall (whole register frame) or
user stack opcodes save/restore instead.
Integer stack opcodes
intsave/intrestore/intdepth
The integer stack was an invention for rx_ opcodes, but as it's a
global stack, regexen using these opcodes aren't reentrant.
use a ResizableIntegerPMC instead and standard keyed access
set_eh
already dprecated
use push_eh
die, die(in INT), die_hard(int INT, in INT)
die is a special case of die_hard, but the name of the latter isn't
really nice. Therefore die_hard with be renamed to die, the 2 argument
form of die survives.