|Anonymous | Login | Signup for a new account||2018-09-25 11:32 PDT|
|Main | My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000543||Core Inform||Rules and rulebooks||public||2011-02-08 11:13||2014-05-07 07:35|
|Platform||Windows||OS||7||OS Version||64 bit|
|Target Version||Fixed in Version||6L02|
|Summary||0000543: A rule that references a just-called name in a condition describing repetitions causes compiler to fail|
|Description||The 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 Information||I 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.|
|Tags||No tags attached.|
|Effect||(critical) Compiler reports internal error|
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000128
0x00089fa0 in Kinds__interpret_test_equality ()
#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'.)
- - - -
|That's odd. On my platform, I see no problem message at all besides "Translating the Source - Failed" et cetera.|
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.
|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|