abe linc Essay

Submitted By salamschool
Words: 816
Pages: 4

ability to create standalone executables. It was pre-released as 2.27 on February 1st 2013, released as 3.0.0 on May 15th 2013, with further stable releases since.

What it is
ASDF stands for Another System Definition Facility, in the continuity of the Lisp DEFSYSTEM of yore.

ASDF 3 contains two parts: asdf/defsystem and uiop.

asdf/defsystem is a tool to describe how Lisp source code is organized in systems, and how to build a system in term of actions that depend on previous actions.

Typical actions consist in compiling a Lisp source file (if not up to date) and loading the resulting compilation output (if not both loaded and up to date). And you must typically compile and load files that define packages, macros, variables, before you may compile and load other files that use them.

It is roughly what Common Lisp hackers use to build and load software where C hackers might use GNU Make to build software and ld.so to load it.

asdf/defsystem is the part that people usually refer to as ASDF, with uiop being only a supporting library, that happens to be distributed at the same time, by necessity.

uiop also known as asdf/driver, the Utilities for Implementation- and OS- Portability, is a Common Lisp portability library and runtime support system that helps you write Common Lisp software in a portable way.

In addition to many general-purpose Lisp utilities, it notably provides portable abstractions to gloss over implementation quirks, support hot-upgrade of code, manipulate pathnames, create programs, use command-line arguments, access the environment, use the filesystem, call other programs and parse their output, compile Lisp code, muffle conditions, or configure Lisp software. See its README.

uiop is distributed as part of the ASDF, its source code is transcluded in the single-file asdf.lisp being distributed and the precompiled fasls provided by Lisp implementations. ASDF relies heavily on it for its portability layer and runtime support, particularly so as to handle pathnames and filesystem access. uiop is useful on its own and can also be compiled and distributed separately.

What it is not
ASDF will not download missing software components for you. For that, you want Quicklisp, that builds upon ASDF, and is great for pulling and installing tarballs of packages you may depend upon; we also recommend clbuild, that now builds upon Quicklisp, as a great tool for pulling from version control packages you need to modify or want to contribute to. We recommend you should not use asdf-install anymore, as it is an older similar piece of software that is both unmaintained and obsolete.

If you're unsatisfied with ASDF, other somewhat actively maintained build systems for Common-Lisp that may or may not satisfy you include: François-René Rideau's XCVB (trying to build object and image files deterministically and in parallel, has fallen behind ASDF since 2012), or its polar opposite, Drew McDermott's YTools (trying to maintain coherence of the current Lisp image at a fine grain), Dmitriy Ivanov's ASDlite (a somewhat improved incompatible variant of ASDF 1, less featureful than ASDF 3), or Alastair Bridgewater's one-package-per-file quick-build (similar to faslpath below, also reimplemented as the ASDF extension asdf-package-system). Older systems that…