The following Request for Interpretation from Anton Ertl is recognized
as Q0008. Loring Craymer is assigned to draft the TC's response, please
acknowledge to me, Loring. Discussion on x3j14 list please.
- Greg
The definition of "execution token" and of some words related to execution tokens appears unclear to me.
2.1 Definitions of terms ... execution token: A value that identifies the execution semantics of a definition. 6.1.0070 ' tick CORE ( <spaces>name -- xt ) Skip leading space delimiters. Parse name delimited by a space. Find name and return xt, the execution token for name. An ambiguous condition exists if name is not found. When interpreting, ' xyz EXECUTE is equivalent to xyz.The last sentence indicates that the value returned by ' identifies the interpretation semantics, not the execution semantics.
If an implementation does define an interpretation semantics for a word like "COMPILE," (e.g., performing a -14 THROW), is
' COMPILE, EXECUTErequired to perform these interpretation semantics rather than the execution semantics? What about other (system- or user-defined) words with differing execution and interpretation semantics?6.1.1550 FIND CORE ( c-addr -- c-addr 0 | xt 1 | xt -1 ) Find the definition named in the counted string at c-addr. If the definition is not found, return c-addr and zero. If the definition is found, return its execution token xt. If the definition is immediate, also return one (1), otherwise also return minus-one (-1). For a given string, the values returned by FIND while compiling may differ from those returned while not compiling.Does this mean that FIND can return a different xt when compiling than when interpreting? If yes, what execution semantics do these xts identify?
- anton