From 95e64cc4982fa7735bdc3c52e9cbc175587bbb70 Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau Date: Tue, 26 Feb 2013 14:50:03 -0500 Subject: [PATCH] 2.31.2: fix NIL to work as a "skip me" designator in component-depends-on. Use it to test (:feature :sbcl (:require :sb-posix)) and such. --- asdf.asd | 2 +- header.lisp | 2 +- operation.lisp | 5 ++++- plan.lisp | 10 +++++----- test/test-asdf.asd | 4 +++- test/test-asdf.script | 1 + upgrade.lisp | 2 +- version.lisp-expr | 2 +- 8 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 test/test-asdf.script diff --git a/asdf.asd b/asdf.asd index 934ffb27..cf71a24a 100644 --- a/asdf.asd +++ b/asdf.asd @@ -74,7 +74,7 @@ :licence "MIT" :description "Another System Definition Facility" :long-description "ASDF builds Common Lisp software organized into defined systems." - :version "2.31.1" ;; to be automatically updated by make bump-version + :version "2.31.2" ;; to be automatically updated by make bump-version :depends-on () #+asdf3 :encoding #+asdf3 :utf-8 ;; For most purposes, asdf itself specially counts as a builtin system. diff --git a/header.lisp b/header.lisp index e5bba9f1..ad76355d 100644 --- a/header.lisp +++ b/header.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- -;;; This is ASDF 2.31.1: Another System Definition Facility. +;;; This is ASDF 2.31.2: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to . diff --git a/operation.lisp b/operation.lisp index c0807911..0ec04800 100644 --- a/operation.lisp +++ b/operation.lisp @@ -52,7 +52,10 @@ (declare (ignorable context)) spec) (defmethod find-operation (context (spec symbol)) - (apply 'make-operation spec (operation-original-initargs context))) + (unless (member spec '(nil feature)) + ;; specially avoid the "FEATURE" misfeature from ASDF1. + ;; Also, NIL designates itself. + (apply 'make-operation spec (operation-original-initargs context)))) (defmethod operation-original-initargs ((context symbol)) (declare (ignorable context)) nil) diff --git a/plan.lisp b/plan.lisp index e72451e2..9e060ff1 100644 --- a/plan.lisp +++ b/plan.lisp @@ -172,11 +172,11 @@ the action of OPERATION on COMPONENT in the PLAN")) (with-upgradability () (defun map-direct-dependencies (operation component fun) (loop* :for (dep-o-spec . dep-c-specs) :in (component-depends-on operation component) - :unless (eq dep-o-spec 'feature) ;; avoid the "FEATURE" misfeature - :do (loop :with dep-o = (find-operation operation dep-o-spec) - :for dep-c-spec :in dep-c-specs - :for dep-c = (resolve-dependency-spec component dep-c-spec) - :when (and dep-o dep-c) + :for dep-o = (find-operation operation dep-o-spec) + :when dep-o + :do (loop :for dep-c-spec :in dep-c-specs + :for dep-c = (and dep-c-spec (resolve-dependency-spec component dep-c-spec)) + :when dep-c :do (funcall fun dep-o dep-c)))) (defun reduce-direct-dependencies (operation component combinator seed) diff --git a/test/test-asdf.asd b/test/test-asdf.asd index 0d230437..d66e6f87 100644 --- a/test/test-asdf.asd +++ b/test/test-asdf.asd @@ -30,7 +30,9 @@ :depends-on ((:version :test-asdf/test9-2 "2.0"))) (defsystem :test-asdf/test-module-depend - :depends-on (#+sbcl (:require :sb-posix)) + :depends-on + ((:feature :sbcl (:require :sb-posix)) + (:feature :allegro (:require "osi"))) :components ((:file "file1") (:module "quux" diff --git a/test/test-asdf.script b/test/test-asdf.script new file mode 100644 index 00000000..44507fdc --- /dev/null +++ b/test/test-asdf.script @@ -0,0 +1 @@ +(load-system "test-asdf/test-module-depend") diff --git a/upgrade.lisp b/upgrade.lisp index 64abe040..2b142b7d 100644 --- a/upgrade.lisp +++ b/upgrade.lisp @@ -52,7 +52,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO ;; "3.4.5.67" would be a development version in the official upstream of 3.4.5. ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5 ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67 - (asdf-version "2.31.1") + (asdf-version "2.31.2") (existing-version (asdf-version))) (setf *asdf-version* asdf-version) (when (and existing-version (not (equal asdf-version existing-version))) diff --git a/version.lisp-expr b/version.lisp-expr index 666b3e95..e8dc8932 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1 +1 @@ -"2.31.1" +"2.31.2" -- 2.22.0