diff --git a/asdf.asd b/asdf.asd index edf7ae80ca39d912c8f86cd6c3c27e7383b682da..a622c5f83862b5f1b3d5c42ee02acabedbb2b685 100644 --- a/asdf.asd +++ b/asdf.asd @@ -14,7 +14,7 @@ :licence "MIT" :description "Another System Definition Facility" :long-description "ASDF builds Common Lisp software organized into defined systems." - :version "2.26.35" ;; to be automatically updated by bin/bump-revision + :version "2.26.36" ;; to be automatically updated by bin/bump-revision :depends-on () :components ((:file "asdf"))) diff --git a/asdf.lisp b/asdf.lisp index e1e83b0a32810312bf497433c5a28eb45ebc6d7f..c41b9015a339f035618b9186b142347b3144e3cc 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -1,5 +1,5 @@ ;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; coding: utf-8 -*- -;;; This is ASDF 2.26.35: Another System Definition Facility. +;;; This is ASDF 2.26.36: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. @@ -118,7 +118,7 @@ ;; "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.35") + (asdf-version "2.26.36") (existing-asdf (find-class 'component nil)) (existing-version *asdf-version*) (already-there (equal asdf-version existing-version))) @@ -1518,7 +1518,9 @@ and implementation-defined external-format's") ;; but also to modify parse-component-form to reset the recycled objects. ((name) (source-file) #|(children) (children-by-names)|#)) -(defclass system (parent-component proto-system) +;; ASDF3: we ought to inherit from parent-component, not module. +;; But if it's not backwards, it's not compatible. +(defclass system (module proto-system) (;; description and long-description are now available for all component's, ;; but now also inherited from component, but we add the legacy accessor (description :accessor system-description :initarg :description) @@ -2173,9 +2175,11 @@ PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded. ;; Upward operations, like prepare-op, propagate up the component hierarchy: ;; operation on a child depends-on operation on its parent. +;; For backward-compatibility reasons, a system inherits from module and is a child-component +;; so we must guard against this case. ASDF3: remove that. (defclass upward-operation (operation) ()) (defmethod component-depends-on ((o upward-operation) (c child-component)) - `((,o ,(component-parent c)) ,@(call-next-method))) + (append (aif (component-parent c) `((,o ,it))) (call-next-method))) ;; Our default operations: loading into the current lisp image (defclass basic-load-op () ()) diff --git a/doc/asdf.texinfo b/doc/asdf.texinfo index ee7cf85e87c118e75eb094b69302a377d024b94c..6460eceb7c059f691ec4d43d828d11fa69065940 100644 --- a/doc/asdf.texinfo +++ b/doc/asdf.texinfo @@ -4126,7 +4126,7 @@ you can define a class as follows: (in-package :my-asdf-extension) (defclass cl-source-file.lis (cl-source-file) - ((type :initform "lis"))) + ((type :initform "lis"))) @end lisp Then you can use it as follows: @@ -4160,8 +4160,8 @@ In short, though: do same as above, but you also define the following method: @lisp -(defmethod source-file-type ((f cl-source-file.lis) (m module)) - (declare (ignorable f m)) +(defmethod source-file-type ((f cl-source-file.lis) (s system)) + (declare (ignorable f s)) "lis") @end lisp