Commit 65d16a93 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

Fix more upgrade issues

Use :recycle of :asdf/find-system in :asdf/source-registry to migrate symbol
initialize-source-registry that moved from that previous packages
(otherwise, upgrade from 3.2.1 breaks on all lisps).

Also :recycle :asdf/action in :asdf/plan for required-components and
traverse-action. But avoid interning plan in asdf/action so it doesn't
confuse clisp when upgrading from 2.26(!).
parent 74cb84d5
......@@ -7,7 +7,6 @@
(:use :uiop/common-lisp :uiop :asdf/upgrade :asdf/session :asdf/component :asdf/operation)
(:import-from :asdf/operation #:check-operation-constructor)
(:import-from :asdf/component #:%additional-input-files)
#-clisp (:unintern #:required-components #:traverse-action #:traverse-sub-actions)
(:export
#:action #:define-convenience-action-methods
#:action-description #:format-action
......@@ -431,7 +430,8 @@ They may rely on the order of the files to discriminate between inputs.
Updates the action's COMPONENT-OPERATION-TIME to match the COMPUTE-ACTION-STAMP
using the JUST-DONE flag."))
(defgeneric compute-action-stamp (plan operation component &key just-done)
(defgeneric compute-action-stamp (plan- operation component &key just-done)
;; NB: using plan- rather than plan above allows clisp to upgrade from 2.26(!)
(:documentation "Has this action been successfully done already,
and at what known timestamp has it been done at or will it be done at?
* PLAN is a plan object modelling future effects of actions,
......
......@@ -7,7 +7,6 @@
:asdf/session :asdf/component :asdf/system :asdf/operation :asdf/action :asdf/lisp-action
:asdf/find-component :asdf/system-registry :asdf/plan :asdf/operate)
(:import-from #:asdf/component #:%additional-input-files)
#+abcl (:intern #:initialize-source-registry) ;; to upgrade from 3.1.x
(:export
#:find-system #:locate-system #:load-asd #:define-op
#:load-system-definition-error #:error-name #:error-pathname #:error-condition))
......
......@@ -173,7 +173,7 @@ an OPERATION and a COMPONENT."
(defmethod input-files ((o compile-op) (c system))
(when (and *warnings-file-type* (not (builtin-system-p c)))
;; The most correct way to do it would be to use:
;; (traverse-sub-actions o c :other-systems nil :keep-operation 'compile-op :keep-component 'cl-source-file)
;; (collect-dependencies o c :other-systems nil :keep-operation 'compile-op :keep-component 'cl-source-file)
;; but it's expensive and we don't care too much about file order or ASDF extensions.
(loop :for sub :in (sub-components c :type 'cl-source-file)
:nconc (remove-if-not 'warnings-file-p (output-files o sub)))))
......
......@@ -4,7 +4,7 @@
(uiop/package:define-package :asdf/plan
;; asdf/action below is needed for required-components, traverse-action and traverse-sub-actions
;; that used to live there before 3.2.0.
(:recycle :asdf/plan :asdf)
(:recycle :asdf/plan :asdf/action :asdf)
(:use :uiop/common-lisp :uiop :asdf/upgrade :asdf/session
:asdf/component :asdf/operation :asdf/action :asdf/lisp-action
:asdf/system :asdf/system-registry :asdf/find-component :asdf/forcing)
......
......@@ -3,9 +3,9 @@
;;;; See the Manual and https://bugs.launchpad.net/asdf/+bug/485918
(uiop/package:define-package :asdf/source-registry
(:recycle :asdf/source-registry :asdf)
;; NB: asdf/find-system allows upgrade from <=3.2.1 that have initialize-source-registry there
(:recycle :asdf/source-registry :asdf/find-system :asdf)
(:use :uiop/common-lisp :uiop :asdf/upgrade :asdf/system :asdf/system-registry)
#+abcl (:import-from :asdf/find-system #:initialize-source-registry) ;; to upgrade from 3.1.x
(:export
#:*source-registry-parameter* #:*default-source-registries*
#:invalid-source-registry
......
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