HN
Today

Clamiga: Common Lisp for the Amiga

A developer has unleashed Clamiga, a Common Lisp implementation designed to run on vintage Amiga computers, including 68k and MorphOS. This ambitious project impressively bridges decades of computing by enabling modern Lisp development on severely constrained hardware. It features a bytecode VM, compacting GC, and a m68k JIT, allowing for interactive Lisp development on beloved retro platforms with GUI bindings and Quicklisp support.

97
Score
12
Comments
#7
Highest Rank
17h
on Front Page
First Seen
Aug 16, 4:00 PM
Last Seen
Aug 17, 10:00 AM
Rank Over Time
9781010111616151516162223252730

The Lowdown

Clamiga, a new Common Lisp implementation, aims to bring modern Lisp development to classic Amiga hardware. Developed by Manfred Bergmann, it supports AmigaOS 3 on 68k and MorphOS natively on PowerPC, with macOS and Linux builds facilitating development.

  • Motivation: Existing high-performance Common Lisp implementations are too resource-intensive or lack 68k support, leaving Amiga users without a modern Lisp environment.
  • Technical Architecture: Clamiga employs a single-pass compiler to bytecode, executed by a stack-based VM. Key design choices for Amiga constraints include tagged 32-bit values, a compacting garbage collector, and architecture-agnostic bytecode for cross-platform FASL files.
  • Memory Efficiency: The core Common Lisp environment boots with just 0.5 MB of heap, utilizing features like packed byte vectors and precompiled FASL files to manage limited Amiga memory effectively.
  • Performance Enhancements: A m68k JIT for 68020+ Amigas translates bytecode to native machine code, providing significant speedups for compute-bound tasks. The MorphOS build, a native PPC binary, relies on its fast VM, making the full Quicklisp ecosystem practical.
  • Modern Features: Clamiga supports the full numeric tower, a REPL for interactive development, a debugger, and an inspector. It also provides Lisp bindings for native AmigaOS GUI APIs like Intuition, Graphics, and GadTools.
  • Development Workflow: The project supports SLYNK protocol for Emacs integration, allowing development and testing on faster host machines (macOS/Linux) before deploying to Amiga.
  • Status & Roadmap: Clamiga is stable and capable of running real-world libraries, with ongoing work towards full ANSI conformance, more complete AmigaOS API interfaces, and performance improvements.

Clamiga represents a significant effort to inject modern programming capabilities into classic hardware, providing a robust, interactive Common Lisp environment for the Amiga community that was previously unavailable.

The Gossip

Naming Niggles and Nods

A prominent discussion centered on the project's name, 'Clamiga,' with many commenters noting its unfortunate phonetic similarity to 'chlamydia' in various languages. This led to a flurry of alternative name suggestions, such as 'AmiColi,' 'AmiLisp,' or 'AmigaCL,' often accompanied by anecdotes of other poorly chosen product names. There was also a minor query regarding its categorization under 'dev/basic' on Aminet.

Amiga Appreciation and Application

Many users expressed enthusiasm and appreciation for the project, particularly for bringing modern Common Lisp to the Amiga platform. The native MorphOS support was a significant highlight, prompting some to consider reviving their old G5 systems. Commenters also pointed out practical aspects, such as where to download the software, and noted the impressive heap limits and memory efficiency compared to commercial Lisp implementations.