asdf issueshttps://gitlab.common-lisp.net/asdf/asdf/-/issues2024-02-29T18:24:25Zhttps://gitlab.common-lisp.net/asdf/asdf/-/issues/154Metainformation in asdf.asd out of date2024-02-29T18:24:25ZMarkus KlinkMetainformation in asdf.asd out of dateThe metainformation in `asdf.asd` is out of date:
```
(defsystem "asdf/defsystem"
:licence "MIT"
:description "The defsystem part of ASDF"
:long-name "Another System Definition Facility"
:description "The portable defsystem for ...The metainformation in `asdf.asd` is out of date:
```
(defsystem "asdf/defsystem"
:licence "MIT"
:description "The defsystem part of ASDF"
:long-name "Another System Definition Facility"
:description "The portable defsystem for Common Lisp"
:long-description "ASDF/DEFSYSTEM is the de facto 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 UIOP in a single file, asdf.lisp."
:homepage "http://common-lisp.net/projects/asdf/"
:bug-tracker "https://launchpad.net/asdf/"
:mailto "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
:around-compile call-without-redefinition-warnings ;; we need be the same as uiop
:depends-on ("asdf/prelude" "asdf/driver")
:encoding :utf-8
:components
...
```
At least the homepage (now https://asdf.common-lisp.dev/), the bug-tracker (now https://gitlab.common-lisp.net/asdf/asdf/-/issues), the source-control (now git@common-lisp.net:asdf/asdf.git) are not reflecting the status quo.https://gitlab.common-lisp.net/asdf/asdf/-/issues/153Confusing behavior when using an empty string as a system name2024-01-29T16:04:25ZAlexander FedorovConfusing behavior when using an empty string as a system nameWhen quicklisp is loaded or `*central-registry*` is not empty, asdf can locate the system named `""`:
```lisp
;; if quicklisp is loaded
* (asdf:locate-system "")
T
NIL
#P"/home/user/quicklisp/quicklisp/"
NIL
NIL
```
```lisp
;; if quickl...When quicklisp is loaded or `*central-registry*` is not empty, asdf can locate the system named `""`:
```lisp
;; if quicklisp is loaded
* (asdf:locate-system "")
T
NIL
#P"/home/user/quicklisp/quicklisp/"
NIL
NIL
```
```lisp
;; if quicklisp is not loaded
;; $ sbcl --no-userinit
* (require :asdf)
("ASDF" "asdf" "UIOP" "uiop")
* (push #P"~/common-lisp/" asdf:*central-registry*)
(#P"~/common-lisp/")
* (asdf:locate-system "")
T
NIL
#P"/home/user/common-lisp/"
NIL
NIL
```
This leads to a confusing error message when a trying to load a system named `""`:
```lisp
* (asdf:load-system "")
debugger invoked on a LOAD-SYSTEM-DEFINITION-ERROR in thread #<THREAD tid=1802466 "main thread" RUNNING {1001460003}>: Error while trying to load definition for system from pathname /home/user/common-lisp/: Can't LOAD a directory: #P"/home/user/common-lisp/".
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [RETRY ] Retry #<DEFINE-OP > on #<UNDEFINED-SYSTEM "">.
1: [ACCEPT ] Continue, treating #<DEFINE-OP > on #<UNDEFINED-SYSTEM ""> as having been successful.
2: Retry ASDF operation.
3: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.
4: Retry ASDF operation.
5: Retry ASDF operation after resetting the configuration.
6: [ABORT ] Exit debugger, returning to top level.
((LAMBDA (CONDITION) :IN PERFORM) #<SB-INT:SIMPLE-FILE-ERROR "Can't LOAD a directory: ~s." {1004508A43}>)
source: (ERROR (QUOTE LOAD-SYSTEM-DEFINITION-ERROR) :NAME (COERCE-NAME S) :PATHNAME PATHNAME :CONDITION CONDITION)
0]
```
This also manifests when loading a system that has `:depends-on ("")`
```lisp
;; test.asd
(defsystem "test"
:depends-on (""))
```
```lisp
;; $ sbcl --no-userinit
* (require :asdf)
("ASDF" "asdf" "UIOP" "uiop")
* (push "~/common-lisp/" asdf:*central-registry*)
("~/common-lisp/")
* (asdf:load-asd (merge-pathnames "test.asd"))
#<ASDF/FIND-SYSTEM:DEFINE-OP >
#<ASDF/PLAN:SEQUENTIAL-PLAN {10014C0BD3}>
* (asdf:load-system :test)
debugger invoked on a LOAD-SYSTEM-DEFINITION-ERROR in thread #<THREAD tid=1802775 "main thread" RUNNING {1004840093}>: Error while trying to load definition for system from pathname /home/user/common-lisp/: Can't LOAD a directory: #P"/home/user/common-lisp/".
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [RETRY ] Retry #<DEFINE-OP > on #<UNDEFINED-SYSTEM "">.
1: [ACCEPT ] Continue, treating #<DEFINE-OP > on #<UNDEFINED-SYSTEM ""> as having been successful.
2: Retry ASDF operation.
3: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.
4: Retry ASDF operation.
5: Retry ASDF operation after resetting the configuration.
6: [ABORT ] Exit debugger, returning to top level.
((LAMBDA (CONDITION) :IN PERFORM) #<SB-INT:SIMPLE-FILE-ERROR "Can't LOAD a directory: ~s." {100188BC23}>)
source: (ERROR (QUOTE LOAD-SYSTEM-DEFINITION-ERROR) :NAME (COERCE-NAME S) :PATHNAME PATHNAME :CONDITION CONDITION)
0]
```https://gitlab.common-lisp.net/asdf/asdf/-/issues/150On Allegro CL, UPGRADE-ASDF loads ASDF multiple times2024-01-04T23:00:44ZRobert GoldmanOn Allegro CL, UPGRADE-ASDF loads ASDF multiple times# Description
Initially loading ASDF with `(require :asdf)`, putting the ASDF source on `*central-registry*` and then invoking `(asdf:upgrade-asdf)` results in `asdf.fasl` being loaded multiple times, as shown here:
```
; Fast loading
...# Description
Initially loading ASDF with `(require :asdf)`, putting the ASDF source on `*central-registry*` and then invoking `(asdf:upgrade-asdf)` results in `asdf.fasl` being loaded multiple times, as shown here:
```
; Fast loading
; /Users/rpg/.cache/common-lisp/acl-11.0-macosx-64-bit_apple_silicon/Users/rpg/lisp/asdf/build/asdf.fasl
Warning: FIRST-FEATURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: IMPLEMENTATION-TYPE is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: *IMPLEMENTATION-TYPE* is defined more than once as `variable'
in file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: OPERATING-SYSTEM is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: ARCHITECTURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
; Upgrading ASDF from version 3.2.0 to version 3.3.6.2
; Loading /Users/rpg/lisp/asdf/asdf.asd
; Fast loading
; /Users/rpg/.cache/common-lisp/acl-11.0-macosx-64-bit_apple_silicon/Users/rpg/lisp/asdf/build/asdf.fasl
Warning: FIRST-FEATURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: IMPLEMENTATION-TYPE is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: *IMPLEMENTATION-TYPE* is defined more than once as `variable'
in file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: OPERATING-SYSTEM is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: ARCHITECTURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
; Loading /Users/rpg/lisp/asdf/asdf.asd
; Fast loading
; /Users/rpg/.cache/common-lisp/acl-11.0-macosx-64-bit_apple_silicon/Users/rpg/lisp/asdf/build/asdf.fasl
Warning: FIRST-FEATURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: IMPLEMENTATION-TYPE is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: *IMPLEMENTATION-TYPE* is defined more than once as `variable'
in file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: OPERATING-SYSTEM is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: ARCHITECTURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
; Loading /Users/rpg/lisp/asdf/asdf.asd
; Fast loading
; /Users/rpg/.cache/common-lisp/acl-11.0-macosx-64-bit_apple_silicon/Users/rpg/lisp/asdf/build/asdf.fasl
Warning: FIRST-FEATURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: IMPLEMENTATION-TYPE is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: *IMPLEMENTATION-TYPE* is defined more than once as `variable'
in file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: OPERATING-SYSTEM is defined more than once as `operator' in
file /Users/rpg/lisp/asdf/build/asdf.lisp.
Warning: ARCHITECTURE is defined more than once as `operator' in file
/Users/rpg/lisp/asdf/build/asdf.lisp.
; Loading /Users/rpg/lisp/asdf/asdf.asd
```
# Replication
I attach a shell script, [allegro-replication.sh](/uploads/a66c4ece77bf8193a6863f1a6698f216/allegro-replication.sh), that can be used to replicate the issue. To run it, assign the environment variables `ALISP` and `ASDF_DIR` appropriately, e.g.:
ALISP=/Applications/AllegroCL64.app/Contents/Resources/alisp ASDF_DIR=/Users/rpg/lisp/asdf/ source allegro-replication.sh
# Platforms
I have verified this on Allegro 10.1 and 11. I don't *believe* it's happening on other lisps. It seems to happen on the Express edition, as well, so is replicable by people who don't have a paid Allegro license.
/cc @frideauhttps://gitlab.common-lisp.net/asdf/asdf/-/issues/145Documented way of upgrading ASDF using (require "asdf") doesn't work2024-01-02T17:38:11ZHraban LuyatDocumented way of upgrading ASDF using (require "asdf") doesn't workHi all,
With latest master checked out to ~/code/common-lisp/asdf, when I do this:
```
$ CL_SOURCE_REGISTRY=$HOME/code/common-lisp/asdf sbcl
This is SBCL 2.3.9.nixos, an implementation of ANSI Common Lisp.
More information about SBCL i...Hi all,
With latest master checked out to ~/code/common-lisp/asdf, when I do this:
```
$ CL_SOURCE_REGISTRY=$HOME/code/common-lisp/asdf sbcl
This is SBCL 2.3.9.nixos, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
* (require "asdf")
NIL
* asdf::*asdf-version*
"3.3.1"
* (asdf:load-system "asdf")
; compiling file "/Users/user/code/common-lisp/asdf/build/asdf.lisp" (written 17 OCT 2023 03:06:55 PM):
; wrote /Users/user/.cache/common-lisp/sbcl-2.3.9.nixos-macosx-arm64/Users/user/code/common-lisp/asdf/build/asdf-tmpAAURSO1.fasl
; compilation finished in 0:00:01.994
T
* asdf::*asdf-version*
"3.3.6.1"
*
```
It's good that it loads the new ASDF explicitly at least on `(asdf:load-system "asdf")`, but shouldn't it just load it straight away on the first `(require "asdf")`?
The documentation states:
> 3.3 Upgrading ASDF
>
> If your implementation already provides ASDF 3 or later (and it should), but you want a more recent ASDF version than your implementation provides, then you just need to ensure the more recent ASDF is installed in a configured path, like any other system. We recommend you download an official tarball or checkout a release from git into ~/common-lisp/asdf/. (see Configuring ASDF to find your systems).
>
> Once the source code for ASDF is installed, you don’t need any extra step to load it beyond the usual (require "asdf"): ASDF 3 will automatically look whether an updated version of itself is available amongst the regularly configured systems, before it compiles anything else.
>
> If your implementation fails to provide ASDF 3 or later, see Replacing your implementation’s ASDF.
- https://asdf.common-lisp.dev/asdf.html#Upgrading-ASDF
Should that be changed to instructing `(require "asdf") (asdf:load-system "asdf")`?https://gitlab.common-lisp.net/asdf/asdf/-/issues/149Add repaired version of UIOP:WITH-OPTIMIZATION-SETTINGS2023-12-12T17:05:28ZRobert GoldmanAdd repaired version of UIOP:WITH-OPTIMIZATION-SETTINGSFaré writes:
> it was originally meant to ensure that the optimization settingsused by ASDF should not be affected by those used outside of it, nor
affect them, so as to avoid weird side-effects wherein the behavior of a system depends ...Faré writes:
> it was originally meant to ensure that the optimization settingsused by ASDF should not be affected by those used outside of it, nor
affect them, so as to avoid weird side-effects wherein the behavior of a system depends on which other systems you did or did not build
before it, which was causing "interesting" effects at times.
I didn't have the ability to repair it (see #148), so am removing it from UIOP. But rewriting it, and then using it ASDF `compile-op` would be a worthy thing to do to avoid the above issues.https://gitlab.common-lisp.net/asdf/asdf/-/issues/144Kill ABCL 1.7.1 test2023-08-28T16:06:09ZRobert GoldmanKill ABCL 1.7.1 testThis version is so old we shouldn't have to bother with it any more.This version is so old we shouldn't have to bother with it any more.Robert GoldmanRobert Goldmanhttps://gitlab.common-lisp.net/asdf/asdf/-/issues/140uiop:ensure-directory-pathname mangles pathname with wildcard2023-07-04T22:47:59ZSome Oneuiop:ensure-directory-pathname mangles pathname with wildcardHello, using UIOP 3.3.5 on SBCL 2.3.5, I'm getting the following results:
```
CL-USER> (uiop:ensure-pathname "*")
#P"\\*"
CL-USER> (uiop:ensure-directory-pathname *)
#P"\\\\\\*/"
```
which can't be used to address a directory named "*" a...Hello, using UIOP 3.3.5 on SBCL 2.3.5, I'm getting the following results:
```
CL-USER> (uiop:ensure-pathname "*")
#P"\\*"
CL-USER> (uiop:ensure-directory-pathname *)
#P"\\\\\\*/"
```
which can't be used to address a directory named "*" anymore. I suspect that replacing `file-namestring` with `pathname-name` at https://gitlab.common-lisp.net/asdf/asdf/-/blob/master/uiop/pathname.lisp#L333 would do the trick; at least for SBCL.Robert GoldmanRobert Goldmanhttps://gitlab.common-lisp.net/asdf/asdf/-/issues/139serial dependency spec and individual `:depends-on` can appear in the same sy...2023-06-02T01:55:06ZRobert Goldmanserial dependency spec and individual `:depends-on` can appear in the same system definitionI just found this in [cl-async.asd](https://github.com/orthecreedence/cl-async/blob/909c691ec7a3bfe98bbec536ab55d7eac8990a81/cl-async.asd#L29-L63).
It never occurred to me that this would be possible. I believe that this should be an er...I just found this in [cl-async.asd](https://github.com/orthecreedence/cl-async/blob/909c691ec7a3bfe98bbec536ab55d7eac8990a81/cl-async.asd#L29-L63).
It never occurred to me that this would be possible. I believe that this should be an error condition, since either the explicit `:depends-on` specs will be vacuous, or they will contradict the serial specification.
I haven't thoroughly checked, but I don't see that ASDF checks dependency graphs for consistency. If the dependencies don't make an _acyclic_ digraph, then ASDF should probably signal an error.https://gitlab.common-lisp.net/asdf/asdf/-/issues/138Feature enhancement: add OPERATION-FAILED-CONDITION2023-04-01T19:59:10ZRobert GoldmanFeature enhancement: add OPERATION-FAILED-CONDITIONParticularly for `test-op`, it would be helpful to have a special condition for operation failures.
Then in testing scripts we could add code that would watch for this handler, and exit with a non-zero exit status when it is observed. ...Particularly for `test-op`, it would be helpful to have a special condition for operation failures.
Then in testing scripts we could add code that would watch for this handler, and exit with a non-zero exit status when it is observed. Right now there's a lot of custom-scripting that must be done for this...https://gitlab.common-lisp.net/asdf/asdf/-/issues/137import-from behaves differently when imported symbol does not exist in the so...2023-03-03T16:58:55ZEmir Unerimport-from behaves differently when imported symbol does not exist in the source packageTried in SBCL:
```lisp
(uiop:define-package #:P0)
(uiop:define-package #:P1 (:import-from #:P0 #:sym0))
```
Executing above interns `SYM0` into `P0`.
```lisp
(defpackage #:P0)
(defpackage #:P1 (:import-from #:P0 #:sym0))
```
Executi...Tried in SBCL:
```lisp
(uiop:define-package #:P0)
(uiop:define-package #:P1 (:import-from #:P0 #:sym0))
```
Executing above interns `SYM0` into `P0`.
```lisp
(defpackage #:P0)
(defpackage #:P1 (:import-from #:P0 #:sym0))
```
Executing above raises an error with the option to intern. Shouldn't `uiop:define-package` behave same as `defpackage`?3.4.0https://gitlab.common-lisp.net/asdf/asdf/-/issues/102initialize-source-registry's :inherit-configuration has confusing semantics2023-01-20T19:41:25ZNathan Ringoinitialize-source-registry's :inherit-configuration has confusing semanticsIt seems like if the source registry has already been initialized, `:inherit-configuration` ought to inherit that configuration; or at least, there should be _some_ way to additively construct the source registry configuration other than...It seems like if the source registry has already been initialized, `:inherit-configuration` ought to inherit that configuration; or at least, there should be _some_ way to additively construct the source registry configuration other than
```lisp
(asdf:ensure-source-registry
'(:source-registry :inherit-configuration))
(asdf:initialize-source-registry
`(:source-registry
my-new-stuff
,@(cdr asdf:*source-registry-parameter*)))
```
To simply reproduce:
```console
$ mkdir /tmp/asdf102
$ cd /tmp/asdf102
$ echo '(defsystem "foo")' >foo.asd
$ cat >foo.lisp <<EOF
(require :asdf)
(asdf:initialize-source-registry
'(:source-registry
(:tree #p"/tmp/asdf102/")
:inherit-configuration))
#+nil
(asdf:initialize-source-registry
'(:source-registry
:inherit-configuration))
(format t "~s~%" (asdf:find-system "foo"))
EOF
$ sbcl --quit --load foo.lisp
...
#<ASDF/SYSTEM:SYSTEM "foo">
$ sed -i '/#+nil/d' foo.lisp
$ sbcl --quit --load foo.lisp
...
While evaluating the form starting at line 12, column 0
of #P"/tmp/asdf102/foo.lisp":
debugger invoked on a ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread
#<THREAD "main thread" RUNNING {100151C103}>:
Component "foo" not found
...
```
For debugging:
```
(require :asdf)
(asdf:load-system "alexandria")
(defmacro dbg (expr)
(alexandria:with-gensyms (vals)
`(let ((,vals (multiple-value-list ,expr)))
(format t "~s =~{ ~s~}~%" ',expr ,vals)
(values-list ,vals))))
(asdf:initialize-source-registry
'(:source-registry
(:tree #p"/tmp/asdf102/")
:inherit-configuration))
(dbg asdf:*source-registry-parameter*)
(dbg (alexandria:hash-table-alist asdf/source-registry::*source-registry*))
(dbg (trace asdf/source-registry::process-source-registry
asdf/source-registry::process-source-registry-directive
asdf/source-registry::inherit-source-registry
asdf/source-registry::initialize-source-registry))
(asdf:initialize-source-registry
'(:source-registry
:inherit-configuration))
(dbg asdf:*source-registry-parameter*)
(dbg (alexandria:hash-table-alist asdf/source-registry::*source-registry*))
(dbg (asdf:find-system "foo"))
```
prints:
<details><pre><code>ASDF/SOURCE-REGISTRY:*SOURCE-REGISTRY-PARAMETER* = (:SOURCE-REGISTRY
(:TREE #P"/tmp/asdf102/")
:INHERIT-CONFIGURATION)
(ALEXANDRIA:HASH-TABLE-ALIST ASDF/SOURCE-REGISTRY:*SOURCE-REGISTRY*) = (("asdf"
. #P"/nix/store/15hsmpcwsrwgighsxp28dx03yzzbr32g-cl-wrapper-script/lib/common-lisp/asdf/asdf.asd")
("foo"
. #P"/tmp/asdf102/foo.asd")
("sb-sprof"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-sprof.asd")
("sb-simple-streams"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-simple-streams.asd")
("sb-rt"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-rt.asd")
("sb-rotate-byte"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-rotate-byte.asd")
("sb-queue"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-queue.asd")
("sb-posix"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-posix.asd")
("sb-mpfr"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-mpfr.asd")
("sb-md5"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-md5.asd")
("sb-introspect"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-introspect.asd")
("sb-grovel"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-grovel.asd")
("sb-graph"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-graph.asd")
("sb-gmp"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-gmp.asd")
("sb-executable"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-executable.asd")
("sb-cover"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-cover.asd")
("sb-concurrency"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-concurrency.asd")
("sb-cltl2"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-cltl2.asd")
("sb-capstone"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-capstone.asd")
("sb-bsd-sockets"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-bsd-sockets.asd")
("sb-aclrepl"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-aclrepl.asd"))
(TRACE ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY
ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE
ASDF/SOURCE-REGISTRY:INHERIT-SOURCE-REGISTRY
ASDF/SOURCE-REGISTRY:INITIALIZE-SOURCE-REGISTRY) = (ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY
ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE
ASDF/SOURCE-REGISTRY:INHERIT-SOURCE-REGISTRY
ASDF/SOURCE-REGISTRY:INITIALIZE-SOURCE-REGISTRY)
0: (ASDF/SOURCE-REGISTRY:INITIALIZE-SOURCE-REGISTRY (:SOURCE-REGISTRY :INHERIT-CONFIGURATION))
1: (ASDF/SOURCE-REGISTRY:INHERIT-SOURCE-REGISTRY (ASDF/SOURCE-REGISTRY:WRAPPING-SOURCE-REGISTRY (:SOURCE-REGISTRY :INHERIT-CONFIGURATION) ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
2: (ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:WRAPPING-SOURCE-REGISTRY :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}> :INHERIT ((:SOURCE-REGISTRY :INHERIT-CONFIGURATION) ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY))
3: (ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY (:SOURCE-REGISTRY (:TREE #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/") :INHERIT-CONFIGURATION) :INHERIT ((:SOURCE-REGISTRY :INHERIT-CONFIGURATION) ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
4: (ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE (:TREE #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/") :INHERIT ((:SOURCE-REGISTRY :INHERIT-CONFIGURATION) ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
4: ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE returned
NIL
4: (ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE :INHERIT-CONFIGURATION :INHERIT ((:SOURCE-REGISTRY :INHERIT-CONFIGURATION) ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
5: (ASDF/SOURCE-REGISTRY:INHERIT-SOURCE-REGISTRY ((:SOURCE-REGISTRY :INHERIT-CONFIGURATION) ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
6: (ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY (:SOURCE-REGISTRY :INHERIT-CONFIGURATION) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}> :INHERIT (ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY))
7: (ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE :INHERIT-CONFIGURATION :INHERIT (ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
8: (ASDF/SOURCE-REGISTRY:INHERIT-SOURCE-REGISTRY (ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
9: (ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:ENVIRONMENT-SOURCE-REGISTRY :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}> :INHERIT (ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY))
10: (ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY "/nix/store/15hsmpcwsrwgighsxp28dx03yzzbr32g-cl-wrapper-script/lib/common-lisp/asdf/" :INHERIT (ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
11: (ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY (:SOURCE-REGISTRY (:DIRECTORY "/nix/store/15hsmpcwsrwgighsxp28dx03yzzbr32g-cl-wrapper-script/lib/common-lisp/asdf/") (:IGNORE-INHERITED-CONFIGURATION)) :INHERIT (ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
12: (ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE (:DIRECTORY "/nix/store/15hsmpcwsrwgighsxp28dx03yzzbr32g-cl-wrapper-script/lib/common-lisp/asdf/") :INHERIT (ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
12: ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE returned
NIL
12: (ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE (:IGNORE-INHERITED-CONFIGURATION) :INHERIT (ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:USER-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-USER-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY ASDF/SOURCE-REGISTRY:SYSTEM-SOURCE-REGISTRY-DIRECTORY ASDF/SOURCE-REGISTRY:DEFAULT-SYSTEM-SOURCE-REGISTRY) :REGISTER #<FUNCTION (LAMBDA (DIRECTORY &KEY :RECURSE :EXCLUDE) :IN ASDF/SOURCE-REGISTRY:FLATTEN-SOURCE-REGISTRY) {10047DE7EB}>)
12: ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE returned
NIL
11: ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY returned
NIL
10: ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY returned
NIL
9: ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY returned NIL
8: ASDF/SOURCE-REGISTRY:INHERIT-SOURCE-REGISTRY returned NIL
7: ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE returned
NIL
6: ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY returned NIL
5: ASDF/SOURCE-REGISTRY:INHERIT-SOURCE-REGISTRY returned NIL
4: ASDF/SOURCE-REGISTRY::PROCESS-SOURCE-REGISTRY-DIRECTIVE returned
NIL
3: ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY returned NIL
2: ASDF/SOURCE-REGISTRY:PROCESS-SOURCE-REGISTRY returned NIL
1: ASDF/SOURCE-REGISTRY:INHERIT-SOURCE-REGISTRY returned NIL
0: ASDF/SOURCE-REGISTRY:INITIALIZE-SOURCE-REGISTRY returned
ASDF/SOURCE-REGISTRY:*SOURCE-REGISTRY-PARAMETER* = (:SOURCE-REGISTRY
:INHERIT-CONFIGURATION)
(ALEXANDRIA:HASH-TABLE-ALIST ASDF/SOURCE-REGISTRY:*SOURCE-REGISTRY*) = (("asdf"
. #P"/nix/store/15hsmpcwsrwgighsxp28dx03yzzbr32g-cl-wrapper-script/lib/common-lisp/asdf/asdf.asd")
("sb-sprof"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-sprof.asd")
("sb-simple-streams"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-simple-streams.asd")
("sb-rt"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-rt.asd")
("sb-rotate-byte"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-rotate-byte.asd")
("sb-queue"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-queue.asd")
("sb-posix"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-posix.asd")
("sb-mpfr"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-mpfr.asd")
("sb-md5"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-md5.asd")
("sb-introspect"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-introspect.asd")
("sb-grovel"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-grovel.asd")
("sb-graph"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-graph.asd")
("sb-gmp"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-gmp.asd")
("sb-executable"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-executable.asd")
("sb-cover"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-cover.asd")
("sb-concurrency"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-concurrency.asd")
("sb-cltl2"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-cltl2.asd")
("sb-capstone"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-capstone.asd")
("sb-bsd-sockets"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-bsd-sockets.asd")
("sb-aclrepl"
. #P"/nix/store/wjaraq6qygaabavbzr71idlif4g5bxwv-sbcl-2.1.11/lib/sbcl/contrib/sb-aclrepl.asd"))
While evaluating the form starting at line 32, column 0
of #P"/tmp/asdf102/foo.lisp":
debugger invoked on a ASDF/FIND-COMPONENT:MISSING-COMPONENT in thread
#<THREAD "main thread" RUNNING {1004D80173}>:
Component "foo" not found
</code></pre></details>3.4.0https://gitlab.common-lisp.net/asdf/asdf/-/issues/117Do IF-FEATURE dependencies correctly get updated over feature changes?2023-01-20T19:37:44ZRobert GoldmanDo IF-FEATURE dependencies correctly get updated over feature changes?A discussion on ASDF-devel suggested this as something to worry about.
Here is the case:
1. We compile a system with a feature present, triggering compilation of a file with an `:if-feature` dependency. This file changes the state of t...A discussion on ASDF-devel suggested this as something to worry about.
Here is the case:
1. We compile a system with a feature present, triggering compilation of a file with an `:if-feature` dependency. This file changes the state of the packages, a change that will affect the code in downstream files.
2. We recompile with the feature present in a way that does not change the filesystem. ASDF has no way of knowing that the relevant feature has been removed after the compilation of the dependent file, and this causes FASL loading of the dependent file to fail. This happens because the fasl of the dependent file has captured a state dependency, and ASDF does not know that it needs recompilation.
I have attempted to create a test for this issue: !209
This test appears to confirm the above conjecture, but what I had to do in the test code was so sketchy that I am not confident.https://gitlab.common-lisp.net/asdf/asdf/-/issues/136Sign ASDF releases and tags2022-11-18T23:36:21ZNikolaos ChatzikonstantinouSign ASDF releases and tagsASDF releases could be signed with gpg. I also recommend that annotated tags are used instead of lightweight git tags; the tags themselves can also be signed.
e.g. with contents in `.gitconfig` such as
```
[user]
name = <name>
email ...ASDF releases could be signed with gpg. I also recommend that annotated tags are used instead of lightweight git tags; the tags themselves can also be signed.
e.g. with contents in `.gitconfig` such as
```
[user]
name = <name>
email = <email>
signingKey = <fingerprint>
[commit]
gpgSign = true
[tag]
gpgSign = true
[push]
gpgSign = if-asked
```
The key could be listed in the common-lisp.net web page but also on the key servers such as https://keyserver.ubuntu.com/ and https://keys.openpgp.org/ and so on. I believe they propagate automatically so listing on one of them is enough, e.g. I find my key on https://pgp.mit.edu/ even though I never uploaded it.https://gitlab.common-lisp.net/asdf/asdf/-/issues/134Trouble specializing generic functions to act on child systems of an instance...2022-11-15T05:00:39ZAdrian FullmerTrouble specializing generic functions to act on child systems of an instance of package-inferred-systemSince the default system definition search function which concerns package inferred systems defines child systems exclusively with `package-inferred-system` as their class, it is not clear how to specialize generic functions such as `aro...Since the default system definition search function which concerns package inferred systems defines child systems exclusively with `package-inferred-system` as their class, it is not clear how to specialize generic functions such as `around-compile-hook` for those systems without touching asdf internals or defining a method on a built-in asdf class.
The search function already allows subclasses of package-inferred-system to be the primary system, so one solution would be to replace `:class package-inferred-system` with `:class ,(class-of top)` in `sysdef-package-inferred-system-search` (top is the instantiated primary system)https://gitlab.common-lisp.net/asdf/asdf/-/issues/135Add WHEN-LET to UIOP2022-11-14T15:52:32ZRobert GoldmanAdd WHEN-LET to UIOPUIOP has the `if-let` macro, lifted from Alexandria, which is generally helpful. But it makes code hard to read when there is only an if-then and not an if-then-else. For the former case, I would like to add `when-let` and replace sing...UIOP has the `if-let` macro, lifted from Alexandria, which is generally helpful. But it makes code hard to read when there is only an if-then and not an if-then-else. For the former case, I would like to add `when-let` and replace single-sided uses of `if-let` with `when-let`.Robert GoldmanRobert Goldmanhttps://gitlab.common-lisp.net/asdf/asdf/-/issues/133DEFINE-PACKAGE does not accept strings2022-11-13T01:10:46ZMichał Herdaphoe@disroot.orgDEFINE-PACKAGE does not accept stringsASDF 3.3.6.
```lisp
(uiop:define-package #:foo
(:use #:cl)
(:import-from #:alexandria "DEFINE-CONSTANT"))
The value
"DEFINE-CONSTANT"
is not of type
SYMBOL
[Condition of type TYPE-ERROR]
```
I guess that strings not being a...ASDF 3.3.6.
```lisp
(uiop:define-package #:foo
(:use #:cl)
(:import-from #:alexandria "DEFINE-CONSTANT"))
The value
"DEFINE-CONSTANT"
is not of type
SYMBOL
[Condition of type TYPE-ERROR]
```
I guess that strings not being accepted in `DEFINE-PACKAGE` is a bug since `DEFINE-PACKAGE` is meant to be a drop-in replacement for `DEFPACKAGE`; it's just possible that no one reported that bug because using strings in package designators is kind of a thing of the past whereas `DEFINE-PACKAGE` is a thing of the future.
Did I get it right, or did strings get explicitly dropped from `DEFINE-PACKAGE`, at which point it should be documented somewhere?https://gitlab.common-lisp.net/asdf/asdf/-/issues/132"Computing just-done stamp" warning for system which has package-inferred dep...2022-11-07T13:29:31ZAlexander Artemenko"Computing just-done stamp" warning for system which has package-inferred dependency in the defsystem-depends-on listThis behavior was experienced on ASDF version 3.3.5.3.
Here is the full code for reproducing the problem:
https://github.com/svetlyak40wt/asdf-just-done-bug
This is the smallest possible example how to reproduce this problem:
* `bar` ...This behavior was experienced on ASDF version 3.3.5.3.
Here is the full code for reproducing the problem:
https://github.com/svetlyak40wt/asdf-just-done-bug
This is the smallest possible example how to reproduce this problem:
* `bar` defsystem-depends-on `foo` and `foo` is a package-inferred system.
* `minor` defsystem-depends-on `blah` and `blah` is not package-inferred.
When you'll call `(asdf:load-system "bar")` in the REPL a few times, you'll see these two warnings:
```
WARNING:
Computing just-done stamp for action (ASDF/LISP-ACTION:LOAD-OP "foo/foo"
"file-type"), but dependency (ASDF/LISP-ACTION:COMPILE-OP
"foo/foo"
"file-type") wasn't done yet!
WARNING:
Computing just-done stamp for action (ASDF/LISP-ACTION:COMPILE-OP
"foo/foo"), but dependency (ASDF/LISP-ACTION:COMPILE-OP
"foo/foo"
"file-type") wasn't done yet!
```
but nothing like that happens when you are doing `(asdf:load-system "minor")`.
The similar warnings happen when you have:
`bar` defsystem-depends-on `foo` and `foo` is usual system but depends on some other package-inferred system.https://gitlab.common-lisp.net/asdf/asdf/-/issues/131Add :asdf3.4 to features2022-10-21T21:06:27ZRobert GoldmanAdd :asdf3.4 to featuresSince we assume that ASDF 3.4 may have features that will not be backwards compatible, we should add a new feature. Put this here so as not to forget.Since we assume that ASDF 3.4 may have features that will not be backwards compatible, we should add a new feature. Put this here so as not to forget.3.4.0https://gitlab.common-lisp.net/asdf/asdf/-/issues/130Add UIOP/CONFIGURE:XDG-STATE-HOME2022-10-14T15:13:01ZSamuel HunterAdd UIOP/CONFIGURE:XDG-STATE-HOMEAccording to the [XDG basedir-spec v0.8](https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.8.html):
> There is a single base directory relative to which user-specific state data should be written. This directory is defi...According to the [XDG basedir-spec v0.8](https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.8.html):
> There is a single base directory relative to which user-specific state data should be written. This directory is defined by the environment variable $XDG_STATE_HOME.
>
> $XDG_STATE_HOME defines the base directory relative to which user-specific state files should be stored. If $XDG_STATE_HOME is either not set or empty, a default equal to $HOME/.local/state should be used.
>
> The $XDG_STATE_HOME contains state data that should persist between (application) restarts, but that is not important or portable enough to the user that it should be stored in $XDG_DATA_HOME. It may contain:
>
> - actions history (logs, history, recently used files, …)
>
> - current state of the application that can be reused on a restart (view, layout, open files, undo history, …)
`XDG_STATE_HOME` is the only base directory that ASDF/CONFIGURE does not implement. I think it ought to be straightforward:
```lisp
(defun xdg-state-home (&rest more)
"The base directory relative to which user specific state files should be saved.
Returns an absolute directory pathname.
MORE may contain specifications for a subpath relative to this directory: a
subpathname specification and keyword arguments as per RESOLVE-LOCATION \(see
also \"Configuration DSL\"\) in the ASDF manual."
(resolve-absolute-location
`(,(or (getenv-absolute-directory "XDG_STATE_HOME")
(os-cond
((os-windows-p) (xdg-data-home "state/"))
(t (subpathname* (user-homedir-pathname) ".local/state/"))))
,more)))
```
I'm open to feedback on this. The only problem running through my head is that introducing a new symbol to UIOP/CONFIGURE has the potential to break systems `:use`ing this package, though I don't know ASDF's policy on this.https://gitlab.common-lisp.net/asdf/asdf/-/issues/128print-backtrace standard-io-syntax2022-09-28T13:20:35ZPascal J. Bourguignonprint-backtrace standard-io-syntaxThe use by `print-backtrace` of `with-standard-io-syntax` clobbers settings such as `*print-right-margin*` which lead to formatting and readability problems of the output.
https://gitlab.common-lisp.net/asdf/asdf/-/blob/master/uiop/imag...The use by `print-backtrace` of `with-standard-io-syntax` clobbers settings such as `*print-right-margin*` which lead to formatting and readability problems of the output.
https://gitlab.common-lisp.net/asdf/asdf/-/blob/master/uiop/image.lisp#L157
https://gitlab.common-lisp.net/asdf/asdf/-/blob/master/uiop/stream.lisp#L153
Some variables, such as `*print-right-margin*` (but probably others such as `*print-miser-length*` and why not, `*print-base*`, etc), should be left for the user to configure, and used as-is.