/souffle-addon

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

A simple add-on dynamic library for more complex arithmetic operations in Souffle-Datalog (https://souffle-lang.github.io).

Current coverage:

  • 256-bit arithmetic (for crypto)

Dependencies:

Functor compilation is rellying on the underlying word size of the installed souffle binary. Due to that, our Makefile is parametrized via its WORD_SIZE parameter. The make WORD_SIZE=$(souffle --version | sed -n 3p | cut -c12,13) command will build the functor with the correct word size (for latest souffle versions). Usage:

$ make WORD_SIZE=32|64          # builds all, sets libfunctors.so as a link to libsoufflenum.so
$ export LD_LIBRARY_PATH=`pwd`  # or wherever you want to put the resulting libfunctors.so

and use a Souffle program with the num256functors.dl definitions. For compiled execution, libfunctors.so (i.e., at least a link to the real .so) should be in the compilation directory.

A sample Souffle client program can be found under directory dlexample.