Soufflé 2.4 Released
Hello! We have a new open-source release of Soufflé for you. Key features are: New option –generate-many to split the generated C++ Code into multiple files (julienhenry) Purge input and intermediate relations (adamjseitz) Emscripten Build (philzook58) Improved parallel load balance in the interpreter (quentin) User defined aggregate (julienhenry)...
Building a Join Optimizer for Soufflé
The paper Building a Join Optimizer for Soufflé has been published in LOPSTR 2022: The 32nd International Symposium on Logic-Based Program Synthesis and Transformation. The paper describes the design of a feedback-directed join optimizer for compiling Datalog engines such as Soufflé. The join optimizer automatically finds high-performance join orders...
Towards Elastic Incrementalization for Datalog
The paper Towards Elastic Incrementalization for Datalog has been published in PPDP 2021: 23rd International Symposium on Principles and Practice of Declarative Programming. A recorded talk is available here. The paper describes a framework for elastic incremental Datalog evaluation, allowing for the result of a Datalog program to...
Slides for Lectures and Talks
Please feel free to use our Souffle slides for your lectures and talks. The slides are in PowerPoint format and in pdf format.
An efficient interpreter for Datalog by de-specializing relations
This is the paper An efficient interpreter for Datalog by de-specializing relations. It was published in the PLDI 2021: Proceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation. The paper describes several optimization approaches to implement an efficient interpreter for Datalog language and presents...
Automatic Index Selection for Inequalities
Sam Arch has extended the existing automatic index selection technique in Soufflé to support indexed inequalities. An Honours thesis can be found here, and the corresponding slides can be found here. The work investigates two competing automatic index selection techniques designed to accelerate rules with inequality constraints. We...
Soufflé 2.0.2 Released
Hello! We have a new open-source release of Soufflé for you. Key features are Fix OSX user library paths (mmcgr) Fix concurrent profling (mmcgr) Fix indirect index use (aeflores) Fix ‘as’ type conversion (darth-tytus) Fix output of hint statistics (azreika) Implement Record/ADT user-defined functors (darth-tytus) Optimise ADT encoding (darth-tytus)...
Soufflé 2.1 Released
Hello! We have a new open-source release of Soufflé for you. Key features are Choice domain (@XiaowenHu96) Proper treatment of escape codes in symbol constants (@lyxell) CSV output has rfc4180 flag for delimiters (@quentin) Fix UDF syntax (@TomasPuverle) Add no_magic/no_inline relational qualifiers (@sharon-wang) Retire $; replace by autoinc() (@b-scholz)...
Soufflé 2.0.0 Released
Hello! We have a new open-source release of Soufflé for you. Key features are Added --legacy flag to allow use of legacy options (darth-tytus) Added --show [...] flag to show various extra bits of information for debugging/optimising (lyndonhenry) Query interface for provenance (yuli6313) Removed MPI...
An Efficient Interpreter for Soufflé
Xiaowen Hu has implemented an efficient interpreter for Soufflé. An Honours thesis can be found here, and the corresponding slides can be found here. The work investigates various techniques to implement a high performance interpreter for Soufflé, so that the performance gap between Soufflé and synthesised C++ Soufflé...
See more posts from the News Archive.