Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
asdf
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Hugo Ishimaru
asdf
Commits
89487969
Commit
89487969
authored
9 years ago
by
Francois-Rene Rideau
Browse files
Options
Downloads
Plain Diff
Merge branch 'master' into minimakefile
parents
f83db9d9
a3ecae82
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
README.md
+25
-18
25 additions, 18 deletions
README.md
with
25 additions
and
18 deletions
README.md
+
25
−
18
View file @
89487969
...
@@ -12,10 +12,11 @@ If you come from the C/C++ world, ASDF covers a bit of what each of
...
@@ -12,10 +12,11 @@ If you come from the C/C++ world, ASDF covers a bit of what each of
make, autoconf, dlopen and libc do for C programs:
make, autoconf, dlopen and libc do for C programs:
it orchestrates the compilation and dependency management,
it orchestrates the compilation and dependency management,
handles some of the portability issues, dynamically finds and loads code,
handles some of the portability issues, dynamically finds and loads code,
and offers some portable system access.
and offers some portable system access
library
.
Except everything is different in Common Lisp, and ultimately much simpler,
Except everything is different in Common Lisp, and ultimately much simpler,
though it requires acquiring some basic concepts.
though it requires acquiring some basic concepts.
Importantly, ASDF builds all software in the current Lisp image.
Importantly, ASDF builds all software in the current Lisp image,
as opposed to building software into separate processes.
To use ASDF, read our manual:
To use ASDF, read our manual:
<http://common-lisp.net/project/asdf/asdf.html>
<http://common-lisp.net/project/asdf/asdf.html>
...
@@ -47,6 +48,8 @@ Just use `(require "asdf")` to load your implementation-provided ASDF.
...
@@ -47,6 +48,8 @@ Just use `(require "asdf")` to load your implementation-provided ASDF.
If it is recent enough (3.0 or later, check its
`(asdf:asdf-version)`
),
If it is recent enough (3.0 or later, check its
`(asdf:asdf-version)`
),
then it will automatically upgrade to the ASDF provided as source code,
then it will automatically upgrade to the ASDF provided as source code,
assuming the source code in under a path registered by the source-registry.
assuming the source code in under a path registered by the source-registry.
If it isn't present or isn't recent enough, we recommend you install a recent
ASDF release using
[
tools/install-asdf.lisp
](
tools/install-asdf.lisp
)
Building and testing it
Building and testing it
...
@@ -75,22 +78,24 @@ The above make target uses `git submodule update --init` to download
...
@@ -75,22 +78,24 @@ The above make target uses `git submodule update --init` to download
all these libraries using git. If you don't otherwise maintain your
all these libraries using git. If you don't otherwise maintain your
own set of carefully controlled CL libraries, that's what you want to use.
own set of carefully controlled CL libraries, that's what you want to use.
However, if you do maintain your own set of carefully controlled CL libraries
However, if you do maintain your own set of carefully controlled CL libraries
then you will want to use whichever tools you use (e.g. quicklisp, clbuild,
then you will want to use whichever tools you use (e.g.
`quicklisp`
,
`clbuild`
,
or your own scripts around git) to download these libraries:
or your own scripts around
`git`
) to download these libraries:
alexandria, closer-mop, cl-ppcre, fare-mop, fare-quasiquote, fare-utils,
`alexandria`
,
`closer-mop`
,
`cl-ppcre`
,
`cl-scripting`
,
`fare-mop`
,
inferior-shell, lisp-invocation, named-readtables, optima.
`fare-quasiquote`
,
`fare-utils`
,
`inferior-shell`
,
`lisp-invocation`
,
`named-readtables`
,
`optima`
.
If you are a CL developer, you may already have them, or may want
If you are a CL developer, you may already have them, or may want
to use your own tools to download a version of them you control.
to use your own tools to download a version of them you control.
If you use Quicklisp, you may let Quicklisp download those you don't have.
If you use
[
Quicklisp
](
https://www.quicklisp.org/
)
, you may let
In these cases, you do NOT want to use the git submodules from make ext.
Quicklisp download those you don't have.
In these cases, you do NOT want to use the git submodules from
`make ext`
.
Otherwise, if you want to let ASDF download known-working versions
Otherwise, if you want to let ASDF download known-working versions
of its dependencies, you can do it with:
of its dependencies, you can do it with:
make ext
make ext
To run all the tests on your favorite Lisp implementation $L,
To run all the tests on your favorite Lisp implementation
`
$L
`
,
choose your most elaborate installed system $S, and try:
choose your most elaborate installed system
`
$S
`
, and try:
make t u l=$L s=$S
make t u l=$L s=$S
...
@@ -98,16 +103,17 @@ choose your most elaborate installed system $S, and try:
...
@@ -98,16 +103,17 @@ choose your most elaborate installed system $S, and try:
Debugging tip
Debugging tip
-------------
-------------
To load ASDF in such a way that
`M-.`
will work, install the source code, and run:
To interactively debug ASDF, you may load it in such a way that
`M-.`
will work,
by installing the source code, and running:
(asdf:load-system :uiop) ;; loading uiop is simple
(asdf:load-system :uiop) ;; loading uiop is simple
(map () 'load ;; loading asdf/defsystem is tricky
(map () 'load ;; loading asdf/defsystem is tricky
(mapcar 'asdf:component-pathname
(mapcar 'asdf:component-pathname
(asdf::required-components :asdf/defsystem :keep-component 'asdf:cl-source-file)))
(asdf::required-components :asdf/defsystem :keep-component 'asdf:cl-source-file)))
Note that the above can be adapted in a general to get all the files in a system, in order.
Note that the above can be adapted in a general
recipe
to get all the files in a system, in order.
To also have the files in systems it depends on, add the
`:other-systems t`
keyword
argument
To also have the files in systems it
transitively
depends on, add the
`:other-systems t`
keyword
to the call to
`asdf::required-components`
.
argument
to the call to
`asdf::required-components`
.
What has changed?
What has changed?
...
@@ -118,8 +124,8 @@ significant changes in each release, and
...
@@ -118,8 +124,8 @@ significant changes in each release, and
the
`git log`
for a detailed description of each commit.
the
`git log`
for a detailed description of each commit.
How do I navigate this source
directory
?
How do I navigate this source
tree
?
-----------------------------------
-----
-----------------------------------
*
[
asdf.asd
](
asdf.asd
)
*
[
asdf.asd
](
asdf.asd
)
*
The system definition for building ASDF with ASDF.
*
The system definition for building ASDF with ASDF.
...
@@ -134,7 +140,7 @@ How do I navigate this source directory?
...
@@ -134,7 +140,7 @@ How do I navigate this source directory?
and functions all have docstrings.
and functions all have docstrings.
*
[
Makefile
](
Makefile
)
*
[
Makefile
](
Makefile
)
*
a minimal
`Makefile`
for bootstrap
ping
purposes.
*
a minimal
`Makefile`
for bootstrap
and development
purposes.
Most of the logic is in the
[
asdf-tools
](
tools/asdf-tools.asd
)
system below.
Most of the logic is in the
[
asdf-tools
](
tools/asdf-tools.asd
)
system below.
*
[
tools/
](
tools/
)
*
[
tools/
](
tools/
)
...
@@ -187,6 +193,7 @@ How do I navigate this source directory?
...
@@ -187,6 +193,7 @@ How do I navigate this source directory?
*
[
ext/
](
ext/
)
*
[
ext/
](
ext/
)
*
external dependencies, that can be populated with
`make ext`
*
external dependencies, that can be populated with
`make ext`
or equivalently with
`git submodule update --init`
.
or equivalently with
`git submodule update --init`
.
Depopulate it with
`make noext`
.
*
[
README.md
](
README.md
)
*
[
README.md
](
README.md
)
*
this file
*
this file
...
@@ -195,4 +202,4 @@ How do I navigate this source directory?
...
@@ -195,4 +202,4 @@ How do I navigate this source directory?
*
plenty of ideas for how to further improve ASDF.
*
plenty of ideas for how to further improve ASDF.
Last updated
Wedn
esday,
May 6
th, 2015.
Last updated
Tu
esday,
June 9
th, 2015.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment