ASDF (otra facilidad de definición del sistema) es un formato de paquete y una herramienta de compilación para bibliotecas Common Lisp . Es análogo a herramientas como Make y Ant .
Lanzamiento estable | 3.3.4 / 14 de febrero de 2020 [1] |
---|---|
Repositorio | |
Sistema operativo | Linux , FreeBSD , NetBSD , OpenBSD |
Licencia | Licencia de expatriado |
Sitio web | common-lisp |
Historia
ASDF fue diseñado y escrito originalmente en 2001-2002 [2] [3] como sucesor de un programa anterior, mk-defsystem , aprovechando las características de Common Lisp como CLOS y soporte de nombre de ruta. [4] Lo ha hecho desde [ ¿cuándo? ] ampliado para convertirse en la herramienta de compilación predeterminada para los programas Common Lisp. [5] Es ahora [ ¿cuándo? ] utilizado como base para los sistemas de construcción de bibliotecas Common Lisp y administradores de dependencias, como Quicklisp , cl-build y el controlador Common Lisp de Debian . (Nota: ASDF-Install es obsoleto. [6] ) La mayoría de las bibliotecas Common Lisp de código abierto mantenidas se pueden compilar e instalar a través de ASDF.
Usos
La instalación y construcción de sistemas de código abierto definidos con ASDF ahora es relativamente fácil gracias a Quicklisp . En los casos en que el usuario se vea obligado a instalar las bibliotecas ASDF a mano, como aún puede suceder, el usuario se verá obligado a descargar y descomprimir primero la biblioteca en una ubicación reconocida por el registro de fuentes del usuario, que tiene valores predeterminados sensibles (al menos en Unix) y se puede configurar de otro modo.
La creación y definición de sistemas instalables a través de ASDF se realiza mediante la creación y ubicación de uno o más archivos de definición del sistema (.asd) en la raíz de un directorio que contiene los archivos que componen el sistema. El archivo de definición del sistema debe contener al menos una llamada a defsystem, un formulario lisp en el que se definen todos los componentes y dependencias del sistema. ASDF es capaz de compilar y cargar automáticamente el código fuente lisp, así como de crear y vincular automáticamente el lenguaje de programación C (también conocido como código fuente C). Contiene ganchos para permitir definiciones de compiladores alternativos y un tratamiento complejo de componentes personalizados.