Clamiga es una nueva implementación de Common Lisp, creada por el desarrollador Manfred Bergmann, pensada para funcionar en la familia de ordenadores Amiga —clásico AmigaOS 3 sobre procesadores 68k y MorphOS en PowerPC—, además de en macOS y Linux, donde tiene lugar la mayor parte del desarrollo. Su nombre surge de la contracción de "CL-Amiga" (Common Lisp para Amiga) y aprovecha el significado de "amiga" en español y portugués como guiño a la comunidad.
Common Lisp es un lenguaje veterano, estandarizado en 1994, que sigue en uso industrial y académico. Dispone de un sistema de objetos con despacho múltiple (CLOS), un sistema de condiciones más rico que las excepciones convencionales, macros que permiten extender el lenguaje y un estilo de desarrollo interactivo basado en imágenes. Aunque existen implementaciones consolidadas como SBCL, CCL, ECL o Clasp, ninguna ofrecía soporte para Amiga.
Clamiga cubre ese hueco con una máquina virtual de bytecode escrita en C portátil, sin dependencias externas (ni libffi ni LLVM), y un compilador de paso único que traduce S-expressions a bytecode. Características destacadas:
- Valores etiquetados de 32 bits y punteros relativos, que mantienen el modelo de objetos compacto.
- Recolector de basura con compactación, para evitar la fragmentación en máquinas con 4 u 8 MB de RAM.
- Bytecode independiente de la arquitectura, lo que permite que los archivos FASL sean intercambiables entre AmigaOS 3 y MorphOS.
- JIT para m68k (68020+) que traduce bytecode a código nativo para mejorar el rendimiento.
- Núcleo completo de Common Lisp (CLOS, torre numérica, format, loop, sistema de condiciones, ASDF) arrancando en unos 0,5 MB de heap.
- Compatibilidad con Quicklisp, la biblioteca con más de 1.500 librerías, mediante shims.
El proyecto ilustra cómo un lenguaje de programación clásico puede adaptarse a entornos con recursos muy limitados sin renunciar a las herramientas modernas del ecosistema Lisp.
