Skip to content

Fix technical errors in appendices D/E/F and Part 5 chapters validated against Inform6-6.44 source#91

Closed
Copilot wants to merge 4 commits intomainfrom
copilot/validate-book-against-source-code
Closed

Fix technical errors in appendices D/E/F and Part 5 chapters validated against Inform6-6.44 source#91
Copilot wants to merge 4 commits intomainfrom
copilot/validate-book-against-source-code

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 10, 2026

Several factual errors found by cross-referencing the guide against Inform6-6.44/ C source and inform6lib-6.12.8/.

DICT_WORD_SIZE — Z-code treatment (appendix-d, appendix-e, ch35)

The setting is ignored in Z-code; dictionary sizes are hardcoded by Z-machine version. A compiler bug causes a fatal error if set to anything other than 6 on Z-code targets from the command line.

  • §D.2 table: Z Default 66 (ignored)
  • §D.3.1: Rewrote Z-code paragraph; added compiler-quirk warning block
  • §E.5 table: Description corrected
  • §E.11 example: Added ! Glulx only comment to $DICT_WORD_SIZE=12
  • ch35 §35.4.2 table: Z-code column updated to "ignored"

NUM_ATTR_BYTES — v3 clarification (appendix-d §D.3.3)

The setting is fixed at 6 for all Z-code versions, not "4 in v3". The v3 object format only writes 4 of those 6 bytes to disk (limiting usable attributes to 0–31), but the compiler setting itself never varies.

Copy__Primitive caller list (appendix-f §F.6.1)

create does not call Copy__Primitive — it removes a pre-allocated duplicate child from the class pool. Only recreate, destroy, and copy call it. Verified in veneer.c Cl__Ms for both Z-machine and Glulx.

-H switch description (ch35 §35.2.4)

"Passing -H disables it" was wrong. Huffman compression is on by default (compression_switch = TRUE); the correct disable form is -~H.

Copilot AI and others added 4 commits May 10, 2026 16:11
- ch06 §6.8.2: indirect() on Z-machine v4+ allows 7 call arguments,
  the same as a direct call. The previous text incorrectly stated the
  limit was 6 (one fewer than direct). Both paths share the same
  loop in expressc.c (while j<8), giving a max of 7 call arguments.

- ch07 §7.6.2: The class prototype copy is used by recreate and
  destroy only. The copy method copies its source argument b via
  Copy__Primitive(a, b); it does not use the prototype. Removed
  'and copy' from the prototype description.

- ch09 §9.3.1: Add warning that $DICT_WORD_SIZE is silently ignored
  for Z-code targets, and that setting it to any value other than the
  default 6 causes a fatal compile error (inform.c:152-154).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: 36bit <24438359+36bit@users.noreply.github.com>
The compiler (text.c:1928) ignores $DICT_WORD_SIZE for Z-code,
using hardcoded values (6 Z-chars/V3, 9 Z-chars/V4+). Due to a
compiler quirk (inform.c:152-154), setting $DICT_WORD_SIZE to any
value other than 6 when compiling for Z-code causes a fatal error.

- ch11: Add -G flag to two DICT_WORD_SIZE command-line examples so
  they correctly target Glulx (where the setting is meaningful)
- ch12 §12.4.3: Clarify that DICT_WORD_SIZE is ignored for Z-code
  and document the fatal error quirk
- ch15 §15.4.1: Change '6 (fixed)' to '6 (ignored)' with explanation
- ch15 §15.7.1: Rewrite Z-machine paragraph to accurately describe
  that the setting is ignored and warn about the fatal error

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: 36bit <24438359+36bit@users.noreply.github.com>
@36bit 36bit closed this May 10, 2026
@36bit 36bit deleted the copilot/validate-book-against-source-code branch May 10, 2026 21:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants