Changeset 15546
- Timestamp:
- 02/10/22 16:05:15 (12 months ago)
- Location:
- trunk/abcl
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/doc/asdf/asdf.texinfo
r15505 r15546 66 66 @titlepage 67 67 @title ASDF: Another System Definition Facility 68 @subtitle Manual for Version 3.3.5 68 @subtitle Manual for Version 3.3.5.7 69 69 @c The following two commands start the copyright page. 70 70 @page … … 83 83 @top ASDF: Another System Definition Facility 84 84 @ifnottex 85 Manual for Version 3.3.5 85 Manual for Version 3.3.5.7 86 86 @end ifnottex 87 87 -
trunk/abcl/src/org/armedbear/lisp/asdf.lisp
r15516 r15546 1 1 ;;; -*- mode: Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; Package: CL-USER ; buffer-read-only: t; -*- 2 ;;; This is ASDF 3.3.5. 0.3: Another System Definition Facility.2 ;;; This is ASDF 3.3.5.7: Another System Definition Facility. 3 3 ;;; 4 4 ;;; Feedback, bug reports, and patches are all welcome: … … 58 58 (error "ASDF requires either System 453 or later or Intel Support 3.87 or later"))))) 59 59 ;;;; --------------------------------------------------------------------------- 60 ;;;; HandleASDF package upgrade, including implementation-dependent magic.60 ;;;; ASDF package upgrade, including implementation-dependent magic. 61 61 ;; 62 62 ;; See https://bugs.launchpad.net/asdf/+bug/485687 … … 148 148 149 149 (eval-when (:load-toplevel :compile-toplevel :execute) 150 (defun find-package* (package-designator &optional (error t)) 150 (deftype package-designator () '(and (or package character string symbol) (satisfies find-package))) 151 (define-condition no-such-package-error (type-error) 152 () 153 (:default-initargs :expected-type 'package-designator) 154 (:report (lambda (c s) 155 (format s "No package named ~a" (string (type-error-datum c)))))) 156 157 (defmethod package-designator ((c no-such-package-error)) 158 (type-error-datum c)) 159 160 (defun find-package* (package-designator &optional (errorp t)) 161 "Like CL:FIND-PACKAGE, but by default raises a UIOP:NO-SUCH-PACKAGE-ERROR if the 162 package is not found." 151 163 (let ((package (find-package package-designator))) 152 164 (cond 153 165 (package package) 154 (error (error "No package named ~S" (string package-designator)))166 (errorp (error 'no-such-package-error :datum package-designator)) 155 167 (t nil)))) 168 156 169 (defun find-symbol* (name package-designator &optional (error t)) 157 170 "Find a symbol in a package of given string'ified NAME; … … 456 469 ;;; ensure-package, define-package 457 470 (eval-when (:load-toplevel :compile-toplevel :execute) 471 ;; We already have UIOP:SIMPLE-STYLE-WARNING, but it comes from a later 472 ;; package. 473 (define-condition define-package-style-warning 474 #+sbcl (sb-int:simple-style-warning) #-sbcl (simple-condition style-warning) 475 ()) 458 476 (defun ensure-shadowing-import (name to-package from-package shadowed imported) 459 477 (check-type name string) … … 808 826 ;; handle import-from packages 809 827 (loop :for (p . syms) :in import-from 810 :for pp = (find-package p) :do 828 ;; FOR NOW suppress errors in the case where the :import-from 829 ;; symbol list is empty (used only to establish a dependency by 830 ;; package-inferred-system users). 831 :for pp = (find-package* p syms) :do 832 (when (null pp) 833 ;; TODO: ASDF 3.4 Change to a full warning. 834 (warn 'define-package-style-warning 835 :format-control "When defining package ~a, attempting to import-from non-existent package ~a. This is deprecated behavior and will be removed from UIOP in the future." 836 :format-arguments (list name p))) 811 837 (dolist (sym syms) (ensure-import (symbol-name sym) package pp shadowed imported))) 812 838 ;; handle use-list and mix … … 868 894 :recycle ',(if recycle-p recycle (cons package nicknames)) 869 895 :mix ',mix :reexport ',reexport :unintern ',unintern 870 :local-nicknames ',local-nicknames))))) 896 ,@(when local-nicknames 897 `(:local-nicknames ',local-nicknames))))))) 871 898 872 899 (defmacro define-package (package &rest clauses) … … 913 940 (define-package :uiop/package* 914 941 (:use-reexport :uiop/package 915 #+package-local-nicknames :uiop/package-local-nicknames)) 942 #+package-local-nicknames :uiop/package-local-nicknames) 943 (:import-from :uiop/package 944 #:define-package-style-warning 945 #:no-such-package-error 946 #:package-designator) 947 (:export #:define-package-style-warning 948 #:no-such-package-error 949 #:package-designator)) 916 950 ;;;; ------------------------------------------------------------------------- 917 951 ;;;; Handle compatibility with multiple implementations. … … 1799 1833 (:export 1800 1834 #:*uiop-version* 1801 #:parse-version #:unparse-version #:version< #:version<= ;; version support, moved from uiop/utility1835 #:parse-version #:unparse-version #:version< #:version<= #:version= ;; version support, moved from uiop/utility 1802 1836 #:next-version 1803 1837 #:deprecated-function-condition #:deprecated-function-name ;; deprecation control … … 1808 1842 1809 1843 (with-upgradability () 1810 (defparameter *uiop-version* "3.3.5. 0.3")1844 (defparameter *uiop-version* "3.3.5.7") 1811 1845 1812 1846 (defun unparse-version (version-list) … … 1858 1892 "Given two version strings, return T if the second is newer or the same" 1859 1893 (not (version< version2 version1)))) 1894 1895 (defun version= (version1 version2) 1896 "Given two version strings, return T if the first is newer or the same and 1897 the second is also newer or the same." 1898 (and (version<= version1 version2) 1899 (version<= version2 version1))) 1860 1900 1861 1901 … … 2857 2897 (t 2858 2898 (split-name-type filename))) 2859 (let* ((directory2860 (unless file-only (cons relative path)))2861 (pathname2862 #-abcl2863 (make-pathname2864 :directory directory2865 :name name :type type2866 :defaults (or #-mcl defaults *nil-pathname*))2867 #+abcl2868 (if (and defaults2869 (ext:pathname-jar-p defaults)2870 (null directory))2871 ;; When DEFAULTS is a jar, it will have the directory we want2872 (make-pathname :name name :type type2873 :defaults (or defaults *nil-pathname*))2874 (make-pathname :name name :type type2875 :defaults (or defaults *nil-pathname*)2876 :directory directory))))2877 (apply 'ensure-pathname2878 pathname2879 (remove-plist-keys '(:type :dot-dot :defaults) keys)))))))2899 (let* ((directory 2900 (unless file-only (cons relative path))) 2901 (pathname 2902 #-abcl 2903 (make-pathname 2904 :directory directory 2905 :name name :type type 2906 :defaults (or #-mcl defaults *nil-pathname*)) 2907 #+abcl 2908 (if (and defaults 2909 (ext:pathname-jar-p defaults) 2910 (null directory)) 2911 ;; When DEFAULTS is a jar, it will have the directory we want 2912 (make-pathname :name name :type type 2913 :defaults (or defaults *nil-pathname*)) 2914 (make-pathname :name name :type type 2915 :defaults (or defaults *nil-pathname*) 2916 :directory directory)))) 2917 (apply 'ensure-pathname 2918 pathname 2919 (remove-plist-keys '(:type :dot-dot :defaults) keys))))))) 2880 2920 2881 2921 (defun unix-namestring (pathname) … … 5924 5964 #:launch-program 5925 5965 #:close-streams #:process-alive-p #:terminate-process #:wait-process 5966 #:process-info 5926 5967 #:process-info-error-output #:process-info-input #:process-info-output #:process-info-pid)) 5927 5968 (in-package :uiop/launch-program) … … 6130 6171 ;; If the platform allows it, distinguish exiting with a code 6131 6172 ;; >128 from exiting in response to a signal by setting this code 6132 (signal-code :initform nil))) 6173 (signal-code :initform nil)) 6174 (:documentation "This class should be treated as opaque by programmers, except for the 6175 exported PROCESS-INFO-* functions. It should never be directly instantiated by 6176 MAKE-INSTANCE. Primarily, it is being made available to enable type-checking.")) 6133 6177 6134 6178 ;;;--------------------------------------------------------------------------- … … 7787 7831 ;; Private hook for functions to run after ASDF has upgraded itself from an older variant: 7788 7832 (defvar *post-upgrade-cleanup-hook* ()) 7833 ;; Private variable for post upgrade cleanup to communicate if an upgrade has 7834 ;; actually occured. 7835 (defvar *asdf-upgraded-p*) 7789 7836 ;; Private function to detect whether the current upgrade counts as an incompatible 7790 7837 ;; data schema upgrade implying the need to drop data. … … 7824 7871 ;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5 7825 7872 ;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67 7826 (asdf-version "3.3.5. 0.3")7873 (asdf-version "3.3.5.7") 7827 7874 (existing-version (asdf-version))) 7828 7875 (setf *asdf-version* asdf-version) … … 7884 7931 (unless (equal old-version new-version) 7885 7932 (push new-version *previous-asdf-versions*) 7933 (when (boundp '*asdf-upgraded-p*) 7934 (setf *asdf-upgraded-p* t)) 7886 7935 (when old-version 7887 7936 (if (version<= new-version old-version) … … 7902 7951 We need do that before we operate on anything that may possibly depend on ASDF." 7903 7952 (let ((*load-print* nil) 7904 (*compile-print* nil)) 7953 (*compile-print* nil) 7954 (*asdf-upgraded-p* nil)) 7905 7955 (handler-bind (((or style-warning) #'muffle-warning)) 7906 (symbol-call :asdf :load-system :asdf :verbose nil)))) 7956 (symbol-call :asdf :load-system :asdf :verbose nil)) 7957 *asdf-upgraded-p*)) 7907 7958 7908 7959 (defmacro with-asdf-deprecation ((&rest keys &key &allow-other-keys) &body body) … … 8048 8099 :report (lambda (s) 8049 8100 (format s (compatfmt "~@<Retry ASDF operation after resetting the configuration.~@:>"))) 8050 (clrhash (session-cache *asdf-session*)) 8101 (unless (null *asdf-session*) 8102 (clrhash (session-cache *asdf-session*))) 8051 8103 (clear-configuration))))))) 8052 8104 … … 8369 8421 ;; TODO: track who uses it in Quicklisp, and have them not use it anymore; 8370 8422 ;; maybe issue a WARNING (then eventually CERROR) if the two methods diverge? 8371 (let ((parent 8423 (let (#+abcl 8424 (parent 8372 8425 (component-parent-pathname component))) 8373 8426 (parse-unix-namestring … … 8380 8433 #+abcl (not (ext:pathname-jar-p parent)) 8381 8434 :type (source-file-type component (component-system component)) 8382 :defaults parent)))8435 :defaults (component-parent-pathname component)))) 8383 8436 8384 8437 (defmethod source-file-type ((component parent-component) (system parent-component)) … … 13831 13884 ;;;; Register ASDF itself and all its subsystems as preloaded. 13832 13885 (with-upgradability () 13833 (dolist (s '("asdf" " uiop" "asdf-package-system"))13886 (dolist (s '("asdf" "asdf-package-system")) 13834 13887 ;; Don't bother with these system names, no one relies on them anymore: 13835 13888 ;; "asdf-utils" "asdf-bundle" "asdf-driver" "asdf-defsystem" 13836 (register-preloaded-system s :version *asdf-version*))) 13837 13889 (register-preloaded-system s :version *asdf-version*)) 13890 (register-preloaded-system "uiop" :version *uiop-version*)) 13891 13892 ;;;; Ensure that the version slot on the registered preloaded systems are 13893 ;;;; correct, by CLEARing the system. However, we do not CLEAR-SYSTEM 13894 ;;;; unconditionally. This is because it's possible the user has upgraded the 13895 ;;;; systems using ASDF itself, meaning that the registered systems have real 13896 ;;;; data from the file system that we want to preserve instead of blasting 13897 ;;;; away and replacing with a blank preloaded system. 13898 (with-upgradability () 13899 (unless (equal (system-version (registered-system "asdf")) (asdf-version)) 13900 (clear-system "asdf")) 13901 ;; 3.1.2 is the last version where asdf-package-system was a separate system. 13902 (when (version< "3.1.2" (system-version (registered-system "asdf-package-system"))) 13903 (clear-system "asdf-package-system")) 13904 (unless (equal (system-version (registered-system "uiop")) *uiop-version*) 13905 (clear-system "uiop"))) 13838 13906 13839 13907 ;;;; Hook ASDF into the implementation's REQUIRE and other entry points.
Note: See TracChangeset
for help on using the changeset viewer.