Skip to content
Snippets Groups Projects
Commit a973df4e authored by Robert Goldman's avatar Robert Goldman
Browse files

Merge branch 'master' of common-lisp.net:asdf/asdf

Catch up with Fare's doc and submodule modifications.
parents 90a2df2a d72afe08
No related branches found
No related tags found
No related merge requests found
...@@ -36,11 +36,11 @@ for Common Lisp programs and libraries. ...@@ -36,11 +36,11 @@ for Common Lisp programs and libraries.
You can find the latest version of this manual at You can find the latest version of this manual at
@url{https://common-lisp.net/project/asdf/asdf.html}. @url{https://common-lisp.net/project/asdf/asdf.html}.
ASDF Copyright @copyright{} 2001-2015 Daniel Barlow and contributors. ASDF Copyright @copyright{} 2001-2016 Daniel Barlow and contributors.
This manual Copyright @copyright{} 2001-2015 Daniel Barlow and contributors. This manual Copyright @copyright{} 2001-2016 Daniel Barlow and contributors.
This manual revised @copyright{} 2009-2015 Robert P. Goldman and Francois-Rene Rideau. This manual revised @copyright{} 2009-2016 Robert P. Goldman and Francois-Rene Rideau.
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the a copy of this software and associated documentation files (the
...@@ -678,6 +678,11 @@ may already have configured system-managed libraries for you. ...@@ -678,6 +678,11 @@ may already have configured system-managed libraries for you.
@c FIXME: this section should be moved elsewhere. The novice user @c FIXME: this section should be moved elsewhere. The novice user
@c should not be burdened with it. [2014/02/27:rpg] @c should not be burdened with it. [2014/02/27:rpg]
Novices may skip this section.
@c ``Experts may read it then proceed to ...''
@c some better section explaining
@c *central-registry* vs source-registry vs *system-definition-search-functions*,
@c and .../asdf/tools/cl-source-registry-cache.lisp
The old way to configure ASDF to find your systems is by The old way to configure ASDF to find your systems is by
@code{push}ing directory pathnames onto the variable @code{push}ing directory pathnames onto the variable
...@@ -702,7 +707,7 @@ search forward for ...@@ -702,7 +707,7 @@ search forward for
For example, let's say you want ASDF to find the @file{.asd} file For example, let's say you want ASDF to find the @file{.asd} file
@file{/home/me/src/foo/foo.asd}. @file{/home/me/src/foo/foo.asd}.
In your lisp initialization file, you could have the following: In your Lisp initialization file, you could have the following:
@lisp @lisp
(require "asdf") (require "asdf")
...@@ -726,7 +731,7 @@ The variable @code{asdf:*central-registry*} is thus a list of ...@@ -726,7 +731,7 @@ The variable @code{asdf:*central-registry*} is thus a list of
``system directory designators''. ``system directory designators''.
A @dfn{system directory designator} is a form A @dfn{system directory designator} is a form
which will be evaluated whenever a system is to be found, which will be evaluated whenever a system is to be found,
and must evaluate to a directory to look in (or @code{NIL}). and must evaluate to a directory to look in (or @code{nil}).
By ``directory'', we mean By ``directory'', we mean
``designator for a pathname with a non-empty DIRECTORY component''. ``designator for a pathname with a non-empty DIRECTORY component''.
} }
...@@ -1441,6 +1446,7 @@ other-component-type := symbol-by-name ...@@ -1441,6 +1446,7 @@ other-component-type := symbol-by-name
# which is used in :in-order-to # which is used in :in-order-to
dependency-def := simple-component-name dependency-def := simple-component-name
| ( :feature @var{feature-expression} dependency-def ) | ( :feature @var{feature-expression} dependency-def )
# (@pxref{The defsystem grammar,,Feature dependencies})
| ( :version simple-component-name version-specifier ) | ( :version simple-component-name version-specifier )
| ( :require module-name ) | ( :require module-name )
...@@ -1459,8 +1465,6 @@ pathname-specifier := pathname | string | symbol ...@@ -1459,8 +1465,6 @@ pathname-specifier := pathname | string | symbol
method-form := (operation-name qual lambda-list @Arest{} body) method-form := (operation-name qual lambda-list @Arest{} body)
qual := method qualifier? qual := method qualifier?
component-dep-fail-option := :fail | :try-next | :ignore
feature-expression := keyword feature-expression := keyword
| (:and @var{feature-expression}*) | (:and @var{feature-expression}*)
| (:or @var{feature-expression}*) | (:or @var{feature-expression}*)
...@@ -1684,6 +1688,25 @@ rather than @code{#+@emph{implementation-name}} ...@@ -1684,6 +1688,25 @@ rather than @code{#+@emph{implementation-name}}
to only depend on the specified module on the specific implementation that provides it. to only depend on the specified module on the specific implementation that provides it.
@xref{if-feature-option}. @xref{if-feature-option}.
@subsection Feature dependencies
@cindex :feature dependencies
A feature dependency is of the form
@code{(:feature @var{feature-expression} @var{dependency})}
If the @var{feature-expression} is satisfied by the running lisp at the
time the system definition is parsed, then the @var{dependency} will be
added to the system's dependencies. If the @var{feature-expression} is
@emph{not} satisfied, then the feature dependency form is ignored.
Note that this means that @code{:feature} @strong{cannot} be used to
enforce a feature dependency for the system in question. I.e., it
cannot be used to require that a feature hold in order for the system
definition to be loaded. E.g., one cannot use @code{(:feature :sbcl)}
to require that a system only be used on SBCL.
Feature dependencies are not to be confused with the obsolete
feature requirement (@pxref{The defsystem grammar,,feature requirement}), or
with @code{if-feature}.
@subsection Using logical pathnames @subsection Using logical pathnames
@cindex logical pathnames @cindex logical pathnames
...@@ -1843,13 +1866,6 @@ been performed. ...@@ -1843,13 +1866,6 @@ been performed.
This option was added in ASDF 3. For more information, This option was added in ASDF 3. For more information,
@xref{required-features, Required features}. @xref{required-features, Required features}.
@subsection if-component-dep-fails option
@cindex :if-component-dep-fails component option
This option was removed in ASDF 3.
Its semantics was limited in purpose and dubious to explain,
and its implementation was breaking a hole into the ASDF object model.
Please use the @code{if-feature} option instead.
@subsection feature requirement @subsection feature requirement
This requirement was removed in ASDF 3.1. Please do not use it. In This requirement was removed in ASDF 3.1. Please do not use it. In
most cases, @code{:if-feature} (@pxref{if-feature-option}) will provide most cases, @code{:if-feature} (@pxref{if-feature-option}) will provide
...@@ -2004,7 +2020,7 @@ where the @file{.asd} file resides. ...@@ -2004,7 +2020,7 @@ where the @file{.asd} file resides.
ASDF is designed in an object-oriented way from the ground up. ASDF is designed in an object-oriented way from the ground up.
Both a system's structure and the operations that can be performed on systems Both a system's structure and the operations that can be performed on systems
follow a extensible protocol, allowing programmers to add new behaviours to ASDF. follow an extensible protocol, allowing programmers to add new behaviours to ASDF.
For example, @code{cffi} adds support for special FFI description files For example, @code{cffi} adds support for special FFI description files
that interface with C libraries and for wrapper files that embed C code in Lisp. that interface with C libraries and for wrapper files that embed C code in Lisp.
@code{asdf-jar} supports creating Java JAR archives in ABCL. @code{asdf-jar} supports creating Java JAR archives in ABCL.
...@@ -2699,9 +2715,9 @@ but system @code{foo} was previously loaded from @file{/previous/path/to/foo.asd ...@@ -2699,9 +2715,9 @@ but system @code{foo} was previously loaded from @file{/previous/path/to/foo.asd
then @var{locate-system} will return the following values: then @var{locate-system} will return the following values:
@enumerate @enumerate
@item @item
@var{foundp} will be @code{T}, @var{foundp} will be @code{t},
@item @item
@var{found-system} will be @code{NIL}, @var{found-system} will be @code{nil},
@item @item
@var{pathname} will be @code{#p"/current/path/to/foo.asd"}, @var{pathname} will be @code{#p"/current/path/to/foo.asd"},
@item @item
...@@ -4753,14 +4769,14 @@ while others (like SBCL) will make an attempt at invoking a POSIX shell ...@@ -4753,14 +4769,14 @@ while others (like SBCL) will make an attempt at invoking a POSIX shell
@section Some Utility Functions @section Some Utility Functions
The below functions are not exported by ASDF itself, but by UIOP, available since ASDF 3. The below functions are not exported by ASDF itself, but by UIOP, available since ASDF 3.
Some of them have precursors in ASDF 2, but we recommend Some of them have precursors in ASDF 2, but we recommend that for active developments,
you rely on ASDF 3 for active developments. you should rely on the package UIOP as included in ASDF 3.
UIOP provides many, many more utility functions, and we recommend UIOP provides many, many more utility functions, and we recommend
you read its README and sources for more information. you read its @file{README.md} and sources for more information.
@defun parse-unix-namestring name @Akey{} type defaults dot-dot ensure-directory @AallowOtherKeys @defun parse-unix-namestring name @Akey{} type defaults dot-dot ensure-directory @AallowOtherKeys
Coerce NAME into a PATHNAME using standard Unix syntax. Coerce @var{name} into a @var{pathname} using standard Unix syntax.
Unix syntax is used whether or not the underlying system is Unix; Unix syntax is used whether or not the underlying system is Unix;
on non-Unix systems it is only usable for relative pathnames. on non-Unix systems it is only usable for relative pathnames.
...@@ -4949,7 +4965,7 @@ which defaults to @code{0}, extracting the first line. ...@@ -4949,7 +4965,7 @@ which defaults to @code{0}, extracting the first line.
A number will extract the corresponding line. A number will extract the corresponding line.
See the documentation for @code{uiop:access-at}. See the documentation for @code{uiop:access-at}.
@item If the object is @code{:forms}, the content is captured as a list of S-expressions, @item If the object is @code{:forms}, the content is captured as a list of s-expressions,
as read by the Lisp reader. as read by the Lisp reader.
If the @var{count} argument is provided, If the @var{count} argument is provided,
it is a maximum count of lines to be read. it is a maximum count of lines to be read.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment