Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001117Core InformAssertions and creationspublic2013-05-29 08:402014-05-07 07:34
ReporterEmacsUser 
Assigned Tograham 
PrioritynormalSeveritycriticalReproducibilityalways
StatusclosedResolutionfixed 
Platformx86OSLinuxOS VersionAny
Product Version6G60 
Target VersionFixed in Version6L02 
Summary0001117: Cyclic nesting is not always detected
DescriptionNi loops forever on this source.

However, it does catch the problem in some other sources, such as

- - - -
There is a room.
X is in Y.
Y is worn by X.
- - - -
Minimal Source Text To Reproduce
There is a room.
An over-sized poncho contains yourself.  It is worn by yourself.
TagsNo tags attached.
Effect(critical) Compiler hangs
Attached Files

- Relationships

-  Notes
(0002066)
zarf (developer)
2013-05-30 21:54

Confirmed.

Interestingly, the following code also hangs:

The Kitchen is a room.
X is a person.
The player is X.
The poncho contains X.
The poncho is worn by X.

*But* if you delete the line "The player is X," the compiler correctly catches the problem.
(0002067)
zarf (developer)
2013-05-30 22:00

When running under a debugger, I see that the compiler generates the appropriate error message and *then* hangs:


  >--> The yourself seems to be containing itself: yourself (created by
    'yourself' (the Standard Rules, line 624)) in over-sized poncho (created by
    'over-sized poncho' (source text, line 5)) in yourself... and so on. This
    is forbidden.
  >--> The over-sized poncho seems to be containing itself: over-sized poncho
    (created by 'over-sized poncho' (source text, line 5)) in yourself (created
    by 'yourself' (the Standard Rules, line 624)) in over-sized poncho... and
    so on. This is forbidden.
^C
Program received signal SIGINT, Interrupt.
0x00015c50 in Config__Plugins__plugged_in ()
(gdb) stack
Undefined command: "stack". Try "help".
(gdb) bt
#0 0x00015c50 in Config__Plugins__plugged_in ()
#1 0x00015cf0 in Plugins__Spatial__progenitor ()
#2 0x0009b220 in player_complete_model ()
#3 0x0001612c in Config__Plugins__Call__complete_model ()
#4 0x001238fc in World__complete ()
#5 0x0013055e in Config__Template__interpret ()
#6 0x001314bc in main ()
(0002070)
graham (administrator)
2013-06-01 10:10

Fixed: as zarf says, a case of inept error recovery. The problem message is now slightly better, in that it reports all disjoint cycles in what's called the progeniture tree, that is, it will report every essentially different case of this problem occurring in the source once only.

- Issue History
Date Modified Username Field Change
2013-05-29 08:40 EmacsUser New Issue
2013-05-29 08:40 EmacsUser Issue generated from 0000346
2013-05-29 08:43 EmacsUser Summary Cyclic nesting is not detected => Cyclic nesting is not always detected
2013-05-29 08:43 EmacsUser Description Updated View Revisions
2013-05-30 21:54 zarf Note Added: 0002066
2013-05-30 21:54 zarf Status new => confirmed
2013-05-30 22:00 zarf Note Added: 0002067
2013-06-01 10:10 graham Note Added: 0002070
2013-06-01 10:10 graham Status confirmed => resolved
2013-06-01 10:10 graham Resolution open => fixed
2013-06-01 10:10 graham Assigned To => graham
2014-05-07 07:34 jmcgrew Fixed in Version => 6L02
2014-05-07 07:34 jmcgrew Status resolved => closed


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker