Soufflé is a translator of declarative Datalog programs into the C++ language. Soufflé is used as a domain-specific language for static program analysis, over large code bases with millions of lines of code. Soufflé aims at producing high-performance C++ code that can be compiled with the native compiler on the target machine.
- Efficient translation to parallel C++ of Datalog programs
- Extended semantics of Pure Datalog, e.g., permitting unbounded recursions with numbers
- Simple component model for Datalog specifications
- Recursively defined record types for tuples
Use git to obtain the source code of Soufflé.
$ git clone git://github.com/souffle-lang/souffle.git
The URL of the Soufflé home page is:
There is no mailing list to talk about Soufflé at the moment. It will be established soon.
Follow the steps below to compile and install Soufflé on a UNIX system:
-
G++ 4.8 or greater is recommended to compile Soufflé.
-
Run
sh ./bootstrap
to generate configure files -
For Linux users, skip this point. MAC OS X does not have OpenMP nor a bison version 3.0.2 or higher installed. We recommend brew to install the required tools to build Soufflé. Run the following commands prior to executing
./configure
:brew update
brew reinstall gcc --without-multilib
brew install bison
export CXX=/usr/local/bin/g++-5
export CXXFLAGS=-fopenmp
export SOUFFLECPP=/usr/local/bin/cpp-5
export BISON=/usr/local/opt/bison/bin/bison
To compile Soufflé with CLANG following commands are requried priori executing
./configure
:brew update
brew install bison
brew install gcc
brew install clang-omp
export CXX=clang-omp++
export CXXFLAGS=-fopenmp
export SOUFFLECPP=/usr/local/bin/cpp-5
export BISON=/usr/local/opt/bison/bin/bison
-
Run
./configure
-
Run
make
to build the executable of Soufflé -
Test the executable with
make check
to check whether the compilation of Soufflé succeeded. -
Run
make install
This command will create the directories and install files in
${DESTDIR}${prefix}
for system-wide use in your system.
See LICENSE.