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.10.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.10.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.10.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.10.0 ----------------- CL-Amiga 0.10 - Clamacs, the native MUI editor/IDE, ships in the binary release (bin/aos3/clamacs, bin/mos/clamacs) over the new EXT.DEV command layer behind the ARexx development port (REPL thread, DEBUG attach with BACKTRACE/FRAME/FRAME-EVAL/RESTART, INSPECT/PART/POP over EXT:INSPECT-PARTS, docstrings kept at last, real APROPOS and DESCRIBE with source location); Tier-4 performance work in all three phases - runtime taxes removed (+37.6% sento), the call/unwind protocol rebuilt (OP_CALL_GLOBAL, %HANDLER-CASE, per-thread multiple-value save stack, FLET/LABELS inlining, JIT handler-case template) and fourteen fused superinstructions (FASL v33) - and MP locks/condvars as heap words (+50..360% on the sento matrix over 0.8); AmigaGuide documentation for MultiView (tools/docs/md2guide.lisp, `make guide`, a drift gate in `make test`) shipped with Workbench icons: README-FIRST.guide, cl-amiga.guide and clamacs.guide in the package root, the reference under docs/, verified on AmigaOS 3.2.3 and MorphOS 3.20; the release root laid out in two rows by three IconX launcher icons and a drawer icon, a bare-boot heap image beside every binary, `make install`, `--snapshot` builds; fixes - a THROW out of a cleanup in the JIT no longer resurrects the abandoned error, ASCII-only runtime messages, CLHS 9.2 condition reports, three-element LET bindings rejected, portable FASL source names, S:.clamigarc as the user init file, the ARexx port down at exit, LOAD-TIME-VALUE in local functions keeps the closure, bignum scratch off the stack buffers, fill-pointer strings as string-stream source and EQUAL hash key; trunk/bench-general.lisp portable workload suite. Amiga suite in FS-UAE: 4714/4714 on the last recorded restored-boot run of the cycle; MorphOS release binary boots from its image on real hardware. License: Apache 2.0. Source code, documentation and issue tracker: https://github.com/mdbergmann/cl-amiga