All Versions
10
Latest Version
Avg Release Cycle
35 days
Latest Release
1492 days ago
Changelog History
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 theFactDirection
. 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
andaddFacts
now have stricter constraints in their type signatures to prevent invalid usage of facts.runSouffle
for both compiled and interpreted mode andrunSouffleWith
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 therunSouffle*
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.
- The
-
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 inLanguage.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 ofLanguage.Souffle
toLanguage.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 extraFilePath
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.
- ๐ Fix compile time issue when generically deriving
-
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
andDATALOG_DIR
. When invoked with therunSouffle
, if not given, souffle is looked up viawhereis souffle
and the input datalog files are searched, in the active directory. When invoked withrunSouffleWith
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.
- โ Added Interpreted module. The location of the souffle interpreter and datalog input directory
can be controlled set via
-
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