Skip to content

v0.12

Latest

Choose a tag to compare

@mdbergmann mdbergmann released this 29 Oct 17:40
· 21 commits to master since this release

AmiLisp 0.12

Highlights

CL-Amiga is AmiLisp

  • The product, the executable and the Lisp-level names are AmiLisp / amilisp: the AMILISP package (amilisp::..., with CLAMIGA kept as a nickname), the AMILISP_* environment variables, the ARexx port AMILISP, the heap image amilisp.img, the init file .amilisprc / S:.amilisprc, the library directory lib/amilisp/, the FASL cache under S:amilisp/faslcache/. Every old name stays as an alias: *features* carries :amilisp and :amicl next to :clamiga and :cl-amiga, an unset AMILISP_X variable is read as CLAMIGA_X, and the runtime still finds clamiga.img, .clamigarc and lib/clamiga/. The library forks say #+amilisp.
  • The Aminet package is dev/lang/amilisp.lha (it replaces dev/lang/clamiga.lha).

The collector

  • A backend seam behind cl_alloc (gc_backend.h, one allocation cursor, one root walk, one arena iterator) with a GC= build knob, and an Immix-style mark-region collector on it — the default on m68k and MorphOS now (make -f Makefile.cross amiga GC=classic keeps the mark-sweep one); the mark-loop pass marks at the visit with a leaf skip; ext:%heap-stats reports the heap.
  • A thread that comes online during a stop-the-world wait no longer becomes a second initiator (the arm64 CI watchdog).

Clamacs 0.5

  • Projects replace perspectives: Open / Switch / Close Project, Recent Projects, a folder requester, projects.cfg under ENVARC:Clamacs/ (~/.clamacs-projects.cfg on the host); the status line and the REPL's title name the project in front.
  • iedit: edit every occurrence of a symbol at once (C-;), widen or narrow the scope with M-{ / M-} / M-H, the occurrences shown with context on M-n / M-p, marks as colours on MUI.
  • C-c C-k / C-c C-l load on the REPL thread (EXT.DEV REPL-LOAD): the output is streamed, the errors become rows. Load System / Test System pick a system of a .asd that defines several and load the .asd once.
  • The status line names the cursor's package; a file window's title is its full path; a block cursor (View > Block Cursor); an About window; a save into a directory that is not there offers to make it; the right Option (Mac) / right Alt (MorphOS) composes, the left one is Meta; a missing or too old TextEditor.mcc is reported in a requester that names the installed version and the one needed.
  • The README is a user guide now, shipped as clamacs.guide; the build and test notes moved to docs/developing.md. Apache License 2.0.

REPL and runtime

  • The banner names the build, the heap, the collector, the JIT state and the boot image; the REPL colours its roles — a bold blue prompt, WARNING / ERROR badges — with system pens and bold only on an AmigaOS Shell, so it reads on a stock console too.
  • MP:WITH-LOCK-HELD and MP:WITH-RECURSIVE-LOCK-HELD take :TIMEOUT; MP:THREAD, MP:LOCK and MP:CONDITION-VARIABLE are type specifiers (bordeaux-threads); AMILISP:TYPEXPAND-1 / TYPEXPAND, and DEFTYPE's * default for an unsupplied parameter (introspect-environment); LOAD-ASD-SYSTEM / TEST-ASD-SYSTEM take the system's name.

Verification

  • The Vampire 68080 lost-store defect has its record in docs/vampire-68080-lost-stores.md (core 11350 is clean); the probe sources are retired. The cross toolchain stays at gcc 6.5.0b after a GCC 16 evaluation (13 to 28 % faster at -O2, kept as an option in docs/benchmarks.md).
  • The Amiga suite's audio one-shot retries until FS-UAE's audio DMA is warm, AMILISP_SUITE_SKIP leaves out the sections a machine cannot start (AHI on the Vampire), the 68020 suite has a two-hour ceiling, and make test-gc-stress runs the Clamacs suite as its last leg.

Compatibility notes

  • The FASL format stays v40; the cache re-keys to amilisp-0.12-fasl40 (S:amilisp/faslcache/, ~/.cache/common-lisp/amilisp-0.12-fasl40/), so caches from 0.11 rebuild transparently. Heap images are v5 and, as always, per-build.
  • The binaries are bin/*/amilisp, the images amilisp.img and clamacs.img; the Workbench launchers are AmiLisp / Clamacs, AmiLisp-FPU / Clamacs-FPU, AmiLisp-MOS / Clamacs-MOS. A third-party script that addresses the ARexx port CLAMIGA should say AMILISP; an old S:.clamigarc is still read when there is no S:.amilisprc.
  • Clamacs reads an old perspectives file as its projects (projects.cfg from then on); on the editor's port the PERSPECTIVES verb is PROJECTS and RECENT now.

Downloads

amilisp-0.12.0-bin.lha / .zip contain bin/aos3 (68020+, soft-float), bin/aos3-fpu (hard-float, needs an FPU), bin/mos (MorphOS PPC, built natively), each with its amilisp.img and clamacs.img, the runtime library (lib/, FASLs plus sources), the documentation as Markdown and AmigaGuide (README-FIRST.guide first, clamacs.guide is the editor's user guide), the examples and the Workbench icons. Unpack anywhere; no assigns needed.

The binaries are those of snapshot af2bebbb, run on real AmigaOS and MorphOS hardware before the tag. Amiga suite in FS-UAE: 5313/5313 fresh boot, 5303/5303 restored boot (gate run of 2026-10-21); test-extra 18/18 scripts, 13298/0.