... |
... |
@@ -37,8 +37,13 @@ |
37
|
37
|
(defvar *require-verbose* t
|
38
|
38
|
"*load-verbose* is bound to this before loading files.")
|
39
|
39
|
|
|
40
|
+(defvar *cmucl-provider-functions*
|
|
41
|
+ '(module-provide-cmucl-defmodule module-provide-cmucl-library)
|
|
42
|
+ "Provider functions for cmucl modules and libraries. These are
|
|
43
|
+ searched first before trying *module-provider-functions*")
|
|
44
|
+
|
40
|
45
|
(defvar *module-provider-functions*
|
41
|
|
- '(module-provide-cmucl-defmodule module-provide-cmucl-library)
|
|
46
|
+ nil
|
42
|
47
|
"See function documentation for REQUIRE")
|
43
|
48
|
|
44
|
49
|
;;;; Defmodule.
|
... |
... |
@@ -102,11 +107,6 @@ |
102
|
107
|
\"contrib-games-feebs\", \"contrib-hist\", \"contrib-psgraph\",
|
103
|
108
|
\"contrib-ops\", \"contrib-embedded-c\", \"contrib-sprof\", and
|
104
|
109
|
\"contrib-packed-sse2\". "
|
105
|
|
- ;; First, load asdf if it's not already loaded. This is needed to
|
106
|
|
- ;; load easily the contribs that use asdf. There are no contribs
|
107
|
|
- ;; that use defsystem, so we won't autoload defsystem.
|
108
|
|
- (unless (featurep :asdf)
|
109
|
|
- (load "modules:asdf/asdf"))
|
110
|
110
|
(let ((saved-modules (copy-list *modules*))
|
111
|
111
|
(module-name (module-name-string module-name)))
|
112
|
112
|
(unless (member module-name *modules* :test #'string=)
|
... |
... |
@@ -114,9 +114,20 @@ |
114
|
114
|
(if pathname
|
115
|
115
|
(dolist (file (if (consp pathname) pathname (list pathname)) t)
|
116
|
116
|
(load file))
|
117
|
|
- (unless (some (lambda (p) (funcall p module-name))
|
118
|
|
- *module-provider-functions*)
|
119
|
|
- (error (intl:gettext "Don't know how to load ~A") module-name)))))
|
|
117
|
+ ;; Search *cmucl-provider-functions* first so that we'll
|
|
118
|
+ ;; load our version of clx (and friends) before loading
|
|
119
|
+ ;; any asdf version, if asdf is loaded.
|
|
120
|
+ (or (some (lambda (p) (funcall p module-name))
|
|
121
|
+ *cmucl-provider-functions*)
|
|
122
|
+ (progn
|
|
123
|
+ ;; Load asdf if it's not already loaded. This is needed to
|
|
124
|
+ ;; load easily the contribs that use asdf. There are no contribs
|
|
125
|
+ ;; that use defsystem, so we won't autoload defsystem.
|
|
126
|
+ (unless (featurep :asdf)
|
|
127
|
+ (load "modules:asdf/asdf"))
|
|
128
|
+ (some (lambda (p) (funcall p module-name))
|
|
129
|
+ *module-provider-functions*))
|
|
130
|
+ (error (intl:gettext "Don't know how to load ~A") module-name)))))
|
120
|
131
|
(set-difference *modules* saved-modules)))
|
121
|
132
|
|
122
|
133
|
;;;; Default module providers
|