Commit 95e64cc4 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

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.
parent 5a520005
......@@ -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.
......
;;; -*- 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 <asdf-devel@common-lisp.net>.
......
......@@ -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)
......
......@@ -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)
......
......@@ -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"
......
(load-system "test-asdf/test-module-depend")
......@@ -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)))
......
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