From a3f8080e9664d2021bddbd281e9b7fea013dd070 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Mon, 21 Jan 2013 11:22:49 -0500
Subject: [PATCH] 2.26.136: try my very best for clean upgrade on abcl, clisp,
 cmucl. In the end, punt.

---
 action.lisp              | 16 +++++++++-------
 asdf.asd                 |  2 +-
 component.lisp           |  4 ++--
 find-component.lisp      |  2 +-
 header.lisp              | 32 ++++++++++++++++++--------------
 operate.lisp             |  2 +-
 output-translations.lisp |  4 ++--
 pathname.lisp            |  2 +-
 plan.lisp                |  1 +
 source-registry.lisp     |  6 +++---
 system.lisp              |  6 +++---
 upgrade.lisp             | 24 +++++++++++++-----------
 version.lisp-expr        |  2 +-
 13 files changed, 56 insertions(+), 47 deletions(-)

diff --git a/action.lisp b/action.lisp
index 1555c234..7630d812 100644
--- a/action.lisp
+++ b/action.lisp
@@ -73,7 +73,7 @@ You can put together sentences using this phrase."))
 (defmethod operation-description (operation component)
   (format nil (compatfmt "~@<~A on ~A~@:>")
           (type-of operation) component))
-(defgeneric* explain (operation component))
+(defgeneric* (explain) (operation component))
 (defmethod explain ((o operation) (c component))
   (asdf-message (compatfmt "~&~@<; ~@;~A~:>~%") (operation-description o c)))
 (define-convenience-action-methods explain (operation component))
@@ -110,10 +110,11 @@ You can put together sentences using this phrase."))
   (cdr (assoc (type-of o) (component-in-order-to c)))) ; User-specified in-order dependencies
 
 (defmethod component-self-dependencies ((o operation) (c component))
+  ;; NB: result in the same format as component-depends-on
   (loop :for (o-spec . c-spec) :in (component-depends-on o c)
         :unless (eq o-spec 'feature) ;; avoid the FEATURE "feature"
           :when (find c c-spec :key #'(lambda (dep) (resolve-dependency-spec c dep)))
-            :collect (cons (find-operation o o-spec) c)))
+            :collect (list o-spec c)))
 
 ;;;; upward-operation, downward-operation
 ;; These together handle actions that propagate along the component hierarchy.
@@ -152,7 +153,7 @@ You can put together sentences using this phrase."))
 ;;;; Inputs, Outputs, and invisible dependencies
 (defgeneric* (output-files) (operation component))
 (defgeneric* (input-files) (operation component))
-(defgeneric* operation-done-p (operation component)
+(defgeneric* (operation-done-p) (operation component)
   (:documentation "Returns a boolean, which is NIL if the action is forced to be performed again"))
 (define-convenience-action-methods output-files (operation component))
 (define-convenience-action-methods input-files (operation component))
@@ -192,12 +193,13 @@ You can put together sentences using this phrase."))
   (declare (ignorable o c))
   nil)
 
-(defmethod input-files ((o operation) (c file-component))
+(defmethod input-files ((o operation) (c component))
   (or (loop :for (dep-o) :in (component-self-dependencies o c)
             :append (or (output-files dep-o c) (input-files dep-o c)))
       ;; no non-trivial previous operations needed?
       ;; I guess we work with the original source file, then
-      (list (component-pathname c))))
+      (if-let ((pathname (component-pathname c)))
+        (and (file-pathname-p pathname) (list pathname)))))
 
 
 ;;;; Done performing
@@ -247,8 +249,8 @@ in some previous image, or T if it needs to be done.")
 
 ;;;; Perform
 
-(defgeneric* perform-with-restarts (operation component))
-(defgeneric* perform (operation component))
+(defgeneric* (perform-with-restarts) (operation component))
+(defgeneric* (perform) (operation component))
 (define-convenience-action-methods perform (operation component))
 
 (defmethod perform :before ((o operation) (c component))
diff --git a/asdf.asd b/asdf.asd
index 59d359c6..7e8e2dde 100644
--- a/asdf.asd
+++ b/asdf.asd
@@ -15,7 +15,7 @@
   :licence "MIT"
   :description "Another System Definition Facility"
   :long-description "ASDF builds Common Lisp software organized into defined systems."
-  :version "2.26.135" ;; to be automatically updated by make bump-version
+  :version "2.26.136" ;; to be automatically updated by make bump-version
   :depends-on ()
   :components ((:module "build" :components ((:file "asdf"))))
   :in-order-to (#+asdf2.27 (compile-op (monolithic-load-concatenated-source-op asdf/defsystem))))
diff --git a/component.lisp b/component.lisp
index 0a44ec47..45a51dae 100644
--- a/component.lisp
+++ b/component.lisp
@@ -43,7 +43,7 @@
   (:documentation "Find the top-level system containing COMPONENT"))
 (defgeneric* component-pathname (component)
   (:documentation "Extracts the pathname applicable for a particular component."))
-(defgeneric* component-relative-pathname (component)
+(defgeneric* (component-relative-pathname) (component)
   (:documentation "Returns a pathname for the component argument intended to be
 interpreted relative to the pathname of that component's parent.
 Despite the function's name, the return value may be an absolute
@@ -58,7 +58,7 @@ another pathname in a degenerate way."))
 
 ;;; Backward compatible way of computing the FILE-TYPE of a component.
 ;;; TODO: find users, have them stop using that.
-(defgeneric* source-file-type (component system))
+(defgeneric* (source-file-type) (component system))
 
 (when-upgrade (:when (find-class 'component nil))
   (defmethod reinitialize-instance :after ((c component) &rest initargs &key)
diff --git a/find-component.lisp b/find-component.lisp
index 7ea2411a..e693f6c6 100644
--- a/find-component.lisp
+++ b/find-component.lisp
@@ -47,7 +47,7 @@
 
 ;;;; Finding components
 
-(defgeneric* find-component (base path)
+(defgeneric* (find-component) (base path)
   (:documentation "Find a component by resolving the PATH starting from BASE parent"))
 (defgeneric* resolve-dependency-combination (component combinator arguments))
 
diff --git a/header.lisp b/header.lisp
index 5fd35d9e..af3fcdcb 100644
--- a/header.lisp
+++ b/header.lisp
@@ -1,5 +1,5 @@
 ;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*-
-;;; This is ASDF 2.26.135: Another System Definition Facility.
+;;; This is ASDF 2.26.136: Another System Definition Facility.
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome:
 ;;; please mail to <asdf-devel@common-lisp.net>.
@@ -47,20 +47,24 @@
 
 #+xcvb (module ())
 
-#+clisp
 (in-package :cl-user)
-#+clisp
+
+#+cmu
+(eval-when (:load-toplevel :compile-toplevel :execute)
+  (declaim (optimize (speed 1) (safety 3) (debug 3)))
+  (setf ext:*gc-verbose* nil))
+
+#+(or abcl clisp cmu)
 (eval-when (:load-toplevel :compile-toplevel :execute)
   (unless (member :asdf2.27 *features*)
-    (let ((p (find-package :asdf)))
-      (when p
-        (rename-package
-         :asdf
-         (format nil "~A-~A" :asdf
-                 (or (symbol-value (and (member :asdf2 *features*)
-                                        (or (find-symbol (string :*asdf-version*) :asdf)
-                                            (find-symbol (string :*asdf-revision*) :asdf))))
-                     :1.x)))
+    (let* ((existing-version
+             (when (find-package :asdf)
+               (or (symbol-value (or (find-symbol (string :*asdf-version*) :asdf)
+                                     (find-symbol (string :*asdf-revision*) :asdf)))
+                   (string :1.x))))
+           (away (format nil "~A-~A" :asdf existing-version)))
+      (when existing-version
+        (rename-package :asdf away)
         (when *load-verbose*
-          (format t "; Renamed package ~A away to ~A~%"
-                  :asdf (package-name p)))))))
+          (format t "; Renamed package ~A away to ~A~%" :asdf away))))))
+
diff --git a/operate.lisp b/operate.lisp
index 50f0c1bb..78f57539 100644
--- a/operate.lisp
+++ b/operate.lisp
@@ -16,7 +16,7 @@
    #:upgrade-asdf #:cleanup-upgraded-asdf #:*post-upgrade-hook*))
 (in-package :asdf/operate)
 
-(defgeneric* operate (operation component &key &allow-other-keys))
+(defgeneric* (operate) (operation component &key &allow-other-keys))
 (define-convenience-action-methods
     operate (operation component &key)
     :operation-initargs t ;; backward-compatibility with ASDF1. Yuck.
diff --git a/output-translations.lisp b/output-translations.lisp
index 71af94aa..c120bdaf 100644
--- a/output-translations.lisp
+++ b/output-translations.lisp
@@ -169,7 +169,7 @@ and the order is by decreasing length of namestring of the source pathname.")
   (when inherit
     (process-output-translations (first inherit) :collect collect :inherit (rest inherit))))
 
-(defun* process-output-translations-directive (directive &key inherit collect)
+(defun* (process-output-translations-directive) (directive &key inherit collect)
   (if (atom directive)
       (ecase directive
         ((:enable-user-cache)
@@ -260,7 +260,7 @@ effectively disabling the output translation facility."
       (output-translations)
       (initialize-output-translations)))
 
-(defun* apply-output-translations (path)
+(defun* (apply-output-translations) (path)
   #+cormanlisp (resolve-symlinks* path) #-cormanlisp
   (etypecase path
     (logical-pathname
diff --git a/pathname.lisp b/pathname.lisp
index c138bbbb..e67f63f3 100644
--- a/pathname.lisp
+++ b/pathname.lisp
@@ -15,7 +15,7 @@
    #:merge-pathnames*
    ;; Directories
    #:pathname-directory-pathname #:pathname-parent-directory-pathname
-   #:directory-pathname-p #:ensure-directory-pathname
+   #:directory-pathname-p #:ensure-directory-pathname #:file-pathname-p
    ;; Absolute vs relative pathnames
    #:ensure-pathname-absolute
    #:relativize-directory-component #:relativize-pathname-directory
diff --git a/plan.lisp b/plan.lisp
index 97116928..2b0ee929 100644
--- a/plan.lisp
+++ b/plan.lisp
@@ -365,6 +365,7 @@ of ASDF operation object and a COMPONENT object. The pairs will be
 processed in order by OPERATE."))
 (defgeneric* perform-plan (plan &key))
 (defgeneric* plan-operates-on-p (plan component))
+(defgeneric* (traverse) (operation component &key &allow-other-keys))
 (define-convenience-action-methods traverse (operation component &key))
 
 (defparameter *default-plan-class* 'sequential-plan)
diff --git a/source-registry.lisp b/source-registry.lisp
index 3e4dfd0b..a5bbfff0 100644
--- a/source-registry.lisp
+++ b/source-registry.lisp
@@ -183,13 +183,13 @@ system names to pathnames of .asd files")
 (defun* environment-source-registry ()
   (getenv "CL_SOURCE_REGISTRY"))
 
-(defgeneric* process-source-registry (spec &key inherit register))
+(defgeneric* (process-source-registry) (spec &key inherit register))
 
-(defun* inherit-source-registry (inherit &key register)
+(defun* (inherit-source-registry) (inherit &key register)
   (when inherit
     (process-source-registry (first inherit) :register register :inherit (rest inherit))))
 
-(defun* process-source-registry-directive (directive &key inherit register)
+(defun* (process-source-registry-directive) (directive &key inherit register)
   (destructuring-bind (kw &rest rest) (if (consp directive) directive (list directive))
     (ecase kw
       ((:include)
diff --git a/system.lisp b/system.lisp
index 3a85c9fa..37afffd9 100644
--- a/system.lisp
+++ b/system.lisp
@@ -14,8 +14,8 @@
    #:find-system #:builtin-system-p)) ;; forward-reference, defined in find-system
 (in-package :asdf/system)
 
-(defgeneric* find-system (system &optional error-p))
-(defgeneric* system-source-file (system)
+(defgeneric* (find-system) (system &optional error-p))
+(defgeneric* (system-source-file) (system)
   (:documentation "Return the source file in which system is defined."))
 (defgeneric* builtin-system-p (system))
 
@@ -55,7 +55,7 @@
 in which the system specification (.asd file) is located."
   (pathname-directory-pathname (system-source-file system-designator)))
 
-(defun* system-relative-pathname (system name &key type)
+(defun* (system-relative-pathname) (system name &key type)
   (subpathname (system-source-directory system) name :type type))
 
 (defmethod component-pathname ((system system))
diff --git a/upgrade.lisp b/upgrade.lisp
index ea90fd38..b7caeae6 100644
--- a/upgrade.lisp
+++ b/upgrade.lisp
@@ -35,22 +35,24 @@
          ;; "2.345.6" would be a development version in the official upstream
          ;; "2.345.0.7" would be your seventh local modification of official release 2.345
          ;; "2.345.6.7" would be your seventh local modification of development version 2.345.6
-         (asdf-version "2.26.135")
+         (asdf-version "2.26.136")
          (existing-asdf (find-class (find-symbol* :component :asdf nil) nil))
          (existing-version *asdf-version*)
          (already-there (equal asdf-version existing-version))
          (redefined-functions ;; gf signature and/or semantics changed incompatibly. Oops.
-           '(#:perform #:explain #:output-files #:operation-done-p
-             #:component-parent-pathname #:traverse
-             #:component-depends-on #:input-files
-             #:perform-with-restarts #:component-relative-pathname
-             #:system-source-file #:operate #:find-component #:find-system
-             #:apply-output-translations #:component-self-dependencies
-             #:system-relative-pathname
-             #:inherit-source-registry #:process-source-registry
-             #:process-source-registry-directive #:source-file-type
+           '(#:component-relative-pathname #:component-parent-pathname ;; component
+             #:source-file-type
+             #:find-system #:system-source-file #:system-relative-pathname ;; system
+             #:find-component ;; find-component
+             #:explain #:perform #:perform-with-restarts #:input-files #:output-files ;; action
+             #:component-depends-on #:component-self-dependencies #:operation-done-p
+             #:traverse ;; plan
+             #:operate  ;; operate
+             #:apply-output-translations ;; output-translations
              #:process-output-translations-directive
-             #:trivial-system-p
+             #:inherit-source-registry #:process-source-registry ;; source-registry
+             #:process-source-registry-directive 
+             #:trivial-system-p ;; bundle
              ;; NB: it's too late to do anything about asdf-driver functions!
              ))
          (uninterned-symbols
diff --git a/version.lisp-expr b/version.lisp-expr
index 96abedb0..67a2d8ee 100644
--- a/version.lisp-expr
+++ b/version.lisp-expr
@@ -1 +1 @@
-"2.26.135"
+"2.26.136"
-- 
GitLab