"Use DICT_WORD_SIZE of..." doesn't work in v10.1?

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?

1 Like

You on an old build, Otis? I reported I7-2164 in June and it was fixed promptly and it hasn’t reverted that I’ve seen.

I used “I” in my post above, but it’s really someone that I’m helping who was experiencing the issue. I thought they were using a fresh download of the Linux IDE (fresh as of a few weeks ago), but it turns out the installation was out of date. One remove and reinstall cycle later, it’s fixed. Thanks, Zed!