Fix undefine init_smoke* C function & cleanup finalizers when a image is saved.
Thu Jul 2 21:08:40 CEST 2009 Tobias Rautenkranz <tobias@rautenkranz.ch>
* Fix undefine init_smoke* C function & cleanup finalizers when a image is saved.
hunk ./smoke.mbd 39
- ("object-map" (:needs "objects"))
+ ("object-map" (:needs "objects" :utils))
hunk ./smoke.mbd 77
- (:supports (:os :linux) (:implementation :sbcl :openmcl))
hunk ./src/object-map.lisp 41
+(eval-on-save ()
+ (loop for object being the hash-value of *object-map* do
+ (warn "life object ~A" (class-of object))
+ (remove-finalizer object)
+ (setf (slot-value object 'pointer) (null-pointer)))
+ (clrhash *object-map*))
+
hunk ./src/smoke.lisp 190
- (eval-startup (:compile-toplevel :execute)
hunk ./src/smoke.lisp 193
- (t (:default ,(format nil "~(~A~)" library))))
- (use-foreign-library ,library))
- (defcvar (,variable ,variable-name :read-only t) :pointer)
+ (t (:default ,(format nil "~(~A~)" library)))))
+ (eval-startup (:compile-toplevel :execute)
+ (load-foreign-library ',library))
+ (eval-startup (:compile-toplevel :execute)
+; (eval-when (:compile-toplevel :load-toplevel :execute)
+; (define-foreign-library ,library
+; (:unix ,(format nil "~(~A~).so.2" library))
+; (t (:default ,(format nil "~(~A~)" library))))
+; (load-foreign-library ',library))
+ (defcvar (,variable ,variable-name
+ :read-only t
+ :library ,library) :pointer)
hunk ./src/smoke.lisp 207
- function-name))
+ function-name)
+ :library ,library)
hunk ./src/utils/image/impl/ccl.lisp 6
+(defmacro eval-on-save (() &body body)
+ `(eval-when (:load-toplevel)
+ (push #'(lambda ()
+ (let ((*package* ,*package*))
+ ,@body))
+ ccl:*save-exit-functions*)))
+
hunk ./src/utils/image/impl/sbcl.lisp 15
+(defmacro eval-on-save (() &body body)
+ `(eval-when (:load-toplevel)
+ (push #'(lambda ()
+ (let ((*package* ,*package*))
+ ,@body))
+ sb-ext:*save-hooks*)))
+