In section 5.7 Translation to assembly language (https://inform-fiction.org/source/tm/chapter5.txt), the Inform Technical Manual provides the following example:
For example, while (i <= 10) print i++; generates the assembly language .L0; @jg i 10 ?L1; @inc i; @print_num i; @jump L0; .L1;
Since the ++ operator is used in the postfix position, shouldn’t the generated assembly be
.L0; @jg i 10 ?L1; @print_num i; @inc i; @jump L0; .L1;
instead? (Or alternatively shouldn’t the pre-compiled loop be “
while (i <= 10) print ++i;”?)
I thought that maybe this was just a typo, but section 6.2 The operator precedence grammar (https://inform-fiction.org/source/tm/chapter6.txt) contains a table with the following lines:
9 ++ unary (pre/postfix) read/increment or increment/read 9 -- unary (pre/postfix) read/decrement or decrement/read
The order of the descriptions here implies that prefix use translates to “read/increment” and postfix to “increment/read”, which agrees with the earlier example but seems reversed from how they actually work.
Are these errata, or am I misunderstanding something? Is there a published list of errata for the Inform Technical Manual?