For a Glulx game in v10.1, there doesn’t seem to be any way to correctly set the DICT_WORD_SIZE
value if a non-standard value is desired.
The method shown in WWI/RB:
Use DICT_WORD_SIZE of 12.
produces run-time errors during parsing, indicating that array limits of gg_tokenbuf
are being exceeded.
A direct inclusion such as:
Include (- Constant DICT_WORD_SIZE = 15; -).
or
Include (- Constant DICT_WORD_SIZE = 15; -) replacing "DICT_WORD_SIZE".
seems to be being intercepted by the compiler and handled specially, but the way that the result appears in I6 is to have the declaration wrapped within an #Ifndef DICT_WORD_SIZE;
directive. A similar directive also appears higher in the source code, in which the value DICT_WORD_SIZE
is set to 9. As a result, the #Ifndef
causes the revised declaration to be skipped.
Attempting to use it as a $
value as:
Use $DICT_WORD_SIZE of 12.
causes the compiler to place it correctly as a compilation parameter… but also to use the value $$DICT_WORD_SIZE
(with an extra $
), so it it does not work.
I tried to be clever and work around this via:
Use #DICT_WORD_SIZE of 12.
and this seems to generate the right I6 at the start of auto.inf
(though I’m not 100% sure that it’s considered legal to include this kind of compilation option within the source instead of via command line), but compilation still fails saying that DICT_WORD_SIZE
has already been defined in the compiler.
So… is there a way to redefine DICT_WORD_SIZE in 10.1?