|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 03-May-2022 | - |
| .builds/ | H | 22-Apr-2021 | - | 45 | 41 |
| benchmarks/ | H | 22-Apr-2021 | - | 44 | 29 |
| doc/ | H | 03-May-2022 | - | 18,900 | 13,187 |
| example/ | H | 03-May-2022 | - | 14,555 | 10,995 |
| image/ | H | 22-Apr-2021 | - | 3,675 | 2,956 |
| interface/ | H | 22-Apr-2021 | - | 975 | 779 |
| man/ | H | 22-Apr-2021 | - | 238 | 214 |
| nga-c/ | H | 03-May-2022 | - | 1,730 | 1,524 |
| package/ | H | 22-Apr-2021 | - | 150 | 108 |
| rel/python/ | H | 22-Apr-2021 | - | 13,782 | 13,555 |
| security/ | H | 22-Apr-2021 | - | 42 | 29 |
| tests/ | H | 22-Apr-2021 | - | 2,716 | 2,098 |
| tools/ | H | 22-Apr-2021 | - | 3,750 | 2,798 |
| vm/ | H | 22-Apr-2021 | - | 25,501 | 21,072 |
| .gitattributes | H A D | 22-Apr-2021 | 66 | 3 | 2 |
| GNUmakefile | H A D | 22-Apr-2021 | 8 KiB | 208 | 140 |
| LICENSE | H A D | 22-Apr-2021 | 1.9 KiB | 53 | 41 |
| Makefile | H A D | 22-Apr-2021 | 7.9 KiB | 204 | 137 |
| Makefile.python | H A D | 22-Apr-2021 | 700 | 21 | 16 |
| README | H A D | 22-Apr-2021 | 2.4 KiB | 95 | 63 |
| RELEASE-NOTES | H A D | 22-Apr-2021 | 1.4 KiB | 59 | 40 |
| retroforth.el | H A D | 22-Apr-2021 | 9.5 KiB | 286 | 158 |
README
1RETRO is a modern, pragmatic Forth drawing influences from many
2sources. It's clean, elegant, tiny, and easy to grasp and adapt
3to various uses.
4
5Features:
6
7- Open Source (ISC License)
8- Portable (runs on a MISC-style virtual machine)
9- Small source & binaries
10- Builds into a single, self contained binary for easy deployment
11- Sources in literate format, using a Markdown variant
12
13## Quick Start
14
15For most systems (FreeBSD, NetBSD, OpenBSD, macOS, Linux):
16
17 make
18
19You will need a standard C compiler and `make`.
20
21## Executables
22
23Binaries will be placed in the `bin` directory.
24
25The primary executable is `retro`. This is used for running the
26examples and the Atua (gopher) & Casket (http) servers that
27power forthworks.com.
28
29The `retro` executable embeds the image into the binary, making
30it trivial to copy and deploy.
31
32This interface layer also extends the language with many new
33words and vocabularies, adds scripting, file i/o, floating point,
34and more.
35
36The `retro` executable can handle a variety of command line
37arguments which are covered in the manpage, but the most common
38ones are:
39
40 retro
41
42Starts the *listener*, a basic REPL for interactive use.
43
44 retro filename
45
46This will run the code in the specified file, then exit. This
47is also used to run programs as shell-type scripts using a
48header line like `#!/usr/bin/env retro`.
49
50 retro -i -f filename
51
52This will run the code in the specified file, then start the
53listener.
54
55## Literate Sources
56
57Source files for use with `retro` are written with code in
58fenced blocks:
59
60 commentary here
61
62 ~~~
63 code here
64 ~~~
65
66Anything outside the fenced blocks will be ignored.
67
68## Documentation
69
70The primary documentation is in RETRO-Book.md (and the formatted
71epub.) Additional notes can be found in the `doc` directory.
72
73## Alternative Implementations
74
75In addition to the C and Python implementations, this source
76tree includes additional implementations in C#, Nim, JavaScript,
77and Pascal. These are not as well tested or as feature complete
78as the main implementations, but are provided for your use if
79the standard implementations will not suffice.
80
81## Patreon
82
83I have a Patreon at https://www.patreon.com/_crc for those that
84want to financially support development. All funds raised via
85Pateron are put into development related expenses (server expenses,
86app store fees, hardware).
87
88Thanks go out to my current and past patrons:
89
90- Kiyoshi YONEDA
91- Krinkleneck
92- Rick Carlino
93- Scott McCallum
94- Bartels Jon Randy
95