Changeset 14604


Ignore:
Timestamp:
01/16/14 17:54:38 (7 years ago)
Author:
Mark Evenson
Message:

Update to asdf-3.1.0.49.

Location:
trunk/abcl
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/doc/asdf/asdf.texinfo

    r14593 r14604  
    42974297You may consult with the maintainer for which specific version they recommend,
    42984298but the latest @code{release} should be correct.
    4299 We trust you to thoroughly test it with your implementation
     4299Though we do try to test ASDF releases against all implementations that we can,
     4300we may not be testing against all variants of your implementation,
     4301and we may not be running enough tetst;
     4302we trust you to thoroughly test it with your own implementation
    43004303before you release it.
    43014304If there are any issues with the current release,
     
    43514354Non-magic systems should be at the back of the @code{wrapping-source-registry}
    43524355while magic systems are at the front.
     4356
     4357@item
     4358Since ASDF 3, the library UIOP comes transcluded in ASDF.
     4359But for extra brownies, you may package UIOP separately,
     4360so that one may @code{(require "uiop")} and not pull ASDF,
     4361or one may @code{(require "asdf")}
     4362and that would implicitly require the former.
    43534363
    43544364@item
  • trunk/abcl/src/org/armedbear/lisp/asdf.lisp

    r14593 r14604  
    11;;; -*- mode: Common-Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp -*-
    2 ;;; This is ASDF 3.1.0.36: Another System Definition Facility.
     2;;; This is ASDF 3.1.0.49: Another System Definition Facility.
    33;;;
    44;;; Feedback, bug reports, and patches are all welcome:
     
    2020;;;  Monday; July 13, 2009)
    2121;;;
    22 ;;; Copyright (c) 2001-2012 Daniel Barlow and contributors
     22;;; Copyright (c) 2001-2014 Daniel Barlow and contributors
    2323;;;
    2424;;; Permission is hereby granted, free of charge, to any person obtaining
     
    5252#+cmu
    5353(eval-when (:load-toplevel :compile-toplevel :execute)
    54   (declaim (optimize (speed 1) (safety 3) (debug 3)))
    5554  (setf ext:*gc-verbose* nil))
    5655
    57 #+(or abcl clozure cmu ecl xcl) ;; punt on hard package upgrade on those implementations
     56;; Punt on hard package upgrade: from ASDF1 always, and even from ASDF2 on most implementations.
    5857(eval-when (:load-toplevel :compile-toplevel :execute)
    5958  (unless (member :asdf3 *features*)
     
    7271           (away (format nil "~A-~A" :asdf existing-version)))
    7372      (when (and existing-version
    74                  (< existing-version-number 2.27))
     73                 (< existing-version-number
     74        (or #+(or allegro clisp lispworks sbcl) 2.0 2.27)))
    7575        (rename-package :asdf away)
    7676        (when *load-verbose*
     
    562562            (t
    563563             (ensure-inherited name symbol to-package from-package t shadowed imported inherited)))))))
    564  
     564
    565565  (defun recycle-symbol (name recycle exported)
    566566    ;; Takes a symbol NAME (a string), a list of package designators for RECYCLE
     
    787787
    788788(defmacro define-package (package &rest clauses)
    789   "DEFINE-PACKAGE takes a PACKAGE and a number of CLAUSES, of the form 
     789  "DEFINE-PACKAGE takes a PACKAGE and a number of CLAUSES, of the form
    790790\(KEYWORD . ARGS\).
    791791DEFINE-PACKAGE supports the following keywords:
     
    801801created again. In short, except for special cases, always make it the first
    802802package on the list if the list is not empty.
    803 MIX -- Takes a list of package designators.  MIX behaves like 
     803MIX -- Takes a list of package designators.  MIX behaves like
    804804\(:USE PKG1 PKG2 ... PKGn\) but additionally uses :SHADOWING-IMPORT-FROM to
    805805resolve conflicts in favor of the first found symbol.  It may still yield
     
    14491449(with-upgradability ()
    14501450  (defun ensure-gethash (key table default)
    1451     "Lookup the TABLE for a KEY as by gethash, but if not present,
     1451    "Lookup the TABLE for a KEY as by GETHASH, but if not present,
    14521452call the (possibly constant) function designated by DEFAULT as per CALL-FUNCTION,
    1453 set the corresponding entry to the result in the table, and return that result."
     1453set the corresponding entry to the result in the table.
     1454Return two values: the entry after its optional computation, and whether it was found"
    14541455    (multiple-value-bind (value foundp) (gethash key table)
    1455       (if foundp
    1456           value
    1457           (setf (gethash key table) (values (call-function default))))))
     1456      (values
     1457       (if foundp
     1458           value
     1459           (setf (gethash key table) (call-function default)))
     1460       foundp)))
    14581461
    14591462  (defun list-to-hash-set (list &aux (h (make-hash-table :test 'equal)))
     
    42774280                                (dump-hook *image-dump-hook*)
    42784281                                #+clozure prepend-symbols #+clozure (purify t)
     4282                                #+sbcl compression
    42794283                                #+(and sbcl windows) application-type)
    42804284    "Dump an image of the current Lisp environment at pathname FILENAME, with various options"
     
    43394343      (apply 'sb-ext:save-lisp-and-die filename
    43404344             :executable t ;--- always include the runtime that goes with the core
    4341              (when executable (list :toplevel #'restore-image :save-runtime-options t)) ;--- only save runtime-options for standalone executables
    4342              #+(and sbcl windows) ;; passing :application-type :gui will disable the console window.
    4343              ;; the default is :console - only works with SBCL 1.1.15 or later.
    4344              (when application-type (list :application-type application-type))))
     4345             (append
     4346              (when compression (list :compression compression))
     4347              ;;--- only save runtime-options for standalone executables
     4348              (when executable (list :toplevel #'restore-image :save-runtime-options t))
     4349              #+(and sbcl windows) ;; passing :application-type :gui will disable the console window.
     4350              ;; the default is :console - only works with SBCL 1.1.15 or later.
     4351              (when application-type (list :application-type application-type)))))
    43454352    #-(or allegro clisp clozure cmu gcl lispworks sbcl scl)
    43464353    (error "Can't ~S ~S: UIOP doesn't support image dumping with ~A.~%"
     
    49644971            #+(or cmu scl) (ext:process-exit-code process)
    49654972            #+ecl (nth-value 1 (ext:external-process-status process))
    4966             #+lispworks (system:pid-exit-status process :wait t)
     4973            #+lispworks
     4974            (if-let ((stream (or (getf process-info :input-stream)
     4975                                 (getf process-info :output-stream)
     4976                                 (getf process-info :bidir-stream)
     4977                                 (getf process-info :error-stream))))
     4978              (system:pipe-exit-status stream :wait t)
     4979              (if-let ((f (find-symbol* :pid-exit-status :system nil)))
     4980                (funcall f process :wait t)))
    49674981            #+sbcl (sb-ext:process-exit-code process)))))
    49684982
     
    64366450  (defvar *asdf-version* nil)
    64376451  ;; We need to clear systems from versions yet older than the below:
    6438   (defparameter *oldest-forward-compatible-asdf-version* "2.27")
     6452  (defparameter *oldest-forward-compatible-asdf-version* "2.33") ;; 2.32.13 renames a slot in component.
    64396453  (defmacro defparameter* (var value &optional docstring)
    64406454    (let* ((name (string-trim "*" var))
     
    64676481         ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
    64686482         ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
    6469          (asdf-version "3.1.0.36")
     6483         (asdf-version "3.1.0.49")
    64706484         (existing-version (asdf-version)))
    64716485    (setf *asdf-version* asdf-version)
     
    73567370                             (read-file-form version-pathname)))
    73577371               (old-version (asdf-version)))
    7358           (or (version<= old-version version)
    7359               (ensure-gethash
    7360                (list pathname old-version) *old-asdf-systems*
    7361                  #'(lambda ()
    7362                      (let ((old-pathname
    7363                              (if-let (pair (system-registered-p "asdf"))
    7364                                (system-source-file (cdr pair)))))
    7365                        (warn "~@<~
     7372          (cond
     7373            ((version< old-version version) t) ;; newer version: good!
     7374            ((equal old-version version) nil) ;; same version: don't load, but don't warn
     7375            (t ;; old version: bad
     7376             (ensure-gethash
     7377              (list (namestring pathname) version) *old-asdf-systems*
     7378              #'(lambda ()
     7379                 (let ((old-pathname
     7380                         (if-let (pair (system-registered-p "asdf"))
     7381                           (system-source-file (cdr pair)))))
     7382                   (warn "~@<~
    73667383        You are using ASDF version ~A ~:[(probably from (require \"asdf\") ~
    73677384        or loaded by quicklisp)~;from ~:*~S~] and have an older version of ASDF ~
     
    73857402        or use :ignore-inherited-configuration to avoid registering the old one. ~
    73867403        Please consult ASDF documentation and/or experts.~@:>~%"
    7387                              old-version old-pathname version pathname)
    7388                        t)))))))
     7404                         old-version old-pathname version pathname))))
     7405             nil))))) ;; only issue the warning the first time, but always return nil
    73897406
    73907407  (defun locate-system (name)
     
    76767693(in-package :asdf/action)
    76777694
    7678 (eval-when (#-lispworks :compile-toplevel :load-toplevel :execute)
    7679   (deftype action () '(cons operation component))) ;; a step to be performed while building
     7695(eval-when (#-lispworks :compile-toplevel :load-toplevel :execute) ;; LispWorks issues spurious warning
     7696  (deftype action () '(cons operation component)) ;; a step to be performed while building
     7697
     7698  (deftype operation-designator ()
     7699    ;; an operation designates itself,
     7700    ;; nil designates a context-dependent current operation, and
     7701    ;; class-name or class designates an instance of the designated class.
     7702    '(or operation null symbol class)))
    76807703
    76817704(with-upgradability ()
     
    77817804
    77827805
    7783 ;;;; upward-operation, downward-operation
    7784 ;; These together handle actions that propagate along the component hierarchy.
    7785 ;; Downward operations like load-op or compile-op propagate down the hierarchy:
    7786 ;; operation on a parent depends-on operation on its children.
    7787 ;; By default, an operation propagates itself, but it may propagate another one instead.
     7806;;;; upward-operation, downward-operation, sideway-operation, selfward-operation
     7807;; These together handle actions that propagate along the component hierarchy or operation universe.
    77887808(with-upgradability ()
    77897809  (defclass downward-operation (operation)
    77907810    ((downward-operation
    7791       :initform nil :initarg :downward-operation :reader downward-operation :allocation :class)))
     7811      :initform nil :reader downward-operation
     7812      :type operation-designator :allocation :class))
     7813    (:documentation "A DOWNWARD-OPERATION's dependencies propagate down the component hierarchy.
     7814I.e., if O is a DOWNWARD-OPERATION and its DOWNWARD-OPERATION slot designates operation D, then
     7815the action (O . M) of O on module M will depends on each of (D . C) for each child C of module M.
     7816The default value for slot DOWNWARD-OPERATION is NIL, which designates the operation O itself.
     7817E.g. in order for a MODULE to be loaded with LOAD-OP (resp. compiled with COMPILE-OP), all the
     7818children of the MODULE must have been loaded with LOAD-OP (resp. compiled with COMPILE-OP."))
    77927819  (defmethod component-depends-on ((o downward-operation) (c parent-component))
    77937820    `((,(or (downward-operation o) o) ,@(component-children c)) ,@(call-next-method)))
    7794   ;; Upward operations like prepare-op propagate up the component hierarchy:
    7795   ;; operation on a child depends-on operation on its parent.
    7796   ;; By default, an operation propagates itself, but it may propagate another one instead.
     7821
    77977822  (defclass upward-operation (operation)
    77987823    ((upward-operation
    7799       :initform nil :initarg :downward-operation :reader upward-operation :allocation :class)))
     7824      :initform nil :reader upward-operation
     7825      :type operation-designator :allocation :class))
     7826    (:documentation "An UPWARD-OPERATION has dependencies that propagate up the component hierarchy.
     7827I.e., if O is an instance of UPWARD-OPERATION, and its UPWARD-OPERATION slot designates operation U,
     7828then the action (O . C) of O on a component C that has the parent P will depends on (U . P).
     7829The default value for slot UPWARD-OPERATION is NIL, which designates the operation O itself.
     7830E.g. in order for a COMPONENT to be prepared for loading or compiling with PREPARE-OP, its PARENT
     7831must first be prepared for loading or compiling with PREPARE-OP."))
    78007832  ;; For backward-compatibility reasons, a system inherits from module and is a child-component
    78017833  ;; so we must guard against this case. ASDF4: remove that.
     
    78037835    `(,@(if-let (p (component-parent c))
    78047836          `((,(or (upward-operation o) o) ,p))) ,@(call-next-method)))
    7805   ;; Sibling operations propagate to siblings in the component hierarchy:
    7806   ;; operation on a child depends-on operation on its parent.
    7807   ;; By default, an operation propagates itself, but it may propagate another one instead.
     7837
    78087838  (defclass sideway-operation (operation)
    78097839    ((sideway-operation
    7810       :initform nil :initarg :sideway-operation :reader sideway-operation :allocation :class)))
     7840      :initform nil :reader sideway-operation
     7841      :type operation-designator :allocation :class))
     7842    (:documentation "A SIDEWAY-OPERATION has dependencies that propagate \"sideway\" to siblings
     7843that a component depends on. I.e. if O is a SIDEWAY-OPERATION, and its SIDEWAY-OPERATION slot
     7844designates operation S (where NIL designates O itself), then the action (O . C) of O on component C
     7845depends on each of (S . D) where D is a declared dependency of C.
     7846E.g. in order for a COMPONENT to be prepared for loading or compiling with PREPARE-OP,
     7847each of its declared dependencies must first be loaded as by LOAD-OP."))
    78117848  (defmethod component-depends-on ((o sideway-operation) (c component))
    78127849    `((,(or (sideway-operation o) o)
     
    78147851               :collect (resolve-dependency-spec c dep)))
    78157852      ,@(call-next-method)))
    7816   ;; Selfward operations propagate to themselves a sub-operation:
    7817   ;; they depend on some other operation being acted on the same component.
     7853
    78187854  (defclass selfward-operation (operation)
    78197855    ((selfward-operation
    7820       :initform nil :initarg :selfward-operation :reader selfward-operation :allocation :class)))
     7856      ;; NB: no :initform -- if an operation depends on others, it must explicitly specify which
     7857      :type (or operation-designator list) :reader selfward-operation :allocation :class))
     7858    (:documentation "A SELFWARD-OPERATION depends on another operation on the same component.
     7859I.e., if O is a SELFWARD-OPERATION, and its SELFWARD-OPERATION designates a list of operations L,
     7860then the action (O . C) of O on component C depends on each (S . C) for S in L.
     7861A operation-designator designates a singleton list of the designated operation;
     7862a list of operation-designators designates the list of designated operations;
     7863NIL is not a valid operation designator in that context.
     7864E.g. before a component may be loaded by LOAD-OP, it must have been compiled by COMPILE-OP."))
    78217865  (defmethod component-depends-on ((o selfward-operation) (c component))
    78227866    `(,@(loop :for op :in (ensure-list (selfward-operation o))
     
    80128056(with-upgradability ()
    80138057  (defclass prepare-op (upward-operation sideway-operation)
    8014     ((sideway-operation :initform 'load-op)))
     8058    ((sideway-operation :initform 'load-op :allocation :class)))
    80158059  (defclass load-op (basic-load-op downward-operation sideway-operation selfward-operation)
    80168060    ;; NB: even though compile-op depends on prepare-op it is not needed-in-image-p,
    80178061    ;; so we need to directly depend on prepare-op for its side-effects in the current image.
    8018     ((selfward-operation :initform '(prepare-op compile-op))))
     8062    ((selfward-operation :initform '(prepare-op compile-op) :allocation :class)))
    80198063  (defclass compile-op (basic-compile-op downward-operation selfward-operation)
    8020     ((selfward-operation :initform 'prepare-op)
    8021      (downward-operation :initform 'load-op)))
     8064    ((selfward-operation :initform 'prepare-op :allocation :class)
     8065     (downward-operation :initform 'load-op :allocation :class)))
    80228066
    80238067  (defclass prepare-source-op (upward-operation sideway-operation)
    8024     ((sideway-operation :initform 'load-source-op)))
     8068    ((sideway-operation :initform 'load-source-op :allocation :class)))
    80258069  (defclass load-source-op (basic-load-op downward-operation selfward-operation)
    8026     ((selfward-operation :initform 'prepare-source-op)))
     8070    ((selfward-operation :initform 'prepare-source-op :allocation :class)))
    80278071
    80288072  (defclass test-op (selfward-operation)
    8029     ((selfward-operation :initform 'load-op))))
     8073    ((selfward-operation :initform 'load-op :allocation :class))))
    80308074
    80318075
     
    98859929    ((bundle-type :initform :fasl)))
    98869930  (defclass prepare-fasl-op (sideway-operation)
    9887     ((sideway-operation :initform 'load-fasl-op)))
     9931    ((sideway-operation :initform 'load-fasl-op :allocation :class)))
    98889932  (defclass fasl-op (basic-fasl-op selfward-operation)
    9889     ((selfward-operation :initform '(prepare-fasl-op #+ecl lib-op))))
     9933    ((selfward-operation :initform '(prepare-fasl-op #+ecl lib-op) :allocation :class)))
    98909934  (defclass load-fasl-op (basic-load-op selfward-operation)
    9891     ((selfward-operation :initform '(prepare-op fasl-op))))
     9935    ((selfward-operation :initform '(prepare-op fasl-op) :allocation :class)))
    98929936
    98939937  ;; NB: since the monolithic-op's can't be sideway-operation's,
     
    99039947     #-(or ecl mkcl) "just compile the system"))
    99049948
    9905   (defclass dll-op (bundle-compile-op selfward-operation no-ld-flags-op)
     9949  (defclass dll-op (bundle-compile-op no-ld-flags-op)
    99069950    ((bundle-type :initform :dll))
    99079951    (:documentation "compile the system and produce dynamic (.so/.dll) library for it."))
    99089952
    99099953  (defclass binary-op (basic-compile-op selfward-operation)
    9910     ((selfward-operation :initform '(fasl-op lib-op)))
     9954    ((selfward-operation :initform '(fasl-op lib-op) :allocation :class))
    99119955    (:documentation "produce fasl and asd files for the system"))
    99129956
     
    99229966
    99239967  (defclass monolithic-binary-op (monolithic-op binary-op)
    9924     ((selfward-operation :initform '(monolithic-fasl-op monolithic-lib-op)))
     9968    ((selfward-operation :initform '(monolithic-fasl-op monolithic-lib-op) :allocation :class))
    99259969    (:documentation "produce fasl and asd files for combined system and dependencies."))
    99269970
     
    1036910413  (defclass concatenate-source-op (basic-concatenate-source-op) ())
    1037010414  (defclass load-concatenated-source-op (basic-load-concatenated-source-op)
    10371     ((selfward-operation :initform '(prepare-op concatenate-source-op))))
     10415    ((selfward-operation :initform '(prepare-op concatenate-source-op) :allocation :class)))
    1037210416  (defclass compile-concatenated-source-op (basic-compile-concatenated-source-op)
    10373     ((selfward-operation :initform '(prepare-op concatenate-source-op))))
     10417    ((selfward-operation :initform '(prepare-op concatenate-source-op) :allocation :class)))
    1037410418  (defclass load-compiled-concatenated-source-op (basic-load-compiled-concatenated-source-op)
    10375     ((selfward-operation :initform '(prepare-op compile-concatenated-source-op))))
     10419    ((selfward-operation :initform '(prepare-op compile-concatenated-source-op) :allocation :class)))
    1037610420
    1037710421  (defclass monolithic-concatenate-source-op (basic-concatenate-source-op monolithic-bundle-op) ())
    1037810422  (defclass monolithic-load-concatenated-source-op (basic-load-concatenated-source-op)
    10379     ((selfward-operation :initform 'monolithic-concatenate-source-op)))
     10423    ((selfward-operation :initform 'monolithic-concatenate-source-op :allocation :class)))
    1038010424  (defclass monolithic-compile-concatenated-source-op (basic-compile-concatenated-source-op)
    10381     ((selfward-operation :initform 'monolithic-concatenate-source-op)))
     10425    ((selfward-operation :initform 'monolithic-concatenate-source-op :allocation :class)))
    1038210426  (defclass monolithic-load-compiled-concatenated-source-op (basic-load-compiled-concatenated-source-op)
    10383     ((selfward-operation :initform 'monolithic-compile-concatenated-source-op)))
     10427    ((selfward-operation :initform 'monolithic-compile-concatenated-source-op :allocation :class)))
    1038410428
    1038510429  (defmethod input-files ((operation basic-concatenate-source-op) (s system))
     
    1063610680
    1063710681  (defun file-defpackage-form (file)
     10682    "Return the first DEFPACKAGE form in FILE."
    1063810683    (with-input-file (f file)
    1063910684      (stream-defpackage-form f)))
     
    1064810693
    1064910694  (defun package-dependencies (defpackage-form)
     10695    "Return a list of packages depended on by the package
     10696defined in DEFPACKAGE-FORM.  A package is depended upon if
     10697the DEFPACKAGE-FORM uses it or imports a symbol from it."
    1065010698    (assert (defpackage-form-p defpackage-form))
    1065110699    (remove-duplicates
     
    1066710715
    1066810716  (defun register-system-packages (system packages)
     10717    "Register SYSTEM as providing PACKAGES."
    1066910718    (let ((name (or (eq system t) (coerce-name system))))
    1067010719      (dolist (p (ensure-list packages))
     
    1067210721
    1067310722  (defun package-name-system (package-name)
     10723    "Return the name of the SYSTEM providing PACKAGE-NAME, if such exists,
     10724otherwise return a default system name computed from PACKAGE-NAME."
    1067410725    (check-type package-name string)
    1067510726    (if-let ((system-name (gethash package-name *package-systems*)))
     
    1073810789  ;; TODO: automatically generate interface with reexport?
    1073910790  (:export
    10740    #:defsystem #:find-system #:locate-system #:coerce-name
     10791   #:defsystem #:find-system #:locate-system #:coerce-name #:primary-system-name
    1074110792   #:oos #:operate #:make-plan #:perform-plan #:sequential-plan
    1074210793   #:system-definition-pathname #:with-system-definitions
Note: See TracChangeset for help on using the changeset viewer.