Compiler fails with 6F95 - where to start looking?

So, I returned to my WIP with the new I7 build for the first time, and the compiler failed (code 11).

I have no idea what part of the source is the problem. Any suggestions where to look first? This happen to anyone else?

Wild guesses and shooting in the dark are welcomed with open arms! Otherwise I just have to start copy-pasting the entire source line by line to a new project, and it’s not a tiny bit of code, that…

Thanks!

i-k

Can you compile a new (one-line) project with 6F95?

Yep, that I can. Also tested with a few of my old misc projects, they too compile beautifully.

So, as Inform kindly informs me, “that probably indicates that the compiler failed to manage its data structures properly. Perhaps you created a complicated situation on which it has not been fully tested.”

Gee, creating complicated situations, me?

i-k

Data structures … hmm. I have no clue about what “code 11” means, but rather than start at the top and copy your code to a new project one block at a time, you might try going the other direction and comment out things like tables. If you get rid of anything that’s sort of complicated and not vanilla I7, then recompile, you may be able to narrow it down.

I’m afraid there’s no alternative to progressive pasting (or commenting).

You’re probably mistreating some piece of syntax in a way that nobody’s managed to do before. This isn’t a failure on your part; you’ve just happened to do something that trips a compiler crashy bug. Unfortunately the compiler can’t report what’s causing it to crash.

Code 11 indicates an internal compiler failure, which should never happen. In addition to narrowing down with what is causing it, it would be helpful to create a bug report in Mantis and attach the offending source code to it.

Found it. Linking scenes fails in certain conditions. See bug report http://inform7.com/mantis/view.php?id=415 to find out the details.

Hopefully this gets fixed (not just the problem message), or else I have to, yet again, resort to dubious truth-states-and-what-not -tactics, and it seems that every other word in my source is already ‘truth state’.

I’m sure it will be fixed (compiler crashing bugs are high priority) but it might be several months before the fix is out. You may be stuck applying flags for the moment.

Thanks for tracking it down, in any case.

Speaking of truth state variables, have you looking into using the tensed versions of actions and relations? As in, if we have taken the log and if Arthur has carried the blood-stained coat? Phrasings like that and if Scene1 has ended are intended to cut down on the number of explicit truth state variables in a work, though they’re such a minor feature their existence is easy to overlook.

Thanks, everyone, for the help!

I already use past tense (and present) for managing scenes – the trouble is: more complexity needed to keep track of the plot! And when Inform won’t allow but a single begin/end trigger for a given scene outside the scene machinery, yees, that’s where one has to pull out those bloody truth states once again – to gather different conditions and actions and all that nonsense in one variable.

i-k

I’m not sure just what you’re doing, but it may be easier to use a boolean test rather than a boolean variable to gather complex conditions;

To decide whether scene-1-starts:
  if ..., decide yes;
  if ... and ..., decide no;
  if ... or ..., decide yes;
  decide no.

Scene 1 begins when scene-1-starts.

I find this easier than setting variables, because there’s no chance that the variables can wind up set inconsistently. Also, I didn’t have to use the words “truth state”. :slight_smile:

Gold.

Ah, you have broken free from the claws of that vicious beast that walks among us rattling his chains and stating the truth! I bow to you, good sir, and shall drink from this cup of wisdom to further examine the strange lands the path of decisions may lead…

Undecidedly Yours,
i-k