1
|
1
|
;;; -*- mode: Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; Package: CL-USER ; buffer-read-only: t; -*-
|
2
|
|
-;;; This is ASDF 3.3.6: Another System Definition Facility.
|
|
2
|
+;;; This is ASDF 3.3.7: Another System Definition Facility.
|
3
|
3
|
;;;
|
4
|
4
|
;;; Feedback, bug reports, and patches are all welcome:
|
5
|
5
|
;;; please mail to <asdf-devel@common-lisp.net>.
|
... |
... |
@@ -1848,7 +1848,7 @@ form suitable for testing with #+." |
1848
|
1848
|
(in-package :uiop/version)
|
1849
|
1849
|
|
1850
|
1850
|
(with-upgradability ()
|
1851
|
|
- (defparameter *uiop-version* "3.3.6")
|
|
1851
|
+ (defparameter *uiop-version* "3.3.7")
|
1852
|
1852
|
|
1853
|
1853
|
(defun unparse-version (version-list)
|
1854
|
1854
|
"From a parsed version (a list of natural numbers), compute the version string"
|
... |
... |
@@ -2144,18 +2144,56 @@ use getenvp to return NIL in such a case." |
2144
|
2144
|
|
2145
|
2145
|
(defsetf getenv (x) (val)
|
2146
|
2146
|
"Set an environment variable."
|
2147
|
|
- (declare (ignorable x val))
|
2148
|
|
- #+allegro `(setf (sys:getenv ,x) ,val)
|
2149
|
|
- #+clasp `(ext:setenv ,x ,val)
|
2150
|
|
- #+clisp `(system::setenv ,x ,val)
|
2151
|
|
- #+clozure `(ccl:setenv ,x ,val)
|
2152
|
|
- #+cmucl `(unix:unix-setenv ,x ,val 1)
|
2153
|
|
- #+(or ecl clasp) `(ext:setenv ,x ,val)
|
2154
|
|
- #+lispworks `(setf (lispworks:environment-variable ,x) ,val)
|
2155
|
|
- #+mkcl `(mkcl:setenv ,x ,val)
|
2156
|
|
- #+sbcl `(progn (require :sb-posix) (symbol-call :sb-posix :setenv ,x ,val 1))
|
2157
|
|
- #-(or allegro clasp clisp clozure cmucl ecl lispworks mkcl sbcl)
|
2158
|
|
- '(not-implemented-error '(setf getenv)))
|
|
2147
|
+ (declare (ignorable x val)) ; for the not-implemented cases.
|
|
2148
|
+ (if (constantp val)
|
|
2149
|
+ (if val
|
|
2150
|
+ #+allegro `(setf (sys:getenv ,x) ,val)
|
|
2151
|
+ #+clasp `(ext:setenv ,x ,val)
|
|
2152
|
+ #+clisp `(system::setenv ,x ,val)
|
|
2153
|
+ #+clozure `(ccl:setenv ,x ,val)
|
|
2154
|
+ #+cmucl `(unix:unix-setenv ,x ,val 1)
|
|
2155
|
+ #+ecl `(ext:setenv ,x ,val)
|
|
2156
|
+ #+lispworks `(setf (lispworks:environment-variable ,x) ,val)
|
|
2157
|
+ #+mkcl `(mkcl:setenv ,x ,val)
|
|
2158
|
+ #+sbcl `(progn (require :sb-posix) (symbol-call :sb-posix :setenv ,x ,val 1))
|
|
2159
|
+ #-(or allegro clasp clisp clozure cmucl ecl lispworks mkcl sbcl)
|
|
2160
|
+ '(not-implemented-error '(setf getenv))
|
|
2161
|
+ ;; VAL is NIL, unset the variable
|
|
2162
|
+ #+allegro `(symbol-call :excl.osi :unsetenv ,x)
|
|
2163
|
+ ;; #+clasp `(ext:setenv ,x ,val) ; UNSETENV is not supported.
|
|
2164
|
+ #+clisp `(system::setenv ,x ,val) ; need fix -- no idea if this works.
|
|
2165
|
+ #+clozure `(ccl:unsetenv ,x)
|
|
2166
|
+ #+cmucl `(unix:unix-unsetenv ,x)
|
|
2167
|
+ #+ecl `(ext:setenv ,x ,val) ; Looked at source, don't see UNSETENV
|
|
2168
|
+ #+lispworks `(setf (lispworks:environment-variable ,x) ,val) ; according to their docs, this should unset the variable
|
|
2169
|
+ #+mkcl `(mkcl:setenv ,x ,val) ; like other ECL-family implementations, don't see UNSETENV
|
|
2170
|
+ #+sbcl `(progn (require :sb-posix) (symbol-call :sb-posix :unsetenv ,x))
|
|
2171
|
+ #-(or allegro clisp clozure cmucl ecl lispworks mkcl sbcl)
|
|
2172
|
+ '(not-implemented-error 'unsetenv))
|
|
2173
|
+ `(if ,val
|
|
2174
|
+ #+allegro (setf (sys:getenv ,x) ,val)
|
|
2175
|
+ #+clasp (ext:setenv ,x ,val)
|
|
2176
|
+ #+clisp (system::setenv ,x ,val)
|
|
2177
|
+ #+clozure (ccl:setenv ,x ,val)
|
|
2178
|
+ #+cmucl (unix:unix-setenv ,x ,val 1)
|
|
2179
|
+ #+ecl (ext:setenv ,x ,val)
|
|
2180
|
+ #+lispworks (setf (lispworks:environment-variable ,x) ,val)
|
|
2181
|
+ #+mkcl (mkcl:setenv ,x ,val)
|
|
2182
|
+ #+sbcl (progn (require :sb-posix) (symbol-call :sb-posix :setenv ,x ,val 1))
|
|
2183
|
+ #-(or allegro clasp clisp clozure cmucl ecl lispworks mkcl sbcl)
|
|
2184
|
+ '(not-implemented-error '(setf getenv))
|
|
2185
|
+ ;; VAL is NIL, unset the variable
|
|
2186
|
+ #+allegro (symbol-call :excl.osi :unsetenv ,x)
|
|
2187
|
+ ;; #+clasp (ext:setenv ,x ,val) ; UNSETENV not supported
|
|
2188
|
+ #+clisp (system::setenv ,x ,val) ; need fix -- no idea if this works.
|
|
2189
|
+ #+clozure (ccl:unsetenv ,x)
|
|
2190
|
+ #+cmucl (unix:unix-unsetenv ,x)
|
|
2191
|
+ #+ecl (ext:setenv ,x ,val) ; Looked at source, don't see UNSETENV
|
|
2192
|
+ #+lispworks (setf (lispworks:environment-variable ,x) ,val) ; according to their docs, this should unset the variable
|
|
2193
|
+ #+mkcl (mkcl:setenv ,x ,val) ; like other ECL-family implementations, don't see UNSETENV
|
|
2194
|
+ #+sbcl (progn (require :sb-posix) (symbol-call :sb-posix :unsetenv ,x))
|
|
2195
|
+ #-(or allegro clisp clozure cmucl ecl lispworks mkcl sbcl)
|
|
2196
|
+ '(not-implemented-error 'unsetenv))))
|
2159
|
2197
|
|
2160
|
2198
|
(defun getenvp (x)
|
2161
|
2199
|
"Predicate that is true if the named variable is present in the libc environment,
|
... |
... |
@@ -2240,7 +2278,7 @@ then returning the non-empty string value of the variable" |
2240
|
2278
|
;; Note if not using International ACL
|
2241
|
2279
|
;; see http://www.franz.com/support/documentation/8.1/doc/operators/excl/ics-target-case.htm
|
2242
|
2280
|
(excl:ics-target-case (:-ics "8"))
|
2243
|
|
- (and (member :smp *features*) "S"))
|
|
2281
|
+ (and (member :smp *features*) "SBT"))
|
2244
|
2282
|
#+armedbear (format nil "~a-fasl~a" s system::*fasl-version*)
|
2245
|
2283
|
#+clisp
|
2246
|
2284
|
(subseq s 0 (position #\space s)) ; strip build information (date, etc.)
|
... |
... |
@@ -2282,7 +2320,8 @@ suitable for use as a directory name to segregate Lisp FASLs, C dynamic librarie |
2282
|
2320
|
(or (implementation-type) (lisp-implementation-type))
|
2283
|
2321
|
(lisp-version-string)
|
2284
|
2322
|
(or (operating-system) (software-type))
|
2285
|
|
- (or (architecture) (machine-type))))))
|
|
2323
|
+ (or (architecture) (machine-type))
|
|
2324
|
+ #+sbcl (if (featurep :sb-thread) "S" "")))))
|
2286
|
2325
|
|
2287
|
2326
|
|
2288
|
2327
|
;;;; Other system information
|
... |
... |
@@ -2426,8 +2465,6 @@ the number having BYTES octets (defaulting to 4)." |
2426
|
2465
|
(end-of-file (c)
|
2427
|
2466
|
(declare (ignore c))
|
2428
|
2467
|
nil)))))
|
2429
|
|
-
|
2430
|
|
-
|
2431
|
2468
|
;;;; -------------------------------------------------------------------------
|
2432
|
2469
|
;;;; Portability layer around Common Lisp pathnames
|
2433
|
2470
|
;; This layer allows for portable manipulation of pathname objects themselves,
|
... |
... |
@@ -4554,7 +4591,7 @@ Upon success, the KEEP form is evaluated and the file is is deleted unless it ev |
4554
|
4591
|
,@before)))
|
4555
|
4592
|
,@(when after
|
4556
|
4593
|
(assert pathnamep)
|
4557
|
|
- `((,afterf (,pathname) ,@after))))
|
|
4594
|
+ `((,afterf (,pathname) (declare (ignorable ,pathname)) ,@after))))
|
4558
|
4595
|
#-gcl (declare (dynamic-extent ,@(when before `(#',beforef)) ,@(when after `(#',afterf))))
|
4559
|
4596
|
(call-with-temporary-file
|
4560
|
4597
|
,(when before `#',beforef)
|
... |
... |
@@ -4673,7 +4710,7 @@ when the image is restarted, but before the entry point is called.") |
4673
|
4710
|
before the image dump hooks are called and before the image is dumped.")
|
4674
|
4711
|
|
4675
|
4712
|
(defvar *image-dump-hook* nil
|
4676
|
|
- "Functions to call (in order) when before an image is dumped"))
|
|
4713
|
+ "Functions to call (in order) before an image is dumped"))
|
4677
|
4714
|
|
4678
|
4715
|
(eval-when (#-lispworks :compile-toplevel :load-toplevel :execute)
|
4679
|
4716
|
(deftype fatal-condition ()
|
... |
... |
@@ -4984,9 +5021,17 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows." |
4984
|
5021
|
#-(or clisp clozure (and cmucl executable) lispworks sbcl scl)
|
4985
|
5022
|
(when executable
|
4986
|
5023
|
(not-implemented-error 'dump-image "dumping an executable"))
|
4987
|
|
- #+allegro
|
|
5024
|
+ #+allegro ;; revised with help from Franz
|
4988
|
5025
|
(progn
|
4989
|
|
- (sys:resize-areas :global-gc t :pack-heap t :sift-old-areas t :tenure t) ; :new 5000000
|
|
5026
|
+ #+(and allegro-version>= (version>= 11))
|
|
5027
|
+ (sys:resize-areas
|
|
5028
|
+ :old :no-change :old-code :no-change
|
|
5029
|
+ :global-gc t
|
|
5030
|
+ :tenure t)
|
|
5031
|
+ #+(and allegro-version>= (version= 10 1))
|
|
5032
|
+ (sys:resize-areas :old 10000000 :global-gc t :pack-heap t :sift-old-areas t :tenure t)
|
|
5033
|
+ #+(and allegro-version>= (not (version>= 10 1)))
|
|
5034
|
+ (sys:resize-areas :global-gc t :pack-heap t :sift-old-areas t :tenure t)
|
4990
|
5035
|
(excl:dumplisp :name filename :suppress-allegro-cl-banner t))
|
4991
|
5036
|
#+clisp
|
4992
|
5037
|
(apply #'ext:saveinitmem filename
|
... |
... |
@@ -5122,7 +5167,8 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows." |
5122
|
5167
|
;; Variables
|
5123
|
5168
|
#:*compile-file-warnings-behaviour* #:*compile-file-failure-behaviour*
|
5124
|
5169
|
#:*output-translation-function*
|
5125
|
|
- #:*optimization-settings* #:*previous-optimization-settings*
|
|
5170
|
+ ;; the following dropped because unnecessary.
|
|
5171
|
+ ;; #:*optimization-settings* #:*previous-optimization-settings*
|
5126
|
5172
|
#:*base-build-directory*
|
5127
|
5173
|
#:compile-condition #:compile-file-error #:compile-warned-error #:compile-failed-error
|
5128
|
5174
|
#:compile-warned-warning #:compile-failed-warning
|
... |
... |
@@ -5132,7 +5178,10 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows." |
5132
|
5178
|
;; Types
|
5133
|
5179
|
#+sbcl #:sb-grovel-unknown-constant-condition
|
5134
|
5180
|
;; Functions & Macros
|
5135
|
|
- #:get-optimization-settings #:proclaim-optimization-settings #:with-optimization-settings
|
|
5181
|
+ ;; the following three removed from UIOP because they have bugs, it's
|
|
5182
|
+ ;; easier to remove tham than to fix them, and they could never have been
|
|
5183
|
+ ;; used successfully in the wild. [2023/12/11:rpg]
|
|
5184
|
+ ;; #:get-optimization-settings #:proclaim-optimization-settings #:with-optimization-settings
|
5136
|
5185
|
#:call-with-muffled-compiler-conditions #:with-muffled-compiler-conditions
|
5137
|
5186
|
#:call-with-muffled-loader-conditions #:with-muffled-loader-conditions
|
5138
|
5187
|
#:reify-simple-sexp #:unreify-simple-sexp
|
... |
... |
@@ -5167,6 +5216,7 @@ what more while the input-file is shortened if possible to ENOUGH-PATHNAME relat |
5167
|
5216
|
This can help you produce more deterministic output for FASLs."))
|
5168
|
5217
|
|
5169
|
5218
|
;;; Optimization settings
|
|
5219
|
+#+ignore
|
5170
|
5220
|
(with-upgradability ()
|
5171
|
5221
|
(defvar *optimization-settings* nil
|
5172
|
5222
|
"Optimization settings to be used by PROCLAIM-OPTIMIZATION-SETTINGS")
|
... |
... |
@@ -5224,7 +5274,7 @@ This can help you produce more deterministic output for FASLs.")) |
5224
|
5274
|
(proclaim `(optimize ,@,reset-settings)))))
|
5225
|
5275
|
#-(or allegro clasp clisp)
|
5226
|
5276
|
`(let ,(loop :for v :in +optimization-variables+ :collect `(,v ,v))
|
5227
|
|
- ,@(when settings `((proclaim `(optimize ,@,settings))))
|
|
5277
|
+ ,@(when settings `((proclaim '(optimize ,@settings))))
|
5228
|
5278
|
,@body)))
|
5229
|
5279
|
|
5230
|
5280
|
|
... |
... |
@@ -5495,7 +5545,16 @@ Simple means made of symbols, numbers, characters, simple-strings, pathnames, co |
5495
|
5545
|
using READ within a WITH-SAFE-IO-SYNTAX, that represents the warnings currently deferred by
|
5496
|
5546
|
WITH-COMPILATION-UNIT. One of three functions required for deferred-warnings support in ASDF."
|
5497
|
5547
|
#+allegro
|
5498
|
|
- (list :functions-defined excl::.functions-defined.
|
|
5548
|
+ (list :functions-defined
|
|
5549
|
+ #+(and allegro-version>= (version>= 11))
|
|
5550
|
+ (let (functions-defined)
|
|
5551
|
+ (maphash #'(lambda (k v)
|
|
5552
|
+ (declare (ignore v))
|
|
5553
|
+ (push k functions-defined))
|
|
5554
|
+ excl::.functions-defined.)
|
|
5555
|
+ functions-defined)
|
|
5556
|
+ #+(and allegro-version>= (not (version>= 11)))
|
|
5557
|
+ excl::.functions-defined.
|
5499
|
5558
|
:functions-called excl::.functions-called.)
|
5500
|
5559
|
#+clozure
|
5501
|
5560
|
(mapcar 'reify-deferred-warning
|
... |
... |
@@ -5539,10 +5598,18 @@ One of three functions required for deferred-warnings support in ASDF." |
5539
|
5598
|
#+allegro
|
5540
|
5599
|
(destructuring-bind (&key functions-defined functions-called)
|
5541
|
5600
|
reified-deferred-warnings
|
5542
|
|
- (setf excl::.functions-defined.
|
|
5601
|
+ (setf #+(and allegro-version>= (not (version>= 11)))
|
|
5602
|
+ excl::.functions-defined.
|
|
5603
|
+ #+(and allegro-version>= (not (version>= 11)))
|
5543
|
5604
|
(append functions-defined excl::.functions-defined.)
|
5544
|
5605
|
excl::.functions-called.
|
5545
|
|
- (append functions-called excl::.functions-called.)))
|
|
5606
|
+ (append functions-called excl::.functions-called.))
|
|
5607
|
+ #+(and allegro-version>= (version>= 11))
|
|
5608
|
+ ;; in ACL >= 11, instead of adding defined functions to a list,
|
|
5609
|
+ ;; we insert them into a no-values hash-table.
|
|
5610
|
+ (mapc #'(lambda (fn)
|
|
5611
|
+ (excl:puthash-key fn excl::.functions-defined.))
|
|
5612
|
+ functions-defined))
|
5546
|
5613
|
#+clozure
|
5547
|
5614
|
(let ((dw (or ccl::*outstanding-deferred-warnings*
|
5548
|
5615
|
(setf ccl::*outstanding-deferred-warnings* (ccl::%defer-warnings t)))))
|
... |
... |
@@ -5605,7 +5672,11 @@ One of three functions required for deferred-warnings support in ASDF." |
5605
|
5672
|
"Reset the set of deferred warnings to be handled at the end of the current WITH-COMPILATION-UNIT.
|
5606
|
5673
|
One of three functions required for deferred-warnings support in ASDF."
|
5607
|
5674
|
#+allegro
|
5608
|
|
- (setf excl::.functions-defined. nil
|
|
5675
|
+ (setf excl::.functions-defined.
|
|
5676
|
+ #+(and allegro-version>= (not (version>= 11)))
|
|
5677
|
+ nil
|
|
5678
|
+ #+(and allegro-version>= (version>= 11))
|
|
5679
|
+ (make-hash-table :test #'equal :values nil)
|
5609
|
5680
|
excl::.functions-called. nil)
|
5610
|
5681
|
#+clozure
|
5611
|
5682
|
(if-let (dw ccl::*outstanding-deferred-warnings*)
|
... |
... |
@@ -7809,7 +7880,8 @@ DEPRECATED." |
7809
|
7880
|
#:*post-upgrade-cleanup-hook* #:cleanup-upgraded-asdf
|
7810
|
7881
|
;; There will be no symbol left behind!
|
7811
|
7882
|
#:with-asdf-deprecation
|
7812
|
|
- #:intern*)
|
|
7883
|
+ #:intern*
|
|
7884
|
+ #:asdf-install-warning)
|
7813
|
7885
|
(:import-from :uiop/package #:intern* #:find-symbol*))
|
7814
|
7886
|
(in-package :asdf/upgrade)
|
7815
|
7887
|
|
... |
... |
@@ -7894,7 +7966,7 @@ previously-loaded version of ASDF." |
7894
|
7966
|
;; "3.4.5.67" would be a development version in the official branch, on top of 3.4.5.
|
7895
|
7967
|
;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
|
7896
|
7968
|
;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
|
7897
|
|
- (asdf-version "3.3.6")
|
|
7969
|
+ (asdf-version "3.3.7")
|
7898
|
7970
|
(existing-version (asdf-version)))
|
7899
|
7971
|
(setf *asdf-version* asdf-version)
|
7900
|
7972
|
(when (and existing-version (not (equal asdf-version existing-version)))
|
... |
... |
@@ -7970,6 +8042,19 @@ previously-loaded version of ASDF." |
7970
|
8042
|
(call-functions (reverse *post-upgrade-cleanup-hook*)))
|
7971
|
8043
|
t))))
|
7972
|
8044
|
|
|
8045
|
+ (define-condition asdf-install-warning (simple-condition warning)
|
|
8046
|
+ ((format-control
|
|
8047
|
+ :initarg :format-control)
|
|
8048
|
+ (format-arguments
|
|
8049
|
+ :initarg :format-arguments
|
|
8050
|
+ :initform nil))
|
|
8051
|
+ (:documentation "Warning class for issues related to upgrading or loading ASDF.")
|
|
8052
|
+ (:report (lambda (c s)
|
|
8053
|
+ (format s "WARNING: ~?"
|
|
8054
|
+ (slot-value c 'format-control)
|
|
8055
|
+ (slot-value c 'format-arguments)))))
|
|
8056
|
+
|
|
8057
|
+
|
7973
|
8058
|
(defun upgrade-asdf ()
|
7974
|
8059
|
"Try to upgrade of ASDF. If a different version was used, return T.
|
7975
|
8060
|
We need do that before we operate on anything that may possibly depend on ASDF."
|
... |
... |
@@ -12551,7 +12636,9 @@ into a single file")) |
12551
|
12636
|
#:package-inferred-system #:sysdef-package-inferred-system-search
|
12552
|
12637
|
#:package-system ;; backward compatibility only. To be removed.
|
12553
|
12638
|
#:register-system-packages
|
12554
|
|
- #:*defpackage-forms* #:*package-inferred-systems* #:package-inferred-system-missing-package-error))
|
|
12639
|
+ #:*defpackage-forms* #:*package-inferred-systems*
|
|
12640
|
+ #:package-inferred-system-missing-package-error
|
|
12641
|
+ #:package-inferred-system-unknown-defpackage-option-error))
|
12555
|
12642
|
(in-package :asdf/package-inferred-system)
|
12556
|
12643
|
|
12557
|
12644
|
(with-upgradability ()
|
... |
... |
@@ -12602,15 +12689,34 @@ every such file")) |
12602
|
12689
|
trying to define package-inferred-system ~A from file ~A~>")
|
12603
|
12690
|
(error-system c) (error-pathname c)))))
|
12604
|
12691
|
|
12605
|
|
- (defun package-dependencies (defpackage-form)
|
|
12692
|
+ (define-condition package-inferred-system-unknown-defpackage-option-error (system-definition-error)
|
|
12693
|
+ ((system :initarg :system :reader error-system)
|
|
12694
|
+ (pathname :initarg :pathname :reader error-pathname)
|
|
12695
|
+ (option :initarg :clause-head :reader error-option)
|
|
12696
|
+ (arguments :initarg :clause-rest :reader error-arguments))
|
|
12697
|
+ (:report (lambda (c s)
|
|
12698
|
+ (format s (compatfmt "~@<Don't know how to infer package dependencies ~
|
|
12699
|
+ for non-standard option ~S ~
|
|
12700
|
+ while trying to define package-inferred-system ~A ~
|
|
12701
|
+ from file ~A~>")
|
|
12702
|
+ (cons (error-option c)
|
|
12703
|
+ (error-arguments c))
|
|
12704
|
+ (error-system c)
|
|
12705
|
+ (error-pathname c)))))
|
|
12706
|
+
|
|
12707
|
+ (defun package-dependencies (defpackage-form &optional system pathname)
|
12606
|
12708
|
"Return a list of packages depended on by the package
|
12607
|
12709
|
defined in DEFPACKAGE-FORM. A package is depended upon if
|
12608
|
|
-the DEFPACKAGE-FORM uses it or imports a symbol from it."
|
|
12710
|
+the DEFPACKAGE-FORM uses it or imports a symbol from it.
|
|
12711
|
+
|
|
12712
|
+SYSTEM should be the name of the system being defined, and
|
|
12713
|
+PATHNAME should be the file which contains the DEFPACKAGE-FORM.
|
|
12714
|
+These will be used to report errors when encountering an unknown defpackage argument."
|
12609
|
12715
|
(assert (defpackage-form-p defpackage-form))
|
12610
|
12716
|
(remove-duplicates
|
12611
|
12717
|
(while-collecting (dep)
|
12612
|
12718
|
(loop :for (option . arguments) :in (cddr defpackage-form) :do
|
12613
|
|
- (ecase option
|
|
12719
|
+ (case option
|
12614
|
12720
|
((:use :mix :reexport :use-reexport :mix-reexport)
|
12615
|
12721
|
(dolist (p arguments) (dep (string p))))
|
12616
|
12722
|
((:import-from :shadowing-import-from)
|
... |
... |
@@ -12619,7 +12725,37 @@ the DEFPACKAGE-FORM uses it or imports a symbol from it." |
12619
|
12725
|
((:local-nicknames)
|
12620
|
12726
|
(loop :for (nil actual-package-name) :in arguments :do
|
12621
|
12727
|
(dep (string actual-package-name))))
|
12622
|
|
- ((:nicknames :documentation :shadow :export :intern :unintern :recycle)))))
|
|
12728
|
+ ((:nicknames :documentation :shadow :export :intern :unintern :recycle))
|
|
12729
|
+
|
|
12730
|
+ ;;; SBCL extensions to defpackage relating to package locks.
|
|
12731
|
+ ;; See https://www.sbcl.org/manual/#Implementation-Packages .
|
|
12732
|
+ #+(or sbcl ecl) ;; MKCL too?
|
|
12733
|
+ ((:lock)
|
|
12734
|
+ ;; A :LOCK clause introduces no dependencies.
|
|
12735
|
+ nil)
|
|
12736
|
+ #+sbcl
|
|
12737
|
+ ((:implement)
|
|
12738
|
+ ;; A :IMPLEMENT clause introduces dependencies on the listed packages,
|
|
12739
|
+ ;; as it's not meaningful to :IMPLEMENT a package which hasn't yet been defined.
|
|
12740
|
+ (dolist (p arguments) (dep (string p))))
|
|
12741
|
+
|
|
12742
|
+ #+lispworks
|
|
12743
|
+ ((:add-use-defaults) nil)
|
|
12744
|
+
|
|
12745
|
+ #+allegro
|
|
12746
|
+ ((:implementation-packages :alternate-name :flat) nil)
|
|
12747
|
+
|
|
12748
|
+ ;; When encountering an unknown OPTION, signal a continuable error.
|
|
12749
|
+ ;; We cannot in general know whether the unknown clause should introduce any dependencies,
|
|
12750
|
+ ;; so we cannot do anything other than signal an error here,
|
|
12751
|
+ ;; but users may know that certain extensions do not introduce dependencies,
|
|
12752
|
+ ;; and may wish to manually continue building.
|
|
12753
|
+ (otherwise (cerror "Treat the unknown option as introducing no package dependencies"
|
|
12754
|
+ 'package-inferred-system-unknown-defpackage-option-error
|
|
12755
|
+ :system system
|
|
12756
|
+ :pathname pathname
|
|
12757
|
+ :option option
|
|
12758
|
+ :arguments arguments)))))
|
12623
|
12759
|
:from-end t :test 'equal))
|
12624
|
12760
|
|
12625
|
12761
|
(defun package-designator-name (package)
|
... |
... |
@@ -13974,6 +14110,13 @@ system or its dependencies if it has already been loaded." |
13974
|
14110
|
(when (boundp 'excl:*warn-on-nested-reader-conditionals*)
|
13975
|
14111
|
(setf excl:*warn-on-nested-reader-conditionals* uiop/common-lisp::*acl-warn-save*))
|
13976
|
14112
|
|
|
14113
|
+ #+(and allegro allegro-v10.1) ;; check for patch needed for upgradeability
|
|
14114
|
+ (unless (assoc "ma040" (cdr (assoc :lisp sys:*patches*)) :test 'equal)
|
|
14115
|
+ (warn 'asdf-install-warning
|
|
14116
|
+ :format-control "On Allegro Common Lisp 10.1, patch pma040 is ~
|
|
14117
|
+needed for correct ASDF upgrading. Please update your Allegro image ~
|
|
14118
|
+using (SYS:UPDATE-ALLEGRO)."))
|
|
14119
|
+
|
13977
|
14120
|
;; Advertise the features we provide.
|
13978
|
14121
|
(dolist (f '(:asdf :asdf2 :asdf3 :asdf3.1 :asdf3.2 :asdf3.3)) (pushnew f *features*))
|
13979
|
14122
|
|