Skip to content
Snippets Groups Projects
Commit effffe75 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Fix an ASDF bootstrap bug reported by MKCL's JCB.

Our method to override 'load-op with *load-system-operation*
in defmethod component-depends-on ((o prepare-op) (s system))
was failing to call-next-method, which cancelled the
:in-order-to in asdf.asd's own defsystem asdf. Oops.

Issue: this means that ASDF 3.1.2 is unfit to bootstrap further
variants of ASDF, and they must be bootstrapped with make,
or their asdf.asd must be modified in a yet-to-be-determined way
to compensate for that bug.
parent 3306af4c
No related branches found
No related tags found
No related merge requests found
......@@ -111,7 +111,8 @@ The default operation may change in the future if we implement a
component-directed strategy for how to load or compile systems.")
(defmethod component-depends-on ((o prepare-op) (s system))
`((,*load-system-operation* ,@(component-sideway-dependencies s))))
(loop :for (o . cs) :in (call-next-method)
:collect (cons (if (eq o 'load-op) *load-system-operation* o) cs)))
(defclass build-op (non-propagating-operation) ()
(:documentation "Since ASDF3, BUILD-OP is the recommended 'master' operation,
......@@ -122,7 +123,8 @@ as a symbol or as a string later read as a symbol (after loading the defsystem-d
if NIL is specified (the default), BUILD-OP falls back to the *LOAD-SYSTEM-OPERATION*
that will load the system in the current image, and its typically LOAD-OP."))
(defmethod component-depends-on ((o build-op) (c component))
`((,(or (component-build-operation c) *load-system-operation*) ,c)))
`((,(or (component-build-operation c) *load-system-operation*) ,c)
,@(call-next-method)))
(defun make (system &rest keys)
"The recommended way to interact with ASDF3.1 is via (ASDF:MAKE :FOO).
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment