"Inform 6 ran out of memory" after installing new release

I had downloaded Inform 7 about two years ago; played with it a bit, then left it for other projects. I’d built a basic world of what I think are fairly modest dimensions: about a hundred rooms, a negligible amount of other goodies.

Attempting to compile it after the upgrade yields this message:

I can only think I must have some subtle bug that causes an infinite number of items to be generated, in the new but not old release. I have not seen a problem like this on the Inform boards; I can do the laborious work of removing things from my world until the problem goes away, but if there’s a simple thing I am missing, it would save that effort.

Does anyone know why this might have happened?

Try boosting the exceeded setting for now, then looking at the World tab of the Index.

I started the process, stripping it down to a single chapter, then re-adding chapters one by one.

… and the entire thing was built back up in a few minutes, and now works properly, modulo it being pickier about some conditionals.

Now I have my own next steps to debug, like an “instead” clause that doesnt’ seem to be triggering, but that’s for me to figure out.

Thank you for the suggestion; it seems like it was just some corrupted intermediate files, perhaps.

That seems unlikely. There’s only one intermediate file (the generated I6 file) and Inform rebuilds it on every compile.

The new version of Inform does use more memory. It’s quite likely that you will run into this again as you continue developing. The solution is what Draconis said: find the setting and increase it.

I have encountered this same error msg, the only difference being that I have not downloaded any new version. I am using the same 6L38 I started with. I have included the following in my code and it does not solve the issue.

Use MAX_ARRAYS of 1500. Use MAX_CLASSES of 200. Use MAX_VERBS of 255. Use MAX_LABELS of 10000. Use MAX_ZCODE_SIZE of 100000. Use MAX_STATIC_DATA of 180000. Use MAX_PROP_TABLE_SIZE of 200000. Use MAX_INDIV_PROP_TABLE_SIZE of 20000. Use MAX_STACK_SIZE of 65536. Use MAX_SYMBOLS of 20000. Use MAX_EXPRESSION_NODES of 256.

The problem started when I added two new “Understand” rules to the game. If I comment one of these two out and re-compile the error msg goes away. Any suggestions would be appreciated.

I am wondering if I separate the code into individual files and then include them as externals if that would help but then they would all be loaded and readable anyway, right?

What are those new Understand rules?

You have to look at the console output and see what memory setting I6 is complaining about.

No. All I7 source and I7 extensions go into generating a single I6 file, and it’s the I6 file that’s hitting the error.

They are both accessed by hyperlinks. I have several in the game.
The player clicks a link and the understand rule picks it up.

How do I check the console output for I6?

Also, can the MAX settings above be raised even further?

In the “Results” tab, there’s a button on the top right that says “Console”. Click that to see the direct output from the compiler.

Right on. The problem was with MAX_ACTIONS which was set at 200.

Set it to 400 and problem solved.

I have occasionally had I7 hang up and complain about memory during a compile, then never do it again even with no significant changes to code. My guess is that it thinks something’s wrong with my code, when in fact my computer was doing something else at the same time that slowed it down.

Unlikely. That’s not how modern desktop OSes work.

Was it an I7 or an I6 error? Do you remember the exact error wording?

Unfortunately, I don’t have the documentation anymore: terribly sorry. I deleted my record of the error when I7 compiled properly the second time, since I then decided the problem was with my own system. I’ll make a bug report if I see it again.