If you are daring and willing to report bugs, you can get
the latest and greatest version of ASDF from its git repository.
@xref{Getting the latest version}.
@@ -816,8 +817,8 @@ $ ln -s ~/src/foo/foo.asd .
@end example
This old style for configuring ASDF is not recommended for new users,
but it is supported for old users, and for users who want to programmatically
control what directories are added to the ASDF search path.
but it is supported for old users, and for users who want a simple way to
programmatically control what directories are added to the ASDF search path.
@node Configuring where ASDF stores object files, Resetting the ASDF configuration, Configuring ASDF to find your systems --- old style, Configuring ASDF
@@ -2004,9 +2005,9 @@ are forced not to be recompiled even if modified since last compilation.
Both @var{force} and @var{force-not} apply to systems that are dependencies and were already compiled.
@var{force-not} takes precedences over @var{force},
as it should, really, but unhappily only since ASDF 3.1.2.
Moreover, systems the name of which is member of the set @var{*immutable-systems*}
(represented as an equal hash-table) are always considered @var{forced-not}, and
even their @file{.asd} is not refreshed from the filesystem.
Moreover, systems which have been registered as immutable by @code{register-immutable-system} (since ASDF 3.1.5)
are always considered @var{forced-not}, and even their @file{.asd} are not refreshed from the filesystem.
@xref{Miscellaneous Functions}.
To see what @code{operate} would do, you can use:
@example
@@ -2105,20 +2106,20 @@ People typically define a separate test @emph{system} to hold the tests.
Doing this avoids unnecessarily adding a test framework as a dependency
on a library. For example, one might have
@lisp
(defsystem foo
(defsystem "foo"
:in-order-to ((test-op (test-op "foo/test")))
...)
(defsystem foo/test
:depends-on (foofiveam) ; fiveam is a test framework library
(defsystem "foo/test"
:depends-on ("foo" "fiveam") ; fiveam is a test framework library
...)
@end lisp
Then one defines @code{perform} methods on
@code{test-op} such as the following:
@lisp
(defsystem foo/test
:depends-on (foofiveam) ; fiveam is a test framework library
(defsystem "foo/test"
:depends-on ("foo" "fiveam") ; fiveam is a test framework library
:perform (test-op (o s)
(uiop:symbol-call :fiveam '#:run!
(uiop:find-symbol* '#:foo-test-suite
@@ -3172,13 +3173,16 @@ Mentions of XDG variables refer to that document.
This specification allows the user to specify some environment variables
to customize how applications behave to his preferences.
On Windows platforms, when not using Cygwin,
instead of the XDG base directory specification,
we try to use folder configuration from the registry regarding
@code{Common AppData} and similar directories.
On Windows platforms, even when not using Cygwin, and starting with ASDF 3.1.5,
we still do a best effort at following the XDG base directory specification,
even though it doesn't exactly fit common practice for Windows applications.
However, we replace the fixed Unix paths @file{~/.local}, @file{/usr/local} and @file{/usr}
with their rough Windows equivalent @file{Local AppData}, @file{AppData}, @file{Common AppData}, etc.
Since support for querying the Windows registry
is not possible to do in reasonable amounts of portable Common Lisp code,
ASDF 3 relies on the environment variables that Windows usually exports.
ASDF 3 relies on the environment variables that Windows usually exports,
and are hopefully in synch with the Windows registry.
If you care about the details, see @file{uiop/configuration.lisp} and don't hesitate to suggest improvements.
@node Backward Compatibility, Configuration DSL, XDG base directory, Controlling where ASDF searches for systems
@section Backward Compatibility
@@ -4259,6 +4263,7 @@ useful for system definition and development.
@menu
* Controlling file compilation::
* Controlling source file character encoding::
* Miscellaneous Functions::
* Some Utility Functions::
@end menu
@@ -4340,7 +4345,7 @@ though it may at times require some creativity
(see e.g. the @code{package-renaming} system).
@node Controlling source file character encoding, Some Utility Functions, Controlling file compilation, Miscellaneous additional functionality