Fix technical errors in appendices D/E/F and Part 5 chapters validated against Inform6-6.44 source#91
Closed
Fix technical errors in appendices D/E/F and Part 5 chapters validated against Inform6-6.44 source#91
Conversation
- 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>
Agent-Logs-Url: https://github.com/36bit/inform-guide/sessions/887fa30a-4dd5-4d3a-b5b7-67da2960167f Co-authored-by: 36bit <24438359+36bit@users.noreply.github.com>
…D_SIZE table cell Agent-Logs-Url: https://github.com/36bit/inform-guide/sessions/887fa30a-4dd5-4d3a-b5b7-67da2960167f Co-authored-by: 36bit <24438359+36bit@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Several factual errors found by cross-referencing the guide against
Inform6-6.44/C source andinform6lib-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.
6→6 (ignored)! Glulx onlycomment to$DICT_WORD_SIZE=12NUM_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__Primitivecaller list (appendix-f §F.6.1)createdoes not callCopy__Primitive— it removes a pre-allocated duplicate child from the class pool. Onlyrecreate,destroy, andcopycall it. Verified inveneer.cCl__Ms for both Z-machine and Glulx.-Hswitch description (ch35 §35.2.4)"Passing
-Hdisables it" was wrong. Huffman compression is on by default (compression_switch = TRUE); the correct disable form is-~H.