Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000247Core InformRelationspublic2010-08-13 19:502010-10-28 00:30
ReporterAaronReed 
Assigned Tograham 
PrioritynormalSeveritymildReproducibilityalways
StatusclosedResolutionfixed 
Platformx86OSMac OS XOS Version10.6
Product Version6E72 
Target VersionFixed in Version6F95 
Summary0000247: Most relations involving values produce run-time problems when used as conditions
DescriptionRelating something to a value causes a varying run-time errors when the relation is used as a condition. For instance, with the code cited here (or with "one person to one language"), this error is produced:

[** Programming error: Class (object number 1) has no property p56_speaking to read **]

If the relation definition is changed to "various people to one language," the error is:

*** Run-time problem P31: Attempt to use a property of the 'nothing' non-object.

"Various people to various languages" works correctly.

Minimal Source Text To Reproduce
Institute is a room. Zora is a woman in the institute.

A language is a kind of value. The languages are English, Zubian, and Perplexish. 

Speaking relates one person to various languages. The verb to speak (he speaks, they speak, he spoke, 
it is spoken, he is speaking) implies the speaking relation.

Zora speaks English.

When play begins: if Zora speaks English, say "Huzzah!"
TagsNo tags attached.
Effect(serious/mild) Game compiles but misbehaves
Attached Files

- Relationships

-  Notes
(0000398)
EmacsUser (manager)
2010-08-18 15:48

Confirmed, though I get different errors:

[** Programming error: tried to find the "." of (something) **]

[** Programming error: tried to read (something) **]


The generated I6 reads:

!...
Constant Q22_english = 1;
!...
[ R_739 ;
      ! phrase 1
      ! [1: if zora speaks english , say ~Huzzah!~]
       if (((O30_zora == (Q22_english.p56_speaking)))) { say__p=1;ParaContent(); print (PrintText) SC_11; new_line; .L_Say1; .L_SayX1; }
   rfalse;
];
!...

which means that it tries to read a property from an integer.
(0000643)
graham (administrator)
2010-10-01 07:07

Another classic bug, this one: the code handling this looks very tidy and persuasive, until at the crucial moment it uses the left domain's kind and the right domain's kind the wrong way around. Fixed, with all due blushes.

- Issue History
Date Modified Username Field Change
2010-08-13 19:50 AaronReed New Issue
2010-08-18 15:48 EmacsUser Note Added: 0000398
2010-08-18 15:48 EmacsUser Status new => confirmed
2010-10-01 07:07 graham Note Added: 0000643
2010-10-01 07:07 graham Status confirmed => resolved
2010-10-01 07:07 graham Resolution open => fixed
2010-10-01 07:07 graham Assigned To => graham
2010-10-25 21:14 jmcgrew Fixed in Version => 6F95
2010-10-28 00:30 jmcgrew Status resolved => closed


Copyright © 2000 - 2010 MantisBT Group
Powered by Mantis Bugtracker