Search                        Top                                  Index
HELP WITH_NARGS                                Steven Hardy, July 1982

Every procedure has a component accessed with the procedure PDNARGS
which contains an integer saying how many parameters the procedure was
define with. This information is used by TRACE. If a procedure removes a
different number of items from the stack to that implied by the number
of parameters then the keyword WITH_NARGS can be used to set the NARGS
field explicitly, for example:

    vars inc_temp;
    define increment() with_nargs 1;
        -> inc_temp;
        return(inc_temp + 1)
    enddefine;

INC_TEMP is not local to INCREMENT and so need not be saved on entry and
exit to INCREMENT.  This form might be preferred for an 'inner loop'
procedure where every micro-second counts.