Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002101Core InformReleasing, bibliographic data, cBlorbpublic2019-06-02 09:342020-03-10 12:20
Assigned ToDavidK 
Platformx86OSWindows 10OS Version7
Product Version6M62 
Target VersionFixed in Version 
Summary0002101: We broke it (again), memory failure
Description      (Each time Go or Replay is clicked, Inform tries to translate the source text into a working story, and updates this report.)

Problem. An internal error has occurred: the memory manager has halted Inform, which seems to be generating endless structures. Presumably it is trapped in a loop. The current sentence is '"Flexible Survival" by Nuku Valente' ; the error was detected at line 387 of "inform7/Chapter 2/Memory.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

 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.
Minimal Source Text To Reproduce
This is Flexible Survival, the code is in the usual place: [^]
Additional InformationWe've made tables that are very very large, is this related?
TagsNo tags attached.
Effect(critical) Compiler hangs
Attached Files

- Relationships

-  Notes
Wahn128 (reporter)
2019-06-02 11:16
edited on: 2019-06-02 14:10

We recently added a big table of 348 rows and 79 columns, and it compiled and ran fine till today. Seems like we've bumped some limit again.

Played around a little with not loading a file that is guaranteed to work and setting up a dummy file with 6 additional entries into the table (a copy of an existing one that also works). The individual files aren't the problem, just the amount of code from what I can tell.

Commented out all the entries into the table that are spread throughout the whole game and things are compiling again, for now. Still, we got some big plans for the table, so please help us by finding the source of that memory issue.

DavidK (developer)
2019-06-04 06:40
edited on: 2019-06-04 07:04

Are you using the 32-bit build of NI with the Large Address Aware flag set in its Win32 PE header? (This is the version that comes with the latest Windows builds of 6M62.) If you're running out of address space with that, then that's probably the end of the line as far as 32-bit builds go.

Have you tried the 64-bit Windows build of NI from [^] ? That can only be used from the command line, not the Inform 7 front-end, but should cope with larger address space requirements. If you are using that, and that is running out of space, I will take a look.

nuku (reporter)
2019-06-04 06:48

What would the command be?
DavidK (developer)
2019-06-04 07:06
edited on: 2019-06-04 07:08

You can see the command used to run NI by the front-end in the "Console" page of the "Results" tab after a compile. It's usually something of the form

<path_to_i7>\Compilers\ni -internal "<path_to_i7>\Internal" -project "<path_to_project>\<project_name>.inform" -format=ulx

You'd also need to set the HOME environment variable to where your "My Documents" folder is.

Wahn128 (reporter)
2019-06-04 08:39

Hm, where would one find that HOME environment variable to set it?
DavidK (developer)
2019-06-04 13:46

You would set it from the command prompt before running the commands to run ni and then i6, something like

set HOME=c:\users\<my_name>\Documents
<path_to_i7>\Compilers\ni -internal "<path_to_i7>\Internal" -project "<path_to_project>\<project_name>.inform" -format=ulx
nuku (reporter)
2019-06-04 18:08

Just to check, as we experiment with this, but whenabouts will the 64bit version be usable from within inform's gui?
DavidK (developer)
2019-06-04 22:10

The next version of Inform will likely be entirely 64-bit only on Windows. But there isn't a timescale for when that will be done.
Wahn128 (reporter)
2019-06-05 12:36

Hmm... I got it this far now:

  The 63048-word source text has successfully been translated into an
    intermediate description which can be run through Inform 6 to complete
    compilation. There were 382 rooms and 1597 things.
++ 100% (Finishing work)
++ Ended: Translation succeeded: 382 rooms, 1597 things
Inform 7 has finished.

Which leaves behind a \Build\auto.inf

Somehow the next step doesn't quite want to work though - I tried to copy the syntax from what Inform shows in the console, but somehow a new output.gblorb never is successfully created. Can you maybe give me a hint what's going wrong at that point?

C:\Program Files (x86)\Inform 7\Compilers>inform6 -w~S~DG "C:\Users\Holge\Documents\Inform\Projects\Flexible Survival.inform\Build\auto.inf" "C:\Users\Holge\Documents\Inform\Projects\Flexible Survival.inform\Build\output.ulx"
Inform 6.33N for Win32 (30th August 2015)
In: 1 source code files 1437528 syntactic lines
1251984 textual lines 155414094 characters (ISO 8859-1 Latin1)
296144 symbols (maximum 13000000) 553157593 bytes of memory
Out: Glulx story file 66.190605 (31424K long):
    31 classes (maximum 200) 2030 objects (maximum 4000)
   231 global vars (maximum 512) 1863214 variable/array space (maximum 12500000)
   370 verbs (maximum 2000) 2797 dictionary entries (maximum 5000)
   823 grammar lines (version 2) 1071 grammar tokens (unlimited)
   338 actions (maximum 2000) 48 attributes (maximum 56)
    40 common props (maximum 256) 409 individual props (unlimited)
31564399 characters used in text 18361691 bytes compressed (rate 0. 37)
     0 abbreviations (maximum 64) 22742 routines (unlimited)
1592383 instructions of code 1074134 sequence points
4071936 bytes writable memory used 28105984 bytes read-only memory used
32177920 bytes used in machine 1041563904 bytes free in machine
Compiled with 9433 suppressed warnings
Completed in 15 seconds

C:\Program Files (x86)\Inform 7\Compilers>
DavidK (developer)
2019-06-05 22:57

That's the right command for running Inform 6. The output of the Inform 6 stage is a .ulx file that contains the Glulx game data. The last stage, that actually produces a .gblorb file, is to run cBlorb. If from the front-end you open a (smaller!) project and choose "Release" from the "Release" menu, then look at the console page, you can see how cBlorb is run.
Wahn128 (reporter)
2019-06-06 14:24

Okay, thanks for the help - I got it to run now, with the build that overtaxed the old compiler's memory, plus a test run that had 500 extra rows of that colossal table. :)

Btw, is there any idea which timescale might be in the stars for the next Inform version that includes support for the better compiler in the frontend? Kinda hoping it might come around by the time we finally will have filled the table with content and need its full extent in the compile (which is likely to take months).
DavidK (developer)
2019-06-06 22:04

Good to hear that you've got the 64-bit build going.

We don't do timescales for Inform releases for the simple reason that there's no way we'd manage to keep to them! Speaking personally, I have a lot less free time for personal software projects than I did when I was younger, so it's very much a case of doing a little when I can. Sorry.
DavidK (developer)
2020-03-10 11:55

A beta release of a Win64 build of Inform 7 6M62 is available from here: [^]
nuku (reporter)
2020-03-10 12:20

Grabbed it, compiled successfully! Thank you so much.

- Issue History
Date Modified Username Field Change
2019-06-02 09:34 nuku New Issue
2019-06-02 11:16 Wahn128 Note Added: 0004859
2019-06-02 14:10 Wahn128 Note Edited: 0004859 View Revisions
2019-06-04 06:40 DavidK Note Added: 0004860
2019-06-04 06:41 DavidK Assigned To => DavidK
2019-06-04 06:41 DavidK Status new => assigned
2019-06-04 06:41 DavidK Status assigned => acknowledged
2019-06-04 06:48 nuku Note Added: 0004861
2019-06-04 07:04 DavidK Note Edited: 0004860 View Revisions
2019-06-04 07:06 DavidK Note Added: 0004862
2019-06-04 07:08 DavidK Note Edited: 0004862 View Revisions
2019-06-04 08:39 Wahn128 Note Added: 0004863
2019-06-04 13:46 DavidK Note Added: 0004864
2019-06-04 18:08 nuku Note Added: 0004865
2019-06-04 22:10 DavidK Note Added: 0004866
2019-06-05 12:36 Wahn128 Note Added: 0004867
2019-06-05 22:57 DavidK Note Added: 0004868
2019-06-06 14:24 Wahn128 Note Added: 0004869
2019-06-06 22:04 DavidK Note Added: 0004870
2020-03-10 11:55 DavidK Note Added: 0004902
2020-03-10 12:20 nuku Note Added: 0004903

Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker