Commit f1428a6b authored by Eric Timmons's avatar Eric Timmons

Explicitly LOAD uiop.asd in install-asdf.lisp.

This is needed because of the special handling of UIOP by FIND-SYSTEM (hides
versions not greater than the current version) and because UIOP is an empty
preloaded system.
parent adcaad53
......@@ -122,7 +122,17 @@ a command-line executable for LispWorks this way:
(create-image asdf.a (list asdf.o) :kind :lib))))
(defun install-uiop-and-asdf-as-modules ()
(let ((uiop.fasl (uiop-module-fasl)))
(let ((uiop.fasl (uiop-module-fasl))
(uiop.asd (subpathname *asdf-dir* "uiop/uiop.asd")))
;; We need to *explicitly* LOAD UIOP's system definition because FIND-SYSTEM
;; will hide any uiop.asd files with a version that is not strictly greater
;; than the one that is loaded. Because the first step of the install
;; procedure is to load the version of ASDF/UIOP that we're trying to
;; install, that obviously causes issues. We are unable to LOAD-ASD the asd
;; file because UIOP is a PRELOADED system so LOAD-ASD will use the existing
;; system definition (which is essentially empty) to try and find the source
;; files and CLEAR-SYSTEM doesn't help either.
(load uiop.asd)
(with-file-replacement (uiop.fasl)
(operate 'compile-bundle-op "uiop")
(rename-file-overwriting-target (first (output-files 'compile-bundle-op "uiop")) uiop.fasl)
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