2017-10-20 03:54:31 +02:00
|
|
|
## RETRO
|
2017-10-16 18:09:39 +02:00
|
|
|
|
2017-10-20 03:54:31 +02:00
|
|
|
RETRO is a modern, pragmatic Forth drawing influences from many sources.
|
2017-10-16 18:09:39 +02:00
|
|
|
|
2017-10-20 03:54:31 +02:00
|
|
|
Features:
|
2017-10-16 18:09:39 +02:00
|
|
|
|
2017-10-20 03:54:31 +02:00
|
|
|
- Open Source (ISC License)
|
|
|
|
- Portable (runs on a MISC-style virtual machine)
|
|
|
|
- Small source & binaries
|
|
|
|
- Builds into a single, self contained binary for easy deployment
|
|
|
|
- Sources in literate format, using a Markdown variant
|
|
|
|
|
|
|
|
The language is a Forth dialect drawing influence from some of Chuck
|
|
|
|
Moore's newer ideas. It's clean, elegant, tiny, and easy to grasp and
|
|
|
|
adapt to various uses.
|
2017-10-16 18:09:39 +02:00
|
|
|
|
|
|
|
## Quick Start
|
|
|
|
|
2017-10-17 02:55:31 +02:00
|
|
|
For FreeBSD, macOS, Linux:
|
2017-10-16 18:09:39 +02:00
|
|
|
|
|
|
|
make
|
2017-10-20 03:54:31 +02:00
|
|
|
|
|
|
|
Binaries will be found in the `bin` directory. The ones of interest
|
|
|
|
are:
|
|
|
|
|
2017-10-20 03:58:25 +02:00
|
|
|
rre
|
2017-10-20 03:54:31 +02:00
|
|
|
|
|
|
|
Short for `run retro and exit`, this is the primary interface for RETRO.
|
|
|
|
The `rre` interface is used to run the examples and Atua Gopher and HTTP
|
|
|
|
servers that power forthworks.com.
|
|
|
|
|
|
|
|
`rre` embeds the RETRO image into the binary, making it trivial to copy
|
|
|
|
and deploy.
|
|
|
|
|
2017-10-20 03:58:25 +02:00
|
|
|
repl
|
2017-10-20 03:54:31 +02:00
|
|
|
|
|
|
|
This is a basic `read-evaluate-print-loop` for interactive use. It's
|
|
|
|
intended for quick tests and as an easy starting point for new interfaces.
|
|
|
|
The `repl` interface requires the RETRO image (`ngaImage`) in the current
|
|
|
|
working directory to operate.
|
|
|
|
|
2017-10-20 03:58:25 +02:00
|
|
|
listener
|
2017-10-20 03:54:31 +02:00
|
|
|
|
|
|
|
Wrapping a shell script, some RETRO code, and using the `rre` interface,
|
|
|
|
this is a slightly nicer alternative to the basic `repl` for interactive
|
|
|
|
use.
|
2017-10-20 03:58:25 +02:00
|
|
|
|