Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0002067Core InformActionspublic2018-07-28 10:552018-09-02 06:44
Reporterlpsmith 
Assigned To 
PrioritynormalSeveritymildReproducibilityhave not tried
StatusnewResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0002067: Extending 'show' to work for any visible noun creates infinite loop. Probably
DescriptionI wanted to extend 'show' so that I didn't have to be holding the thing. This caused an infinite loop.
Minimal Source Text To Reproduce
"Lucian's Room in Cragne Manor" by Lucian Smith

Errors1 is a room.  

Emmett is a man in Errors1

Understand "show [any visible thing] to [Emmett]" as showing it to.
Additional InformationLucian's Room in Cragne Manor
An Interactive Fiction by Lucian Smith
Release 1 / Serial number 180728 / Inform 7 build 6M62 (I6/v6.33 lib 6/12N) SD

Errors1
You can see Emmett here.

>show apple to emmett
Fatal Error: Stack overflow
TagsNo tags attached.
Effect(serious/mild) Game compiles but misbehaves
Attached Files

- Relationships

-  Notes
(0004792)
zarf (developer)
2018-07-29 09:09

This happens if you put "visible" in *any* noun token. I.e.:

Understand "touch [any visible thing]" as touching.

The parser is not designed to handle that. I don't know whether Graham will want to add a run-time error for it, but the practical answer is "don't do that."

It sounds like you want to retroactively change the action definition -- that is, you want that grammar line to behave as if

Showing it to is an action applying to one visible thing and one visible thing.

However, this is currently not possible. Grammar lines can't change the action declaration. In fact there's no way to redefine an action once it's declared; the only path is to define a new action with a new name.
(0004798)
mattweiner (reporter)
2018-09-02 06:44

For the record, the "Lollipop Guild" example in the documentation covers how to override the carrying requirements for showing. Showing could probably be easily extended to all visible things by a reaching inside rule, like "A rule for reaching inside when showing: allow access."

- Issue History
Date Modified Username Field Change
2018-07-28 10:55 lpsmith New Issue
2018-07-29 09:09 zarf Note Added: 0004792
2018-09-02 06:44 mattweiner Note Added: 0004798


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker