You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

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 microcontrollers
  • make msp430: TI MSP430 microcontrollers