Cabal woe

Sebastian Graf sgraf1337 at gmail.com
Tue Jul 9 12:23:13 UTC 2024


Hi Simon, Hi Matt,

I think Simon has a point. I really do not enjoy creating a new throwaway
project for every small reproducer I want to test.
A cabal project means that I can't simply pass `-fforce-recomp -ddump-simpl
-O` to a GHC invocation, for example.
Instead I have to create a cabal file and remember all the fields that need
to be set. (Or <enter> myself through a perceived 30 step wizard with
`cabal new`, only to find that I have to open the file anyway to tweak
build-depends...)

Stupid as it may be, that subconsciously really affects my willingness to
tackle an issue.

Presumably this can be solved through some amount of automation/scripting.
Perhaps it would be enough to share these scripts in a prominent location,
for example the Wiki.
Alternatively, I think I would enjoy something like `nix-shell -p`, where I
can just fire up a temporary shell with all the deps in a locally visible
package db. That way I could keep calling `ghc` directly.

(Not that I suffer *much* from this issue at the moment anyway.)

Sebastian

Am Di., 9. Juli 2024 um 11:21 Uhr schrieb Matthew Pickering <
matthewtpickering at gmail.com>:

> `cabal install --lib` is very hard to use properly. I would advise against
> it.
>
> It is much easier to create a simple cabal project and use normal
> cabal build commands. I packaged things in a repo for you.
>
> https://github.com/mpickering/t25064
>
> ```
> cabal build -w ghc-9.6.2 (fails)
> cabal build -w /path/to/devel/compiler (fails with error message)
> ```
>
> Matt
>
> On Tue, Jul 9, 2024 at 9:58 AM Simon Peyton Jones
> <simon.peytonjones at gmail.com> wrote:
> >
> > Friends
> >
> > I'm trying to repro #25064 with my development build of GHC.  The test
> case depends on packages `primitive` and `hashtables`.  So I try this (see
> below).
> >
> > Alas, apparently after the `cabal install`, it can't find Prelude.
> >
> > What should I do?  I tried removing the "environments" file, whatever
> that is, which then meant it could find Prelude -- but the libraries were
> no longer installed.
> >
> > I lack a decent model of what is going on with installing packages for
> my development builds.   Is there a write up anywhere?
> >
> > Thanks
> >
> > Simon
> >
> >
> > bash$ cabal install --lib hashtables primitive --with-compiler
> $HOME/code/HEAD/$s2
> > Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.10.1.0
> supports
> > 'ghc' version < 9.8): /home/simonpj/code/HEAD/_build/stage1/bin/ghc is
> version
> > 9.11.20240517
> > Warning: Unknown/unsupported 'ghc' version detected (Cabal 3.10.1.0
> supports
> > 'ghc' version < 9.8): /home/simonpj/code/HEAD/_build/stage1/bin/ghc is
> version
> > 9.11.20240517
> > Resolving dependencies...
> > bash$  ~/code/HEAD/$s2 -c T25064.hs
> > Loaded package environment from
> > T25064.hs:1:8: error: [ ]8;;
> https://errors.haskell.org/messages/GHC-87110 \GHC-87110 ]8;; \]
> >     Could not load module ‘Prelude’.
> >     It is a member of the hidden package ‘base-4.20.0.0’.
> >     Use -v to see a list of the files searched for.
> >   |
> > 1 | module Bug where
> >   |        ^^^
> >
> > bash$ rm
> /home/simonpj/.ghc/x86_64-linux-9.11.20240517/environments/default
> > bash$ ~/code/HEAD/$s2 -c T25064.hs
> > T25064.hs:3:1: error: [ ]8;;
> https://errors.haskell.org/messages/GHC-61948 \GHC-61948 ]8;; \]
> >     Could not find module ‘Control.Monad.Primitive’.
> >     Perhaps you meant Control.Monad.Writer (from mtl-2.3.1)
> >     Use -v to see a list of the files searched for.
> >   |
> > 3 | import Control.Monad.Primitive
> >   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> > T25064.hs:4:1: error: [ ]8;;
> https://errors.haskell.org/messages/GHC-87110 \GHC-87110 ]8;; \]
> >     Could not find module ‘Data.HashTable.ST.Basic’.
> >     Use -v to see a list of the files searched for.
> >   |
> > 4 | import qualified Data.HashTable.ST.Basic as H
> >   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >
> >
> > _______________________________________________
> > ghc-devs mailing list
> > ghc-devs at haskell.org
> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20240709/6c9ea4ab/attachment.html>


More information about the ghc-devs mailing list