Digest #341 2026-07-28
Contributions
There appears to be a formal inconsistency regarding the character data type.
- Section 3.1.2 Character types states that a characters shall "have a size less than or equal to cell size".
- Section 3.1.1 Data-type relationships states that the character data type is a subtype of the non-negative integer data type:
char ⇒ +n.
At worst, both of these statements cannot be true simultaneously. If a character has a size equal to the cell size, then the character data type cannot be a subtype of +n, since every bit of a character is transferred and used (see 6.1.0850 C!).
The section 3.1.1 should probably be corrected to read: char ⇒ u. A formal consequence of this change is that a character cannot be an argument of min, <, >, mod, /, and other words that take n but not u.
Replies
requestClarification - BYE Semantics Needs Clarification
The 'BYE' specifications says 'Return control to the host operating system, if any.' That's not what I'm seeing IRL. A more proper wording might be "Return control to the interpreter;"
"Return control to the interpreter" is the behavior of QUIT. I've never encountered a Forth system running under an OS where BYE didn't terminate the Forth process.