ucall (callable -- inlineResult)inlineResult: Result produced by inline processing of callable.Processes one already-selected Block or known Text inline in the current scope. No name lookup or field selection happens inside the builtin.
Inline processing leaves locals created by the processed code available afterward.
.@NAME or @NAME when the stored Block itself must be pushed. Plain .NAME or NAME may already process the stored Block before ucall runs. Known Text locals differ: plain mention already pushes the Text value, so textSource ucall is valid.CALL field is a Block. ucall does not select CALL or evaluate PRE from a Dict input.Known Text inputs are interpreted as MPL code text and processed inline.
{} 0 {} [
"-- block uses stack values below it --" printCompilerMessage
5 [2 +] ucall printStack _:;
"-- read stored Block value first, then process it inline --" printCompilerMessage
blockSource: [7 "blockLocal" def];
@blockSource ucall
blockLocal printStack _:;
"-- text uses stack values below it --" printCompilerMessage
9 «1 +» ucall printStack _:;
"-- known Text local also processes inline --" printCompilerMessage
textSource: «8 "textLocal" def»;
textSource ucall
textLocal printStack _:;
0
] "main" exportFunction
-- block uses stack values below it --
7
-- read stored Block value first, then process it inline --
7 Cref
-- text uses stack values below it --
10
-- known Text local also processes inline --
8 Cref
call builtin (callable -- calledResult) Calls an already-selected Block, Code, callable Dict, or known Text through a call boundary. No selection happens inside the builtin.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).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.