Fix the broken require contracts in ABCL-CONTRIB.

CL:REQUIRE now calls PROVIDE with module names when successful (as
opposed to relying in the loaded code to do this explicity).
parent d4a5a02c
;;;; -*- Mode: LISP -*-
(in-package :asdf)
(defsystem :abcl-asdf
(asdf:defsystem :abcl-asdf
:author "Mark Evenson"
:version "0.8.0"
:depends-on (jss)
......@@ -18,7 +17,7 @@
:depends-on ("abcl-asdf" "asdf-jar")))
:depends-on (packages))))
(defsystem :abcl-asdf-test
(asdf:defsystem :abcl-asdf-test
:author "Mark Evenson"
:depends-on (abcl-asdf)
:components
......
......@@ -421,3 +421,6 @@ artifact and all of its transitive dependencies."
(with-slots (asdf::group-id asdf::artifact-id asdf::version)
(asdf:ensure-parsed-mvn mvn)
(resolve-dependencies (format nil "~A:~A:~A" asdf::group-id asdf::artifact-id asdf::version))))
;;; Currently the last file listed in ASDF
(provide 'abcl-asdf)
;;;; -*- Mode: LISP -*-
(in-package :asdf)
(defsystem :jss
(asdf:defsystem :jss
:author "Alan Ruttenberg, Mark Evenson"
:version "3.0.3"
:components
......
......@@ -2,8 +2,7 @@
;;;; Need to have jna.jar present for CFFI to have a chance of working.
;;; XXX jna-3.4.0 seems much more capable, but doesn't have a resolvable pom.xml from Maven central
(require :asdf)
(asdf:defsystem :jna
:version "3.0.9"
:defsystem-depends-on (abcl-asdf) ;;; XXX not working in the bowels of ASDF
:defsystem-depends-on (abcl-asdf)
:components ((:mvn "com.sun.jna/jna/3.0.9")))
......@@ -38,8 +38,10 @@
(defun module-provide-system (module)
(let ((*readtable* (copy-readtable nil)))
(handler-case
(load-system-file (string-downcase (string module)))
(handler-case
(progn
(load-system-file (string-downcase (string module)))
(provide module))
(t (e)
(unless (and (typep e 'error)
(search "Failed to find loadable system file"
......@@ -57,11 +59,13 @@
(cond (pathnames
(unless (listp pathnames) (setf pathnames (list pathnames)))
(dolist (x pathnames)
(load x)))
(load x))
(provide module-name))
(t
(unless (some (lambda (p) (funcall p module-name))
(if (some (lambda (p) (funcall p module-name))
(append (list #'module-provide-system)
sys::*module-provider-functions*))
(error "Don't know how to ~S ~A." 'require module-name))))
(provide module-name) ;; Shouldn't hurt
(error "Don't know how to ~S ~A." 'require module-name))))
(set-difference *modules* saved-modules))))
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment