I6 Constants in Standard Rules

The 2015 edition of the Handbook refers to a bunch of I6 constants in the Standard Rules, such as these:

Use ALLOC_CHUNK_SIZE of 32000.
Use MAX_ARRAYS of 10000.
Use MAX_CLASSES of 200.

I don’t know whether these are obsolete, or whether they have just been offshored into kits. Should I delete this section of the Handbook, or are there still constants that may need to be overridden in game code?

Some of these constants, like DICT_WORD_SIZE, will always be relevant (though I hope they’ll eventually get nicer names). Others, like MAX_CLASSES, only affect the workings of the I6 compiler and have no impact on the final game. They originated in the era where RAM was precious and the compiler wanted to use as little as possible; if you had a big game, you could change these settings to give the compiler permission to use a bit more. But nowadays RAM is plentiful and the I7 compiler will use far more of it than I6 ever will.

I thought the latter had been in Inform 10, now that it no longer uses factory-standard I6, but it seems not. Which means they can still be relevant if you’re compiling a sufficiently huge game. I wonder why they’re still in there?

1 Like

ALLOC_CHUNK_SIZE, MAX_ARRAYS, MAX_CLASSES, and the other I6 memory-limit constants are no longer meaningful. I7 accepts the “Use” declarations and passes them over to the I6 compiler, but the I6 compiler ignores them and allocates as much memory as it needs.