A small, case-insensitive, 64-bit Forth built on a minimal C kernel. It runs on Linux, in the browser, on Android, on microcontrollers (ESP32, Pico, GBA) and on bare metal (Raspberry Pi, x86-64 PC via UEFI).
Site: luginf.github.io/lugforth - Manual - Word reference
sudo apt install ninja-build
./configure.py
ninja posix
out/posix/lugforth
At the prompt, info (or help) shows the revision, the memory and a few starting words.
Binaries (Linux tarball and AppImage, Android APK) are attached to each release. Builds for the other targets are in the manual.
- Interpreter: line editing with history and Tab completion, a pager for long output, a console
window with a TrueType font (
lugforth --gui). - Editors:
ed, a text editor in Forth with syntax highlighting, andwrithdeck, a writing editor (focus mode, Hemingway, daily goal, outline or TOC). - SDL2 words: graphics, images, sound, ABC tunes, MIDI and an FM synthesizer.
- Examples: breakout, roguelike, tetris, snake, minesweeper, mastermind, 2048, 3D wireframes, an inference
engine, a Uxn/Varvara virtual machine that runs
.romfiles. - Bare metal: the same prompt, screen, keyboard and files on a Raspberry Pi 3/4 and on a PC booted from a USB stick, with no operating system.
Details of each are in the manual.
- docs/MANUAL.md: a tutorial in the spirit of Starting Forth, then usage, editors, examples, ports, building
- docs/WORDS.md: reference of the words
- docs/dev/: notes for developers (architecture, features, ports, pitfalls, ideas)
- examples/README.md, ports/rpi/README.md, ports/efi/README.md
- uEforth by Bradley D. Nelson: Lugforth started as a fork of it. It is unofficial and not endorsed by him.
- eForth Windows by Marc Petremann: 2048, the 3D library and the inference engine are ports of his work.
- Forth is Fun by Eric Forgeot (garvalf): forthtoise, the turtle graphics (
examples/graphics/sdl2_turtle.fs) - r3forth by Pablo Hugo Reda (phreda): tetris, snake and minesweeper are rewritten after his games.
- WrithDeck: the model of
writhdeck.
Credits and licenses of the added code: NOTICE.