Skip to content

CarmineCella/f8

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

f8 (fate)

Introduction

The f8 (fate) scripting language is a hybrid dialect of Lisp, Scheme and TCL; for more info, please see the genealogy and the reference manual (in progress).

It has been designed to be small, easy to expand and easy to embed in host applications. The core of the language is made of a single C++ header (~ 1000 loc in total) and a small library written using f8 itself.

f8 includes several neat features, among which:

  • homoiconicity and introspection
  • tail recursion
  • static and dynamic scoping
  • partial evaluation
  • lambda functions with closures

It can bootstrap itself. For an overview on the language, please see this example; for an example on how to integrate the language in your application, please check the main file.

Processing libraries

f8 comes with several libraries, dedicated to signal processing and machine learning. Among the functionalities there are:

It also comes with a system library that provides several functionalities, including threading and sockets, and it can also send OSC messages.

Building

To compile, from root folder type:

mkdir build

cd build

cmake ..

make

Licensing

The f8 language is released under the BSD 2-Clause license.

(c) 2024 by Carmine-Emanuele Cella