Skip to content

Clean up runtime cabal generation, add idsupply flags and update defaults

Fredrik Wieczerkowski requested to merge runtime-lib-cabal-cleanup into master

This branch moves the kics2-runtime.cabal template into a *.in file and models the different IDSupply implementations as package flags. The advantage of doing so is that we can conditionally depend on ghc, requiring it only for GHC/UniqSupply-based IDSupply implementations.

Since the libtinfo dependency (which transitively got included in every compiled executable through the kics2-runtime, which in turn depended on GHC) has caused some portability issues in the past, this branch also changes the default IDSupply to idsupplyinteger, which does not depend on GHC/libtinfo and has similar performance characteristics to the previously used idsupplyghc.

Finally, we now default the Curry compiler used to compile KiCS2 to the kics2, pakcs or curry binary on the user's PATH (in that order of precedence). The idea is to 'do the right thing' by default: Usually pinning the compiler implementation leads to less fragile/more reproducible builds than repeatedly bootstrapping with the locally compiled KiCS2 binary. Of course, manually overriding CURRY and point it to ./bin/kics2 is still always possible.

Edited by Fredrik Wieczerkowski

Merge request reports