3 ms·
100% agreement from me! As I wrote a few days ago here https://news.ycombinator.com/item?id=7905511 https://news.ycombinator.com/item?id=7905511: All my projec
by boothead 12y ago
100% agreement from me! As I wrote a few days ago here https://news.ycombinator.com/item?id=7905511 https://news.ycombinator.com/item?id=7905511:
All my projects now have a default.nix and a shell.nix and I have this little snippet in emacs:
(setq haskell-process-type 'ghci
haskell-process-path-ghci "/home/ben/.nix-profile/bin/nix-shell"
haskell-process-args-ghci '("-I" "." "shell.nix" "--pure" "--command" "cabal configure; cabal repl"))
This drops you into a nix shell with all the dependencies for the project you're working on present.
You can also (especially easy if you're using projectile) run compile with the command nix-shell -I . shell.nix --command "cabal configure; cabal build" and that give you a nice list of type errors in your current project.
Repeatable builds with no cabal hell. In the words of disney: "I'm never going back, the past is in the past!"