|
|
|
### How can I tell which version of ASDF I am running?
|
|
|
|
|
|
|
|
This is already a [FAQ item in the official manual](https://common-lisp.net/project/asdf/asdf/How-do-I-detect-the-ASDF-version_003f.html) but shall be repeated here:
|
|
|
|
|
|
|
|
On recent versions of ASDF, you can simply use
|
|
|
|
```common-lisp
|
|
|
|
(asdf:asdf-version)
|
|
|
|
```
|
|
|
|
The following piece of code will also work on much older versions, though.
|
|
|
|
```common-lisp
|
|
|
|
(when (find-package :asdf)
|
|
|
|
(let ((ver (symbol-value
|
|
|
|
(or (find-symbol (string :*asdf-version*) :asdf)
|
|
|
|
(find-symbol (string :*asdf-revision*) :asdf)))))
|
|
|
|
(etypecase ver
|
|
|
|
(string ver)
|
|
|
|
(cons (with-output-to-string (s)
|
|
|
|
(loop for (n . m) on ver
|
|
|
|
do (princ n s)
|
|
|
|
(when m (princ "." s)))))
|
|
|
|
(null "1.0"))))
|
|
|
|
```
|
|
|
|
|
|
|
|
### My favourite lisp implementation uses an old version of ASDF. How do I upgrade regardless?
|
|
|
|
|
|
|
|
If your current working directory is main directory of an ASDF git checkout, please first run
|
|
|
|
```shell
|
|
|
|
make ext
|
|
|
|
```
|
|
|
|
to fetch the necessary submodules. Depending on your lisp implementation, you can then run either
|
|
|
|
```shell
|
|
|
|
ccl --load ./tools/asdf-tools -- install-asdf ccl # note the double-dash
|
|
|
|
ecl --load ./tools/asdf-tools -- install-asdf ecl # note the double-dash
|
|
|
|
sbcl --load ./tools/asdf-tools install-asdf sbcl
|
|
|
|
```
|
|
|
|
You will typically want to use the release branch (or a tag like 3.2.1) rather than the master branch of ASDF.
|
|
|
|
|
|
|
|
Please note that you can e.g. use sbcl to upgrade cmucl's asdf via
|
|
|
|
```shell
|
|
|
|
sbcl --load ./tools/asdf-tools install-asdf cmucl
|
|
|
|
```
|
|
|
|
(which is good because building/running asdf-tools via cmucl itself is [currently broken](https://bugs.launchpad.net/asdf/+bug/1682625)).
|
|
|
|
|
|
|
|
### How do I build an executable with ASDF-3?
|
|
|
|
|
|
|
|
[cl-echo](https://github.com/epipping/cl-echo) is a sample project created to show-case basic ASDF-3 features like `asdf:program-op`. |