This is an implementation of RetroForth and a small virtual computer (named nga) to run it.
Nga is the oldest of the three virtual machines designed for RetroForth. It's been in continual use for over five years, and derives from Ngaro, which was in use for over a decade before Nga began.
The RetroForth running on Nga is the largest of the three models and (when used with the C implementation of nga) has a variety of useful extensions to the core language including file i/o, unix syscall interface, ffi, floating point, rng, block storage, malloc, signals, multiple virtual processor cores, scripting interface, and clock.
Features:
* 30 instructions
* four instructions per memory cell
* subroutine threaded retroforth imagen
* many vm implementations: assembly, c, c++, c#, javascript, nim, pascal, python, rust, swift
* literate source files
* numerous examples
The source and documentation are distributed under the ISC license.
retro.c (amalgamation, for unix-like systems)
latest.tar.gz (latest source snapshot)
Currently the full source tree can only be obtained via either Fossil or git:
# fossil
fossil clone http://fossils.retroforth.org:8000/nga retro-nga.fossil
mkdir retro-nga; cd retro-nga
fossil open ../retro-nga.fossil
# git
git clone https://git.sr.ht/~crc_/retroforth
RetroForth implementations run on three virtual computers: ilo, napia, and nga. The nga system is the largest of the three.