|Anonymous | Login | Signup for a new account||2018-01-19 11:06 PST|
|Main | My View | View Issues | Change Log | Roadmap|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0001117||Core Inform||Assertions and creations||public||2013-05-29 08:40||2014-05-07 07:34|
|Target Version||Fixed in Version||6L02|
|Summary||0001117: Cyclic nesting is not always detected|
|Description||Ni 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.
|Tags||No tags attached.|
|Effect||(critical) Compiler hangs|
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.
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
>--> 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.
Program received signal SIGINT, Interrupt.
0x00015c50 in Config__Plugins__plugged_in ()
Undefined command: "stack". Try "help".
#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 ()
|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.|
|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|