,---------------. | Contributions | `---------------ยด ,------------------------------------------ | 2026-08-02 11:09:02 ruv wrote: | requestClarification - Inconsistent semantic description in `CELLS` | see: https://forth-standard.org/standard/core/CELLS#contribution-444 `------------------------------------------ The text description in section [6.1.0890 `CELLS`](https://forth-standard.org/standard/core/CELLS) states: - > _n2_ is the size in address units of _n1_ cells. But _n1_ can be a negative integer, such as `-3`. What does "the size of -3 cells" mean? Another problem is that if we apply **2s-Complement [Wrap-Around](http://www.forth200x.org/twos-complement.html#:~:text=On%20integer%20overflow%20of%20single%2Dcell%20addition%20%28%2B%201%2B%20%2B%21%20cell%2B%20char%2B%20etc%2E%29%2C%20subtraction%20%28%2D%201%2D%20negate%20abs%29%2C%20multiplication%20%28%2A%20chars%20cells%20floats%20etc%2E%29%2C%202%2A%20and%20d%3Es%20the%20result%20is%20the%20exact%20result%20modulo%202%5En) Integers** ([accepted in 2015](https://github.com/Forth-Standard/forth200x/blob/91f1ed9c756aac27f57e939c270b5f2c84262427/meetings/2015-notes#L56)), there will be no ambiguous condition on overflow. Consequently, the phrase `max-int cells` is always valid, but it probably will not be evaluated to *the size* of max-int cells. Another issue is that the stack diagram mentions only _n_ (signed integers), but `cells` actually applies to unsigned integers as well. Thus, a more complete stack diagram is: `( n1 -- n2 ^^ u1 -- u2 )`, where the symbol "**^^**" denotes the intersection of the left left and right arrow types, that is, the arrow type that is the [*meet*](https://en.wikipedia.org/wiki/Join_and_meet#Definitions) of the other two arrow types. A possible correct text description: - > _n2_ is _n1_ multiplied by the cell size in address units. _u2_ is _u1_ multiplied by the cell size in address units. If no overflow occurs, _u2_ is the size in address units of _u1_ cells. A similar correction also applies to [6.1.0898 `CHARS`](https://forth-standard.org/standard/core/CHARS) (in current wording).