Digest #161 2021-08-22

Contributions

[209] 2021-08-21 14:29:36 MatteoVitturi wrote:

example - Missed-order in section F.3.10 Division

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 */ but is defined in F.6.1.0110 */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

[r716] 2021-08-21 09:48:45 BerndPaysan replies:

comment - There is an error in testing

GI5 tests multiple WHILEs, 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.


[r717] 2021-08-21 17:38:45 ruv replies:

requestClarification - Why "[" is specified using immediacy?

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), 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).

  2. The standard allows [ to be STATE-dependent, since the interpretation semantics for this word are undefined by the standard.