Commit a52afa09 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

Have operation-forced be constantly nil, not t

As of 2016-10-01, SLIME doesn't actually want to be reloaded, and dies badly
when swank-loader:init is called with :delete t. So have operation-forced
return constantly nil instead of constantly t.
parent a37ed108
...@@ -41,20 +41,21 @@ ...@@ -41,20 +41,21 @@
;; Old deprecated name for the same thing. Please update your software. ;; Old deprecated name for the same thing. Please update your software.
(component-sideway-dependencies component)) (component-sideway-dependencies component))
(defgeneric operation-forced (operation) (defun* (operation-forced) (operation)
(:documentation "DEPRECATED. Assume it's (constantly t) instead.")) "DEPRECATED. Assume it's (constantly nil) instead -- until it disappears."
;; This method exists for backward compatibility with swank.asd, its only user, ;; This function exists for backward compatibility with swank.asd, its only user,
;; that still uses it as of 2016-09-21. ;; that still abuses it as of 2016-10-01.
;; ;;
;; The magic PERFORM method in swank.asd only actually loads swank if it sees that ;; The magic PERFORM method in swank.asd only actually loads swank if it sees
;; the operation was forced. But except for the first time, the only reason the action ;; that the operation was forced. But it actually fails, badly, in that case.
;; would be performed to begin with is because it was forced; and the first time over, ;; The correctness criterion for a build specification (which is _not_
;; it doesn't hurt that :reload t :delete t should be used. So the check is redundant. ;; specific to ASDF) requires that the effects of a build step must NOT depend
;; More generally, if you have to do something when the operation was forced, ;; on whether the step was "forced" or not. Therefore it is correct that this
;; you should also do it when not, and vice-versa, because it really shouldn't matter. ;; method should return constantly the same result. Since returning T currently
;; Thus, the backward-compatible thing to do is to always return T. ;; causes massive failure in SLIME, it shall be constantly NIL.
(defmethod operation-forced ((o operation)) t) ;; see also https://bugs.launchpad.net/asdf/+bug/1629582
(declare (ignore operation))
nil)
;; These old interfaces from ASDF1 have never been very meaningful ;; These old interfaces from ASDF1 have never been very meaningful
;; but are still used in obscure places. ;; but are still used in obscure places.
......
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