Souffle Versions Save

Soufflé is a variant of Datalog for tool designers crafting analyses in Horn clauses. Soufflé synthesizes a native parallel C++ program from a logic specification.

2.4.1

5 months ago

Synopsis

  • This is a very minor release that contains various fixes.
  • Introduce string concatenation with binary + when both operands are symbols.
  • Introduce debug_delta to debug the delta relation of recursive relations in https://github.com/souffle-lang/souffle/pull/2414

What's Changed

New Contributors

Full Changelog: https://github.com/souffle-lang/souffle/compare/2.4...2.4.1

2.4

1 year ago

Synopsis

  • 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)
  • Improved loading of CSV (@strRM, @bmeck)
  • Configurable warnings (@langston-barrett)
  • Performance improvements for regex matching (@strRM)
  • Expose main driver interface (@quentin)
  • Allow linking against multiple compiled Souffle programs (@ruricolist, @quentin)
  • Enhance type error understanding (@Gueckmooh)

What's Changed

New Contributors

Full Changelog: https://github.com/souffle-lang/souffle/compare/2.3...2.4

2.3

1 year ago

Synopsis

  • Auto-scheduler for rules (SamArch27)
  • Better scheduling heuristic (julienhenry)
  • Improved component system (quentin)
  • Improved type-system for record alias (quentin)
  • Introducing include directives (quentin)
  • Optional use of libffi (quentin)
  • New packaging mechanism using souffle-lang.github.io (XiaowenHu96, mmcgr)
  • Misc fixes and refactoring (langston-barrett, aeflores, pnwamk, quentin, b-scholz, XiaowenHu96, OlivierHamel, cwarden, mbid, davidwzhao, cmuellner, luc-tielen)

What's Changed

New Contributors

Full Changelog: https://github.com/souffle-lang/souffle/compare/2.2...2.3

2.2

2 years ago
  • Subsumption clauses, e.g., A(x1) <= A(x2) :- x1 <= x2 (@julienhenry, @b-scholz)
  • IR and build improvements (@OlivierHamel, @langston-barrett, @quentin, @b-scholz, @aeflores, @cmuellner, @broffra, @rahlk, @yihozhang, @trofi)
  • Refactoring of type analysis (@tytus-metrycki)
  • Improved packaging (@XiaowenHu96, @quentin, @uxhg, @cwarden)
  • Improved loading of DLLs (@quentin)
  • Type annotation printer (@hide-kawabata)
  • Performance improvements for eqrel (@langston-barrett, @kevzhumba)

2.1

2 years ago
  • 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)
  • Suppress file errors with -w flag (@b-scholz)
  • Re-implementation of the ast-to-ram translator (@azreika)
  • Added Cmake PORT support (@XiaowenHu96, @quentin
  • GitHub Action (@XiaowenHu96, @quentin, @XiaowenHu96, @b-scholz, @lyxell,@quentin,@OlivierHamel)
  • Debian Packaging and CodeCov support in GitHub Action/Cmake (@phao5814)
  • Lock-free record/symbol tables (@quentin)
  • Interpreter refactoring / fixing (@XiaowenHu96)
  • Type Analysis Refactoring (@azreika, @tytus-metrycki)
  • New SIPS strategy (@langston-berrett)
  • Refactor AST & RAM & Provenance (@TomasPuverle, @b-scholz, @azreika)
  • RAM Optimisation (@SamArch27)
  • Multiple library flag (@mclements)
  • Added “max-bound-delta” SIPS (@langston-barrett)
  • General Fixes and improvements (@b-scholz, @csabahruska, @julienhenry, @langston-berrett, @mmcgr, @TomasPuverle, @quentin,@XiaowenHu96)
  • Add fuzzing scripts with AFL and Radamsa (@langston-barrett)

Download Debian packages from here: https://packagecloud.io/souffle-lang/souffle

Install Souffle on Mac using brew: https://github.com/souffle-lang/homebrew-souffle

2.0.2

3 years ago
  • 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)
  • Added limitsize directive (b-scholz)
  • Add heuristic-based clause reordering (azreika)
  • Enhanced Magic Set transformation (azreika)
  • Restructuring for readability and maintainability (b-scholz, mmcgr)

2.0.1

3 years ago
  • Stop overmaterialising aggregate bodies (rdowavic)
  • Parallelise aggregate computation (rdowavic)
  • Add JSON IO (GaloisNeko)
  • Extend program minimiser (azreika)
  • Use greater precision for floating point output (mmcgr)
  • Fix duplicated symbols with multiple souffle object files (luc-tielen)
  • Fix multithreaded, interpreted, provenance (taipan-snake)
  • Fix provenance constraint explanation (taipan-snake)
  • Fix path detection for souffle tools (mmcgr)
  • Fix output directory use (mmcgr)

2.0.0

3 years ago
  • 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 support (b-scholz)
  • Removed bddbddb and logicblox converters (b-scholz)
  • Removed checkpointed evaluation (b-scholz)
  • Extended inlining support (azreika)
  • Added AST debug output for final 'optimised datalog' (mmcgr)
  • Added RAM debug output (b-scholz)
  • Updated man pages (darth-tytus/mmcgr)
  • Fixes for AST/RAM printing (mmcgr)
  • More useful debug output (mmcgr)
  • Much more useful debug output (ohamel-softwaresecure)
  • Interpreted souffle performance improvements (XiaowenHu96)
  • Improved version output (mmcgr)
  • Added support for floats and unsigned ints (darth-tytus)
  • Improved testing (yuli6313/mmcgr)
  • Added support for Record I/O (darth-tytus)
  • Simplified error and warning messages (mmcgr)
  • Added bitshift operators (ohamel-softwaresecure)
  • Added support for polymorphic constants (darth-tytus)
  • Improved aggregate performance (rdowavic)
  • Added support for as(arg, type) (darth-tytus)
  • Extensive refactoring of AST, RAM, utilities, and other bits (b-scholz and others)
  • Improve Program Minimiser(azreika)
  • Unrestricted number of columns per relation (before set to 64) (SamArch27)
  • Generative functors (ohamel-softwaresecure)
  • Refactor parser (ohamel-softwaresecure)
  • Various bugfixes

1.7.1

4 years ago
  • Enhance program minimiser (azreika)
  • Fix re-ordering of conjunctive terms

1.7.0

4 years ago
  • Rewrote Interpreter for enhanced performance (XiaowenHu96,HerbertJordan)
  • Add SWIG interface (detljh,chadgavin,honghyw)
  • Improved C++ interface and documentation (detljh,chadgavin,honghyw)
  • C++ interface allows specification of thread count (mmcgr)
  • Added RAM analysis to debug report (b-scholz)
  • New provenance instrumentation storing subproof heights (ssallinger)
  • Compiles with MSVC (brianfairservice)
  • Provenance interface supports querying results (yuli6313)
  • Removed mpi support
  • C++17 used for synthesised code
  • Performance enhancements
  • Bug fixes