| Readme: | Short: Amiga specific Common Lisp Author: manfred.bergmann@me.com (Manfred Bergmann) Uploader: mb software-by-mabe com (Manfred Bergmann) Type: dev/lang Version: 0.11.0 Requires: 68020+, 1 MB RAM (more for big programs); FPU for bin/aos3-fpu Architecture: m68k-amigaos >= 3.0.0; ppc-morphos URL: https://github.com/mdbergmann/cl-amiga
CL-Amiga 0.11.0 - Common Lisp for AmigaOS 3 and MorphOS =======================================================
A Common Lisp built for the Amiga: a compact bytecode VM in portable C with an optional native m68k JIT, CLOS with the MOP, Gray streams, threads, sockets with TLS (AmiSSL), an FFI with Lisp callbacks, and bindings for Intuition, Graphics, GadTools, ReAction, MUI, BOOPSI, audio.device, AHI, iffparse and DOS packets, plus generated 1:1 bindings for every library of the NDK 3.2 and the MorphOS SDK. ASDF and Quicklisp are included. Small programs run in 1 MB of RAM, and the same compiled FASLs run unchanged on 68k and PowerPC.
Getting started --------------- 1. Unpack anywhere - no installer, no assigns: lha x clamiga.lha Work:
2. Pick your binary: bin/aos3/clamiga AmigaOS 3.x, any 68020+ (floats in software) bin/aos3-fpu/clamiga AmigaOS 3.x with an FPU (68881/882, 040/060, Vampire, PiStorm) - crashes without one bin/mos/clamiga MorphOS (PowerPC, native)
3. Start it from a Shell with a 128K stack: stack 131072 cd Work:clamiga-0.11.0 bin/aos3/clamiga
4. At the prompt: (format t "Hello, Amiga!~%") (require "amiga/intuition") ; the OS bindings load on demand (load "examples/amiga/gfx/bouncing-lines.lisp") (quit)
5. Going further: bin/aos3/clamiga --heap 16M ; more heap for bigger programs bin/aos3/clamiga --load examples/amiga/reaction/listbrowser.lisp examples/ holds ready-to-run programs (ReAction and MUI GUIs, graphics, audio, IFF, ARexx). The documentation is AmigaGuide with icons: README-FIRST.guide (the binaries, the heap image, the libraries, and how Clamacs connects to clamiga's ARexx port), cl-amiga.guide (the manual), clamacs.guide (the editor), and docs/README.guide, the package reference (EXT, MP, FFI, GRAY, MOP and the AMIGA.* bindings).
Changes in 0.11.0 ----------------- CL-Amiga 0.11 - Clamacs rewritten in Common Lisp: the editor/IDE is a clamiga instance of its own, shipped as a clamacs.img heap image beside every binary plus lib/clamacs/ FASLs, with the MUI frontend on the Amiga and a native host frontend (Clamacs.app on macOS, Linux) over the new TCP development port; EXT.DEV grew DEFINE-RAW-COMMAND, COMPLETE's contains fallback, ASDF load/test of a system by its .asd, MP:*THREAD-DEATH-HOOKS* and a respawned REPL; standalone executables - (ext:save-image f :executable t :toplevel ... :quit t) writes one file that is the program, from a Shell or a Workbench icon, and a SAVE-IMAGE refusal names the worker threads in the way; JIT - an AArch64 backend for arm64 hosts, and on m68k direct native-to-native calls through call-site cells, &key/&optional/&rest prologues, arity up to 255, tail calls, native frames with line numbers, lazy compilation when a function turns hot (FASL v39), GC/interrupt polls in native loops; heap images reopen Amiga library bases after a restore, store source-file names once (image v5) and hand memory back on a failed start; GC compaction forwards through a live-granule bitmap (the low-end 68020 stall), fresh keywords and the reader's line table survive moves; MP shutdown reaps and stops workers with clock-bounded waits; a startup CPU store self-test and the probes that pinned the Vampire 68080 lost store; compiler fixes (DEFVAR init-once v38, &optional supplied-p vs &rest, MACROLET in the exit analysis, literal identity through COMPILE-FILE v36, struct-layout checked FASLs v35); AmigaDOS "/" as the parent, ~F/~$ justification, CELL-ERRORs for undefined functions and unbound variables, FOREIGN-TO-STRING to the NUL, :WINDOWS; the binary release packs all three builds behind six Workbench launcher icons (CLAmiga/Clamacs, -FPU, -MOS) in a 3 x 3 root grid, with --snapshot [--with-mos] builds; Amiga suite in FS-UAE: 5274/5274 restored-boot (soft-float and FPU; fresh boot 5283/5284, the FS-UAE-only audio-short-sample flake), test-extra 18/18 scripts, 13290/0.
License: Apache 2.0. Source code, documentation and issue tracker: https://github.com/mdbergmann/cl-amiga
|
12:40