Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000543Core InformRules and rulebookspublic2011-02-08 11:132014-05-07 07:35
Assigned Tograham 
PlatformWindowsOS7OS Version64 bit
Product Version6G60 
Target VersionFixed in Version6L02 
Summary0000543: A rule that references a just-called name in a condition describing repetitions causes compiler to fail
DescriptionThe error message includes "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."

Other repetition-based conditions, such as "for the second time" and "for four turns" from Documentation page 7.19, cause the same error.
Minimal Source Text To Reproduce
Entryway is a room.

After printing the name of a room (called the spot) when looking in the spot more than once:
	say " again".
Additional InformationI realize the problem in the trivial source above can be worked around by using "the location" and not calling any name; but that doesn't work for a larger map, nor for other kinds of objects.
TagsNo tags attached.
Effect(critical) Compiler reports internal error
Attached Files

- Relationships
related to 0001110closedgraham Compiler crash in complex descriptions 
has duplicate 0000484closedgraham Compiler crashes (code 10) with test using custom past participle and a time reference 

-  Notes
EmacsUser (manager)
2011-02-09 15:47


Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000128
0x00089fa0 in Kinds__interpret_test_equality ()
(gdb) bt
#0 0x00089fa0 in Kinds__interpret_test_equality ()
#1 0x000dae12 in Calculus__Relations__Equality__compile ()
#2 0x000db3c8 in Semantics__BPs__get_i6_schema ()
#3 0x000dca87 in i6_schema_of_atom ()
#4 0x000dce2c in Calculus__Atoms__compile ()
#5 0x00113127 in Calculus__Deferrals__compile_test_of_proposition ()
#6 0x00113559 in Plugins__Actions__Patterns__compile_pattern_match_clause ()
#7 0x0011450d in Plugins__Actions__Patterns__compile_pattern_match ()
#8 0x001156b4 in Specifications__Conditions__compile ()
#9 0x00023ee9 in spec_compile_primitive ()
#10 0x00024034 in Specifications__compile ()
#11 0x00114924 in Code__Chronology__past_tenses_i6_escape ()
#12 0x0012f5c4 in Config__Template__interpret ()
#13 0x0012a966 in Config__Template__interpret ()
#14 0x0012a966 in Config__Template__interpret ()
#15 0x001314bc in main ()

This looks suspiciously like 0000484:0000933.

Also, I get this problem message in triplicate before the crash:

- - - -
Problem. In the line 'After printing the name of a room (called the spot) when looking in the spot more than once' , 'the spot' ought to be a value, but isn't - there must be something fishy about the way it was created.
 Usually this happens because it is one of the named items in a phrase definition, but stood for a chunk of text which can't be a value - for instance, 'To marvel at (feat - an action)' doesn't make 'feat' a value. (Calling it a 'stored action' would have been fine; and similarly, if you want something which is either true or false, use 'truth state' not 'condition'.)
- - - -
ChrisC (reporter)
2011-02-09 18:20

That's odd. On my platform, I see no problem message at all besides "Translating the Source - Failed" et cetera.
graham (administrator)
2011-10-07 11:21

I'm afraid Inform is correctly rejecting this syntax - that is, ideally it wouldn't, but the difficulty comes in how to interpret the past tense reference. "The spot" exists only temporarily while the rule's applicability is being tested, so we can't talk about what value it used to have.

However, it certainly should not have crashed, and that has been fixed.

- Issue History
Date Modified Username Field Change
2011-02-08 11:13 ChrisC New Issue
2011-02-08 13:56 jmcgrew Status new => acknowledged
2011-02-09 15:47 EmacsUser Note Added: 0001004
2011-02-09 15:47 EmacsUser Status acknowledged => confirmed
2011-02-09 15:47 EmacsUser Relationship added related to 0000484
2011-02-09 18:20 ChrisC Note Added: 0001005
2011-10-07 11:21 graham Note Added: 0001321
2011-10-07 11:21 graham Status confirmed => resolved
2011-10-07 11:21 graham Resolution open => fixed
2011-10-07 11:21 graham Assigned To => graham
2011-12-12 16:08 EmacsUser Relationship replaced has duplicate 0000484
2013-04-20 09:46 zarf Relationship added related to 0001110
2014-05-07 07:34 jmcgrew Fixed in Version => 6L02
2014-05-07 07:35 jmcgrew Status resolved => closed

Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker