1.1 KiB
foci
foci
is a small Forth implementation that prioritizes performance and portability. This threaded Forth implementation uses CPU registers and native execution to maximize efficiency.
Register usage is the only platform-specific requirement; otherwise, foci
is written in 100% portable C. There is active support for x86_64, ARM Cortex-M, and MSP430 architectures.
foci
compiles to a binary object that can easily be linked into another application. Code size is less than 5 kB, while RAM usage is in the hundreds of bytes (primarily influenced by the configured stack and dictionary sizes).
Available words
Many words from core ANS Forth are supported. See compat.txt
for a list.
Some features are not expected to be implemented:
- Pictured numeric output, e.g.
<# # #>
- Double-width arithmetic
Build instructions
Run make
with a supported architecture target:
make x86-64
: x86_64 processors (i386 is not supported)make arm-cm4
: ARM Cortex-M4 microcontrollersmake msp430
: TI MSP430 microcontrollers