Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000189Core InformTablespublic2010-07-07 18:222010-10-28 00:30
ReporterCarolyn 
Assigned Tograham 
PrioritynormalSeveritycriticalReproducibilityalways
StatusclosedResolutionfixed 
Platformx86OSWindowsOS VersionVista
Product Version6E72 
Target VersionFixed in Version6F95 
Summary0000189: I6 error when defining too many block-type table entries (or globals) on Z-code
DescriptionPlacing two indexed text columns in a table, as shown below, will produce a Translating the Source - Failed message.

The errors from the progress tab are shown below:

---------------------------------------------------

  The 27-word source text has successfully been translated into an intermediate
    description which can be run through Inform 6 to complete compilation.
    There were 1 room and 1 thing.
Inform 7 has finished.

C:\Program Files\Inform 7\Compilers\inform-631 \
    -wSDv8 +include_path=..\Source,.\ auto.inf output.z8
Inform 6.31N for Win32 (22nd April 2010)
auto.inf(27178): Error: An array must have between 1 and 32767 entries
> Array Blk_Heap -> MEMORY_HEAP_SIZE + 16;
Compiled with 1 error and 1406 suppressed warnings (no output)

Compiler finished with code 1
Minimal Source Text To Reproduce
"Bug Test" by Carolyn VanEseltine

Current Place is a room.

Table of Player-Encountered Diary Entries
Date	Person
some indexed text	some indexed text
with 40 blank rows
TagsNo tags attached.
Effect(critical) Inform 6 compiler reports errors for valid code
Attached Files

- Relationships

-  Notes
(0000265)
fundin (reporter)
2010-07-08 13:48

Looking at this, it seems that the problem is a bit more general. I7 allocates a certain amount of heap memory for each variable holding a block type value. A table entry counts as one variable, so the example source results in eighty such allocations. Defining, say, eighty global variables holding stored actions would have the same effect.
(0000268)
EmacsUser (manager)
2010-07-08 15:07

Confirmed. This only affects compilation for the Z-machine (or, more precisely, if it does affect Glulx, it would take a lot of source text to reproduce the failure).

As fundin points out, the failure also occurs with a multitude of list literals, stored actions, etc.
(0000466)
graham (administrator)
2010-08-31 06:05

Fixed; a problem message now suggests that the Settings panel be used to switch to Glulx when this happens.

- Issue History
Date Modified Username Field Change
2010-07-07 18:22 Carolyn New Issue
2010-07-07 19:47 jmcgrew Status new => acknowledged
2010-07-08 13:48 fundin Note Added: 0000265
2010-07-08 15:07 EmacsUser Note Added: 0000268
2010-07-08 15:07 EmacsUser Status acknowledged => confirmed
2010-07-08 15:22 jmcgrew Effect (critical) Compiler reports internal error => (critical) Inform 6 compiler reports errors for valid code
2010-07-08 15:22 jmcgrew Summary Placing two indexed text columns in a table will cause an Inform 6 failure to translate the source => I6 error when defining too many block-type table entries (or globals) on Z-code
2010-08-31 06:05 graham Note Added: 0000466
2010-08-31 06:05 graham Status confirmed => resolved
2010-08-31 06:05 graham Resolution open => fixed
2010-08-31 06:05 graham Assigned To => graham
2010-10-25 21:14 jmcgrew Fixed in Version => 6F95
2010-10-28 00:30 jmcgrew Status resolved => closed


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker