,---------------. | Contributions | `---------------´ ,------------------------------------------ | 2021-08-21 14:29:36 MatteoVitturi wrote: | example - Missed-order in section F.3.10 Division | see: https://forth-standard.org/standard/testsuite#contribution-209 `------------------------------------------ In section F.3.10 Division, there is a little missed-order in the last sentence: > As the test definitions use the words which have just been tested, the tests must be performed in the order: F.6.1.0240 /MOD, F.6.1.0230 /, F.6.1.1890 MOD, F.6.1.0100 */, and F.6.1.0110 */MOD. ```T*/MOD``` is referenced in [F.6.1.0100 */](https://forth-standard.org/standard/testsuite#test:core:*/) but is defined in [F.6.1.0110 */MOD](https://forth-standard.org/standard/testsuite#test:core:*/MOD), it should be > As the test definitions use the words which have just been tested, the tests must be performed in the order: F.6.1.0240 /MOD, F.6.1.0230 /, F.6.1.1890 MOD, F.6.1.0110 */MOD, and F.6.1.0100 */. _Matteo_ ,---------. | Replies | `---------´ ,------------------------------------------ | 2021-08-21 09:48:45 BerndPaysan replies: | comment - There is an error in testing | see: https://forth-standard.org/standard/core/WHILE#reply-716 `------------------------------------------ GI5 tests multiple `WHILE`s, and compiles correctly on systems that implement `WHILE` and `REPEAT` correctly. You are supposed to resolve one `WHILE` (the latest) at `REPEAT`, and leave the others to a matching `ELSE` or `THEN`. ,------------------------------------------ | 2021-08-21 17:38:45 ruv replies: | requestClarification - Why "[" is specified using immediacy? | see: https://forth-standard.org/standard/core/Bracket#reply-717 `------------------------------------------ > AFAIK there is only one more word this Standard explicitly declares IMMEDIATE i.e. `\` the comment till EOL. In the standard, if for some word the compilation semantics are equivalent to the interpretation semantics, then this word is declared as immediate. There a number of such words: `[defined]`, `[undefined]`, `[if]`, `[else]`, `[then]`, `(`, `.(`, `\`. Also, many other words _may_ be actually implemented as immediate words. Namely, if the glossary entry for a word contains "Interpretation" section, then it is allowed and possible to implement this word as an immediate word (in the standard notion). --- > such as `IF` or others alike because `[` is not STATE-dependant like them It's incorrect (and slightly ambiguous). If you imply execution semantics, — they are not specified for these words, and then this claim is incorrect. In the standard, in one place where the term "STATE-independent behavior" is used ([A.6.1.1550 FIND](https://forth-standard.org/standard/rationale#rat:core:FIND)), it means that the compilation semantics for a word are equivalent to the interpretation semantics for the word. In this sense your claim is incorrect too. 1. The standard allows `IF` to be STATE-independent. The interpretation semantics for `IF` are undefined by the standard, and so this word is allowed to be implemented in such a way that its interpretation semantics are equivalent to its compilation semantics (see [A.3.4.3.2](https://forth-standard.org/standard/rationale#paragraph.A.3.4.3.2)). 2. The standard allows `[` to be STATE-dependent, since the interpretation semantics for this word are undefined by the standard.