Using Haskell Stack instead of Cabal
Moin moin,
I had a lot of problems compiling KiCS2 with the latest Haskell packages provided by Cabal in the make process and the latest GHC. Therefore, I ported KiCS2 from Cabal to Stack1. With Stack you specify a Stackage release2 that defines the versions of the packages and the GHC to use in the compilation to increase stability and reproducibility. I thought you might be interested.
You can find this KiCS2 version over at my fork in the stack branch: https://git.informatik.uni-hamburg.de/9simon/ccpn-kics2
Please note that I also had to redirect the lib-trunk submodule to a fork3.
I mapped everything from Cabal to Stack as closely as I could. Instead of the local pkg/kics2.conf.d
package database I use the three databases managed by Stack. However, I couldn't find an elegant solution for everything and ended up with three .yaml files (because some cabal files are dynamically generated and deleted again). Also package micromanagement like unregistering individual packages could probably be removed and left to Stack to do automatically.
What do you think about my changes and using Stack?
I hope you find it useful. Greetings from Hamburg!