We revived Poplog — natively on Apple Silicon, Raspberry Pi 5, and RISC-V
IoTone brought Poplog — the classic multi-language AI development environment — natively onto Apple Silicon, Raspberry Pi 5, and RISC-V, then added a fifth language (Forth), a faithful ELIZA, an experimental native graphics backend, a deep set of porting notes, and a full published benchmark suite.

We just published one of our most ambitious open-source efforts yet: a native revival of Poplog.
Poplog is a piece of AI history — the University of Sussex’s multi-language development environment, built around fast incremental compilers for four interactive languages (Pop-11, Prolog, Common Lisp, Standard ML) that share one virtual machine and one saved image and interoperate freely. It taught a generation of AI and cognitive science, then quietly fell off the modern platform map. We brought it back to the silicon people actually run in 2026 — and then took it further than the original ever went.
The work stands on W. Hebisch’s Poplog sources, with a great deal of history reconstructed by hand from the Internet Archive and scattered corners of the web. It was carried out with Claude as a pair-porting partner — down into the assembler, the frame contracts, and the instruction-cache bugs.
Three new native ports
Poplog emits real machine code, so each port is a code generator, not a recompile:
- Apple Silicon / macOS (arm64) — a native Mach-O port, self-hosting, all four languages, C↔Pop callbacks, ad-hoc signed with no entitlements.
- Raspberry Pi 5 / AArch64 Linux — validated on the Pi 5, written to the generic
armv8-abaseline so it travels to other ARM64 boards. - RISC-V / riscv64 Linux — a native RV64GC port, self-hosting on a StarFive VisionFive (dual SiFive U74), validation suite 14/14.
Four new things on top of the port
- A fifth language — Forth. A first-class Poplog subsystem where colon definitions compile to native machine code through the incremental compiler (not threaded interpretation). Testbench 21/21 on macOS arm64 and RISC-V.
- A real ELIZA. A faithful implementation of Weizenbaum’s original 1966 DOCTOR algorithm — keyword ranking, decomposition/reassembly, reflection, and memory — in Pop-11, validated against the original 1966 script.
- Experimental native graphics. An optional Dear ImGui backend — Metal + Cocoa on macOS, SDL3 + OpenGL3 on macOS or Linux (Wayland/X11/KMS, plus headless software rendering for CI) — with the classic
rc_graphicturtle library ported on top so old Pop-11 graphics code runs unchanged. - A published benchmark suite. Engine micro-benchmarks as the median of 30 runs with bootstrap confidence intervals, across five machines — Intel i7, Apple M2, Apple M5 Pro, Raspberry Pi 5, and the RISC-V VisionFive — with Python and Perl baselines.
We also wrote the porting knowledge down: a porting recipe, a guide to hosting a new language on the VM, the AArch64 frame contract, RISC-V notes, and forensic write-ups of individual codegen bugs — so the next architecture is a documented walk, not an archaeology dig.
The whole system builds and bootstraps from source via a self-contained Nix flake (nix build .#poplog). Source, ports, docs, and benchmarks on github.com/IoTone/poplog.