[CM] cmu18/cm (was: Basic problem with CM:events (?))

Rick Taube taube@uiuc.edu
Sat, 31 Jan 2004 12:38:40 -0600


> I know I must be missing something obvious here.
>
> Larry Troxler

no its my fault -- its an incompatible change between cmucl 18e and 19 . I
used cmucl 19 and forgot to test  in 18e again.  im sorry -- its almost
impossible for me now to keep up with all the lisps and versions and os's --
im ssh'ing all over the globe just to test. Im going to have to make some
scripts that automate testing, i simply cant keep up otherwise.

the fix is simple: edit src/cmu.lisp, and locate the function definition for
class-subclasses. underneath that defun there is a commented out version of
the same functoin. thats the version you need for 18e.
or you can just replace the existing function with:
------------------------------------------------------
#+cmu19
(defun class-subclasses (c)
  (let ((subs (pcl::class-direct-subclasses c)))
    (if (null subs)
        '()
      (loop for s in subs
        append (cons s (class-subclasses s))))))

#+cmu18
(defun class-subclasses (class)
  (let ((tbl (kernel:class-subclasses class))
        (sub '()))
    (maphash (lambda (k v) v (push k sub)) tbl)
    (nreverse sub)))

#-(or cmu19 cmu18)
(error "Fix class-subclasses for this version of cmu.")
-------------------------------------------------------------

ive fixed cmu.lisp in cvs on the rel-2_4_1-fixes branch (revision: 1.6.2.2).