From dfdb198fbc028ece3e02d293a2594364c695c513 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Wed, 29 Mar 2006 10:01:30 +0000 Subject: [PATCH] Changes for CLISP Organization: Straylight/Edgeware From: espen --- tools/asdf-extensions.lisp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tools/asdf-extensions.lisp b/tools/asdf-extensions.lisp index b7a589b..93be2d3 100644 --- a/tools/asdf-extensions.lisp +++ b/tools/asdf-extensions.lisp @@ -51,10 +51,16 @@ (defmethod perform :after ((operation compile-op) (dso unix-dso)) (module-components dso))))) (error 'operation-error :operation operation :component dso)))) +#+clisp +(defvar *loaded-libraries* ()) (defun load-dso (filename) #+sbcl(sb-alien:load-shared-object filename) - #+cmu(ext:load-foreign filename)) + #+cmu(ext:load-foreign filename) + #+clisp + (unless (find filename *loaded-libraries* :test #'equal) + (ffi::foreign-library (namestring filename)) + (push filename *loaded-libraries*))) (defmethod perform ((o load-op) (c unix-dso)) @@ -135,7 +141,8 @@ (defmethod operation-done-p ((o load-op) (c library)) system::*global-table* :key #'(lambda (pathname) (when pathname (unix::unix-namestring pathname))) - :test #'equal)) + :test #'equal) + #+clisp(find (component-pathname c) *loaded-libraries* :test #'equal)) (defmethod operation-done-p ((o operation) (c library)) t) -- [mdw]