:NONAME - CORE EXT (original) (raw)
6.2.0455 :NONAME colon-no-name CORE EXT
( C: -- colon-sys ) ( S: -- xt )
Create an execution token xt, enter compilation state and start the current definition, producing colon-sys. Append the initiation semantics given below to the current definition.
The execution semantics of xt will be determined by the words compiled into the body of the definition. This definition can be executed later by using xt EXECUTE.
If the control-flow stack is implemented using the data stack,colon-sys shall be the topmost item on the data stack. See 3.2.3.2 Control-flow stack.
Initiation:
( i * x -- i * x ) ( R: -- nest-sys )
Save implementation-dependent information nest-sys about the calling definition. The stack effects i * x represent arguments to xt.
xt Execution:
( i * x -- j * x )
Execute the definition specified by xt. The stack effects i * x and j * x represent arguments to and results from xt, respectively.
See:
Rationale:
Typical use:
DEFER print
:NONAME ( n -- ) . ; IS print
Note:
RECURSE and DOES> are allowed within a :NONAME definition.
Testing:
ContributeContributions
pda
[373] where definition is compiled?Request for clarification2025-01-22 15:36:24
I couldn't find in any standard (fig-forth, ans...) a definition of the word saying how it is implemented, specially where the definition list of the word created using :NONAME is compiled.
In
:NONAME 2 * ;
where "2 *" is compiled? where in memory is literal 2 and * xt? and how long it will be using that memory? is there any way to free the memory?