1## Retro: A Modern, Pragmatic Forth 2 3RETRO is a modern, pragmatic Forth drawing influences from many 4sources. It's clean, elegant, tiny, and easy to grasp and adapt 5to various uses. 6 7Features: 8 9- Open Source (ISC License) 10- Portable (runs on a MISC-style virtual machine) 11- Small source & binaries 12- Builds into a single, self contained binary for easy deployment 13- Sources in literate format, using a Markdown variant 14 15## Quick Start 16 17For most systems (FreeBSD, NetBSD, OpenBSD, macOS, Linux): 18 19 make 20 21You will need a standard C compiler and `make`. 22 23## Executables 24 25Binaries will be placed in the `bin` directory. 26 27The primary executable is `retro`. This is used for running the 28examples and the Atua (gopher) & Casket (http) servers that 29power forthworks.com. 30 31The `retro` executable embeds the image into the binary, making 32it trivial to copy and deploy. 33 34This interface layer also extends the language with many new 35words and vocabularies, adds scripting, file i/o, gopher, and 36floating point math support. 37 38The `retro` executable can handle a variety of command line 39arguments: 40 41 retro -i 42 43Starts the *listener*, a basic REPL for interactive use. 44 45 retro filename 46 47This will run the code in the specified file, then exit. This 48is also used to run programs as shell-type scripts using a 49header line like `#!/usr/bin/env retro`. 50 51 retro -i -f filename 52 53This will run the code in the specified file, then start the 54listener. 55 56 retro -h 57 58Displays a summary of the command line arguments. 59 60Source files for use with `retro` are written with code in 61fenced blocks: 62 63 commentary here 64 65 ~~~ 66 code here 67 ~~~ 68 69Anything outside the fenced blocks will be ignored. 70 71## Documentation 72 73The primary documentation is in RETRO-Book.md (and the formatted 74RETRO-Book.html.) Additional notes can be found in the `doc` 75directory. 76 77## Alternative Implementations 78 79In addition to the C and Python implementations, this source 80tree includes additional implementations in C#, JavaScript, 81and Pascal. These are not as well tested or as feature complete 82as the main implementations, but are provided for your use if 83the standard implementations will not suffice. 84 85## Patreon 86 87I have a Patreon at https://www.patreon.com/_crc for those that 88want to financially support development. All funds raised via 89Pateron are put into development related expenses (server expenses, 90app store fees, hardware). 91 92Thanks go out to my current and past patrons: 93 94- Kiyoshi YONEDA 95- Krinkleneck 96- Rick Carlino 97- Scott McCallum 98