| |
|
| java.lang.Object gnu.mapping.CallContext
All known Subclasses: gnu.kawa.servlet.ServletCallContext,
CallContext | public class CallContext (Code) | | A procedure activation stack (when compiled with explicit stacks).
|
ARG_IN_IVALUE1 | final public static int ARG_IN_IVALUE1(Code) | | |
ARG_IN_IVALUE2 | final public static int ARG_IN_IVALUE2(Code) | | |
ARG_IN_VALUE1 | final public static int ARG_IN_VALUE1(Code) | | |
ARG_IN_VALUE2 | final public static int ARG_IN_VALUE2(Code) | | |
ARG_IN_VALUE3 | final public static int ARG_IN_VALUE3(Code) | | |
ARG_IN_VALUE4 | final public static int ARG_IN_VALUE4(Code) | | |
ARG_IN_VALUES_ARRAY | final public static int ARG_IN_VALUES_ARRAY(Code) | | |
consumer | public Consumer consumer(Code) | | Function results are written to this Consumer.
This may point to vstack - or some other Consumer.
|
count | public int count(Code) | | Number of actual arguments.
|
evalFrames | public Object[][] evalFrames(Code) | | Current stack of evaluation frames for interpreter.
|
ivalue1 | public int ivalue1(Code) | | |
ivalue2 | public int ivalue2(Code) | | |
next | public int next(Code) | | Index of next argument.
This is used by methods like getNextArg, used by callees.
|
pc | public int pc(Code) | | The program location in the current procedure.
This a selector that only has meaning to the proc's Procedure.
|
pushedFluids | Location[] pushedFluids(Code) | | A stack of currently re-bound fluids variables.
There is one for each active fluids-let or parameterize variable.
|
pushedFluidsCount | int pushedFluidsCount(Code) | | The number of active elements of the pushedFluids array.
|
value1 | public Object value1(Code) | | Used for passing parameters. (Will be replaced by vstack.)
|
vstack | public ValueStack vstack(Code) | | Default place for function results.
In the future, function arguments will also use vstack.
|
where | public int where(Code) | | Encoding of where the arguments are.
Each argument uses 4 bits.
Arguments beyond 8 are implicitly ARG_IN_VALUES_ARRAY.
|
cleanupFromContext | final public void cleanupFromContext(int oldIndex) throws Throwable(Code) | | Cleanup-only part of getFromContext.
This can be in an exception handler as an alternative
to getFromContext, which is called in the non-exception case.
(Alternatively, the compiler could call cleanupFromContext
from a finally clause but that is less efficient, partly
because the JVM stack must be empty before a finally subroutine.)
|
getFromContext | final public Object getFromContext(int oldIndex) throws Throwable(Code) | | Routine to extract result and restore state after startFromContext.
|
getInstance | public static CallContext getInstance()(Code) | | Get or create a CallContext for the current thread.
|
getNextArg | public Object getNextArg()(Code) | | Get the next incoming argument.
Throw WrongArguments if there are no more arguments.
FIXME: This and following methods don't really fit until the
current match/apply-based API, at least as currently implemented.
We probably need to pass in (or make this a method of) the Procedure.
|
getNextArg | public Object getNextArg(Object defaultValue)(Code) | | Get the next incoming argument.
Return defaultValue if there are no more arguments.
|
getNextIntArg | public int getNextIntArg()(Code) | | |
getNextIntArg | public int getNextIntArg(int defaultValue)(Code) | | |
getOnlyInstance | public static CallContext getOnlyInstance()(Code) | | Get but don't create a CallContext for the current thread.
|
getRestArgsArray | final public Object[] getRestArgsArray(int next)(Code) | | Get remaining arguments as an array.
|
getRestArgsList | final public LList getRestArgsList(int next)(Code) | | Get remaining arguments as a list.
Used for Scheme and Lisp rest args.
|
lastArg | public void lastArg()(Code) | | Note that we are done with the input arguments.
Throw WrongArguments if there are unprocessed arguments.
|
popFluid | final public void popFluid()(Code) | | |
runUntilValue | final public Object runUntilValue() throws Throwable(Code) | | Run until no more continuations, returning final result.
|
runUntilValue | final public void runUntilValue(Consumer out) throws Throwable(Code) | | Run until no more continuations, sending result to a COnsumer.
|
startFromContext | final public int startFromContext()(Code) | | Setup routine before calling a method that takes a CallContext.
The compiler emits a call to this before a call to a method that takes
a CallContext, when it wants the function result as an Object.
It pushes the CallContest state so it can uses the vstack for a
temporary, After the method, getFromContext extract the method's result
from the vstack and restores the state.
|
writeValue | public void writeValue(Object value)(Code) | | Write values (of function result) to current consumer.
|
|
|
|