Commit 6f97e9e0 authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

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.
parent f32551fd
......@@ -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 com.informatimago.common-lisp.csv
=> (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
......@@ -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 ""
:bug-tracker-url ""
:developers-email ""
:source-control (:git "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.
......@@ -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)))
......@@ -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.
(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)
: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))))
;;; -*- 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 <>.
......@@ -80,6 +80,11 @@
#:*system-definition-search-functions* ; variables
......@@ -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*
......@@ -13,6 +13,11 @@
#: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)
:initform nil :initarg :build-pathname :accessor component-build-pathname)
......@@ -51,7 +51,7 @@ You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSIO
;; "" would be a development version in the official upstream of 3.4.5.
;; "" would be your eighth local modification of official release 3.4.5
;; "" would be your eighth local modification of development version
(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)))
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