Releases: souffle-lang/souffle
Releases · souffle-lang/souffle
Release 2.4.1
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 #2414
What's Changed
- Remove escapes in arch build. by @XiaowenHu96 in #2406
- fix windows CI by @quentin in #2410
- Fix subsumption by @julienhenry in #2407
- remove -Werror from CMakeLists.txt by @ammkrn in #2299
- Provide way to debug delta relations and expose iteration counter by @julienhenry in #2414
- fix "variable only occurs once" checker by @quentin in #2415
- fix bad source location for END token by @quentin in #2417
- Fix generated code for eqrel when emitting statistics by @fangyi-zhou in #2419
- do not consider debug_delta relations as empty by @julienhenry in #2420
- Fix auto-scheduler profile mismatch by @fangyi-zhou in #2421
- fixes souffleprof and enable build on Windows by @quentin in #2423
- Enabling souffle-lang/souffle GitHub dependency graph with vcpk (#2427) by @quentin in #2428
- fix sqlite reading of empty values by @dbueno in #2412
- symbol concatenation with binary
+
by @quentin in #2431 - fixes for the debug report by @quentin in #2433
- Fixed CSV read failure involving blank lines in RFC4180 mode. by @strRM in #2434
New Contributors
- @ammkrn made their first contribution in #2299
- @fangyi-zhou made their first contribution in #2419
- @dbueno made their first contribution in #2412
Full Changelog: 2.4...2.4.1
Release 2.4
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
- Fix arch build by @XiaowenHu96 in #2274
.include
honors-I
(include dir) options by @quentin in #2276- Add missing override keyword by @luc-tielen in #2279
- Allow underscore in branch init appearing in constraints by @quentin in #2280
- fix
functors
test when not usinglibffi
by @quentin in #2281 - fixes for the debug report by @quentin in #2283
- Splitting the generated C++ Code into multiple files to improve compile-time by @julienhenry in #2215
- Refactor Auto-Scheduler #1 by @SamArch27 in #2284
- Refactor Auto-Scheduler #2 by @SamArch27 in #2289
- Refactor Auto-Scheduler #3 by @SamArch27 in #2290
- Refactoring Auto-Scheduler #4 by @SamArch27 in #2291
- Rename index-stats to emit-statistics for auto-scheduler by @SamArch27 in #2292
- Differentiate execution plan checker messages by @adamjseitz in #2295
- Purge intermediate relations, but not input/output by @adamjseitz in #2286
- Emscripten Build by @philzook58 in #2297
- fix btree destructors #2127 by @julienhenry in #2287
- Fix for SWIG .o file not found #2305 by @fgauthie in #2308
- fix missing index on unsigned values when
--generate-many
by @quentin in #2312 - Improve parallel load balance in the interpreter. by @quentin in #2313
- User defined aggregate by @julienhenry in #2282
- try to workaround xcode 14 issue by @quentin in #2331
- Support literal newlines in csv by @strRM in #2329
- fix error handling and exit code by @strRM in #2330
- Update workflow's actions to comply with Github upcoming deprecations by @quentin in #2334
- Configurable warnings by @langston-barrett in #2319
- cache regex compilation by @strRM in #2328
- Emit errors for ignored execution plan by @adamjseitz in #2352
- Add word size info the help screen by @mingodad in #2353
- Parse CSV QualifiedNames instead of just Identifier for ADTs by @bmeck in #2358
- Add word size to help screen by @mingodad in #2354
- remove
Global
singleton by @quentin in #2360 - Missing inline keyword for function GreaterOrEqualPrime by @b-scholz in #2364
- Sort includes when generating multiple files by @ruricolist in #2363
- Expose main driver interface. by @quentin in #2366
- Allow linking multiple object files built from Souffle generated code by @ruricolist in #2371
- Only emit include for IOSystem.h when needed by @ruricolist in #2374
- fix mutually dependent aggregates semantics checks by @quentin in #2372
- Eliminate nondeterminism in Condition ordering by @adamjseitz in #2378
- Fix complexity analysis by @quentin in #2380
- Fix generated JavaScript in profiles by @ruricolist in #2388
- Fix source locations with
--no-preprocessor
and add a virtual file system layer to the parser by @quentin in #2377 - Drop clause if it contains an impossible BinaryConstraint by @adamjseitz in #2376
- Read preprocessed code into buffer before parsing by @adamjseitz in #2387
- Purge input relations if pruneImdtRels is set by @adamjseitz in #2394
- Fix typecheck error on atom negation with equivalent type by @Gueckmooh in #2399
- Make -D- option for compiled datalog behave same as if interpreted by @Gueckmooh in #2401
- Enhance type error understanding by displaying incompatible constraints by @Gueckmooh in #2402
- Update changelog by @quentin in #2397
New Contributors
- @adamjseitz made their first contribution in #2295
- @philzook58 made their first contribution in #2297
- @fgauthie made their first contribution in #2308
- @strRM made their first contribution in #2329
- @mingodad made their first contribution in #2353
- @bmeck made their first contribution in #2358
- @ruricolist made their first contribution in #2363
- @Gueckmooh made their first contribution in #2399
Full Changelog: 2.3...2.4
Release 2.3
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
- Fix issue #2176 by @XiaowenHu96 in #2178
- Do not print newline after functor declaration by @mbid in #2179
- Fix github action by @XiaowenHu96 in #2180
- fixes unsigned
range
#2182 by @quentin in #2184 - fix missing header in synthesized profiled program by @quentin in #2186
- Allow URI Filenames for SQLite Input and Output by @cwarden in #2177
- update dominance example by @XiaowenHu96 in #2192
- fix souffle-compile argument parsing by @pnwamk in #2191
- control libffi dependency with SOUFFLE_USE_LIBFFI by @quentin in #2188
- alias-type on record and adt types by @quentin in #2197
- enable sqlite3 URI filename capabilty by @quentin in #2199
- Fix -Wparentheses warning in synthesized C++ code by @luc-tielen in #2202
- MSVC support, CI github Actions
windows-2019
by @quentin in #2098 - emit missing '\n' in cpp includes by @pnwamk in #2206
- Subsumption fix for issue #2189 by @b-scholz in #2204
- cleanup Windows CI trigger by @quentin in #2210
- Clean up relation generation for provenance in synthesiser and interpreter by @davidwzhao in #2208
- Cleanup defunct delta-based SIPs by @langston-barrett in #2212
- separate symbol table interface from implementation by @quentin in #2200
- fix type system when a record's field is an alias type by @quentin in #2219
- Fix#2223 by @b-scholz in #2224
- Allow populating and reading ADTs in souffle::tuple interface by @aeflores in #2183
- Subsumption Example by @b-scholz in #2216
- improve behaviour of inheritance by @quentin in #2220
- fix examples by @quentin in #2234
- Fix segfault in souffleprof related to "@new" relations by @langston-barrett in #2230
- Not adding -g flag when compiled with NDEBUG by @XiaowenHu96 in #2238
- Fix #2190: Magicset bug by @b-scholz in #2241
- Subsumptive clauses crash when dominated and dominating heads are identical. by @b-scholz in #2240
- update to vcpkg 2022.03.10 by @quentin in #2242
- Don't apply RemoveRelationCopies transformer to EQRELs by @langston-barrett in #2244
- Auto-Scheduler for Soufflé by @SamArch27 in #2237
- Fix profiler cost estimate by @OlivierHamel in #2245
- Fix segfault in ~ProfileEventSingleton by @langston-barrett in #2226
- Remove ProfileSips by @SamArch27 in #2251
- Disable pragma2 test on Linux by @cmuellner in #2252
- Update/correct/standardise version and license text by @mmcgr in #2254
- Fix deb file creation by @mmcgr in #2255
- Fixed auto-scheduler for recursive rules using Selinger w/ vector by @SamArch27 in #2258
- Add release debs/rpms to souffle-lang.github.io/ppa by @mmcgr in #2261
- delta-max-bound sips heuristic by @julienhenry in #2260
- fact-like rule using functor by @quentin in #2262
- fix test: getopt_long returns an int by @quentin in #2264
- Fix#2257 by @b-scholz in #2267
- eqrel: Simplify insertAll by @langston-barrett in #2268
- add support for include in datalog scanner by @quentin in #2270
- Prepare changelog for Release V2.3 by @b-scholz in #2272
New Contributors
Full Changelog: 2.2...2.3
Release 2.2
- 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)
Release 2.1
- 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
Release 2.0.2
- 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)
Release 2.0.1
- 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)
Release 2.0.0
- 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
Release 1.7.1
- Enhance program minimiser (azreika)
- Fix re-ordering of conjunctive terms
Release 1.7.0
- 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