[Asdf-devel] Moving MKCL's bundled version to ASDF 3.1.2
fahree at gmail.com
Fri Jun 20 23:53:56 UTC 2014
that's a pretty embarrassing bootstrap bug in ASDF indeed, that I
introduced in 22.214.171.124. Interesting that the test suite didn't find it.
Bisecting things a bit, it seems to be a bug introduced in 126.96.36.199.
To test things:
v=188.8.131.52; ASDF_UPGRADE_TEST_TAGS=$v ./test/run-tests.sh -H ; \rm
build/asdf.lisp ; rlwrap sbcl --load build/asdf-$v.lisp --eval '(progn
(format t "~A~%~S~%~S~%~S~%" (asdf:asdf-version) (asdf:traverse
(asdf:input-files `asdf:monolithic-concatenate-source-op "asdf/defsystem")
(asdf:component-depends-on `asdf:prepare-op :asdf)) (quit))'
When it works, such as with v=184.108.40.206, it prints
ASDF/CONCATENATE-SOURCE:MONOLITHIC-CONCATENATE-SOURCE-OP as the first
operation, because indeed prepare-op asdf has the correct dependency.
When it doesn't work, such as with v=220.127.116.11, the dependency is
A further git bisect between 18.104.22.168 and 22.214.171.124 using
make ; /bin/mv -f build/asdf.lisp build/asdf-x.lisp ; rlwrap sbcl
--load build/asdf-x.lisp --eval '(progn (format t "~A~%~S~%~S~%~S~%"
(asdf:asdf-version) (asdf:traverse `asdf:load-op `asdf)
"asdf/defsystem") (asdf:component-depends-on `asdf:prepare-op :asdf))
ae3b26b18ec33a570752bbfb584171781210f97c is the first bad commit
Problem: the component-depends-on method being introduced
is missing a ,@(call-next-method). Oops.
Although — no, the call-next-method would defeat the purpose,
since it's about overriding load-op (as obtained by sideway-operation
by a *load-system-operation*. If we want this effect, we need
something more like:
(defmethod component-depends-on ((o prepare-op) (s system))
(loop :for (o . cs) :in (call-next-method)
:collect (cons (if (eq o 'load-op) *load-system-operation* o) cs)))
Indeed this change makes the test command above succeed when it otherwise fails.
The other component-depends-on method in this file is also suspiciously missing
a call-next-method. Should be a simple ,@(call-next-method).
Jean-Claude: thanks *A LOT* for your bug report!
Robert, I took the liberty of committing this fix as 126.96.36.199.
You might want a different fix, or to scratch this feature, etc.
Issue: That 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 modified in a yet-to-be-determined way
to compensate for that bug.
The bug is probably worth releasing a 3.1.3 at some point
and encouraging implementations to ship 3.1.3 instead of 3.1.2.
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Suppose 2/3 Congress were incinerated, what would we lose to offset our gain
of their salaries and the salaries of their parasites? — H. L. Mencken
More information about the asdf-devel