All Versions
10
Latest Version
Avg Release Cycle
35 days
Latest Release
1321 days ago

Changelog History

  • v2.0.1

    September 05, 2020
  • v2.0.0 Changes

    August 23, 2020

    โž• Added

    • The Fact typeclass now also requires you to specify the FactDirection. This prevents inconsistent and buggy behavior when trying to use a fact in an invalid way (e.g. trying to add an output-only fact).
    • DSL for creating Soufflรฉ programs directly from Haskell. See the docs of Language.Souffle.Experimental for more information.

    ๐Ÿ”„ Changed

    • ๐Ÿ‘ souffle-haskell now supports Soufflรฉ version 2.0.1.
    • getFacts, findFact, addFact and addFacts now have stricter constraints in their type signatures to prevent invalid usage of facts.
    • runSouffle for both compiled and interpreted mode and runSouffleWith for interpreted mode have updated type signatures to be able to automatically cleanup temporary files created while interacting with Souffle.

    โœ‚ Removed

    • init function for both compiled and interpreted mode. Initialization is now handled by the runSouffle* functions. This change makes automatic cleanup of created files possible and prevents double initialization of Souffle programs.
    • cleanup function for interpreted mode, this is handled automatically now.
  • v1.1.0 Changes

    July 26, 2020

    โž• Added

    • ๐Ÿ“ฆ getFacts can now return facts in a fixed size array (from the array package).
    • โž• Added support for facts containing "unsigned" values.
    • โž• Added support for facts containing "float" values.

    ๐Ÿ›  Fixed

    • The run function in Language.Souffle.Interpeted now always closes stdout and stderr handles of the external souffle process.

    โœ‚ Removed

    • ๐Ÿšš Language.Souffle module is removed since it only existed due to legacy reasons. This removal forces users to be explicit about the mode they are using souffle-haskell in (interpreted or compiled mode). If you experience compilation errors, rename all imports of Language.Souffle to Language.Souffle.Compiled.
  • v1.0.0 Changes

    July 09, 2020

    ๐Ÿ”„ Changed

    • Libraries using souffle-haskell are now "self-contained": if a project depends on such a library, it will not require to also have Souffle installed.
    • ๐Ÿ‘ souffle-haskell now supports Soufflรฉ version 2.0.0.
    • writeFiles now takes an extra FilePath argument for writing facts to a certain directory.

    โœ‚ Deleted

    • Language.Souffle.TH module is deleted because it is no longer needed anymore due to a change in the generated Souffle code. The generated code can now be correctly integrated by adding the files to cxx-sources in package.yaml / cabal file.
  • v0.2.3 Changes

    May 21, 2020

    ๐Ÿ”„ Changed

    • ๐ŸŽ Optimize performance when marshalling and unmarshalling facts.
  • v0.2.2 Changes

    April 30, 2020

    ๐Ÿ”„ Changed

    • ๐Ÿ›  Fix compile time issue when generically deriving Marshal typeclass for data types with more than 3 fields.
  • v0.2.1 Changes

    April 25, 2020

    ๐Ÿ”„ Changed

    • Trimmed dependencies to make the library more lightweight.
  • v0.2.0 Changes

    April 22, 2020

    โž• Added

    • โž• Added Interpreted module. The location of the souffle interpreter and datalog input directory can be controlled set via SOUFFLE_BIN and DATALOG_DIR. When invoked with the runSouffle, if not given, souffle is looked up via whereis souffle and the input datalog files are searched, in the active directory. When invoked with runSouffleWith the path for the datalog program needs to be given. NOTE: For this mode the datalog program must render the output csv using TAB characters as separators.

    ๐Ÿ”„ Changed

    • Introduced Language.Souffle.Class module as separation of the typeclass and the Compiled module made the implementation of the Interpreted module easier.
    • ๐Ÿ†“ Marshaling is now based on the free monad approach. The implementors of the Souffle type class needs to give an interpretation of the Marshal expressions too.
  • v0.1.0 Changes

    December 21, 2019

    โž• Added

    • โž• Added Marshal instance for lazy and strict Text

    ๐Ÿ”„ Changed

    • getFacts can now return a vector instead of a list, based on type inference. This allows for a more efficient representation in memory as well as being able to allocate all needed memory once before collecting facts.
  • v0.0.1 Changes

    October 23, 2019

    โž• Added

    • ๐ŸŽ‰ Initial version of the library