Fatal error: The memory setting MAX_SYMBOLS (which is 20000 at present) has been exceeded

I got this message:

Inform 6.33N for Win32 (30th August 2015)
auto.inf(140076): Fatal error: The memory setting MAX_SYMBOLS (which is 20000 at present) has been exceeded. Try running Inform again with $MAX_SYMBOLS= on the command line.

Is this a bad sign? I understand it has a suggestion for increasing the memory setting, but I’m wondering if this means it’s likely there’s also an error somewhere. I got this after adding several “Understand as a mistake” lines.

1 Like

Not a problem if you’re compiling to Glulx. Just add something like:

Use MAX_SYMBOLS of 200000.

to your source.

2 Likes

Another thing you can do is use Inform’s 6.36 compiler or higher. This has the added benefit of building your source faster.

Here’s a thread that may help. It will get rid of all need for use MAX_ variables, which can get demoralizing as your projects grow and it seems like your code should compile.

TLDR there’s a file called inform-633.exe in some directory. For me it’s C:\Program Files (x86)\Inform 7\Compilers\inform-633.exe. Go to archive.org, find inform-636.exe (6.3.6 version of the compiler) and drop it in that directory, moving inform-633.exe to another to be safe (don’t delete it til you know it works!)

1 Like

No, it just means your game got too big to compile under 6.33’s default settings. Increasing the setting is the correct response.

Or, as the folks say, upgrade to 6.36 or later.

Thanks!

I didn’t think of it as a big game, but I guess it’s a complicated one, even if there aren’t that many rooms.

Yeah, it was confusing what all of them meant for me with my anagram games. I forget which limit I exceeded first. But it was demoralizing to fix something trivial, then build and get an error after a minute, even if it was easy to fix. There were all sorts of variables, so it seems possible that if one game does something intricate, it will trip one limit.

use max for A Roiling Original, which is quite big

use MAX_DICT_ENTRIES of 3000.
use MAX_OBJECTS of 930.
use MAX_SYMBOLS of 140000.
use MAX_VERBSPACE of 10240.
use MAX_ACTIONS of 625.
use MAX_VERBS of 640.
Use MAX_INDIV_PROP_TABLE_SIZE of 100000.
use MAX_NUM_STATIC_STRINGS of 80000.
use MAX_PROP_TABLE_SIZE of 540000.
use MAX_STATIC_DATA of 750000.
Use MAX_LABELS of 16000.

(It did force me to consider “do I need this feature?” but the inconvenience of rebuilding outweighed this.)

Your game may not take a minute to build, but if you haven’t downloaded 6.36 yet, you’ll find that cutting build time in half is a huge morale boost.

1 Like

You should update Inform 7 to 10.1 if possible. Some adjustments to the game code may be necessary but overall it seems to be much better than older versions.