Text/Indexed Text Consolidation


One of the changes made in the upcoming version of Inform 7 is the consolidation of indexed text and text into one. This seems reasonable, and I had always wondered why the two were treated as separate entities in the first place. Is there a disadvantage to combining the two? Why wasn’t this done sooner?


Previously text was stored in ROM. As most text didn’t need the functionality of indexed text this saved a lot of RAM, which is especially important for the Z-Machine. The new implementation will I think put 2-4 bytes per text in RAM (a pointer to ROM) until you edit a text when it will take more space. We’ll gain a lot more flexibility at the cost of some extra RAM usage and a slight performance decrease (as all text reads will need to check if they’ve been overridden.) Z5 is probably close to unusable now.

Would it be possible to add a Use option to turn off indexed text altogether, if people wanted to compile for the Z-machine and didn’t need regular expressions and such?

I doubt it, as this change is going to run through a lot of code.

If you want to avoid indexed text, it will be easier to keep using the current I7 version (6G60).

I’m curious… will this upcoming change also mean topic entries, snippets, texts (and indexed texts) will all be happy playing together?

So I no longer need to use this hack to match texts to topic entries?

No clue.