call (callable -- calledResult)callable: Already-selected value or Ref whose dereferenced input is Block, Code, callable Dict, or known Text.calledResult: Result produced by calling callable.Calls one already-selected stack callable. No name lookup or field selection happens inside the builtin.
call performs a call boundary. Locals created inside the called logic do not remain available afterward.
.@NAME or @NAME when the stored callable itself must be pushed. Plain .NAME or NAME may already call the stored value before call runs. Known Text locals differ: plain mention already pushes the Text value, so textLocal call is valid.call invokes its CALL field directly. PRE is not used, because the Dict value is already selected before call runs.NIL Code is invalid.When the input is a callable Dict, that callable Dict's fields are available for direct scope lookup during CALL. For a non-Meta non-static callable Dict, a special name closure is also available and references that same Dict. There is no separate self name here, because no outer field-selection step occurs inside call.
Known Text inputs are interpreted as MPL code text and then called through the same call boundary.
{} 0 {} [
"-- block uses stack values below it --" printCompilerMessage
5 [2 +] call printStack _:;
"-- call uses CALL directly on an already selected Dict --" printCompilerMessage
runner: {
factor: 3;
PRE: [FALSE];
CALL: [factor *];
};
7 @runner call printStack _:;
"-- read Code value first, then call it --" printCompilerMessage
codeLocal: {} () {} codeRef;
["-- code --" printCompilerMessage] !codeLocal
@codeLocal call
"-- known text from stack --" printCompilerMessage
9 «1 +» call printStack _:;
"-- known text local may be mentioned plainly --" printCompilerMessage
textLocal: «2 +»;
8 textLocal call printStack _:;
0
] "main" exportFunction
-- block uses stack values below it --
7
-- call uses CALL directly on an already selected Dict --
21
-- read Code value first, then call it --
-- code --
-- known text from stack --
10
-- known text local may be mentioned plainly --
10
callField builtin (dict name -- fieldResult) Selects a Dict field by known Text name and then applies .NAME-style semantics. Callable fields are called; non-callable fields are read.if builtin (condition trueCallable falseCallable -- branchResult) Selects between two already-selected Block branches by Cond. Unknown conditions require both branches to be compiled and merged.loop builtin (callable -- loopState) Repeatedly calls one already-selected Block through a call boundary. Its stack effect must be (A -- A Cond).ucall builtin (callable -- inlineResult) Processes an already-selected Block or known Text inline in the current scope.uif builtin (condition trueCallable falseCallable -- branchResult) Selects between two already-selected Block branches by a known Cond and processes the selected branch inline. No branch-output merge occurs.