[mcclim-devel] McCLIM and SCL: Some problems and patches...
Hi, I have been compiling McCLIM with Scieneer Common Lisp. Worked well - a few problems: ******************************************** Flexichain needs SCL support for weak pointers. That's easy: File utilities.lisp (defun make-weak-pointer (object) "Creates a new weak pointer which points to OBJECT. For portability reasons, OBJECT most not be NIL." (assert (not (null object))) #+:sbcl (sb-ext:make-weak-pointer object) #+:cmu (ext:make-weak-pointer object) #+:scl (ext:make-weak-pointer object) #+:clisp (ext:make-weak-pointer object) #+:allegro (let ((wv (excl:weak-vector 1))) (setf (svref wv 0) object) wv) #+:openmcl (let ((wp (%make-weak-pointer))) (setf (gethash wp *weak-pointers*) object) wp) #+:corman (ccl:make-weak-pointer object) #+:lispworks (let ((array (make-array 1))) (hcl:set-array-weak array t) (setf (svref array 0) object) array) #-(or :sbcl :cmu :clisp :allegro :openmcl :corman :lispworks :scl) object) (defun weak-pointer-value (weak-pointer) "If WEAK-POINTER is valid, returns its value. Otherwise, returns NIL." #+:sbcl (prog1 (sb-ext:weak-pointer-value weak-pointer)) #+:cmu (prog1 (ext:weak-pointer-value weak-pointer)) #+:scl (prog1 (ext:weak-pointer-value weak-pointer)) #+:clisp (prog1 (ext:weak-pointer-value weak-pointer)) #+:allegro (svref weak-pointer 0) #+:openmcl (prog1 (gethash weak-pointer *weak-pointers*)) #+:corman (ccl:weak-pointer-obj weak-pointer) #+:lispworks (svref weak-pointer 0) #-(or :sbcl :cmu :clisp :allegro :openmcl :corman :lispworks :scl) weak-pointer) #-(or :sbcl :cmu :clisp :allegro :openmcl :corman :lispworks :scl) (eval-when (:compile-toplevel :load-toplevel :execute) (warn "No support for weak pointers in this implementation. ~ Things may get big and slow.")) ******************************************** File mcclim/designs.lisp this files uses WITH-MEDIUM-OPTIONS, a macro that is later defined in some other file. The definition that uses WITH-MEDIUM-OPTIONS can be removed, since it is also defined later. ******************************************** File mcclim/presentation-defs.lisp (define-presentation-generic-function %accept accept (type-key parameters options type stream view &key)) Above definition needs to be something like this: (define-presentation-generic-function %accept accept (type-key parameters options type stream view &key &allow-other- keys)) Since there are uses of ACCEPT with :DEFAULT and :DEFAULT-TYPE . ******************************************** File: mcclim/Drei/Persistent/persistent-undo.lisp In: DEFMETHOD FLIP-UNDO-RECORD (FLEXICHAIN::WEAK-POINTER-VALUE C BUFFER) WEAK-POINTER-VALUE takes only one argument, not two. ******************************************** After fixing above problems, McCLIM compiled fine with Scieneer Common Lisp. The Listener example was running fine... Regards, Rainer Joswig Rainer Joswig, Hamburg, Germany http://lispm.dyndns.org/ mailto:joswig@lisp.de
participants (1)
-
Rainer Joswig