[mcclim-devel] A fix to fix-clisp.lisp

Pascal Bourguignon pjb at informatimago.com
Sat Jul 9 16:18:50 UTC 2005


By the way, input-stream-p and output-stream-p are not symbols of
GRAY, but of the COMMON-LISP package.

(defmacro make-generic (funame arguments)
  (let ((old (gensym (string funame)))
        (gargs (mapcar (lambda (arg) (if (consp arg) (first arg) arg)) 
                       arguments)))
    `(progn (setf (fdefinition ',old) (function ,funame))
            (fmakunbound ',funame)
            (defgeneric ,funame ,gargs
               (:method ,arguments (,old , at gargs))))))

(defpackage #:clim-mop
  (:use #:clos))

(eval-when (:compile-toplevel :load-toplevel :execute)
  (loop for sym being the symbols of :clim-mop
        do (export sym :clim-mop)))

(ext:without-package-lock ("COMMON-LISP") ; <---

  ;; CLIM expects INPUT-STREAM-P to be a generic function.
  (unless (typep #'input-stream-p 'generic-function)
    (make-generic input-stream-p ((stream stream))))

  ;; CLIM expects OUTPUT-STREAM-P to be a generic function.
  (unless (typep #'output-stream-p 'generic-function)
    (make-generic output-stream-p ((stream stream))))
  )


-- 
__Pascal Bourguignon__                     http://www.informatimago.com/
Cats meow out of angst
"Thumbs! If only we had thumbs!
We could break so much!"



More information about the mcclim-devel mailing list