I’ve hit the infamous memory limit ‘error’, and unfortunately this isn’t the first time. The last time, I was able to simply set a MAX_ZCODE_SIZE, MAX_PROP_TABLE_SIZE, MAX_ACTIONS, and MAX_VERBS to higher values. This time that isn’t working and I cannot remember how I went about even figuring out how to solve the problem last time I had it.
I was hoping this community here could help me out in absence of dedicated forums on the site I downloaded inform from in the first place.
The build I am using is 6M62 of Inform 7. I’d appreciate any help! Or perhaps if this project is still maintained and updated to be pointed to a version that bypasses that problem entirely!
I’m also using glulx, not z8. And I have changed those settings without much luck.
Again though I am using a version of inform 7 from 2015 - the build I mentioned. Searching around here I read rumors there is a still being developed version, however I can’t find it and it isn’t on the inform site. If you are aware that this problem I’m having is not on newer versions that may have been developed since 2015 I’d appreciate being pointed in their direction!
What Ade recommended is what I tried it at. I’ve also fished through other documentation and found all the memory variables I could to try to increase. Its entirely possible I’m missing something however.
What’s I6 actually complaining about? It’s confusing, but when I7 mentions MAX_PROP_TABLE_SIZE, that’s just an example. You have to look at the other tab to see which setting I6 is actually having problems with.
I ask myself that quite a bit! In the four or so years I’ve been using inform I’ve gotten some cryptic error messages. Once one just read ‘You, sir, are a liar’ or something to that effect. Had to go through the entire code bit by bit to figure out what was wrong.
As for another tab - do you mind pointing me in the direction I need to go in order to see that please, I’d greatly appreciate it!
Right, I should’ve added “in the Mac” to the whole thing!
Anyway, whatever your OS is, I think that wherever you’re getting the error, there will be other tabs at the top, and you should click on those until you get the thing beginning “I’ve now read your source text.” (Also it may be that you don’t get the Inform 6 tab and some others unless you turn on some option–doesn’t matter–that’s not the one you want.)
I appreciate all the replies! I managed to find the tab and get things settled! Thanks for the help. And I assume that any future vague and cryptic error messages are elaborated on in this tab as well?
I think this is the only one, really (except maybe for error messages where you were messing around in Inform 6 and have to figure out how that led to an error, but those can be avoided by not messing around in Inform 6).
Most of the other cryptic error messages tend to mean that there was some syntax error but Inform couldn’t figure out what happened exactly, so it made a really bad guess about what you’re trying to do. Just think of a lot of them as “SYNTAX ERROR.” The really useful thing is that it points to the line where the error happened.
Haha, I don’t suppose ‘you, sir, are a liar’ has any more deeper meaning? I’ve only ever gotten that one once, but it was about as frustrating as this memory limit thing and like I said I had to go through everything I had written myself and trial and error to figure out what went wrong.
Also, while I am here, can you please tell me if there is some way to have an action, under certain conditions, result in another being executed after? I’ve gone through the documentation and can’t find such a thing. Essentially I want to find a good way to have ‘random events’ via an action that moves you to a location and under certain conditions will automatically trigger action action. Though I’m sure such a thing would be useful in other cases.
Again, I appreciate your help greatly and its good to know there is a community for inform!
I’ve never encountered “You, sir, are a liar” so I can’t help with that! I believe there was at least one snarky compiler message that got taken out because people were occasionally encountering it for real but I can’t remember it.
Sure, if you want to perform another action in your code you can just use “try”:
After examining Neil:
say "Neil says 'Why are you hitting yourself?'";
try attacking yourself.
See §7.4 of Writing with Inform (the documentation).
However if you just want something to happen, instead of having the player perform another action, you might just want to write code for that. And if you want a random chance of that happening every turn, a good way is with an “Every turn” rule, like
Every turn when the player carries the cursed mirror and a random chance of 1 in 5 succeeds: [your code here]