How are properties implemented in Inform 6?

The DM4 mentions the existence of both common properties (which seem to map directly to object properties in the Z machine spec) which are limited to 63, and then “individual” properties, which seem to be nearly unlimited (over 16,000).

I’m curious how the latter is implemented? I assume one “Z machine property” is used to point to an array of… something? Properties themselves can have up to 64 bytes of associated data as well, so that’s another 32 possible slots / pointers / whatever.

Maybe the fact that Inform claims 62 properties are available when the Z machine seems to support up to 63 (not including the terminating zero property) is relevant?

-Dave

This is described in chapter 9 of the Inform Tech Manual. 9.3 to 9.6, specifically.

https://www.inform-fiction.org/source/tm/chapter9.txt

5 Likes