Commit 34dd7b9f authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

Restore deprecated function operation-forced

Undelete this function as a workaround for the large breakage in Quicklisp
due to its still using an old SWANK.

Revert "Remove operation-forced altogether"

This reverts commit 545ab9ff.
parent dbe9942a
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@
   #:error-component #:error-operation #:traverse
   #:component-load-dependencies
   #:enable-asdf-binary-locations-compatibility
   #:operation-forced
   #:operation-on-failure #:operation-on-warnings #:on-failure #:on-warnings
   #:component-property
   #:run-shell-command
@@ -47,6 +48,22 @@ or define methods on PREPARE-OP, etc."
    ;; Old deprecated name for the same thing. Please update your software.
    (component-sideway-dependencies component))

  (defun* (operation-forced) (operation)
    "DEPRECATED. Assume it's (constantly nil) instead -- until it disappears."
    ;; This function exists for backward compatibility with swank.asd, its only user,
    ;; 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 operation was forced. But it actually fails, badly, in that case.
    ;; The correctness criterion for a build specification (which is _not_
    ;; specific to ASDF) requires that the effects of a build step must NOT depend
    ;; on whether the step was "forced" or not. Therefore it is correct that this
    ;; method should return constantly the same result. Since returning T currently
    ;; causes massive failure in SLIME, it shall be constantly NIL.
    ;; see also https://bugs.launchpad.net/asdf/+bug/1629582
    (declare (ignore operation))
    nil)

  ;; These old interfaces from ASDF1 have never been very meaningful
  ;; but are still used in obscure places.
  ;; In Quicklisp 2015-05, still used by cl-protobufs and clx.