[I7/6g] symbols_chunk_size - what is it?

First, thanks to everyone involved in putting the new-ish Inform compiler here:

ifarchive.org/indexes/if-archive … ables.html

It helped get rid of those mysterious “code 10” errors while compiling & I feel much less helpless for it, now I replaced inform-632.exe with the new executable. (I haven’t moved up to 6L, yet.)

However, this leaves me with another question.

I had to define

use SYMBOLS_CHUNK_SIZE of 7000

Apparently this is because I have a name that is over 5000 bytes long in a project. How did I manage do this? Is it because I included text of over 5000 bytes in one say statement?

But I don’t think that’s the case as line 155160, which causes the error, points me to

Constant SC_16033 = "--especially since DEACONS doesn't match with the number of vowels";

This is more for my own enlightenment and curiosity, but I’m curious what’s going on–the constant needed jumped from 5000 to over 6400 (I didn’t track the exact value.) It didn’t happen consistently, either–worked on one computer but not another, until it failed to compile on either.

I guess I’m just wondering what the error means and how I tripped it.

Thanks!

ETA: I6 source (10mb) temporarily at dropbox.com/s/ewhs2zackipv0nd/auto.inf?dl=0

I will have a look when I get a chance, if no-one gets there before me.

The message is rather misleading. What it actually means is that the total number of Inform 6 symbols in the source file is too large for the space set aside for them. The code contains this comment around the logic that checks this condition:

        /* If we've passed MAX_SYMBOL_CHUNKS chunks, we print an error
           message telling the user to increase SYMBOLS_CHUNK_SIZE.
           That is the correct cure, even though the error comes out
           worded inaccurately. */
        if (no_symbol_name_space_chunks >= MAX_SYMBOL_CHUNKS)
            memoryerror("SYMBOLS_CHUNK_SIZE", SYMBOLS_CHUNK_SIZE);
        symbol_name_space_chunks[no_symbol_name_space_chunks++]
            = (char *) symbols_free_space;
        if (symbols_free_space+strlen(p)+1 >= symbols_ceiling)
            memoryerror("SYMBOLS_CHUNK_SIZE", SYMBOLS_CHUNK_SIZE);

Due to the infrastructure in the Inform 6 code the error message diagnostic isn’t as clear as it could be, but at least it tells you to do the right thing.

It’s definitely a good enough error message. Thanks for looking at this! Next time, maybe I can download the inform source and have a go and search myself.

It’s really nice to have one more thing make sense.