I just broken Inform

Not really a question, more like a WTF moment. I was touching up my general world layout, changing an “Index map with Whatever mapped east of Wherever”, when all of a sudden…

Translating the Source - Failed
The application ran your source text through the Inform 7 compiler, as usual, but the compiler unexpectedly failed. This should not happen even if your source text is gibberish, so you may have uncovered a bug in the program.

When a program like the I7 compiler fails, it typically returns an error number: this time, the number was 10, and 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.

The best option now is probably to reword whatever was last changed and to try again. Subsequent attempts will not be affected by the failure of this one, so there is nothing to be gained by restarting the application or the computer. A failed run should never damage the source text, so your work cannot be lost.

If you think it likely that the Inform 7 compiler is at fault, please check that you have the currently distributed build of the system: if you have, please consider taking the time to fill out a bug report at the Inform bug tracker (www.inform7.com/bugs). If you think the fault may be due to a problem in an extension you're using, then please contact the extension's author directly.

Sorry for the inconvenience.

Anyone ever got this? Did I just destroy Inform with my mapscrewery?

5 Likes

You can find many historical examples by searching for “code 10” on the forum, though I would expect that most of those have been fixed.

These are always of interest, so it would be good to pin down the exact cause, if possible. Are you able to undo changes to see which one introduces the fault?

4 Likes

My guess at the likely cause:

If you say “index map with RmX mapped east of RmY” and “index map with RmY mapped east of RmX” it can make inform blow a gasket. Your code probably won’t break it so simply, but if you have, say, a group of 3 rooms defined so that they can’t be mapped in any reasonable way e.g. X west of Y west of Z, then there is an error.

I’ve found this doesn’t happen until I have a lot of rooms in the map. Inform can’t rearrange them any more. It would be nice if Inform could be more specific about the error. I’d advise backing up story.ni and trying to create a smaller working test case later to report at the I7 bug tracker.

Less likely: I’ve gotten stuff like this and generally it is due to having a comment that is not closed.

I have a small python script which can test this sort of thing out, since it can be hard to see sometimes. But then I am using an old version.

5 Likes

I love how even Inform’s compiler error messages are literate.

6 Likes

Yes, it was the Index-mapping thing. I have a lot of “insides from” in this game, and I dislike them being placed next to the “outsides”, it’s confusing. So I’m forcing Infrom to display those away from the main map. The last one of those broke it.

@Zoe: LOL, yes. Inform sounds just like an embarrassed British butler. “I have no idea how that could, happen, sir, and I deeply regret it, sir.”

5 Likes

Right? Sometimes I take a visit to this side of the forum so I’m not always swimming in TADS 3, and the error reports y’all get are downright endearing!

I like the part about “Even if you typed in gibberish, this error should not have occurred” lol. You must have uncovered an extreme compiler crash case!

6 Likes

Yes, well, that was straight up British passive-aggressiveness xD “Your code is WORSE than gibberish, sir. A monkey slamming the keyboard would have been better than that, sir. With all due respect.”

That really hurt.

9 Likes

Ah! I appreciate the translation lol. My disability makes me a bit deaf to these kinds of writing tones. :grin:

2 Likes

Oh no no, I wasn’t refering to you, Joey, don’t worry please :slight_smile: I meant Inform. When I got that error, that’s how it came across to me. That’s a big part of why I posted it here, because I found it hilariously pass-ass, the software giving me a dressing down xD

3 Likes

Yes, I understand! :grin: I meant I interpreted the Inform error text as genuine and not as passive-aggressive, as I rarely detect passive-aggression successfully lol. So I genuinely thank you for clearing that up for me. :smile:

3 Likes

OK, phew, glad it didn’t come across that way :smiley:

Now, back to fighting Inform, see if I can convince it to let me do that bloody password puzzle…

3 Likes

The major bit: hooray it’s fixed!

A side point – if you remember the line that broke it, it might be worth saving a snapshot of story.ni and later stripping it down of all non-location code to send it to the Inform 7 bug tracker.

But don’t sweat it, as I suspect your WIP is for IFComp! And obviously stripping down and debugging that instead of your WIP would be a bad use of time.

It is a known error, and it’s worth having a test case floating around. I have one of my own I could send in, but I can only reliably reproduce it with a world map with 100 rooms, so if there’s something simpler that may be better for the dev team. Though if nobody else does so, I may just get to work on a skeleton of my own work. Again, I have Python scripts that could cull the right code.

It might not be super high priority but I’d guess it would be a good issue for a junior developer to tackle. I think at the very least Inform could/should say is “A likely error is that you tried to specify contradictory directions with the Image Map code.” Its error messages are usually quite helpful but here, yes, it’s a bit confusing.

5 Likes

Yep, it’s my IFComp game, hence the rush :slight_smile:

And also yes, considering how Inform usually tells you stuff like “you tried to say ‘during John’, but John is a man and ‘during’ only applies to scenes”, or “you said west from Opera is Stage, but also West from Opera is Audience, and that makes no sense, dude”, it’s not a stretch to say it should say something like “don’t map X west of Y and also Z west of X, make up your mind boyo.”

No biggie, tho. It was pretty easy to guess where the problem was.

1 Like

Definitely! It wasn’t too bad for me to find where the mistake was, but when I originally saw the error, I thought “nah, that isn’t worth reporting” or even “I bet it was fixed with the latest build, and I’m using an old Inform build anyway.”

Now that someone else brought it up, it’s worth reproducing from my own case, because it’s not just me. The thing is – it’s not hard to change directions and figure what’s going on, but we’re still changing directions, so it’s worth reporting, so people will have not just this topic but a reference in the bug tracker.

Graham Nelson can decide if it’s ultimately worth bothering with :slight_smile: !

Great to see you back in IFComp.

1 Like

I also find it surprising that errors in indexing can crash the whole compiler. It happens because the I7 compiler outputs the index and the story file as part of the same process, but it feels wrong for code completely separate from the story itself to do this!

1 Like

I broke Inform, again:

Problem. An internal error has occurred: unowned. The current sentence is 'Understand "show [something]" as showing'  ; the error was detected at line 886 of "inform7/if-module/Chapter 5/Understand Sentences.w". This should never happen, and I am now halting in abject failure.

What has happened here is that one of the checks Inform carries out internally, to see if it is working properly, has failed. There must be a bug in this copy of Inform. It may be worth checking whether you have the current, up-to-date version. If so, please report this problem via www.inform7.com/bugs.

 As for fixing your source text to avoid this bug, the last thing you changed is probably the cause, if there is a simple cause. Your source text might in fact be wrong, and the problem might be occurring because Inform has failed to find a good way to say so. But even if your source text looks correct, there are probably rephrasings which would achieve the same effect.`Preformatted text`

Wow, “abject failure”? Lemme stop you right there, Inform, that’s negative self-talk, knock it off.

Is this a known bug or do I have to call the FBI?

2 Likes

The Forum Bureau of Inform?

2 Likes

Hmmm, I thought the i was for “illuminati”… :thinking:

1 Like

Without seeing your code, it’s impossible to tell if this is a known error. Bugs at this stage of compilation are more rare than simple syntax errors, but the whole “abject failure” thing is certainly not unheard of. What does it say when you click on “console” in the results tab?

2 Likes
  >--> An internal error has occurred: unowned. The current sentence is
    'Understand "show [something]" as showing' (source text, line 213); the
    error was detected at line 886 of "inform7/if-module/Chapter 5/Understand
    Sentences.w". This should never happen, and I am now halting in abject
    failure.

That’s what it says, but it’s not quite right. What’s causing the Abject Failure is this dumb mistake of mine:

Showing is something applying to one visible thing.

A thing (instead of an action) applying to a thing is, it seems, what breaks Inform’s spine and spirit.

2 Likes