Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001128Core InformSpacing and printingpublic2013-07-30 13:052014-05-07 07:33
ReporterShadow Wolf 
Assigned Tograham 
Platformx86OSWindowsOS VersionVista
Product Version6G60 
Target VersionFixed in Version6L02 
Summary0001128: "[The X]" on proper-named assembly with owning object having a printed name property results in "Programming error"
DescriptionA privately-named object has a printed name routine and the proper-named property. An assembly creates another object as part of the privately-named object. Trying to say "[The X]" for the second object results in "[** Programming error: tried to read (something) **]". (Only the capitalized form of "[The X]" is affected).
Minimal Source Text To Reproduce
"Bugtesting" by Shadow Wolf

Testing is a room.

Dog is a privately-named animal in Testing. The printed name of the dog is "Fido". Understand 
"Fido" as the dog. The dog is proper-named.

A muzzle is a kind of thing. A muzzle is part of every animal.

Instead of examining a muzzle, say "[The noun] looks normal."

Instead of touching a muzzle, say "You touch [the noun] without any errors."

Test me with "x fido/touch muzzle/x muzzle"
Additional InformationTesting
You can see Fido here.

>test me

>[1] x fido
You see nothing special about Fido.

>[2] touch muzzle
You touch Fido's muzzle without any errors.

>[3] x muzzle

[** Programming error: tried to read (something) **]
's muzzle looks normal.
TagsNo tags attached.
Effect(serious/mild) Game compiles but misbehaves
Attached Files

- Relationships
has duplicate 0001169closedgraham relations command generates programming error with printed name property on assembled object 

-  Notes
zarf (developer)
2013-07-30 13:14

Reduced example:

The Kitchen is a room.

Dog is an animal in Kitchen.
The printed name of the dog is "Fido".

A muzzle is a kind of thing. A muzzle is part of every animal.

When play begins:
let M be a random thing part of the dog;
say "[The M] is [the m]."
zarf (developer)
2013-07-30 13:15

I think what happens is that the muzzle cap_short_name() method is called, which tries to invoke the dog's cap_short_name() method, but there isn't one.

(Both the dog and the muzzle are proper-named.)
zarf (developer)
2013-12-29 12:05

In Z-code, we get a more explicit run-time error: [** Programming error: (object number 46) has no property cap_short_name to read **]
zarf (developer)
2013-12-29 13:11

I just spent a frustrating hour trying to figure out why the Glulx programming error is so vague. Obvious in retrospect: I7 enables Glulx acceleration by default these days. So low-level property reads are handled by the interpreter (rather than veneer code) -- faster, but with weaker error reporting.

- Issue History
Date Modified Username Field Change
2013-07-30 13:05 Shadow Wolf New Issue
2013-07-30 13:14 zarf Note Added: 0002107
2013-07-30 13:15 zarf Note Added: 0002108
2013-07-30 13:15 zarf Status new => confirmed
2013-12-29 12:05 zarf Note Added: 0002222
2013-12-29 12:15 zarf Relationship added has duplicate 0001169
2013-12-29 13:11 zarf Note Added: 0002225
2014-01-28 13:04 graham Status confirmed => resolved
2014-01-28 13:04 graham Resolution open => fixed
2014-01-28 13:04 graham Assigned To => graham
2014-05-07 07:32 jmcgrew Fixed in Version => 6L02
2014-05-07 07:33 jmcgrew Status resolved => closed

Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker