Another System Definition Facility
{{Infobox software
| name = ASDF
{{small|Another System Definition Facility}}
| logo =
| developer =
| latest_release_version = 3.3.7
| latest_release_date = {{start date and age|2024|1|28}}{{cite mailing list |last=Goldman |first=Robert |title=ASDF 3.3.7 Released |publisher=asdf-announce |date=2024-01-29 |url=https://mailman3.common-lisp.net/hyperkitty/list/asdf-announce@common-lisp.net/thread/OJFPNKJAYHQQVANXGLQGQO233S2MNO3P/|accessdate=2024-11-01}}
| operating system = Linux, FreeBSD, NetBSD, OpenBSD
| genre =
| license = Expat License
| website = {{URL|https://common-lisp.net/project/asdf/}}
}}
ASDF (Another System Definition Facility) is a package format and a build tool for Common Lisp libraries. It is analogous to tools such as Make and Ant.
History
ASDF was originally designed and written in 2001-2002{{Cite web|url=https://sourceforge.net/p/clocc/mailman/message/6311683/|title = CLOCC - Common Lisp Open Code Collection / Another defsystem proposal}}{{Cite web|url=https://ww.telent.net/2002/2/20/last_monday_i_e_two_days_following_the_previous_entry_here_i_had|title=Last Monday (I.e two days following the previous entry here) I had - diary at Telent Netowrks}} as a successor for a previous program, mk-defsystem, taking advantage of Common Lisp features such as CLOS and pathname support.{{Cite web|url=http://www.cliki.net/asdf|title = CLiki: Asdf}} It has since{{when|date=June 2016}} expanded to become the default build tool for Common Lisp programs.{{Cite web|url=http://smuglispweeny.blogspot.com/2008/12/beginners-guide-to-asdf-ha.html|title = Smuglispweeny: A Beginners Guide to ASDF (Ha!)|date = 7 December 2008}} It is now{{when|date=June 2016}} used as the basis for Common Lisp library build systems, and dependency managers, such as Quicklisp, cl-build, and Debian's Common Lisp Controller. (Note: ASDF-Install is obsolete.{{Cite web|url=https://www.cliki.net/asdf-install|title = CLiki: Asdf-install}})
Most maintained, open-source Common Lisp libraries are buildable and installable through ASDF.
Uses
Installing and building open-source systems defined with ASDF is now a relatively easy thanks to Quicklisp. In cases where the user is forced to install ASDF libraries by hand, as may still happen, the user will be forced to first download and unpack the library in a location recognized by the user's source-registry, which has sensible defaults (at least on Unix) and can otherwise be configured.
Creating and defining systems installable though ASDF is done through the creation and placement of one or more system definition (.asd) files at the root of a directory containing the files that make up the system. The system definition file must contain at least one call to defsystem, a lisp form in which are defined all of the components and dependencies of the system. ASDF is capable of automatically compiling and loading lisp source code, as well as automatically building and linking C programming language (also known as C source code). It contains hooks to allow for definitions of alternate compilers and complex treatment of custom components.
References
{{Reflist}}
External links
- {{official website|https://common-lisp.net/project/asdf/}}
{{Common Lisp}}
Category:Common Lisp (programming language) software
{{compu-library-stub}}