Next: Introduction, Previous: (dir), Up: (dir) [Contents][Index]
This is the asdf Reference Manual, version 3.3.4, generated automatically by Declt version 3.0 "Montgomery Scott" on Tue Dec 22 11:33:14 2020 GMT+0.
• Introduction | What asdf is all about | |
• Systems | The systems documentation | |
• Files | The files documentation | |
• Packages | The packages documentation | |
• Definitions | The symbols documentation | |
• Indexes | Concepts, functions, variables and data types |
For general information about ASDF, consult the web page: https://common-lisp.net/project/asdf/
For some reference documentation, read the manual: https://common-lisp.net/project/asdf/asdf.html
For a guide on how to use it, read our "best practices" document: https://github.com/fare/asdf/blob/master/doc/best_practices.md
Below is a guide for ASDF developers. It is not meant for ASDF users.
[TOC]
First, make sure ASDF is checked out under a path registered to the source-registry, if that isn't the case yet (see the manual). One place would be:
~/.local/share/common-lisp/source/asdf/
or, assuming your implementation provides ASDF 3.1 or later:
~/common-lisp/asdf/
If you cloned our git repository rather than extracted a tarball,
bootstrap a copy of build/asdf.lisp
with:
make
The manual is also in the doc/ subdirectory, and can be prepared with:
make -C doc
Before you may run tests, you need a few CL libraries. The simplest way to get them is as follows, but read below:
make ext
NOTA BENE: You may also need to run make ext
again
after you git pull
or switch branch, to update the ext/
directory.
This unhappily is not automatic.
If for some reason tests fail, particularly due to an error
compiling, loading or running a library, then run make ext
and try again.
The above make
target uses git submodule update --init
to download
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.
However, it is only available if you have a git checkout of ASDF;
not if you used a tarball.
If you use a tarball or otherwise do maintain your own set
of carefully controlled CL libraries then you will want to use whichever tools
you use (e.g. quicklisp
, clbuild
, or your own scripts around git
)
to download these libraries:
alexandria
, asdf-encodings
, cl-launch
, closer-mop
, cl-ppcre
,
cl-scripting
, fare-mop
, 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
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.
In these cases, you may NOT want to use the git submodules from make ext
;
you may undo a make ext
with make noext
.
Otherwise, if you want to let ASDF download known-working versions
of its dependencies, you can do it with make ext
.
Once you have all the required libraries and the asdf-tools script can find
a suitable Common Lisp implementation, you may run all the tests
on a given Common Lisp implementation $L
, with your favorite installed system $S
, using:
make t u l=$L s=$S
To run only the regression test scripts, try simply:
make l=$L test-scripts
ASDF by default uses a shell script in ./test/run-tests.sh
to run the scripts
that orchestrate its tests.
An alternate build and test system is available that uses Common Lisp as a scripting language. It is disabled by default because the new maintainer is having trouble with it in some of his environments. It worked fine for the previous maintainer in his environments, and may be particularly useful on Windows if and when the shell-based test system fails or is not available. Its source code is in tools/ and you can invoke it without going through GNU make, using the script make-asdf.sh, or, on Windows, make-asdf.bat.
To use this alternate test system, pass to make
the extra arguments -f Makefile-lisp-scripting
as in for instance:
make -f Makefile-lisp-scripting t l=sbcl
Or you can make that your local default (assuming GNU make) using:
echo "include Makefile-lisp-scripting" > GNUmakefile
These Lisp tools by default use Clozure Common Lisp (CCL) to build and run a binary
build/asdf-tools
that will orchestrate the tests.
By defining and exporting the variable LISP
to be one of ccl
, sbcl
or allegro
, you
can have it use an alternate Common Lisp implementation instead.
Install CCL (respectively SBCL or Allegro) and make sure an executable called
ccl
(respectively sbcl
or alisp
) is in your PATH
,
or that you export a variable CCL
(respectively SBCL
or ALLEGRO
)
that points to the executable.
To use a further Common Lisp implementation, suitably edit the script
tools/asdf-tools
,
or, on Windows, the batch file tools/asdf-tools.bat
.
(Note that we recommend SBCL 1.3.13 or later when on Windows.)
Note that the executable build/asdf-tools
is built
the first time you test ASDF.
When you update ASDF, via e.g. git pull
or a branch switch,
you may have to update it, with:
make -f Makefile-lisp-scripting build-asdf-tools
The reason this is not done automatically every time is because building it depends on a working ASDF; but when you're modifying ASDF and testing it, you cannot rely on a working ASDF: indeed, a developer may not only make mistakes, but may deliberately introduce or re-introduce bugs at some place to test code in another place.
To interactively debug ASDF, you may load it in such a way that M-.
will work,
by installing the source code, and running:
(map () 'load (asdf:input-files :monolithic-concatenate-source-op "asdf/defsystem"))
To interactively use the asdf-tools
, you need to either have
all its dependencies installed and configured.
If you're using them through the ext/
directory and make ext
,
then you may need to emulate
what the script in tools/asdf-tools does
with respect to initializing the source-registry.
Note that it also declares a system for cl-launch/dispatch
;
you can either do something similar, or expand the source for cl-launch
with
make -C ext/cl-launch source
so cl-launch.asd
will be created.
If you have to use or extend internal functionality not currently exported by
ASDF, please contact us and have us negotiate a proper, stable, tested interface
that you can actually rely on. Also, please DO NOT refer to specific
subpackages such as asdf/find-system
from the outside of ASDF, because
functions may occasionally be moved from one internal package to the other,
without notification. They have in the past and will in the future.
Instead, when refering to symbols in ASDF, we recommend you either have
your package :use
the package :asdf
or :import-from
it, or that
you shall use asdf:
or asdf::
as a prefix to the symbols.
And once again, please contact us if you have to use non-exported symbols.
Also, the normal way of extending ASDF is to use our class hierarchies for
component
and operation
and to define methods on component-depends-on
,
perform
, input-files
, output-files
.
A common mistake seems to be that some people define methods on operate
,
which usually is not at all what they think it is.
*.lisp
asdf/defsystem
.
See asdf.asd for the order in which they are loaded.
All exported functions should have docstrings,
and all internal functions should have comments.
If any definition is insufficiently documented,
please tell us: that's a bug.Makefile
used for development purposes.
Regular users only need to call make
with the default target.
Developers will typically use the like of
make t l=sbcl
or make u l=ccl
.Makefile
.
Use it with e.g. ./bin/bump-version 3.4.5
to test with the next version number before you release.
NB: ASDF's version number notably affects the behavior of ASDF
with respect to deprecated functions.asdf-tools
, a system to build, test and release ASDF. It includes:
*.lisp
-- the source code for the asdf-tools
system,
except for the few files below.
Check the .asd
file for the order in which to read them.Makefile-lisp-scripting, make-asdf.sh and make-asdf.bat
The current version. Bumped up every time the code changes, using:
make bump
Makefile
to run tests.
It is not used by the Lisp scripting variant of the Makefile
.Makefile
and asdf-tools
store their output files,
including:
asdf.lisp
-- the current one-file deliverable of ASDFasdf-*.lisp
-- for upgrade test purposes, old versionsasdf-tools
-- the executable for asdf-tools (.exe on Windows)results/
-- logs of tests that have been runfasls/
-- output files while running testsmake ext
or equivalently with git submodule update --init
.
Depopulate it with make noext
or equivalently with: submodule deinit .
Next: Files, Previous: Introduction, Up: Top [Contents][Index]
The main system appears first, followed by any subsystem dependency.
• The asdf/defsystem system | ||
• The asdf/prelude system | ||
• The asdf/driver system |
Next: The asdf/prelude system, Previous: Systems, Up: Systems [Contents][Index]
Another System Definition Facility
Robert Goldman
Daniel Barlow
(:git "git://common-lisp.net/projects/asdf/asdf.git")
MIT
The defsystem part of ASDF
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.
3.3.4
asdf.asd (file)
Next: The asdf/driver system, Previous: The asdf/defsystem system, Up: Systems [Contents][Index]
Robert Goldman
Daniel Barlow
MIT
3.3.4
asdf.asd (file)
header.lisp (file)
Previous: The asdf/prelude system, Up: Systems [Contents][Index]
Robert Goldman
Daniel Barlow
MIT
asdf.asd (file)
Files are sorted by type and then listed depth-first from the systems components trees.
• Lisp files | ||
• Static files |
Next: Static files, Previous: Files, Up: Files [Contents][Index]
Next: The asdf/defsystem/upgrade․lisp file, Previous: Lisp files, Up: Lisp files [Contents][Index]
asdf.asd
call-without-redefinition-warnings (function)
Next: The asdf/defsystem/session․lisp file, Previous: The asdf․asd file, Up: Lisp files [Contents][Index]
asdf/defsystem (system)
upgrade.lisp
*oldest-forward-compatible-asdf-version* (special variable)
Next: The asdf/defsystem/component․lisp file, Previous: The asdf/defsystem/upgrade․lisp file, Up: Lisp files [Contents][Index]
upgrade.lisp (file)
asdf/defsystem (system)
session.lisp
Next: The asdf/defsystem/operation․lisp file, Previous: The asdf/defsystem/session․lisp file, Up: Lisp files [Contents][Index]
session.lisp (file)
asdf/defsystem (system)
component.lisp
Next: The asdf/defsystem/system․lisp file, Previous: The asdf/defsystem/component․lisp file, Up: Lisp files [Contents][Index]
session.lisp (file)
asdf/defsystem (system)
operation.lisp
Next: The asdf/defsystem/system-registry․lisp file, Previous: The asdf/defsystem/operation․lisp file, Up: Lisp files [Contents][Index]
component.lisp (file)
asdf/defsystem (system)
system.lisp
Next: The asdf/defsystem/action․lisp file, Previous: The asdf/defsystem/system․lisp file, Up: Lisp files [Contents][Index]
system.lisp (file)
asdf/defsystem (system)
system-registry.lisp
Next: The asdf/defsystem/lisp-action․lisp file, Previous: The asdf/defsystem/system-registry․lisp file, Up: Lisp files [Contents][Index]
asdf/defsystem (system)
action.lisp
Next: The asdf/defsystem/find-component․lisp file, Previous: The asdf/defsystem/action․lisp file, Up: Lisp files [Contents][Index]
action.lisp (file)
asdf/defsystem (system)
lisp-action.lisp
Next: The asdf/defsystem/forcing․lisp file, Previous: The asdf/defsystem/lisp-action․lisp file, Up: Lisp files [Contents][Index]
component.lisp (file)
asdf/defsystem (system)
find-component.lisp
Next: The asdf/defsystem/plan․lisp file, Previous: The asdf/defsystem/find-component․lisp file, Up: Lisp files [Contents][Index]
asdf/defsystem (system)
forcing.lisp
Next: The asdf/defsystem/operate․lisp file, Previous: The asdf/defsystem/forcing․lisp file, Up: Lisp files [Contents][Index]
asdf/defsystem (system)
plan.lisp
Next: The asdf/defsystem/find-system․lisp file, Previous: The asdf/defsystem/plan․lisp file, Up: Lisp files [Contents][Index]
plan.lisp (file)
asdf/defsystem (system)
operate.lisp
Next: The asdf/defsystem/parse-defsystem․lisp file, Previous: The asdf/defsystem/operate․lisp file, Up: Lisp files [Contents][Index]
asdf/defsystem (system)
find-system.lisp
Next: The asdf/defsystem/bundle․lisp file, Previous: The asdf/defsystem/find-system․lisp file, Up: Lisp files [Contents][Index]
asdf/defsystem (system)
parse-defsystem.lisp
Next: The asdf/defsystem/concatenate-source․lisp file, Previous: The asdf/defsystem/parse-defsystem․lisp file, Up: Lisp files [Contents][Index]
asdf/defsystem (system)
bundle.lisp
Next: The asdf/defsystem/package-inferred-system․lisp file, Previous: The asdf/defsystem/bundle․lisp file, Up: Lisp files [Contents][Index]
bundle.lisp (file)
asdf/defsystem (system)
concatenate-source.lisp
Next: The asdf/defsystem/output-translations․lisp file, Previous: The asdf/defsystem/concatenate-source․lisp file, Up: Lisp files [Contents][Index]
parse-defsystem.lisp (file)
asdf/defsystem (system)
package-inferred-system.lisp
Next: The asdf/defsystem/source-registry․lisp file, Previous: The asdf/defsystem/package-inferred-system․lisp file, Up: Lisp files [Contents][Index]
operate.lisp (file)
asdf/defsystem (system)
output-translations.lisp
Next: The asdf/defsystem/backward-internals․lisp file, Previous: The asdf/defsystem/output-translations․lisp file, Up: Lisp files [Contents][Index]
find-system.lisp (file)
asdf/defsystem (system)
source-registry.lisp
Next: The asdf/defsystem/backward-interface․lisp file, Previous: The asdf/defsystem/source-registry․lisp file, Up: Lisp files [Contents][Index]
asdf/defsystem (system)
backward-internals.lisp
*deprecated-function-style-warning-load-sysdef-notified-p* (special variable)
Next: The asdf/defsystem/interface․lisp file, Previous: The asdf/defsystem/backward-internals․lisp file, Up: Lisp files [Contents][Index]
output-translations.lisp (file)
asdf/defsystem (system)
backward-interface.lisp
Next: The asdf/defsystem/user․lisp file, Previous: The asdf/defsystem/backward-interface․lisp file, Up: Lisp files [Contents][Index]
asdf/defsystem (system)
interface.lisp
Next: The asdf/defsystem/footer․lisp file, Previous: The asdf/defsystem/interface․lisp file, Up: Lisp files [Contents][Index]
interface.lisp (file)
asdf/defsystem (system)
user.lisp
Next: The asdf/prelude/header․lisp file, Previous: The asdf/defsystem/user․lisp file, Up: Lisp files [Contents][Index]
user.lisp (file)
asdf/defsystem (system)
footer.lisp
Next: The asdf/driver/package․lisp file, Previous: The asdf/defsystem/footer․lisp file, Up: Lisp files [Contents][Index]
asdf/prelude (system)
header.lisp
Next: The asdf/driver/common-lisp․lisp file, Previous: The asdf/prelude/header․lisp file, Up: Lisp files [Contents][Index]
asdf/driver (system)
uiop/package.lisp
Next: The asdf/driver/utility․lisp file, Previous: The asdf/driver/package․lisp file, Up: Lisp files [Contents][Index]
package.lisp (file)
asdf/driver (system)
uiop/common-lisp.lisp
Next: The asdf/driver/version․lisp file, Previous: The asdf/driver/common-lisp․lisp file, Up: Lisp files [Contents][Index]
common-lisp.lisp (file)
asdf/driver (system)
uiop/utility.lisp
Next: The asdf/driver/os․lisp file, Previous: The asdf/driver/utility․lisp file, Up: Lisp files [Contents][Index]
utility.lisp (file)
asdf/driver (system)
uiop/version.lisp
Next: The asdf/driver/pathname․lisp file, Previous: The asdf/driver/version․lisp file, Up: Lisp files [Contents][Index]
utility.lisp (file)
asdf/driver (system)
uiop/os.lisp
Next: The asdf/driver/filesystem․lisp file, Previous: The asdf/driver/os․lisp file, Up: Lisp files [Contents][Index]
asdf/driver (system)
uiop/pathname.lisp
Next: The asdf/driver/stream․lisp file, Previous: The asdf/driver/pathname․lisp file, Up: Lisp files [Contents][Index]
asdf/driver (system)
uiop/filesystem.lisp
Next: The asdf/driver/image․lisp file, Previous: The asdf/driver/filesystem․lisp file, Up: Lisp files [Contents][Index]
filesystem.lisp (file)
asdf/driver (system)
uiop/stream.lisp
Next: The asdf/driver/lisp-build․lisp file, Previous: The asdf/driver/stream․lisp file, Up: Lisp files [Contents][Index]
stream.lisp (file)
asdf/driver (system)
uiop/image.lisp
*image-restored-p* (special variable)
Next: The asdf/driver/launch-program․lisp file, Previous: The asdf/driver/image․lisp file, Up: Lisp files [Contents][Index]
image.lisp (file)
asdf/driver (system)
uiop/lisp-build.lisp
Next: The asdf/driver/run-program․lisp file, Previous: The asdf/driver/lisp-build․lisp file, Up: Lisp files [Contents][Index]
stream.lisp (file)
asdf/driver (system)
uiop/launch-program.lisp
Next: The asdf/driver/configuration․lisp file, Previous: The asdf/driver/launch-program․lisp file, Up: Lisp files [Contents][Index]
asdf/driver (system)
uiop/run-program.lisp
Next: The asdf/driver/backward-driver․lisp file, Previous: The asdf/driver/run-program․lisp file, Up: Lisp files [Contents][Index]
image.lisp (file)
asdf/driver (system)
uiop/configuration.lisp
Next: The asdf/driver/driver․lisp file, Previous: The asdf/driver/configuration․lisp file, Up: Lisp files [Contents][Index]
asdf/driver (system)
uiop/backward-driver.lisp
Previous: The asdf/driver/backward-driver․lisp file, Up: Lisp files [Contents][Index]
backward-driver.lisp (file)
asdf/driver (system)
uiop/driver.lisp
Previous: Lisp files, Up: Files [Contents][Index]
• The asdf/driver/contrib/debug.lisp file |
Previous: Static files, Up: Static files [Contents][Index]
asdf/driver (system)
uiop/contrib/debug.lisp
Next: Definitions, Previous: Files, Up: Top [Contents][Index]
Packages are listed by definition order.
Next: The asdf/session package, Previous: Packages, Up: Packages [Contents][Index]
upgrade.lisp (file)
*oldest-forward-compatible-asdf-version* (special variable)
Next: The asdf/component package, Previous: The asdf/upgrade package, Up: Packages [Contents][Index]
session.lisp (file)
Next: The asdf/operation package, Previous: The asdf/session package, Up: Packages [Contents][Index]
component.lisp (file)
Next: The asdf/system package, Previous: The asdf/component package, Up: Packages [Contents][Index]
operation.lisp (file)
Next: The asdf/system-registry package, Previous: The asdf/operation package, Up: Packages [Contents][Index]
system.lisp (file)
Next: The asdf/action package, Previous: The asdf/system package, Up: Packages [Contents][Index]
system-registry.lisp (file)
Next: The asdf/lisp-action package, Previous: The asdf/system-registry package, Up: Packages [Contents][Index]
action.lisp (file)
asdf-action
Next: The asdf/find-component package, Previous: The asdf/action package, Up: Packages [Contents][Index]
lisp-action.lisp (file)
Next: The asdf/forcing package, Previous: The asdf/lisp-action package, Up: Packages [Contents][Index]
find-component.lisp (file)
Next: The asdf/plan package, Previous: The asdf/find-component package, Up: Packages [Contents][Index]
forcing.lisp (file)
Next: The asdf/operate package, Previous: The asdf/forcing package, Up: Packages [Contents][Index]
plan.lisp (file)
Next: The asdf/find-system package, Previous: The asdf/plan package, Up: Packages [Contents][Index]
operate.lisp (file)
Next: The asdf/parse-defsystem package, Previous: The asdf/operate package, Up: Packages [Contents][Index]
find-system.lisp (file)
Next: The asdf/bundle package, Previous: The asdf/find-system package, Up: Packages [Contents][Index]
parse-defsystem.lisp (file)
asdf/defsystem
Next: The asdf/concatenate-source package, Previous: The asdf/parse-defsystem package, Up: Packages [Contents][Index]
bundle.lisp (file)
Next: The asdf/package-inferred-system package, Previous: The asdf/bundle package, Up: Packages [Contents][Index]
concatenate-source.lisp (file)
Next: The asdf/output-translations package, Previous: The asdf/concatenate-source package, Up: Packages [Contents][Index]
package-inferred-system.lisp (file)
Next: The asdf/source-registry package, Previous: The asdf/package-inferred-system package, Up: Packages [Contents][Index]
output-translations.lisp (file)
Next: The asdf/backward-internals package, Previous: The asdf/output-translations package, Up: Packages [Contents][Index]
source-registry.lisp (file)
Next: The asdf/backward-interface package, Previous: The asdf/source-registry package, Up: Packages [Contents][Index]
backward-internals.lisp (file)
*deprecated-function-style-warning-load-sysdef-notified-p* (special variable)
Next: The asdf/interface package, Previous: The asdf/backward-internals package, Up: Packages [Contents][Index]
backward-interface.lisp (file)
Next: The asdf/user package, Previous: The asdf/backward-interface package, Up: Packages [Contents][Index]
interface.lisp (file)
call-without-redefinition-warnings (function)
Next: The asdf/footer package, Previous: The asdf/interface package, Up: Packages [Contents][Index]
user.lisp (file)
asdf-user
Next: The uiop/package package, Previous: The asdf/user package, Up: Packages [Contents][Index]
footer.lisp (file)
Next: The uiop/common-lisp package, Previous: The asdf/footer package, Up: Packages [Contents][Index]
package.lisp (file)
common-lisp
Next: The uiop/utility package, Previous: The uiop/package package, Up: Packages [Contents][Index]
common-lisp.lisp (file)
uoip/cl
Next: The uiop/version package, Previous: The uiop/common-lisp package, Up: Packages [Contents][Index]
utility.lisp (file)
Next: The uiop/os package, Previous: The uiop/utility package, Up: Packages [Contents][Index]
version.lisp (file)
Next: The uiop/pathname package, Previous: The uiop/version package, Up: Packages [Contents][Index]
os.lisp (file)
Next: The uiop/filesystem package, Previous: The uiop/os package, Up: Packages [Contents][Index]
pathname.lisp (file)
asdf/pathname
Next: The uiop/stream package, Previous: The uiop/pathname package, Up: Packages [Contents][Index]
filesystem.lisp (file)
Next: The uiop/image package, Previous: The uiop/filesystem package, Up: Packages [Contents][Index]
stream.lisp (file)
Next: The uiop/lisp-build package, Previous: The uiop/stream package, Up: Packages [Contents][Index]
image.lisp (file)
*image-restored-p* (special variable)
Next: The uiop/launch-program package, Previous: The uiop/image package, Up: Packages [Contents][Index]
lisp-build.lisp (file)
asdf/lisp-build
Next: The uiop/run-program package, Previous: The uiop/lisp-build package, Up: Packages [Contents][Index]
launch-program.lisp (file)
Next: The uiop/configuration package, Previous: The uiop/launch-program package, Up: Packages [Contents][Index]
run-program.lisp (file)
asdf/run-program
Next: The uiop/backward-driver package, Previous: The uiop/run-program package, Up: Packages [Contents][Index]
configuration.lisp (file)
Next: The uiop/driver package, Previous: The uiop/configuration package, Up: Packages [Contents][Index]
backward-driver.lisp (file)
Previous: The uiop/backward-driver package, Up: Packages [Contents][Index]
driver.lisp (file)
Definitions are sorted by export status, category, package, and then by lexicographic order.
• Exported definitions | ||
• Internal definitions |
Next: Internal definitions, Previous: Definitions, Up: Definitions [Contents][Index]
Next: Exported special variables, Previous: Exported definitions, Up: Exported definitions [Contents][Index]
utility.lisp (file)
Next: Exported macros, Previous: Exported constants, Up: Exported definitions [Contents][Index]
session.lisp (file)
The default class for sessions
session.lisp (file)
backward-interface.lisp (file)
upgrade.lisp (file)
When set to a non-null value, it should be an absolute directory pathname,
which will serve as the *DEFAULT-PATHNAME-DEFAULTS* around a COMPILE-FILE,
what more while the input-file is shortened if possible to ENOUGH-PATHNAME relative to it.
This can help you produce more deterministic output for FASLs.
lisp-build.lisp (file)
A list of ’system directory designators’ ASDF uses to find systems.
A ’system directory designator’ is a pathname or an expression
which evaluates to a pathname. For example:
(setf asdf:*central-registry*
(list ’*default-pathname-defaults*
#p"/home/me/cl/systems/"
#p"/usr/share/common-lisp/systems/"))
This variable is for backward compatibility.
Going forward, we recommend new users should be using the source-registry.
system-registry.lisp (file)
configuration.lisp (file)
Command-line arguments
image.lisp (file)
A hook for user-defined compile-time invariants
lisp-build.lisp (file)
How should ASDF react if it encounters a failure (per the ANSI spec of COMPILE-FILE)
when compiling a file, which includes any non-style-warning warning.
Valid values are :error, :warn, and :ignore.
Note that ASDF ALWAYS raises an error if it fails to create an output file when compiling.
lisp-build.lisp (file)
How should ASDF react if it encounters a warning when compiling a file? Valid values are :error, :warn, and :ignore.
lisp-build.lisp (file)
parse-defsystem.lisp (file)
Default encoding for source files.
The default value :utf-8 is the portable thing.
The legacy behavior was :default.
If you (asdf:load-system :asdf-encodings) then
you will have autodetection via *encoding-detection-hook* below,
reading emacs-style -*- coding: utf-8 -*- specifications,
and falling back to utf-8 or latin1 if nothing is specified.
stream.lisp (file)
List of default source registries
source-registry.lisp (file)
source-registry.lisp (file)
default element-type for open (depends on the current CL implementation)
stream.lisp (file)
package-inferred-system.lisp (file)
Hook for an extension to define a function to automatically detect a file’s encoding
stream.lisp (file)
Hook for an extension (e.g. ASDF-ENCODINGS) to define a better mapping from non-default encodings to and implementation-defined external-format’s
stream.lisp (file)
This special variable is bound to the currect directory during calls to PROCESS-SOURCE-REGISTRY in order that we be able to interpret the :here directive.
configuration.lisp (file)
Have configuration forms been ignored while parsing the configuration?
configuration.lisp (file)
Functions to call (in order) when before an image is dumped
image.lisp (file)
Is this a dumped image? As a standalone executable?
image.lisp (file)
a function with which to restart the dumped image when execution is restored from it.
image.lisp (file)
a form to evaluate, or string containing forms to read and evaluate before the image dump hooks are called and before the image is dumped.
image.lisp (file)
a form to evaluate, or string containing forms to read and evaluate when the image is restarted, but before the entry point is called.
image.lisp (file)
Functions to call (in reverse order) when the image is restored
image.lisp (file)
A hash-set (equal hash-table mapping keys to T) of systems that are immutable,
i.e. already loaded in memory and not to be refreshed from the filesystem.
They will be treated specially by find-system, and passed as :force-not argument to make-plan.
For instance, to can deliver an image with many systems precompiled, that *will not* check the
filesystem for them every time a user loads an extension, what more risk a problematic upgrade
or catastrophic downgrade, before you dump an image, you may use:
(map () ’asdf:register-immutable-system (asdf:already-loaded-systems))
Note that direct access to this variable from outside ASDF is not supported.
Please call REGISTER-IMMUTABLE-SYSTEM to add new immutable systems, and
contact maintainers if you need a stable API to do more than that.
system-registry.lisp (file)
The type of Lisp implementation used, as a short UIOP-standardized keyword
parse-defsystem.lisp (file)
Is this an interactive Lisp environment, or is it batch processing?
image.lisp (file)
A pathname that is as neutral as possible for use as defaults when merging, making or parsing pathnames
pathname.lisp (file)
operation.lisp (file)
Optimization settings to be used by PROCLAIM-OPTIMIZATION-SETTINGS
lisp-build.lisp (file)
Hook for output translations.
This function needs to be idempotent, so that actions can work
whether their inputs were translated or not,
which they will be if we are composing operations. e.g. if some
create-lisp-op creates a lisp file from some higher-level input,
you need to still be able to use compile-op on that lisp file.
pathname.lisp (file)
Either NIL (for uninitialized), or a list of one element,
said element itself being a sorted list of mappings.
Each mapping is a pair of a source pathname and destination pathname,
and the order is by decreasing length of namestring of the source pathname.
output-translations.lisp (file)
output-translations.lisp (file)
package-inferred-system.lisp (file)
The default plan class to use when building with ASDF
upgrade.lisp (file)
Registration table for preloaded systems.
system-registry.lisp (file)
upgrade.lisp (file)
Optimization settings saved by PROCLAIM-OPTIMIZATION-SETTINGS
lisp-build.lisp (file)
Should :tree entries of the source-registry recurse in subdirectories after having found a .asd file? True by default.
source-registry.lisp (file)
This is a hash table whose keys are strings – the names of systems –
and whose values are systems.
A system is referred to as "registered" if it is present in this table.
system-registry.lisp (file)
Determine whether or not ASDF resolves symlinks when defining systems. Defaults to T.
filesystem.lisp (file)
Either NIL (for uninitialized), or an equal hash-table, mapping system names to pathnames of .asd files
source-registry.lisp (file)
source-registry.lisp (file)
source-registry.lisp (file)
the original error output stream at startup
stream.lisp (file)
the original standard input stream at startup
stream.lisp (file)
the original standard output stream at startup
stream.lisp (file)
A list that controls the ways that ASDF looks for system definitions.
It contains symbols to be funcalled in order, with a requested system name as argument,
until one returns a non-NIL result (if any), which must then be a fully initialized system object
with that name.
system-registry.lisp (file)
User-configurable location for temporary files
stream.lisp (file)
form that evaluates to the pathname to your favorite debugging utilities
utility.lisp (file)
version.lisp (file)
Additional conditions that may be skipped while compiling Lisp code.
lisp-build.lisp (file)
Conditions that may be skipped while compiling or loading Lisp code.
lisp-build.lisp (file)
Additional conditions that may be skipped while loading Lisp code.
lisp-build.lisp (file)
Unspecific type component to use with the underlying implementation’s MAKE-PATHNAME
pathname.lisp (file)
A specification as per RESOLVE-LOCATION of where the user keeps his FASL cache
configuration.lisp (file)
A suggested value to which to set or bind *uninteresting-conditions*.
lisp-build.lisp (file)
Default :external-format argument to pass to CL:OPEN and also
CL:LOAD or CL:COMPILE-FILE to best process a UTF-8 encoded file.
On modern implementations, this will decode UTF-8 code points as CL characters.
On legacy implementations, it may fall back on some 8-bit encoding,
with non-ASCII code points being read as several CL characters;
hopefully, if done consistently, that won’t affect program behavior too much.
stream.lisp (file)
upgrade.lisp (file)
Pathname type for warnings files, or NIL if disabled
lisp-build.lisp (file)
Wild component for use with MAKE-PATHNAME
pathname.lisp (file)
source-registry.lisp (file)
A pathname object with wildcards for matching any subdirectory
pathname.lisp (file)
A pathname object with wildcards for matching any file with TRANSLATE-PATHNAME
pathname.lisp (file)
A pathname object with wildcards for matching any file with DIRECTORY
pathname.lisp (file)
A pathname object with wildcards for matching any recursive subdirectory
pathname.lisp (file)
A pathname object with wildcards for matching any file in any recursive subdirectory
pathname.lisp (file)
utility.lisp (file)
utility.lisp (file)
utility.lisp (file)
utility.lisp (file)
utility.lisp (file)
Next: Exported compiler macros, Previous: Exported special variables, Up: Exported definitions [Contents][Index]
Append onto list
utility.lisp (file)
utility.lisp (file)
action.lisp (file)
DEFINE-PACKAGE takes a PACKAGE and a number of CLAUSES, of the form
(KEYWORD . ARGS).
DEFINE-PACKAGE supports the following keywords:
USE, SHADOW, SHADOWING-IMPORT-FROM, IMPORT-FROM, EXPORT, INTERN – as per CL:DEFPACKAGE.
RECYCLE – Recycle the package’s exported symbols from the specified packages,
in order. For every symbol scheduled to be exported by the DEFINE-PACKAGE,
either through an :EXPORT option or a :REEXPORT option, if the symbol exists in
one of the :RECYCLE packages, the first such symbol is re-homed to the package
being defined.
For the sake of idempotence, it is important that the package being defined
should appear in first position if it already exists, and even if it doesn’t,
ahead of any package that is not going to be deleted afterwards and never
created again. In short, except for special cases, always make it the first
package on the list if the list is not empty.
MIX – Takes a list of package designators. MIX behaves like
(:USE PKG1 PKG2 ... PKGn) but additionally uses :SHADOWING-IMPORT-FROM to
resolve conflicts in favor of the first found symbol. It may still yield
an error if there is a conflict with an explicitly :IMPORT-FROM symbol.
REEXPORT – Takes a list of package designators. For each package, p, in the list,
export symbols with the same name as those exported from p. Note that in the case
of shadowing, etc. the symbols with the same name may not be the same symbols.
UNINTERN – Remove symbols here from PACKAGE.
package.lisp (file)
upgrade.lisp (file)
parse-defsystem.lisp (file)
utility.lisp (file)
session.lisp (file)
utility.lisp (file)
utility.lisp (file)
Macro to keep code nesting and indentation under control.
utility.lisp (file)
Load the UIOP debug utility at compile-time as well as runtime
utility.lisp (file)
A wrapper macro for code that should only be run when upgrading a previously-loaded version of ASDF.
upgrade.lisp (file)
COLLECTORS should be a list of names for collections. A collector
defines a function that, when applied to an argument inside BODY, will
add its argument to the corresponding collection. Returns multiple values,
a list for each collection, in order.
E.g.,
(while-collecting (foo bar)
(dolist (x ’((a 1) (b 2) (c 3)))
(foo (first x))
(bar (second x))))
Returns two values: (A B C) and (1 2 3).
utility.lisp (file)
action.lisp (file)
upgrade.lisp (file)
session.lisp (file)
Call BODY while the POSIX current working directory is set to DIR
filesystem.lisp (file)
Given a deprecation LEVEL (a form to be EVAL’ed at macro-expansion time), instrument the
DEFUN and DEFMETHOD forms in DEFINITIONS to notify the programmer of the deprecation of the function
when it is compiled or called.
Increasing levels (as result from evaluating LEVEL) are: NIL (not deprecated yet),
:STYLE-WARNING (a style warning is issued when used), :WARNING (a full warning is issued when used),
:ERROR (a continuable error instead), and :DELETE (it’s an error if the code is still there while
at that level).
Forms other than DEFUN and DEFMETHOD are not instrumented, and you can protect a DEFUN or DEFMETHOD from instrumentation by enclosing it in a PROGN.
version.lisp (file)
Shorthand syntax for CALL-WITH-ENOUGH-PATHNAME
pathname.lisp (file)
Execute BODY in a context where fatal conditions are appropriately handled
image.lisp (file)
Bind INPUT-VAR to an input stream, coercing VALUE (default: previous binding of INPUT-VAR) as per CALL-WITH-INPUT, and evaluate BODY within the scope of this binding.
stream.lisp (file)
stream.lisp (file)
Trivial syntax for CALL-WITH-MUFFLED-COMPILER-CONDITIONS
lisp-build.lisp (file)
Shorthand syntax for CALL-WITH-MUFFLED-CONDITIONS
utility.lisp (file)
Trivial syntax for CALL-WITH-MUFFLED-LOADER-CONDITIONS
lisp-build.lisp (file)
Evaluate BODY in a context when VAR is bound to an input stream accessing the null device. Pass keyword arguments to OPEN.
stream.lisp (file)
Evaluate BODY in a context when VAR is bound to an output stream accessing the null device. Pass keyword arguments to OPEN.
stream.lisp (file)
lisp-build.lisp (file)
Bind OUTPUT-VAR to an output stream, coercing VALUE (default: previous binding of OUTPUT-VAR) as per FORMAT, and evaluate BODY within the scope of this binding.
stream.lisp (file)
stream.lisp (file)
Execute BODY in a context where the *DEFAULT-PATHNAME-DEFAULTS* is as specified,
where leaving the defaults NIL or unspecified means a (NIL-PATHNAME), except
on ABCL, Genera and XCL, where it remains unchanged for it doubles as current-directory.
pathname.lisp (file)
Establish safe CL reader options around the evaluation of BODY
stream.lisp (file)
Trivial syntax for CALL-WITH-SAVED-DEFERRED-WARNINGS
lisp-build.lisp (file)
Trivial syntax wrapper for CALL-WITH-STAGING-PATHNAME
stream.lisp (file)
Evaluate BODY where the symbols specified by keyword arguments
STREAM and PATHNAME (if respectively specified) are bound corresponding
to a newly created temporary file ready for I/O, as per CALL-WITH-TEMPORARY-FILE.
At least one of STREAM or PATHNAME must be specified.
If the STREAM is not specified, it will be closed before the BODY is evaluated.
If STREAM is specified, then the :CLOSE-STREAM label if it appears in the BODY,
separates forms run before and after the stream is closed.
The values of the last form of the BODY (not counting the separating :CLOSE-STREAM) are returned.
Upon success, the KEEP form is evaluated and the file is is deleted unless it evaluates to TRUE.
stream.lisp (file)
Evaluate BODY at compile- load- and run- times, with DEFUN and DEFGENERIC modified
to also declare the functions NOTINLINE and to accept a wrapping the function name
specification into a list with keyword argument SUPERSEDE (which defaults to T if the name
is not wrapped, and NIL if it is wrapped). If SUPERSEDE is true, call UNDEFINE-FUNCTION
to supersede any previous definition.
utility.lisp (file)
Next: Exported functions, Previous: Exported macros, Up: Exported definitions [Contents][Index]
backward-driver.lisp (file)
backward-interface.lisp (file)
backward-interface.lisp (file)
backward-interface.lisp (file)
backward-interface.lisp (file)
backward-driver.lisp (file)
backward-driver.lisp (file)
backward-driver.lisp (file)
backward-internals.lisp (file)
backward-interface.lisp (file)
backward-interface.lisp (file)
backward-driver.lisp (file)
backward-interface.lisp (file)
backward-interface.lisp (file)
backward-interface.lisp (file)
backward-driver.lisp (file)
backward-driver.lisp (file)
Next: Exported generic functions, Previous: Exported compiler macros, Up: Exported definitions [Contents][Index]
If PATHSPEC is a pathname or namestring object that parses as a pathname possessing an :ABSOLUTE directory component, return the (parsed) pathname. Otherwise return NIL
pathname.lisp (file)
Given an OBJECT and an AT specifier, list of successive accessors,
call each accessor on the result of the previous calls.
An accessor may be an integer, meaning a call to ELT,
a keyword, meaning a call to GETF,
NIL, meaning identity,
a function or other symbol, meaning itself,
or a list of a function designator and arguments, interpreted as per ENSURE-FUNCTION.
As a degenerate case, the AT specifier may be an atom of a single such accessor
instead of a list.
utility.lisp (file)
From an AT specification, extract a COUNT of maximum number of sub-objects to read as per ACCESS-AT
utility.lisp (file)
action.lisp (file)
action.lisp (file)
A readable data structure that identifies the action.
action.lisp (file)
Check whether an action was up-to-date at the beginning of the session.
Update the VISITED-ACTIONS table with the known status, but don’t add anything to the PLAN.
Is this action valid to include amongst dependencies?
action.lisp (file)
Add a SUFFIX to the name of a PATHNAME, return a new pathname. Further KEYS can be passed to MAKE-PATHNAME.
stream.lisp (file)
return a list of the names of the systems that have been successfully loaded so far
operate.lisp (file)
Trivial function to use as *encoding-detection-hook*, always ’detects’ the *default-encoding*
stream.lisp (file)
output-translations.lisp (file)
The CPU architecture of the current host
On supported implementations (most that matter), or when invoked by a proper wrapper script, return a string that for the name with which the program was invoked, i.e. argv[0] in C. Otherwise, return NIL.
image.lisp (file)
session.lisp (file)
upgrade.lisp (file)
Exported interface to the version of ASDF currently installed. A string.
You can compare this string with e.g.: (ASDF:VERSION-SATISFIES (ASDF:ASDF-VERSION) "3.4.5.67").
upgrade.lisp (file)
Does the STRING only contain BASE-CHARs?
utility.lisp (file)
Converts a boolean VALUE to a form suitable for testing with #+.
utility.lisp (file)
bundle.lisp (file)
Call a HOOK around the execution of FUNCTION
lisp-build.lisp (file)
Call the function designated by FUNCTION-SPEC as per ENSURE-FUNCTION, with the given ARGUMENTS
utility.lisp (file)
For each function in the list FUNCTION-SPECS, in order, call the function as per CALL-FUNCTION
utility.lisp (file)
Call the hook functions registered to be run before to dump an image
image.lisp (file)
Call the hook functions registered to be run when restoring a dumped image
image.lisp (file)
Detect circular dependencies
action.lisp (file)
session.lisp (file)
call the THUNK in a context where the current directory was changed to DIR, if not NIL. Note that this operation is usually NOT thread-safe.
filesystem.lisp (file)
In a context where *DEFAULT-PATHNAME-DEFAULTS* is bound to DEFAULTS-PATHNAME (if not null,
or else to its current value), call THUNK with ENOUGH-PATHNAME for MAYBE-SUBPATH
given DEFAULTS-PATHNAME as a base pathname.
pathname.lisp (file)
Call THUNK in a context where fatal conditions are appropriately handled
image.lisp (file)
Open FILE for input with given recognizes options, call THUNK with the resulting stream. Other keys are accepted but discarded.
stream.lisp (file)
Call given THUNK in a context where uninteresting conditions and compiler conditions are muffled
lisp-build.lisp (file)
calls the THUNK in a context where the CONDITIONS are muffled
utility.lisp (file)
Call given THUNK in a context where uninteresting conditions and loader conditions are muffled
lisp-build.lisp (file)
Call FUN with an input stream from the null device; pass keyword arguments to OPEN.
stream.lisp (file)
Call FUN with an output stream to the null device; pass keyword arguments to OPEN.
stream.lisp (file)
Open FILE for input with given recognizes options, call THUNK with the resulting stream. Other keys are accepted but discarded.
stream.lisp (file)
stream.lisp (file)
Calls FUN with a staging pathname, and atomically
renames the staging pathname to the PATHNAME in the end.
NB: this protects only against failure of the program, not against concurrent attempts.
For the latter case, we ought pick a random suffix and atomically open it.
stream.lisp (file)
Call a THUNK with stream and/or pathname arguments identifying a temporary file.
The temporary file’s pathname will be based on concatenating
PREFIX (or "tmp" if it’s NIL), a random alphanumeric string,
and optional SUFFIX (defaults to "-tmp" if a type was provided)
and TYPE (defaults to "tmp", using a dot as separator if not NIL),
within DIRECTORY (defaulting to the TEMPORARY-DIRECTORY) if the PREFIX isn’t absolute.
The file will be open with specified DIRECTION (defaults to :IO),
ELEMENT-TYPE (defaults to *DEFAULT-STREAM-ELEMENT-TYPE*) and
EXTERNAL-FORMAT (defaults to *UTF-8-EXTERNAL-FORMAT*).
If WANT-STREAM-P is true (the defaults to T), then THUNK will then be CALL-FUNCTION’ed
with the stream and the pathname (if WANT-PATHNAME-P is true, defaults to T),
and stream will be closed after the THUNK exits (either normally or abnormally).
If WANT-STREAM-P is false, then WANT-PATHAME-P must be true, and then
THUNK is only CALL-FUNCTION’ed after the stream is closed, with the pathname as argument.
Upon exit of THUNK, the AFTER thunk if defined is CALL-FUNCTION’ed with the pathname as argument.
If AFTER is defined, its results are returned, otherwise, the results of THUNK are returned.
Finally, the file will be deleted, unless the KEEP argument when CALL-FUNCTION’ed returns true.
stream.lisp (file)
utility.lisp (file)
Change current directory, as per POSIX chdir(2), to a given pathname object
A partial test of the values of a component.
parse-defsystem.lisp (file)
Given a list of FILES containing deferred warnings saved by CALL-WITH-SAVED-DEFERRED-WARNINGS, re-intern and raise any warnings that are still meaningful.
lisp-build.lisp (file)
Given the results of COMPILE-FILE, raise an error or warning as appropriate
lisp-build.lisp (file)
Given the warnings or failures as resulted from COMPILE-FILE or checking deferred warnings, raise an error or warning as appropriate
lisp-build.lisp (file)
parse-defsystem.lisp (file)
upgrade.lisp (file)
Call the functions in *CLEAR-CONFIGURATION-HOOK*
configuration.lisp (file)
Undoes any initialization of the output translations.
output-translations.lisp (file)
Clear all currently registered defined systems.
Preloaded systems (including immutable ones) will be reset, other systems will be de-registered.
system-registry.lisp (file)
Undoes any initialization of the source registry.
source-registry.lisp (file)
Clear the entry for a SYSTEM in the database of systems previously defined.
However if the system was registered as PRELOADED (which it is if it is IMMUTABLE),
then a new system with the same name will be defined and registered in its place
from which build details will have been cleared.
Note that this does NOT in any way cause any of the code of the system to be unloaded.
Returns T if system was or is now undefined, NIL if a new preloaded system was redefined.
system-registry.lisp (file)
Close any stream that the process might own. Needs to be run whenever streams were requested by passing :stream to :input, :output, or :error-output.
launch-program.lisp (file)
Coerce CLASS to a class that is subclass of SUPER if specified,
or invoke ERROR handler as per CALL-FUNCTION.
A keyword designates the name a symbol, which when found in either PACKAGE, designates a class.
– for backward compatibility, *PACKAGE* is also accepted for now, but this may go in the future.
A string is read as a symbol while in PACKAGE, the symbol designates a class.
A class object designates itself.
NIL designates itself (no class).
A symbol otherwise designates a class by name.
utility.lisp (file)
Coerce a system designator NAME into a string suitable as a filename component.
The (current) transformation is to replace characters /:\ each by –,
the former being forbidden in a filename component.
NB: The onus is unhappily on the user to avoid clashes.
system.lisp (file)
Given a designator for a component NAME, return the name as a string.
The designator can be a COMPONENT (designing its name; note that a SYSTEM is a component),
a SYMBOL (designing its name, downcased), or a STRING (designing itself).
system.lisp (file)
DEPRECATED. Please use UIOP:PARSE-UNIX-NAMESTRING instead.
backward-driver.lisp (file)
source-registry.lisp (file)
Given a DIRECTORY, when COLLECTP returns true when CALL-FUNCTION’ed with the directory,
call-function the COLLECTOR function designator on the directory,
and recurse each of its subdirectories on which the RECURSEP returns true when CALL-FUNCTION’ed with them.
This function will thus let you traverse a filesystem hierarchy,
superseding the functionality of CL-FAD:WALK-DIRECTORY.
The behavior in presence of symlinks is not portable. Use IOlib to handle such situations.
filesystem.lisp (file)
source-registry.lisp (file)
Combine a list of FASLs INPUTS into a single FASL OUTPUT
lisp-build.lisp (file)
Extract user arguments from command-line invocation of current process. Assume the calling conventions of a generated script that uses – if we are not called from a directly executable image.
image.lisp (file)
This function provides a portable wrapper around COMPILE-FILE.
It ensures that the OUTPUT-FILE value is only returned and
the file only actually created if the compilation was successful,
even though your implementation may not do that. It also checks an optional
user-provided consistency function COMPILE-CHECK to determine success;
it will call this function if not NIL at the end of the compilation
with the arguments sent to COMPILE-FILE*, except with :OUTPUT-FILE TMP-FILE
where TMP-FILE is the name of a temporary output-file.
It also checks two flags (with legacy british spelling from ASDF1),
*COMPILE-FILE-FAILURE-BEHAVIOUR* and *COMPILE-FILE-WARNINGS-BEHAVIOUR*
with appropriate implementation-dependent defaults,
and if a failure (respectively warnings) are reported by COMPILE-FILE,
it will consider that an error unless the respective behaviour flag
is one of :SUCCESS :WARN :IGNORE.
If WARNINGS-FILE is defined, deferred warnings are saved to that file.
On ECL or MKCL, it creates both the linkable object and loadable fasl files.
On implementations that erroneously do not recognize standard keyword arguments,
it will filter them appropriately.
lisp-build.lisp (file)
Variant of COMPILE-FILE-PATHNAME that works well with COMPILE-FILE*
lisp-build.lisp (file)
pathname TYPE for lisp FASt Loading files
lisp-build.lisp (file)
Shorthand for ‘(asdf:operate ’asdf:compile-op system)‘. See OPERATE for details.
operate.lisp (file)
Return a path from a root system to the COMPONENT.
The return value is a list of component NAMES; a list of strings.
component.lisp (file)
DEPRECATED. Please use COMPONENT-SIDEWAY-DEPENDENCIES instead; or better, define your operations with proper use of SIDEWAY-OPERATION, SELFWARD-OPERATION, or define methods on PREPARE-OP, etc.
backward-interface.lisp (file)
Has the given COMPONENT been successfully loaded in the current image (yet)? Note that this returns true even if the component is not up to date.
operate.lisp (file)
component.lisp (file)
session.lisp (file)
read the configuration, return it
output-translations.lisp (file)
source-registry.lisp (file)
create a new OUTPUT file the contents of which a the concatenate of the INPUTS files.
stream.lisp (file)
Is X a configuration inheritance directive?
configuration.lisp (file)
session.lisp (file)
Copy contents of the INPUT file to the OUTPUT file
stream.lisp (file)
Copy the contents of the INPUT stream into the OUTPUT stream.
If LINEWISE is true, then read and copy the stream line by line, with an optional PREFIX.
Otherwise, using WRITE-SEQUENCE using a buffer of size BUFFER-SIZE.
stream.lisp (file)
On ECL, create an executable at pathname DESTINATION from the specified OBJECT-FILES and options
image.lisp (file)
Portably return the PATHNAME of the current Lisp source file being compiled or loaded
lisp-build.lisp (file)
Default, ignorant, function to transform a character ENCODING as a portable keyword to an implementation-dependent EXTERNAL-FORMAT specification. Load system ASDF-ENCODINGS to hook in a better one.
stream.lisp (file)
source-registry.lisp (file)
Return a default directory to use for temporary files
stream.lisp (file)
source-registry.lisp (file)
Delete a directory including all its recursive contents, aka rm -rf.
To reduce the risk of infortunate mistakes, DIRECTORY-PATHNAME must be
a physical non-wildcard directory pathname (not namestring).
If the directory does not exist, the IF-DOES-NOT-EXIST argument specifies what happens:
if it is :ERROR (the default), an error is signaled, whereas if it is :IGNORE, nothing is done.
Furthermore, before any deletion is attempted, the DIRECTORY-PATHNAME must pass
the validation function designated (as per ENSURE-FUNCTION) by the VALIDATE keyword argument
which in practice is thus compulsory, and validates by returning a non-NIL result.
If you’re suicidal or extremely confident, just use :VALIDATE T.
filesystem.lisp (file)
Delete an empty directory
filesystem.lisp (file)
Delete a file X if it already exists
filesystem.lisp (file)
package.lisp (file)
Convert the DIRECTORY-COMPONENT from a CLHS-standard format to a format usable by the underlying implementation’s MAKE-PATHNAME and other primitives
pathname.lisp (file)
Detects the encoding of a specified file, going through user-configurable hooks
stream.lisp (file)
Detects the current operating system. Only needs be run at compile-time, except on ABCL where it might change between FASL compilation and runtime.
parse-defsystem.lisp (file)
Die in error with some error message
image.lisp (file)
Compute a list of the direct dependencies of the action within the plan
bundle.lisp (file)
Given a PATHNAME, return a pathname that has representations of its HOST and DEVICE components added to its DIRECTORY component. This is useful for output translations.
pathname.lisp (file)
Return a list of the entries in a directory by calling DIRECTORY.
Try to override the defaults to not resolving symlinks, if implementation allows.
filesystem.lisp (file)
source-registry.lisp (file)
Is X the name of a directory that exists on the filesystem?
filesystem.lisp (file)
Return a list of the files in a directory according to the PATTERN.
Subdirectories should NOT be returned.
PATTERN defaults to a pattern carefully chosen based on the implementation;
override the default at your own risk.
DIRECTORY-FILES tries NOT to resolve symlinks if the implementation permits this,
but the behavior in presence of symlinks is not portable. Use IOlib to handle such situations.
filesystem.lisp (file)
Does PATHNAME represent a directory?
A directory-pathname is a pathname _without_ a filename. The three
ways that the filename components can be missing are for it to be NIL,
:UNSPECIFIC or the empty string.
Note that this does _not_ check to see that PATHNAME points to an actually-existing directory.
pathname.lisp (file)
Given a PATHNAME, return the character used to delimit directory names on this host and device.
pathname.lisp (file)
Disable the saving of deferred warnings
lisp-build.lisp (file)
Initialize output translations in a way that maps every file to itself, effectively disabling the output translation facility.
output-translations.lisp (file)
Dump an image of the current Lisp environment at pathname FILENAME, with various options.
First, finalize the image, by evaluating the POSTLUDE as per EVAL-INPUT, then calling each of
the functions in DUMP-HOOK, in reverse order of registration by REGISTER-DUMP-HOOK.
If EXECUTABLE is true, create an standalone executable program that calls RESTORE-IMAGE on startup.
Pass various implementation-defined options, such as PREPEND-SYMBOLS and PURITY on CCL,
or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows.
image.lisp (file)
utility.lisp (file)
utility.lisp (file)
Is X an "easy" character that does not require quoting by the shell?
launch-program.lisp (file)
Predicate that is true for an empty sequence
utility.lisp (file)
DEPRECATED. Use asdf-output-translations instead.
backward-interface.lisp (file)
Enable the saving of deferred warnings
lisp-build.lisp (file)
Transform a portable ENCODING keyword to an implementation-dependent EXTERNAL-FORMAT, going through all the proper hooks.
stream.lisp (file)
if MAYBE-SUBPATH is a pathname that is under BASE-PATHNAME, return a pathname object that when used with MERGE-PATHNAMES* with defaults BASE-PATHNAME, returns MAYBE-SUBPATH.
pathname.lisp (file)
Given a pathname designator PATH, return an absolute pathname as specified by PATH
considering the DEFAULTS, or, if not possible, use CALL-FUNCTION on the specified ON-ERROR behavior,
with a format control-string and other arguments as arguments
pathname.lisp (file)
Ensure that for every pathname in PATHNAMES, we ensure its directories exist
filesystem.lisp (file)
Converts the non-wild pathname designator PATHSPEC to directory form.
pathname.lisp (file)
Coerce the object FUN into a function.
If FUN is a FUNCTION, return it.
If the FUN is a non-sequence literal constant, return constantly that,
i.e. for a boolean keyword character number or pathname.
Otherwise if FUN is a non-literally constant symbol, return its FDEFINITION.
If FUN is a CONS, return the function that applies its CAR
to the appended list of the rest of its CDR and the arguments,
unless the CAR is LAMBDA, in which case the expression is evaluated.
If FUN is a string, READ a form from it in the specified PACKAGE (default: CL)
and EVAL that in a (FUNCTION ...) context.
utility.lisp (file)
Lookup the TABLE for a KEY as by GETHASH, but if not present,
call the (possibly constant) function designated by DEFAULT as per CALL-FUNCTION,
set the corresponding entry to the result in the table.
Return two values: the entry after its optional computation, and whether it was found
utility.lisp (file)
utility.lisp (file)
output-translations.lisp (file)
package.lisp (file)
package.lisp (file)
Coerces its argument into a PATHNAME,
optionally doing some transformations and checking specified constraints.
If the argument is NIL, then NIL is returned unless the WANT-PATHNAME constraint is specified.
If the argument is a STRING, it is first converted to a pathname via
PARSE-UNIX-NAMESTRING, PARSE-NAMESTRING or PARSE-NATIVE-NAMESTRING respectively
depending on the NAMESTRING argument being :UNIX, :LISP or :NATIVE respectively,
or else by using CALL-FUNCTION on the NAMESTRING argument;
if :UNIX is specified (or NIL, the default, which specifies the same thing),
then PARSE-UNIX-NAMESTRING it is called with the keywords
DEFAULTS TYPE DOT-DOT ENSURE-DIRECTORY WANT-RELATIVE, and
the result is optionally merged into the DEFAULTS if ENSURE-ABSOLUTE is true.
The pathname passed or resulting from parsing the string
is then subjected to all the checks and transformations below are run.
Each non-nil constraint argument can be one of the symbols T, ERROR, CERROR or IGNORE.
The boolean T is an alias for ERROR.
ERROR means that an error will be raised if the constraint is not satisfied.
CERROR means that an continuable error will be raised if the constraint is not satisfied.
IGNORE means just return NIL instead of the pathname.
The ON-ERROR argument, if not NIL, is a function designator (as per CALL-FUNCTION)
that will be called with the the following arguments:
a generic format string for ensure pathname, the pathname,
the keyword argument corresponding to the failed check or transformation,
a format string for the reason ENSURE-PATHNAME failed,
and a list with arguments to that format string.
If ON-ERROR is NIL, ERROR is used instead, which does the right thing.
You could also pass (CERROR "CONTINUE DESPITE FAILED CHECK").
The transformations and constraint checks are done in this order,
which is also the order in the lambda-list:
EMPTY-IS-NIL returns NIL if the argument is an empty string.
WANT-PATHNAME checks that pathname (after parsing if needed) is not null.
Otherwise, if the pathname is NIL, ensure-pathname returns NIL.
WANT-LOGICAL checks that pathname is a LOGICAL-PATHNAME
WANT-PHYSICAL checks that pathname is not a LOGICAL-PATHNAME
ENSURE-PHYSICAL ensures that pathname is physical via TRANSLATE-LOGICAL-PATHNAME
WANT-RELATIVE checks that pathname has a relative directory component
WANT-ABSOLUTE checks that pathname does have an absolute directory component
ENSURE-ABSOLUTE merges with the DEFAULTS, then checks again
that the result absolute is an absolute pathname indeed.
ENSURE-SUBPATH checks that the pathname is a subpath of the DEFAULTS.
WANT-FILE checks that pathname has a non-nil FILE component
WANT-DIRECTORY checks that pathname has nil FILE and TYPE components
ENSURE-DIRECTORY uses ENSURE-DIRECTORY-PATHNAME to interpret
any file and type components as being actually a last directory component.
WANT-NON-WILD checks that pathname is not a wild pathname
WANT-WILD checks that pathname is a wild pathname
WILDEN merges the pathname with **/*.*.* if it is not wild
WANT-EXISTING checks that a file (or directory) exists with that pathname.
ENSURE-DIRECTORIES-EXIST creates any parent directory with ENSURE-DIRECTORIES-EXIST.
TRUENAME replaces the pathname by its truename, or errors if not possible.
RESOLVE-SYMLINKS replaces the pathname by a variant with symlinks resolved by RESOLVE-SYMLINKS.
TRUENAMIZE uses TRUENAMIZE to resolve as many symlinks as possible.
filesystem.lisp (file)
source-registry.lisp (file)
output-translations.lisp (file)
source-registry.lisp (file)
Given a COMMAND as a list of tokens, return a string of the spaced, escaped tokens, using ESCAPER to escape.
launch-program.lisp (file)
Escape a list of command-line arguments into a string suitable for parsing by /bin/sh in POSIX
launch-program.lisp (file)
Escape a string TOKEN within double-quotes if needed for use within a POSIX Bourne shell, outputing to S.
launch-program.lisp (file)
Escape a command for the current operating system’s shell
launch-program.lisp (file)
Escape a token for the current operating system shell
launch-program.lisp (file)
Call the ESCAPER function on TOKEN string if it needs escaping as per REQUIRES-ESCAPING-P using GOOD-CHARS and BAD-CHARS, otherwise output TOKEN, using STREAM as output (or returning result as a string if NIL)
launch-program.lisp (file)
Escape a list of command-line arguments into a string suitable for parsing by CommandLineToArgv in MS Windows
launch-program.lisp (file)
Escape a string TOKEN within double-quotes if needed for use within a MS Windows command-line, outputing to S.
launch-program.lisp (file)
Portably read and evaluate forms from INPUT, return the last values.
stream.lisp (file)
Evaluate a THUNK of code:
If a function, FUNCALL it without arguments.
If a constant literal and not a sequence, return it.
If a cons or a symbol, EVAL it.
If a string, repeatedly read and evaluate from it, returning the last values.
stream.lisp (file)
package.lisp (file)
Is the CONDITION fatal?
image.lisp (file)
Checks whether a feature expression X is true with respect to the *FEATURES* set,
as per the CLHS standard for #+ and #-. Beware that just like the CLHS,
we assume symbols from the KEYWORD package are used, but that unless you’re using #+/#-
your reader will not have magically used the KEYWORD package, so you need specify
keywords explicitly.
Is X the name of a file that exists on the filesystem?
filesystem.lisp (file)
stream.lisp (file)
Does PATHNAME represent a file, i.e. has a non-null NAME component?
Accepts NIL, a string (converted through PARSE-NAMESTRING) or a PATHNAME.
Note that this does _not_ check to see that PATHNAME points to an
actually-existing file.
Returns the (parsed) PATHNAME when true
pathname.lisp (file)
stream.lisp (file)
If DIRECTORY isn’t a logical pathname, return ENTRIES. If it is,
given ENTRIES in the DIRECTORY, remove the entries which are physical yet
when transformed by MERGER have a different TRUENAME.
Also remove duplicates as may appear with some translation rules.
This function is used as a helper to DIRECTORY-FILES to avoid invalid entries
when using logical-pathnames.
filesystem.lisp (file)
Parse strings as unix namestrings and remove duplicates and non absolute-pathnames in a list.
configuration.lisp (file)
Reconstitute an action from its action-path
action.lisp (file)
package.lisp (file)
Find first file in the list of FILES that exists (for direction :input or :probe)
or just the first one (for direction :output or :io).
Note that when we say "file" here, the files in question may be directories.
configuration.lisp (file)
Find a symbol designated by NAME-DESIGNATOR in a package designated by PACKAGE-DESIGNATOR, where STANDARD-CASE-SYMBOL-NAME is used to transform them if these designators are strings. If optional ERROR argument is NIL, return NIL instead of an error when the symbol is not found.
utility.lisp (file)
Find a symbol in a package of given string’ified NAME;
unlike CL:FIND-SYMBOL, work well with ’modern’ case sensitive syntax
by letting you supply a symbol or keyword for the name;
also works well when the package is not present.
If optional ERROR argument is NIL, return NIL instead of an error
when the symbol is not found.
package.lisp (file)
find-system.lisp (file)
Finish output on the main output streams as well as any specified one. Useful for portably flushing I/O before user input or program exit.
stream.lisp (file)
Return the first character of a non-empty string S, or NIL
utility.lisp (file)
source-registry.lisp (file)
Just like format, but call finish-outputs before and after the output.
stream.lisp (file)
FORMAT helper to display an action’s action-description.
Use it in FORMAT control strings as ~/asdf-action:format-action/
action.lisp (file)
package.lisp (file)
session.lisp (file)
Semi-portable implementation of a subset of LispWorks’ sys:get-folder-path,
this function tries to locate the Windows FOLDER for one of
:LOCAL-APPDATA, :APPDATA or :COMMON-APPDATA.
Returns NIL when the folder is not defined (e.g., not on Windows).
configuration.lisp (file)
Get current compiler optimization settings, ready to PROCLAIM again
lisp-build.lisp (file)
Find the actual DEFAULTS to use for pathnames, including resolving them with respect to GETCWD if the DEFAULTS were relative
filesystem.lisp (file)
Get the current working directory as per POSIX getcwd(3), as a pathname object
Query the environment, as in C getenv.
Beware: may return empty string if a variable is present but empty;
use getenvp to return NIL in such a case.
os.lisp (file)
(setf getenv) (setf expander)
Set an environment variable.
Extract a list of absolute directories from a user-configured environment variable, as per native OS. Any empty entries in the environment variable X will be returned as NILs.
filesystem.lisp (file)
Extract an absolute directory pathname from a user-configured environment variable, as per native OS
filesystem.lisp (file)
Extract a pathname from a user-configured environment variable, as per native OS, check constraints and normalize as per ENSURE-PATHNAME.
filesystem.lisp (file)
Extract a list of pathname from a user-configured environment variable, as per native OS,
check constraints and normalize each one as per ENSURE-PATHNAME.
Any empty entries in the environment variable X will be returned as NILs.
filesystem.lisp (file)
Predicate that is true if the named variable is present in the libc environment, then returning the non-empty string value of the variable
Handle a fatal CONDITION:
depending on whether *LISP-INTERACTION* is set, enter debugger or die
image.lisp (file)
Return a boolean that is true if the pathname is hidden as per Unix style, i.e. its name starts with a dot.
pathname.lisp (file)
package.lisp (file)
Return a string that identifies the ABI of the current implementation,
suitable for use as a directory name to segregate Lisp FASLs, C dynamic libraries, etc.
The type of Lisp implementation used, as a short UIOP-standardized keyword
package.lisp (file)
Finds the first appropriate file named X in the list of DIRS for I/O
in DIRECTION (which may be :INPUT, :OUTPUT, :IO, or :PROBE).
If direction is :INPUT or :PROBE, will return the first extant file named
X in one of the DIRS.
If direction is :OUTPUT or :IO, will simply return the file named X in the
first element of DIRS that exists. DEPRECATED.
backward-driver.lisp (file)
Return the pathname for the file named X under the system configuration directory for common-lisp. DEPRECATED.
backward-driver.lisp (file)
Return the file named X in the user configuration directory for common-lisp. DEPRECATED.
backward-driver.lisp (file)
source-registry.lisp (file)
read the configuration, initialize the internal configuration variable, return the configuration
output-translations.lisp (file)
source-registry.lisp (file)
If the desired INPUT is a string, return that string; otherwise slurp the INPUT into a string and return that
stream.lisp (file)
What character does the current OS conventionally uses to separate directories?
filesystem.lisp (file)
package.lisp (file)
parse-defsystem.lisp (file)
Return the last character of a non-empty string S, or NIL
utility.lisp (file)
utility.lisp (file)
utility.lisp (file)
Launch program specified by COMMAND,
either a list of strings specifying a program and list of arguments,
or a string specifying a shell command (/bin/sh on Unix, CMD.EXE on
Windows) _asynchronously_.
If OUTPUT is a pathname, a string designating a pathname, or NIL (the
default) designating the null device, the file at that path is used as
output.
If it’s :INTERACTIVE, output is inherited from the current process;
beware that this may be different from your *STANDARD-OUTPUT*, and
under SLIME will be on your *inferior-lisp* buffer. If it’s T, output
goes to your current *STANDARD-OUTPUT* stream. If it’s :STREAM, a new
stream will be made available that can be accessed via
PROCESS-INFO-OUTPUT and read from. Otherwise, OUTPUT should be a value
that the underlying lisp implementation knows how to handle.
IF-OUTPUT-EXISTS, which is only meaningful if OUTPUT is a string or a
pathname, can take the values :ERROR, :APPEND, and :SUPERSEDE (the
default). The meaning of these values and their effect on the case
where OUTPUT does not exist, is analogous to the IF-EXISTS parameter
to OPEN with :DIRECTION :OUTPUT.
ERROR-OUTPUT is similar to OUTPUT. T designates the *ERROR-OUTPUT*,
:OUTPUT means redirecting the error output to the output stream,
and :STREAM causes a stream to be made available via
PROCESS-INFO-ERROR-OUTPUT.
IF-ERROR-OUTPUT-EXISTS is similar to IF-OUTPUT-EXIST, except that it
affects ERROR-OUTPUT rather than OUTPUT.
INPUT is similar to OUTPUT, except that T designates the
*STANDARD-INPUT* and a stream requested through the :STREAM keyword
would be available through PROCESS-INFO-INPUT.
IF-INPUT-DOES-NOT-EXIST, which is only meaningful if INPUT is a string
or a pathname, can take the values :CREATE and :ERROR (the
default). The meaning of these values is analogous to the
IF-DOES-NOT-EXIST parameter to OPEN with :DIRECTION :INPUT.
ELEMENT-TYPE and EXTERNAL-FORMAT are passed on to your Lisp implementation, when applicable, for creation of the output stream.
LAUNCH-PROGRAM returns a PROCESS-INFO object.
launch-program.lisp (file)
utility.lisp (file)
Lexicographically compare two lists of using the function element< to compare elements. element< is a strict total order; the resulting order on X and Y will also be strict.
utility.lisp (file)
Lexicographically compare two lists of using the function element< to compare elements. element< is a strict total order; the resulting order on X and Y will be a non-strict total order.
utility.lisp (file)
Compute the output-files for compiling the Lisp file for the specified action (O . C), an OPERATION and a COMPONENT.
lisp-action.lisp (file)
Where are the system files of the current installation of the CL implementation?
filesystem.lisp (file)
Is the PATHNAME under the current installation of the CL implementation?
filesystem.lisp (file)
return a string that identifies the current Lisp implementation version
From a INPUT-FILE pathname, return a corresponding .lisp source pathname
lisp-build.lisp (file)
Convert a LIST into hash-table that has the same elements when viewed as a set, up to the given equality TEST
utility.lisp (file)
Portable wrapper around LOAD that properly handles loading from a stream.
lisp-build.lisp (file)
Load system definitions from PATHNAME.
NAME if supplied is the name of a system expected to be defined in that file.
Do NOT try to load a .asd file directly with CL:LOAD. Always use ASDF:LOAD-ASD.
find-system.lisp (file)
Portably read and evaluate forms from a STRING.
lisp-build.lisp (file)
Portably return the LOAD-PATHNAME of the current source file or fasl. May return a relative pathname.
lisp-build.lisp (file)
backward-internals.lisp (file)
Shorthand for ‘(operate ’asdf:load-op system)‘. See OPERATE for details.
operate.lisp (file)
Loading multiple systems at once.
operate.lisp (file)
Loading multiple systems at once.
operate.lisp (file)
Load the UIOP debug utility in given PACKAGE (default *PACKAGE*).
Beware: The utility is located by EVAL’uating the UTILITY-FILE form (default *UIOP-DEBUG-UTILITY*).
utility.lisp (file)
Given a system NAME designator, try to locate where to load the system from.
Returns six values: FOUNDP FOUND-SYSTEM PATHNAME PREVIOUS PREVIOUS-TIME PREVIOUS-PRIMARY
FOUNDP is true when a system was found,
either a new unregistered one or a previously registered one.
FOUND-SYSTEM when not null is a SYSTEM object that may be REGISTER-SYSTEM’ed.
PATHNAME when not null is a path from which to load the system,
either associated with FOUND-SYSTEM, or with the PREVIOUS system.
PREVIOUS when not null is a previously loaded SYSTEM object of same name.
PREVIOUS-TIME when not null is the time at which the PREVIOUS system was loaded.
PREVIOUS-PRIMARY when not null is the primary system for the PREVIOUS system.
find-system.lisp (file)
Is X a designator for a location?
configuration.lisp (file)
Is X the specification of a location function?
configuration.lisp (file)
is X a logical-pathname?
pathname.lisp (file)
The recommended way to interact with ASDF3.1 is via (ASDF:MAKE :FOO).
It will build system FOO using the operation BUILD-OP,
the meaning of which is configurable by the system, and
defaults to LOAD-OP, to load it in current image.
operate.lisp (file)
action.lisp (file)
forcing.lisp (file)
This function creates and memoizes an instance of OPERATION-CLASS. All operation instances MUST be created through this function.
Use of INITARGS is not supported at this time.
operation.lisp (file)
Takes arguments like CL:MAKE-PATHNAME in the CLHS, and
tries hard to make a pathname that will actually behave as documented,
despite the peculiarities of each implementation. DEPRECATED: just use MAKE-PATHNAME.
pathname.lisp (file)
Make a pathname component suitable for use in a logical-pathname
pathname.lisp (file)
Take a PATHNAME’s directory, name, type and version components,
and make a new pathname with corresponding components and specified logical HOST
pathname.lisp (file)
package.lisp (file)
Call FUN on all the valid dependencies of the given action in the given plan
Apply FN to each defined system.
FN should be a function of one argument. It will be called with an object of type asdf:system.
system-registry.lisp (file)
Mark a component as preloaded.
find-system.lisp (file)
match CONDITION against any of the patterns of CONDITIONS supplied
utility.lisp (file)
Compare received CONDITION to some pattern X:
a symbol naming a condition class,
a simple vector of length 2, arguments to find-symbol* with result as above,
or a string describing the format-control of a simple-condition.
utility.lisp (file)
Helper for MERGE-PATHNAMES* that handles directory components
pathname.lisp (file)
MERGE-PATHNAMES* is like MERGE-PATHNAMES except that
if the SPECIFIED pathname does not have an absolute directory,
then the HOST and DEVICE both come from the DEFAULTS, whereas
if the SPECIFIED pathname does have an absolute directory,
then the HOST and DEVICE both come from the SPECIFIED pathname.
This is what users want on a modern Unix or Windows operating system,
unlike the MERGE-PATHNAMES behavior.
Also, if either argument is NIL, then the other argument is returned unmodified;
this is unlike MERGE-PATHNAMES which always merges with a pathname,
by default *DEFAULT-PATHNAME-DEFAULTS*, which cannot be NIL.
pathname.lisp (file)
operate.lisp (file)
From a non-wildcard CL pathname, a return namestring suitable for passing to the operating system
filesystem.lisp (file)
When VERSION is not nil, it is a string, then parse it as a version, compute the next version and return it as a string.
version.lisp (file)
A pathname that is as neutral as possible for use as defaults when merging, making or parsing pathnames
pathname.lisp (file)
Given a SYSTEM on which operate is called, the specified FORCE-NOT argument,
and the set of IMMUTABLE systems, extract a hash-set of systems that are effectively forced-not,
or predicate on system names, or NIL if none are forced, or :ALL if all are.
forcing.lisp (file)
Given a SYSTEM on which operate is called and the specified FORCE argument, extract a hash-set of systems that are forced, or a predicate on system names, or NIL if none are forced, or :ALL if all are.
forcing.lisp (file)
session.lisp (file)
Convert the DIRECTORY component from a format usable by the underlying implementation’s MAKE-PATHNAME and other primitives to a CLHS-standard format that is a list and not a string.
pathname.lisp (file)
Signal an error because some FUNCTIONALITY is not implemented in the current version
of the software on the current platform; it may or may not be implemented in different combinations
of version of the software and of the underlying platform. Optionally, report a formatted error
message.
utility.lisp (file)
package.lisp (file)
package.lisp (file)
Pathname to a bit bucket device that discards any information written to it and always returns EOF when read from
stream.lisp (file)
Short for _operate on system_ and an alias for the OPERATE function.
Operate does mainly four things for the user:
1. Resolves the OPERATION designator into an operation object.
OPERATION is typically a symbol denoting an operation class, instantiated with MAKE-OPERATION.
2. Resolves the COMPONENT designator into a component object.
COMPONENT is typically a string or symbol naming a system, loaded from disk using FIND-SYSTEM.
3. It then calls MAKE-PLAN with the operation and system as arguments.
4. Finally calls PERFORM-PLAN on the resulting plan to actually build the system.
The entire computation is wrapped in WITH-COMPILATION-UNIT and error handling code.
If a VERSION argument is supplied, then operate also ensures that the system found satisfies it
using the VERSION-SATISFIES method.
If a PLAN-CLASS argument is supplied, that class is used for the plan.
If a PLAN-OPTIONS argument is supplied, the options are passed to the plan.
The :FORCE or :FORCE-NOT argument to OPERATE can be:
T to force the inside of the specified system to be rebuilt (resp. not),
without recursively forcing the other systems we depend on.
:ALL to force all systems including other systems we depend on to be rebuilt (resp. not).
(SYSTEM1 SYSTEM2 ... SYSTEMN) to force systems named in a given list
:FORCE-NOT has precedence over :FORCE; builtin systems cannot be forced.
For backward compatibility, all keyword arguments are passed to MAKE-OPERATION
when instantiating a new operation, that will in turn be inherited by new operations.
But do NOT depend on it, for this is deprecated behavior.
operate.lisp (file)
session.lisp (file)
The operating system of the current host
bundle.lisp (file)
Is the underlying operating system Genera (running on a Symbolics Lisp Machine)?
Is the underlying operating system MacOS X?
Is the underlying operating system some Unix variant?
Is the underlying operating system Microsoft Windows?
The unique output file of performing OPERATION on COMPONENT
action.lisp (file)
If the desired OUTPUT is not NIL, print the string to the output; otherwise return the string
stream.lisp (file)
Return the configured output-translations, if any
output-translations.lisp (file)
(setf output-translations) (function)
output-translations.lisp (file)
output-translations (function)
Have the output-translations been initialized yet?
output-translations.lisp (file)
package.lisp (file)
package.lisp (file)
package.lisp (file)
Signal an error because some FUNCTIONALITY or its specific implementation on a given underlying platform does not accept a given parameter or combination of parameters. Report a formatted error message, that takes the functionality as its first argument (that can be skipped with ~*).
utility.lisp (file)
Parses BODY into (values remaining-forms declarations doc-string). Documentation strings are recognized only if DOCUMENTATION is true. Syntax errors in body are signalled and WHOLE is used in the signal arguments when given.
utility.lisp (file)
parse-defsystem.lisp (file)
package.lisp (file)
helper to parse-windows-shortcut
From a native namestring suitable for use by the operating system, return a CL pathname satisfying all the specified constraints as per ENSURE-PATHNAME
filesystem.lisp (file)
output-translations.lisp (file)
source-registry.lisp (file)
Coerce NAME into a PATHNAME using standard Unix syntax.
Unix syntax is used whether or not the underlying system is Unix;
on such non-Unix systems it is reliably usable only for relative pathnames.
This function is especially useful to manipulate relative pathnames portably,
where it is of crucial to possess a portable pathname syntax independent of the underlying OS.
This is what PARSE-UNIX-NAMESTRING provides, and why we use it in ASDF.
When given a PATHNAME object, just return it untouched.
When given NIL, just return NIL.
When given a non-null SYMBOL, first downcase its name and treat it as a string.
When given a STRING, portably decompose it into a pathname as below.
#\/ separates directory components.
The last #\/-separated substring is interpreted as follows:
1- If TYPE is :DIRECTORY or ENSURE-DIRECTORY is true,
the string is made the last directory component, and NAME and TYPE are NIL.
if the string is empty, it’s the empty pathname with all slots NIL.
2- If TYPE is NIL, the substring is a file-namestring, and its NAME and TYPE
are separated by SPLIT-NAME-TYPE.
3- If TYPE is a string, it is the given TYPE, and the whole string is the NAME.
Directory components with an empty name or the name "." are removed.
Any directory named ".." is read as DOT-DOT,
which must be one of :BACK or :UP and defaults to :BACK.
HOST, DEVICE and VERSION components are taken from DEFAULTS,
which itself defaults to *NIL-PATHNAME*, also used if DEFAULTS is NIL.
No host or device can be specified in the string itself,
which makes it unsuitable for absolute pathnames outside Unix.
For relative pathnames, these components (and hence the defaults) won’t matter
if you use MERGE-PATHNAMES* but will matter if you use MERGE-PATHNAMES,
which is an important reason to always use MERGE-PATHNAMES*.
Arbitrary keys are accepted, and the parse result is passed to ENSURE-PATHNAME
with those keys, removing TYPE DEFAULTS and DOT-DOT.
When you’re manipulating pathnames that are supposed to make sense portably
even though the OS may not be Unixish, we recommend you use :WANT-RELATIVE T
to throw an error if the pathname is absolute
pathname.lisp (file)
Parse a VERSION-STRING as a series of natural numbers separated by dots.
Return a (non-null) list of integers if the string is valid;
otherwise return NIL.
When invalid, ON-ERROR is called as per CALL-FUNCTION before to return NIL,
with format arguments explaining why the version is invalid.
ON-ERROR is also called if the version is not canonical
in that it doesn’t print back to itself, but the list is returned anyway.
version.lisp (file)
From a .lnk windows shortcut, extract the pathname linked to
Returns a new pathname with same HOST, DEVICE, DIRECTORY as PATHNAME, and NIL NAME, TYPE and VERSION components
pathname.lisp (file)
Are the two pathnames P1 and P2 reasonably equal in the paths they denote?
pathname.lisp (file)
return a pathname with the same host as given PATHNAME, and all other fields NIL
pathname.lisp (file)
Returns a new pathname that corresponds to the parent of the current pathname’s directory,
i.e. removing one level of depth in the DIRECTORY component. e.g. if pathname is
Unix pathname /foo/bar/baz/file.type then return /foo/bar/
pathname.lisp (file)
return the root directory for the host and device of given PATHNAME
pathname.lisp (file)
Perform the compilation of the Lisp file associated to the specified action (O . C).
lisp-action.lisp (file)
Perform the loading of a FASL associated to specified action (O . C), an OPERATION and a COMPONENT.
lisp-action.lisp (file)
Perform the loading of a Lisp file as associated to specified action (O . C)
lisp-action.lisp (file)
is X a pathname that is not a logical-pathname?
pathname.lisp (file)
if X is a logical pathname, use translate-logical-pathname on it.
pathname.lisp (file)
Given a system designator NAME, return the name of the corresponding
primary system, after which the .asd file in which it is defined is named.
If given a string or symbol (to downcase), do it syntactically
by stripping anything from the first slash on.
If given a component, do it semantically by extracting
the system-primary-system-name of its system.
system.lisp (file)
Given a system designator SYSTEM, return T if it designates a primary system, or else NIL.
If given a string, do it syntactically and return true if the name does not contain a slash.
If given a symbol, downcase to a string then fallback to previous case (NB: for NIL return T).
If given a component, do it semantically and return T if it’s a SYSTEM and its primary-system-name
is the same as its component-name.
system.lisp (file)
Print a backtrace
image.lisp (file)
Print a condition after a backtrace triggered by that condition
image.lisp (file)
Variant of PRINC that also calls TERPRI afterwards
stream.lisp (file)
system-registry.lisp (file)
when given a pathname P (designated by a string as per PARSE-NAMESTRING),
probes the filesystem for a file or directory with given pathname.
If it exists, return its truename if TRUENAME is true,
or the original (parsed) pathname if it is false (the default).
filesystem.lisp (file)
Check if a process has yet to exit.
launch-program.lisp (file)
launch-program.lisp (file)
launch-program.lisp (file)
launch-program.lisp (file)
launch-program.lisp (file)
Proclaim the optimization settings in *OPTIMIZATION-SETTINGS*
lisp-build.lisp (file)
Quits from the Lisp world, with the given exit status if provided. This is designed to abstract away the implementation specific quit forms.
image.lisp (file)
Find what the actual command line for this process was.
image.lisp (file)
Print a backtrace, directly accessing the implementation
image.lisp (file)
Open input FILE with option KEYS (except AT),
and read its contents as per SLURP-STREAM-FORM with given AT specifier.
BEWARE: be sure to use WITH-SAFE-IO-SYNTAX, or some variant thereof
stream.lisp (file)
Open input FILE with option KEYS (except COUNT),
and read its contents as per SLURP-STREAM-FORMS with given COUNT.
If COUNT is null, read to the end of the stream;
if COUNT is an integer, stop after COUNT forms were read.
BEWARE: be sure to use WITH-SAFE-IO-SYNTAX, or some variant thereof
stream.lisp (file)
Open input FILE with option KEYS (except AT),
and read its contents as per SLURP-STREAM-LINE with given AT specifier.
BEWARE: be sure to use WITH-SAFE-IO-SYNTAX, or some variant thereof
stream.lisp (file)
Open FILE with option KEYS, read its contents as a list of lines BEWARE: be sure to use WITH-SAFE-IO-SYNTAX, or some variant thereof
stream.lisp (file)
Open FILE with option KEYS, read its contents as a string
stream.lisp (file)