Fix loading with Clozure CL
Tue May 19 13:09:12 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Fix loading with Clozure CL
hunk ./src/clos.lisp 14
+
hunk ./src/clos.lisp 314
+(defun get-gf-for-method (smoke-method)
+ (declare (smoke-method smoke-method)
+ (optimize (speed 3)))
+ (symbol-function (lispify (name smoke-method) "CXX")))
+;(memoize:memoize-function 'get-gf-for-method)
+
hunk ./src/clos.lisp 330
- (let ((gf (symbol-function (lispify (name method) "CXX"))))
+ (let ((gf (get-gf-for-method method)))
hunk ./src/cxx-method.lisp 3
-(defclass cxx-method-generic-function (standard-generic-function)
- ((generic-function :accessor cxx-generic-function
- :initarg :cxx-generic-function
- :type cxx-generic-function
- :documentation "Contains the generic function."))
- (:metaclass closer-mop:funcallable-standard-class)
- (:documentation "Generic function of a specify argument count."))
-
hunk ./src/cxx-method.lisp 12
+(defclass cxx-method-generic-function (standard-generic-function)
+ ((generic-function :accessor cxx-generic-function
+ :initarg :cxx-generic-function
+ :type cxx-generic-function
+ :documentation "Contains the generic function."))
+ (:metaclass closer-mop:funcallable-standard-class)
+ (:documentation "Generic function of a specify argument count."))
+
+
+
hunk ./src/method.lisp 55
-(defun generic-method-definition (name cxx-name)
- (values [_$_]
- `(ensure-generic-function (quote ,name)
- :cxx-name ,cxx-name
+(defun ensure-generic-methods (symbols-names)
+ "Ensures the generic functions for SYMBOLS-NAMES."
+ (declare (list symbols-names)
+ (optimize (speed 3)))
+ (dolist (symbol-name symbols-names)
+ (ensure-generic-function (first symbol-name)
+ :cxx-name (rest symbol-name)
hunk ./src/method.lisp 64
- name))
+ (export (first symbol-name) :cxx)))
+
hunk ./src/method.lisp 96
- (ensure-generics)
hunk ./src/method.lisp 98
- (cxx-exports)
hunk ./src/method.lisp 143
- (loop for name being the hash-key of generics
- for cxx-name being the hash-value of generics do
- (multiple-value-bind (definition export)
- (generic-method-definition name cxx-name)
- (push definition ensure-generics)
- (push export cxx-exports)))
hunk ./src/method.lisp 147
- (make-smoke-classes ,smoke))
- (eval-when (:load-toplevel :execute)
- ,@ensure-generics)
- (export (quote ,cxx-exports) :cxx)
+ (make-smoke-classes ,smoke)
+ (ensure-generic-methods ',(hash-table-alist generics)))
hunk ./src/method.lisp 150
- (export (quote ,exports)))))
+ (eval-when (:load-toplevel :execute)
+ (export (quote ,exports))))))
hunk ./src/overload-resolution.lisp 112
+(eval-when (:compile-toplevel :load-toplevel :execute)
hunk ./src/overload-resolution.lisp 115
-(defconstant +conversion+ 2)
+(defconstant +conversion+ 2))
hunk ./src/package.lisp 30
- #:define-methods
-