Retro Forth

Retro is a modern, pragmatic set of Forths drawing influence from many sources. It clean, elegant, tiny, easy to grasp, and adaptable to many tasks.

It's not a traditional Forth. Drawing influence from colorForth, it uses prefixes to guide the compiler. From Joy and Factor, it uses quotations (anonymous, nestable functions) and combinators (functions that operate on functions) for much of the stack and flow control. It also adds vocabularies for working with strings, arrays, and other data types. Source files are written in Unu, allowing for simple, literate sources.

The source and documentation are distributed under the ISC license.

Community

#retro on irc.libera.chat

#retro:libera.chat (Matrix)

IRC Logs

Bug Reports

The Systems

RetroForth / nga

Retro runs on Nga, a tiny virtual machine emulating a MISC style processor. Implementations of this are included in 65c816 Assembly, C, C++, C#, JavaScript, Nim, Pascal, Python, Rust, Swift, and Retro.

This is the oldest active branch of development, and is recommended for most users.

Download

New releases are made in January and July.

The current release is 2022.1

Source & Docs

Development Snapshots

These are updated hourly.

Latest Source

Latest Documentation (epub)

Latest Documentation (text)

retro.c (Amalgamation for BSD, Linux, Haiku, Windows)

Repositories

Fossil:

http://forthworks.com:8000

Git:

https://git.sr.ht/~crc_/retroforth

https://github.com/crcx/retroforth.git

Resources

Examples

RetroForth / napia

Napia presents a new target, fitting between ilo and nga. It's based on the ilo design, but adds in multiple processor cores, per-core stacks and registers, and additional i/o functionality.

Retro/napia is under development and has not yet seen a stable release.

napia.retroforth.org

RetroForth / ilo

Running on ilo, a simple, lightweight virtual computer, this offers a smaller Forth implementation, significantly reduced memory and processor requirements (it's been run on an emulated 8088/8086 w/384k RAM), and a small set of i/o devices.

Retro/ilo is under development and has not yet seen a stable release.

ilo.retroforth.org