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 <[EMAIL PROTECTED]> 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?
Thanks, M
-- Alan Grover [EMAIL PROTECTED] +1.734.476.0969
_______________________________________________ Bug-guile mailing list [email protected] http://lists.gnu.org/mailman/listinfo/bug-guile
