[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Anomalous results from is-a? and instance? on current-input-port

From: Alan Grover
Subject: Re: Anomalous results from is-a? and instance? on current-input-port
Date: Wed, 16 Feb 2005 06:55:44 -0500
User-agent: Mozilla Thunderbird 0.7 (X11/20040615)

It's confusing to have an "object" with class, superclasses, etc., but not be "an instance". Since "class-of" returns a value (the Goops class), that implies it is a Goops instance.

What would be the predicate for determining that something is an instance of a class, capable of the introspection procedures, works with specialization by inheritance, but not a Goops object?

Mikael Djurfeldt wrote:
On Tue, 15 Feb 2005 18:39:44 -0500, Alan Grover <address@hidden> wrote:

Guile 1.6.4
Linux xxxx 2.6.5-7.145-default #1 Thu Jan 27 09:19:29 UTC 2005 i686 i686
i386 GNU/Linux
SuSe 9.1

Some instance and class introspection procedures give anomalous results.
Specifically, they seem to give false when they shouldn't.

My results (from code below, just for current-input-port). Note the #f's":
; from interactive guile
(class #<<class> <soft-input-port> 8087280>
 instance? #f
 (is-a? <soft-input-port>) #f
 class-direct-supers (#<<class> <soft-port> 80872b0> #<<class>
<input-port> 8084110>)
 (is-a? <input-port>) #t

Results are repeatable if tried in the same interactive interpreter, or
run from a script. However, I get the following variations:

* Run from a script: (is-a? <soft-input-port>) #t
* Use my .guile: (is-a? <soft-input-port>) #t

* instance? should give #f since the port is not a normal GOOPS
instance but rather a built-in datatype.

* the class-direct-supers list looks OK

* (is-a? <input-port>) gives the correct value #t

The only thing anomalous above is that (is-a? x <soft-input-port>)
gives #f in the interpreter.
I can't repeat that in the development version, so it seems specific
to Guile-1.6.4. Can someone else look into that?


Alan Grover

reply via email to

[Prev in Thread] Current Thread [Next in Thread]