ff is a general purpose scripting language with dynamic and gradual typing.
It was developed to be easily used within C++ applications (which also means bindings for other languages should be fairly easy to implement).
- Linux or MacOS environment (WSL works too)
C++
compiler that supportsc++17
(tested withapple clang 11.0.3
,gcc 10.2.0
andgcc 9.4.0
)python3
(tested with3.10.0
)
- Clone the repo
cd ff
git submodule update --init --recursive
./make.py
Executable will appear in target/release/bin
, headers and libraries in target/release/include
and target/release/lib
respectively.
For more verbose output use -v
To see output of the commands, use -o
To make a debug build, use -p debug
option, you can also provide a (comma separated) list of features with --feature FEATURES
.
Supported features: LOG_STDOUT_ONLY
.
Supported debug features: MEM
, REF
, EVAL
, DISASM
, TOKENS
, TREE
, TRACE
, SCOPES
, GLOBALS
, NOCATCH
.
Build system keeps track of changed source files, and on subsequent builds will only recompile files that have changed. To force recompilation of everything, use -f
flag.
To run tests execute ./make.py test
(or directly with ./tests/run.sh
)
Usage of run.sh
: ./tests/run.py [OPTION] PROFILE [TEST...]