From 6f97e9e0429319e246fe68b86bfd57fffa1a2b35 Mon Sep 17 00:00:00 2001 From: Francois-Rene Rideau <tunes@google.com> Date: Thu, 31 Jan 2013 17:49:44 -0500 Subject: [PATCH] 2.26.174: add a few metadata slots to system. backward-compatibility tweaks. Add :website-url :bug-tracker-url :developers-email :long-name :source-control Remove unused symbols from some packages. Update some comments. Example uses in defsystem asdf/defsystem. --- TODO | 74 +++++++++++++++++++++++++++++++++++++++++ asdf.asd | 12 +++++-- backward-internals.lisp | 6 +++- component.lisp | 31 +++++++++-------- header.lisp | 2 +- interface.lisp | 5 +++ lisp-build.lisp | 1 - system.lisp | 18 ++++++++-- upgrade.lisp | 2 +- version.lisp-expr | 2 +- 10 files changed, 130 insertions(+), 23 deletions(-) diff --git a/TODO b/TODO index 8161915d..5b8aa9a3 100644 --- a/TODO +++ b/TODO @@ -22,3 +22,77 @@ * operation cleanup? ** Kill backward-compat functions after all clients have moved on. ** Kill original-initargs -- BEWARE, it currently has clients! +* Get rid of component-properties +** directly use component-properties: +*** yaclml.asd => misguided :features for version comparison +*** amazon-ecs-20110418-git/amazon-ecs.asd => :website property +*** hemlock.asd => bad implementation of latin1 encodings +** .asd use :properties +*** arnesi, arnesi+ => :features, misguided for version comparison and pseudo #+features +*** lkcas, thopter => :long-name +*** cl-irc cliki-bot rss cl-syslog com.informatimago.clext + com.informatimago.clisp com.informatimago.clmisc + com.informatimago.common-lisp.arithmetic + om.informatimago.common-lisp.bank + com.informatimago.common-lisp.cesarum + com.informatimago.common-lisp com.informatimago.common-lisp.csv + com.informatimago.common-lisp.cxx + com.informatimago.common-lisp.data-encoding + com.informatimago.common-lisp.diagram + com.informatimago.common-lisp.ed + com.informatimago.common-lisp.graphviz + com.informatimago.common-lisp.heap + com.informatimago.common-lisp.html-base + com.informatimago.common-lisp.html-generator + com.informatimago.common-lisp.html-parser + com.informatimago.common-lisp.http + com.informatimago.common-lisp.interactive + com.informatimago.common-lisp.invoice + com.informatimago.common-lisp.lisp + com.informatimago.common-lisp.lisp.ibcl + com.informatimago.common-lisp.lisp.stepper + com.informatimago.common-lisp.lisp-reader + com.informatimago.common-lisp.lisp-sexp + com.informatimago.common-lisp.lisp-text + com.informatimago.common-lisp.parser + com.informatimago.common-lisp.picture + com.informatimago.common-lisp.regexp + com.informatimago.common-lisp.rfc2822 + com.informatimago.common-lisp.rfc3548 + com.informatimago.common-lisp.telnet + com.informatimago.common-lisp.unix + linc + com.informatimago.lispdoc + com.informatimago.lua + com.informatimago.cocoa-playground + com.informatimago.objcl + com.informatimago.rdp + com.informatimago.rdp.basic + com.informatimago.rdp.basic.example + com.informatimago.rdp.example + com.informatimago.susv3 + com.informatimago.common-lisp.tools.make-depends + com.informatimago.xcode + spartns + xlunit + => (uninterned!) + #:author-email #:date + (#:albert #:output-dirs) + (#:albert #:formats) + (#:albert #:docbook #:template) + (#:albert #:docbook #:bgcolor) + (#:albert #:docbook #:textcolor) + (#:albert #:docbook #:dtd) +*** portableaserve + => + ("system" "author" "email") + ("albert" "presentation" "output-dir") + ("albert" "presentation" "formats") + ("albert" "docbook" "dtd") + ("albert" "docbook" "template") +*** com.clearly-useful.generic-collection-interface => :com.clearly-useful +*** metatilities + => :ait-timeout :system-applicable-p +*** ucw ucw-core + => + version diff --git a/asdf.asd b/asdf.asd index 498dc761..ee14a6e9 100644 --- a/asdf.asd +++ b/asdf.asd @@ -27,7 +27,15 @@ (defsystem :asdf/defsystem :licence "MIT" :description "The defsystem part of ASDF" - :long-description "Another System Definition Facility, the portable defsystem for Common Lisp" + :long-name "Another System Definition Facility" + :description "The portable defsystem for Common Lisp" + :long-description "ASDF/DEFSYSTEM is the standard DEFSYSTEM facility for Common Lisp, + a successor to Dan Barlow's ASDF and Francois-Rene Rideau's ASDF2. + For bootstrap purposes, it comes bundled with ASDF/DRIVER in a single file asdf.lisp." + :website-url "http://common-lisp.net/projects/asdf/" + :bug-tracker-url "https://launchpad.net/asdf/" + :developers-email "asdf-devel@common-lisp.net" + :source-control (:git "git://common-lisp.net/projects/asdf/asdf.git") :version (:read-file-form "version.lisp-expr") :build-operation monolithic-concatenate-source-op :build-pathname "build/asdf" ;; our target @@ -66,7 +74,7 @@ :licence "MIT" :description "Another System Definition Facility" :long-description "ASDF builds Common Lisp software organized into defined systems." - :version "2.26.173" ;; to be automatically updated by make bump-version + :version "2.26.174" ;; 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/backward-internals.lisp b/backward-internals.lisp index cd56b471..ecd46011 100644 --- a/backward-internals.lisp +++ b/backward-internals.lisp @@ -79,6 +79,10 @@ (load-asd pathname :name name)) (defun* make-temporary-package () - (make-package (fresh-package-name :prefix :asdf :index 0) :use '(:cl :asdf/interface))) + ;; For loading a .asd file, we dont't make a temporary package anymore, + ;; but use ASDF-USER. I'd like to have this function do this, + ;; but since whoever uses it is likely to delete-package the result afterwards, + ;; this would be a bad idea, so preserve the old behavior. + (make-package (fresh-package-name :prefix :asdf :index 0) :use '(:cl :asdf))) diff --git a/component.lisp b/component.lisp index 5bde202b..1fb16832 100644 --- a/component.lisp +++ b/component.lisp @@ -67,21 +67,22 @@ another pathname in a degenerate way.")) ;; We might want to constrain version with ;; :type (and string (satisfies parse-version)) ;; but we cannot until we fix all systems that don't use it correctly! - (version :accessor component-version :initarg :version) - (description :accessor component-description :initarg :description) - (long-description :accessor component-long-description :initarg :long-description) + (version :accessor component-version :initarg :version :initform nil) + (description :accessor component-description :initarg :description :initform nil) + (long-description :accessor component-long-description :initarg :long-description :initform nil) (sibling-dependencies :accessor component-sibling-dependencies :initform nil) (if-feature :accessor component-if-feature :initform nil :initarg :if-feature) - ;; In the ASDF object model, dependencies exist between *actions* - ;; (an action is a pair of operation and component). + ;; In the ASDF object model, dependencies exist between *actions*, + ;; where an action is a pair of an operation and a component. ;; Dependencies are represented as alists of operations - ;; to dependencies (other actions) in each component. + ;; to a list where each entry is a pair of an operation and a list of component specifiers. ;; Up until ASDF 2.26.9, there used to be two kinds of dependencies: ;; in-order-to and do-first, each stored in its own slot. Now there is only in-order-to. ;; in-order-to used to represent things that modify the filesystem (such as compiling a fasl) ;; and do-first things that modify the current image (such as loading a fasl). ;; These are now unified because we now correctly propagate timestamps between dependencies. - ;; Happily, no one seems to have used do-first too much, but the name in-order-to remains. + ;; Happily, no one seems to have used do-first too much (especially since until ASDF 2.017, + ;; anything you specified was overridden by ASDF itself anyway), but the name in-order-to remains. ;; The names are bad, but they have been the official API since Dan Barlow's ASDF 1.52! ;; LispWorks's defsystem has caused-by and requires for in-order-to and do-first respectively. ;; Maybe rename the slots in ASDF? But that's not very backward-compatible. @@ -90,21 +91,24 @@ another pathname in a degenerate way.")) :accessor component-in-order-to) ;; methods defined using the "inline" style inside a defsystem form: ;; need to store them somewhere so we can delete them when the system - ;; is re-evaluated + ;; is re-evaluated. (inline-methods :accessor component-inline-methods :initform nil) ;; OBSOLETE! DELETE THIS IF NO ONE USES. - ;; no direct accessor for pathname, we do this as a method to allow - ;; it to default in funky ways if not supplied + ;; ASDF4: rename it from relative-pathname to specified-pathname. It need not be relative. + ;; There is no initform and no direct accessor for this specified pathname, + ;; so we only access the information through appropriate methods, after it has been processed. + ;; Unhappily, some braindead systems directly access the slot. Make them stop before ASDF4. (relative-pathname :initarg :pathname) - ;; the absolute-pathname is computed based on relative-pathname... + ;; The absolute-pathname is computed based on relative-pathname and parent pathname. + ;; The slot is but a cache used by component-pathname. (absolute-pathname) (operation-times :initform (make-hash-table) :accessor component-operation-times) (around-compile :initarg :around-compile) - ;; Properties are for backward-compatibility with ASDF2 only. DO NOT USE. + ;; Properties are for backward-compatibility with ASDF2 only. DO NOT USE! (properties :accessor component-properties :initarg :properties :initform nil) (%encoding :accessor %component-encoding :initform nil :initarg :encoding) - ;; For backward-compatibility, this slot is part of component rather than child-component. ASDF4: don't. + ;; For backward-compatibility, this slot is part of component rather than of child-component. ASDF4: stop it. (parent :initarg :parent :initform nil :reader component-parent) (build-operation :initarg :build-operation :initform nil :reader component-build-operation))) @@ -273,3 +277,4 @@ another pathname in a degenerate way.")) (when (typep x 'parent-component) (map () #'recurse (component-children x)))))) (recurse component)))) + diff --git a/header.lisp b/header.lisp index d14a7430..c9eb29e5 100644 --- a/header.lisp +++ b/header.lisp @@ -1,5 +1,5 @@ ;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*- -;;; This is ASDF 2.26.173: Another System Definition Facility. +;;; This is ASDF 2.26.174: Another System Definition Facility. ;;; ;;; Feedback, bug reports, and patches are all welcome: ;;; please mail to <asdf-devel@common-lisp.net>. diff --git a/interface.lisp b/interface.lisp index 8d18c10f..6e110bf3 100644 --- a/interface.lisp +++ b/interface.lisp @@ -80,6 +80,11 @@ #:system-source-file #:system-source-directory #:system-relative-pathname + #:system-website-url + #:system-bug-tracker-url + #:system-developers-email + #:system-long-name + #:system-source-control #:map-systems #:*system-definition-search-functions* ; variables diff --git a/lisp-build.lisp b/lisp-build.lisp index 6f77e271..412cc2c7 100644 --- a/lisp-build.lisp +++ b/lisp-build.lisp @@ -22,7 +22,6 @@ #:reify-deferred-warnings #:reify-undefined-warning #:unreify-deferred-warnings #:reset-deferred-warnings #:save-deferred-warnings #:check-deferred-warnings #:with-saved-deferred-warnings #:warnings-file-p #:warnings-file-type #:*warnings-file-type* - #:call-with-asdf-compilation-unit #:with-asdf-compilation-unit #:current-lisp-file-pathname #:load-pathname #:lispize-pathname #:compile-file-type #:call-around-hook #:compile-file* #:compile-file-pathname* diff --git a/system.lisp b/system.lisp index 91daaa0c..09449716 100644 --- a/system.lisp +++ b/system.lisp @@ -13,6 +13,11 @@ #:system-defsystem-depends-on #:component-build-pathname #:build-pathname #:component-entry-point #:entry-point + #:website-url #:system-website-url + #:bug-tracker-url #:system-bug-tracker-url + #:developers-email #:system-developers-email + #:long-name #:system-long-name + #:source-control #:system-source-control #:find-system #:builtin-system-p)) ;; forward-reference, defined in find-system (in-package :asdf/system) @@ -39,10 +44,17 @@ (;; {,long-}description is now inherited from component, but we add the legacy accessors (description :accessor system-description) (long-description :accessor system-long-description) - (author :accessor system-author :initarg :author) - (maintainer :accessor system-maintainer :initarg :maintainer) + (author :accessor system-author :initarg :author :initform nil) + (maintainer :accessor system-maintainer :initarg :maintainer :initform nil) (licence :accessor system-licence :initarg :licence - :accessor system-license :initarg :license) + :accessor system-license :initarg :license :initform nil) + (website-url :accessor system-website-url :initarg :website-url :initform nil) + (bug-tracker-url :accessor system-bug-tracker-url :initarg :bug-tracker-url :initform nil) + (developers-email :accessor system-developers-email :initarg :developers-email :initform nil) + (long-name :accessor system-long-name :initarg :long-name :initform nil) + ;; Conventions for this slot aren't clear yet as of ASDF 2.27, but whenever they are, they will be enforced. + ;; I'm introducing the slot before the conventions are set for maximum compatibility. + (source-control :accessor system-source-control :initarg :source-control :initform nil) (builtin-system-p :accessor builtin-system-p :initform nil :initarg :builtin-system-p) (build-pathname :initform nil :initarg :build-pathname :accessor component-build-pathname) diff --git a/upgrade.lisp b/upgrade.lisp index c482dc84..3dedbe2e 100644 --- a/upgrade.lisp +++ b/upgrade.lisp @@ -51,7 +51,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.26.173") + (asdf-version "2.26.174") (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 f86fbfcc..33eda96a 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -1 +1 @@ -"2.26.173" +"2.26.174" -- GitLab