Re: STklos anomaly? Help!

From: Brian Denheyer <>
Date: Tue, 13 Apr 1999 10:36:13 -0700 (PDT)

>>>>> " " == <> writes:

> If I can't resolve the problem by the end of the day I will have
> to rewrite the code in PERL (Arghh!).

A _most_ lamentable situation.

> Any and all ideas are appreciated.

Ok, here goes... BTW, your example works under Linux.

(describe foo)

This will describe the class and give you a great deal of information
about the class and its generic methods, i.e. the slot accessors. See
if the results make sense. Send them to me if you would like a second

Also, try using

  (require "class-browser")

Find "foo" in the hiearchy and you can then click on the "methods"
button. Even if these don't yield the answers you can show your
friends the cool class browser tool that come with stk :-)


Don't specify the accessors and then create the accessor explicitly,

(define-class foo ()

(define-method f
((self foo))
       (slot-ref self 'f))

and make sure that it works. If defining the accessor explicitly
doesn't work I would skip directly to step 6, because the version you
built is most definitely broken in some fundamental way.

Try reversing the order of the names. Is it the name "f" causing the
problem or is it really a problem due to the first 5 slots ? Try
using different names other than the letters. I am amazed that it is
really the number of slots causing the problem. This seems like
something which would have to be broken in stk in general, not under a
particular system. Remember that define-class is actually a macro and
doesn't care how many forms it gets, so breaking after it processes 5
fields is *very* strange.

Try using both snow and stk.

Try "building" your example one slot at a time using different names
for the classes and slots and see if it still breaks after 5 slots.

I debated as to whether or not this should be the first thing to
try. I would delete the current install of stk, i.e. _delete_
/usr/local/lib/stk, i.e. the installation directory, and the source
directory. Don't forget to delete the executables in /usr/local/bin.
Really clean it out so there are no previous build executables or
libraries lying around. Re-install the source and re-build.

I've probably got some more crazy ideas if the need arises. For one
thing, we could run your code on my linux box and I'll e-mail you the
results :-) Anything to avoid PERL. ;-)


Received on Tue Apr 13 1999 - 19:37:33 CEST

This archive was generated by hypermail 2.3.0 : Mon Jul 21 2014 - 19:38:59 CEST