
I'm trying to install 'hspec' on my WSL (Windows subsystem for Linux) system. But I fail; see below. For some reason cabal complains about installing a library. (That seems peculiar - isn't that what cabal is for?) But it helpfully suggests adding -lib. Alas, cabal then crashes outright, which should never happen. So I'm stuck. What should I do? Thanks Simon simonpj@MSRC-9870733:~$ cabal --version cabal-install version 3.0.0.0 compiled using version 3.0.0.0 of the Cabal library simonpj@MSRC-9870733:~$ cabal install hspec Resolving dependencies... Up to date Warning: You asked to install executables, but there are no executables in target: hspec. Perhaps you want to use --lib to install libraries instead. simonpj@MSRC-9870733:~$ cabal install --lib hspec Resolving dependencies... Up to date Distribution/Simple/GHC.hs:1959:5-56: Irrefutable pattern failed for pattern Just ghcPkgProg simonpj@MSRC-9870733:~$ which ghc /opt/ghc/bin/ghc simonpj@MSRC-9870733:~$ which ghc-pkg /opt/ghc/bin/ghc-pkg simonpj@MSRC-9870733:~$

I think you wanted v1-install to install a library into the user package database, since your cabal is 3.x and the v2-* commands are now the default (that is, you did what used to be cabal new-install or cabal v2-install). On Mon, Apr 15, 2019 at 5:47 PM Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org> wrote:
I’m trying to install ‘hspec’ on my WSL (Windows subsystem for Linux) system.
But I fail; see below.
For some reason cabal complains about installing a library. (That seems peculiar – isn’t that what cabal is for?) But it helpfully suggests adding –lib.
Alas, cabal then crashes outright, which should never happen.
So I’m stuck. What should I do?
Thanks
Simon
simonpj@MSRC-9870733:~$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
simonpj@MSRC-9870733:~$ cabal install hspec
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: hspec. Perhaps you want to use --lib to install libraries instead.
simonpj@MSRC-9870733:~$ cabal install --lib hspec
Resolving dependencies...
Up to date
Distribution/Simple/GHC.hs:1959:5-56: Irrefutable pattern failed for pattern Just ghcPkgProg
simonpj@MSRC-9870733:~$ which ghc
/opt/ghc/bin/ghc
simonpj@MSRC-9870733:~$ which ghc-pkg
/opt/ghc/bin/ghc-pkg
simonpj@MSRC-9870733:~$
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
-- brandon s allbery kf8nh allbery.b@gmail.com

Thanks. But alas I have no clue about whether I want a v1-install or a v2-install, nor how to achieve them if I knew what they were. I just want to install ‘hspec’ so that I can use it when compiling a program. How would I do that?
The instructions here https://wiki.haskell.org/Cabal-Install just say “cabal install hspec” which is what I tried. Those instructions are pointed to from here https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package, which in turn are pointed to from the main Cabal home page https://www.haskell.org/cabal/.
I must be missing something.
Simon
From: Brandon Allbery

If you want to install it globally for use by GHC, I think you want v1-install. On 4/15/19 5:00 PM, Simon Peyton Jones via ghc-devs wrote:
Thanks. But alas I have no clue about whether I want a v1-install or a v2-install, nor how to achieve them if I knew what they were. I just want to install ‘hspec’ so that I can use it when compiling a program. How would I do that?
The instructions here https://wiki.haskell.org/Cabal-Install https://wiki.haskell.org/Cabal-Install just say “cabal install hspec” which is what I tried. Those instructions are pointed to from here https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package, which in turn are pointed to from the main Cabal home page https://www.haskell.org/cabal/.
I must be missing something.
Simon
*From:*Brandon Allbery
*Sent:* 15 April 2019 22:54 *To:* Simon Peyton Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Cabal woes
I think you wanted v1-install to install a library into the user package database, since your cabal is 3.x and the v2-* commands are now the default (that is, you did what used to be cabal new-install or cabal v2-install).
On Mon, Apr 15, 2019 at 5:47 PM Simon Peyton Jones via ghc-devs
mailto:ghc-devs@haskell.org> wrote: I’m trying to install ‘hspec’ on my WSL (Windows subsystem for Linux) system.
But I fail; see below.
For some reason cabal complains about installing a library. (That seems peculiar – isn’t that what cabal is for?) But it helpfully suggests adding –lib.
Alas, cabal then crashes outright, which should never happen.
So I’m stuck. What should I do?
Thanks
Simon
simonpj@MSRC-9870733:~$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
simonpj@MSRC-9870733:~$ cabal install hspec
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: hspec. Perhaps you want to use --lib to install libraries instead.
simonpj@MSRC-9870733:~$ cabal install --lib hspec
Resolving dependencies...
Up to date
Distribution/Simple/GHC.hs:1959:5-56: Irrefutable pattern failed for pattern Just ghcPkgProg
simonpj@MSRC-9870733:~$ which ghc
/opt/ghc/bin/ghc
simonpj@MSRC-9870733:~$ which ghc-pkg
/opt/ghc/bin/ghc-pkg
simonpj@MSRC-9870733:~$
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org mailto:ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7C49de1a60a36e4a04bbe208d6c1ecdac9%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909620364700618&sdata=dMUKGqIICFPisw%2Feskzb98WxcG9kfNFMOkZfd9fB7YU%3D&reserved=0
--
brandon s allbery kf8nh
allbery.b@gmail.com mailto:allbery.b@gmail.com
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
-- *Vanessa McHale* Functional Compiler Engineer | Chicago, IL Website: www.iohk.io http://iohk.io Twitter: @vamchale PGP Key ID: 4209B7B5 Input Output http://iohk.io Twitter https://twitter.com/InputOutputHK Github https://github.com/input-output-hk LinkedIn https://www.linkedin.com/company/input-output-global This e-mail and any file transmitted with it are confidential and intended solely for the use of the recipient(s) to whom it is addressed. Dissemination, distribution, and/or copying of the transmission by anyone other than the intended recipient(s) is prohibited. If you have received this transmission in error please notify IOHK immediately and delete it from your system. E-mail transmissions cannot be guaranteed to be secure or error free. We do not accept liability for any loss, damage, or error arising from this transmission

Yes, I think a lot of documentation will need to be updated because this.
You want "cabal v1-install" with cabal 3.
On Mon, Apr 15, 2019 at 6:00 PM Simon Peyton Jones
Thanks. But alas I have no clue about whether I want a v1-install or a v2-install, nor how to achieve them if I knew what they were. I just want to install ‘hspec’ so that I can use it when compiling a program. How would I do that?
The instructions here https://wiki.haskell.org/Cabal-Install just say “cabal install hspec” which is what I tried. Those instructions are pointed to from here https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package, which in turn are pointed to from the main Cabal home page https://www.haskell.org/cabal/.
I must be missing something.
Simon
*From:* Brandon Allbery
*Sent:* 15 April 2019 22:54 *To:* Simon Peyton Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Cabal woes I think you wanted v1-install to install a library into the user package database, since your cabal is 3.x and the v2-* commands are now the default (that is, you did what used to be cabal new-install or cabal v2-install).
On Mon, Apr 15, 2019 at 5:47 PM Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org> wrote:
I’m trying to install ‘hspec’ on my WSL (Windows subsystem for Linux) system.
But I fail; see below.
For some reason cabal complains about installing a library. (That seems peculiar – isn’t that what cabal is for?) But it helpfully suggests adding –lib.
Alas, cabal then crashes outright, which should never happen.
So I’m stuck. What should I do?
Thanks
Simon
simonpj@MSRC-9870733:~$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
simonpj@MSRC-9870733:~$ cabal install hspec
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: hspec. Perhaps you want to use --lib to install libraries instead.
simonpj@MSRC-9870733:~$ cabal install --lib hspec
Resolving dependencies...
Up to date
Distribution/Simple/GHC.hs:1959:5-56: Irrefutable pattern failed for pattern Just ghcPkgProg
simonpj@MSRC-9870733:~$ which ghc
/opt/ghc/bin/ghc
simonpj@MSRC-9870733:~$ which ghc-pkg
/opt/ghc/bin/ghc-pkg
simonpj@MSRC-9870733:~$
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7C49de1a60a36e4a04bbe208d6c1ecdac9%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909620364700618&sdata=dMUKGqIICFPisw%2Feskzb98WxcG9kfNFMOkZfd9fB7YU%3D&reserved=0
--
brandon s allbery kf8nh
allbery.b@gmail.com
-- brandon s allbery kf8nh allbery.b@gmail.com

Aha! That works. I would never in a million years have found that by myself. Thank you.
But
* It is terribly mysterious that “cabal install hspec” doesn’t, well, install hspec.
* It must surely be a bug that “cabal install –lib hspec” simply crashes.
Simon
From: Brandon Allbery

I vaguely recall seeing that bug come up with respect to v2-install. And in
fact am a bit surprised that 3 has been released, since this is
highlighting that neither it nor the Haskell ecosystem is quite ready for
it.
I'd also have expected (and thought I'd seen) "cabal install" in recent 2.x
warn that it would be "v1-install" in the future.
On Mon, Apr 15, 2019 at 6:13 PM Simon Peyton Jones
Aha! That works. I would never in a million years have found that by myself. Thank you.
But
- It is terribly mysterious that “cabal install hspec” doesn’t, well, install hspec. - It must surely be a bug that “cabal install –lib hspec” simply crashes.
Simon
*From:* Brandon Allbery
*Sent:* 15 April 2019 23:03 *To:* Simon Peyton Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Cabal woes Yes, I think a lot of documentation will need to be updated because this. You want "cabal v1-install" with cabal 3.
On Mon, Apr 15, 2019 at 6:00 PM Simon Peyton Jones
wrote: Thanks. But alas I have no clue about whether I want a v1-install or a v2-install, nor how to achieve them if I knew what they were. I just want to install ‘hspec’ so that I can use it when compiling a program. How would I do that?
The instructions here https://wiki.haskell.org/Cabal-Install https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.haskell.org%2FCabal-Install&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657350786&sdata=81SaQYxWkpF9nYalL%2B%2FSCbcGMMkYsMnFnpylDncDXu0%3D&reserved=0 just say “cabal install hspec” which is what I tried. Those instructions are pointed to from here https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.haskell.org%2FCabal%2FHow_to_install_a_Cabal_package&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657350786&sdata=ougOkZ0Dd%2Fep%2FshvVChLiGb9MEhEOW1sYxGnK8KJ8ww%3D&reserved=0, which in turn are pointed to from the main Cabal home page https://www.haskell.org/cabal/ https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.haskell.org%2Fcabal%2F&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657360794&sdata=I1SnV%2F4c2d05K39NLK%2FQ%2BLdfRoGRRCcKIGXHkNKMGH8%3D&reserved=0 .
I must be missing something.
Simon
*From:* Brandon Allbery
*Sent:* 15 April 2019 22:54 *To:* Simon Peyton Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Cabal woes I think you wanted v1-install to install a library into the user package database, since your cabal is 3.x and the v2-* commands are now the default (that is, you did what used to be cabal new-install or cabal v2-install).
On Mon, Apr 15, 2019 at 5:47 PM Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org> wrote:
I’m trying to install ‘hspec’ on my WSL (Windows subsystem for Linux) system.
But I fail; see below.
For some reason cabal complains about installing a library. (That seems peculiar – isn’t that what cabal is for?) But it helpfully suggests adding –lib.
Alas, cabal then crashes outright, which should never happen.
So I’m stuck. What should I do?
Thanks
Simon
simonpj@MSRC-9870733:~$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
simonpj@MSRC-9870733:~$ cabal install hspec
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: hspec. Perhaps you want to use --lib to install libraries instead.
simonpj@MSRC-9870733:~$ cabal install --lib hspec
Resolving dependencies...
Up to date
Distribution/Simple/GHC.hs:1959:5-56: Irrefutable pattern failed for pattern Just ghcPkgProg
simonpj@MSRC-9870733:~$ which ghc
/opt/ghc/bin/ghc
simonpj@MSRC-9870733:~$ which ghc-pkg
/opt/ghc/bin/ghc-pkg
simonpj@MSRC-9870733:~$
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657370807&sdata=3IAzng%2BFJbdlxyhT4atnSCCbfEmsOHHtsPNpA4e95ew%3D&reserved=0
--
brandon s allbery kf8nh
allbery.b@gmail.com
--
brandon s allbery kf8nh
allbery.b@gmail.com
-- brandon s allbery kf8nh allbery.b@gmail.com

cabal-install-3 isn't released. Please check the facts. - Oleg On 16.4.2019 1.17, Brandon Allbery wrote:
I vaguely recall seeing that bug come up with respect to v2-install. And in fact am a bit surprised that 3 has been released, since this is highlighting that neither it nor the Haskell ecosystem is quite ready for it.
I'd also have expected (and thought I'd seen) "cabal install" in recent 2.x warn that it would be "v1-install" in the future.
On Mon, Apr 15, 2019 at 6:13 PM Simon Peyton Jones
mailto:simonpj@microsoft.com> wrote: Aha! That works. I would never in a million years have found that by myself. Thank you.
But
* It is terribly mysterious that “cabal install hspec” doesn’t, well, install hspec. * It must surely be a bug that “cabal install –lib hspec” simply crashes.
Simon
*From:*Brandon Allbery
mailto:allbery.b@gmail.com> *Sent:* 15 April 2019 23:03 *To:* Simon Peyton Jones mailto:simonpj@microsoft.com> *Cc:* ghc-devs@haskell.org mailto:ghc-devs@haskell.org *Subject:* Re: Cabal woes Yes, I think a lot of documentation will need to be updated because this. You want "cabal v1-install" with cabal 3.
On Mon, Apr 15, 2019 at 6:00 PM Simon Peyton Jones
mailto:simonpj@microsoft.com> wrote: Thanks. But alas I have no clue about whether I want a v1-install or a v2-install, nor how to achieve them if I knew what they were. I just want to install ‘hspec’ so that I can use it when compiling a program. How would I do that?
The instructions here https://wiki.haskell.org/Cabal-Install https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.haskell.org%2FCabal-Install&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657350786&sdata=81SaQYxWkpF9nYalL%2B%2FSCbcGMMkYsMnFnpylDncDXu0%3D&reserved=0 just say “cabal install hspec” which is what I tried. Those instructions are pointed to from here https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.haskell.org%2FCabal%2FHow_to_install_a_Cabal_package&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657350786&sdata=ougOkZ0Dd%2Fep%2FshvVChLiGb9MEhEOW1sYxGnK8KJ8ww%3D&reserved=0, which in turn are pointed to from the main Cabal home page https://www.haskell.org/cabal/ https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.haskell.org%2Fcabal%2F&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657360794&sdata=I1SnV%2F4c2d05K39NLK%2FQ%2BLdfRoGRRCcKIGXHkNKMGH8%3D&reserved=0.
I must be missing something.
Simon
*From:*Brandon Allbery
mailto:allbery.b@gmail.com> *Sent:* 15 April 2019 22:54 *To:* Simon Peyton Jones mailto:simonpj@microsoft.com> *Cc:* ghc-devs@haskell.org mailto:ghc-devs@haskell.org *Subject:* Re: Cabal woes I think you wanted v1-install to install a library into the user package database, since your cabal is 3.x and the v2-* commands are now the default (that is, you did what used to be cabal new-install or cabal v2-install).
On Mon, Apr 15, 2019 at 5:47 PM Simon Peyton Jones via ghc-devs
mailto:ghc-devs@haskell.org> wrote: I’m trying to install ‘hspec’ on my WSL (Windows subsystem for Linux) system.
But I fail; see below.
For some reason cabal complains about installing a library. (That seems peculiar – isn’t that what cabal is for?) But it helpfully suggests adding –lib.
Alas, cabal then crashes outright, which should never happen.
So I’m stuck. What should I do?
Thanks
Simon
simonpj@MSRC-9870733:~$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
simonpj@MSRC-9870733:~$ cabal install hspec
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: hspec. Perhaps you want to use --lib to install libraries instead.
simonpj@MSRC-9870733:~$ cabal install --lib hspec
Resolving dependencies...
Up to date
Distribution/Simple/GHC.hs:1959:5-56: Irrefutable pattern failed for pattern Just ghcPkgProg
simonpj@MSRC-9870733:~$ which ghc
/opt/ghc/bin/ghc
simonpj@MSRC-9870733:~$ which ghc-pkg
/opt/ghc/bin/ghc-pkg
simonpj@MSRC-9870733:~$
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org mailto:ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657370807&sdata=3IAzng%2BFJbdlxyhT4atnSCCbfEmsOHHtsPNpA4e95ew%3D&reserved=0
--
brandon s allbery kf8nh
allbery.b@gmail.com mailto:allbery.b@gmail.com
--
brandon s allbery kf8nh
allbery.b@gmail.com mailto:allbery.b@gmail.com
-- brandon s allbery kf8nh allbery.b@gmail.com mailto:allbery.b@gmail.com
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

The facts here are in the original message: Simon has a cabal-install that
claims to be 3.0.0.0, and is treating "install" as "v2-install". So
evidently *someone* has released it in some fashion, perhaps
inappropriately.
On Mon, Apr 15, 2019 at 6:22 PM Oleg Grenrus
cabal-install-3 isn't released. Please check the facts.
- Oleg
On 16.4.2019 1.17, Brandon Allbery wrote:
I vaguely recall seeing that bug come up with respect to v2-install. And in fact am a bit surprised that 3 has been released, since this is highlighting that neither it nor the Haskell ecosystem is quite ready for it.
I'd also have expected (and thought I'd seen) "cabal install" in recent 2.x warn that it would be "v1-install" in the future.
On Mon, Apr 15, 2019 at 6:13 PM Simon Peyton Jones
wrote: Aha! That works. I would never in a million years have found that by myself. Thank you.
But
- It is terribly mysterious that “cabal install hspec” doesn’t, well, install hspec. - It must surely be a bug that “cabal install –lib hspec” simply crashes.
Simon
*From:* Brandon Allbery
*Sent:* 15 April 2019 23:03 *To:* Simon Peyton Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Cabal woes Yes, I think a lot of documentation will need to be updated because this. You want "cabal v1-install" with cabal 3.
On Mon, Apr 15, 2019 at 6:00 PM Simon Peyton Jones
wrote: Thanks. But alas I have no clue about whether I want a v1-install or a v2-install, nor how to achieve them if I knew what they were. I just want to install ‘hspec’ so that I can use it when compiling a program. How would I do that?
The instructions here https://wiki.haskell.org/Cabal-Install https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.haskell.org%2FCabal-Install&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657350786&sdata=81SaQYxWkpF9nYalL%2B%2FSCbcGMMkYsMnFnpylDncDXu0%3D&reserved=0 just say “cabal install hspec” which is what I tried. Those instructions are pointed to from here https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.haskell.org%2FCabal%2FHow_to_install_a_Cabal_package&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657350786&sdata=ougOkZ0Dd%2Fep%2FshvVChLiGb9MEhEOW1sYxGnK8KJ8ww%3D&reserved=0, which in turn are pointed to from the main Cabal home page https://www.haskell.org/cabal/ https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.haskell.org%2Fcabal%2F&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657360794&sdata=I1SnV%2F4c2d05K39NLK%2FQ%2BLdfRoGRRCcKIGXHkNKMGH8%3D&reserved=0 .
I must be missing something.
Simon
*From:* Brandon Allbery
*Sent:* 15 April 2019 22:54 *To:* Simon Peyton Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Cabal woes I think you wanted v1-install to install a library into the user package database, since your cabal is 3.x and the v2-* commands are now the default (that is, you did what used to be cabal new-install or cabal v2-install).
On Mon, Apr 15, 2019 at 5:47 PM Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org> wrote:
I’m trying to install ‘hspec’ on my WSL (Windows subsystem for Linux) system.
But I fail; see below.
For some reason cabal complains about installing a library. (That seems peculiar – isn’t that what cabal is for?) But it helpfully suggests adding –lib.
Alas, cabal then crashes outright, which should never happen.
So I’m stuck. What should I do?
Thanks
Simon
simonpj@MSRC-9870733:~$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
simonpj@MSRC-9870733:~$ cabal install hspec
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: hspec. Perhaps you want to use --lib to install libraries instead.
simonpj@MSRC-9870733:~$ cabal install --lib hspec
Resolving dependencies...
Up to date
Distribution/Simple/GHC.hs:1959:5-56: Irrefutable pattern failed for pattern Just ghcPkgProg
simonpj@MSRC-9870733:~$ which ghc
/opt/ghc/bin/ghc
simonpj@MSRC-9870733:~$ which ghc-pkg
/opt/ghc/bin/ghc-pkg
simonpj@MSRC-9870733:~$
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7C9dba03cd18af405d806208d6c1ee1601%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909625657370807&sdata=3IAzng%2BFJbdlxyhT4atnSCCbfEmsOHHtsPNpA4e95ew%3D&reserved=0
--
brandon s allbery kf8nh
allbery.b@gmail.com
--
brandon s allbery kf8nh
allbery.b@gmail.com
-- brandon s allbery kf8nh allbery.b@gmail.com
_______________________________________________ ghc-devs mailing listghc-devs@haskell.orghttp://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
-- brandon s allbery kf8nh allbery.b@gmail.com

Simon has a cabal-install that claims to be 3.0.0.0
Ah yes, I installed it thus:
· sudo add-apt-repository ppa:hvr/ghc-wsl
· sudo apt-get update
· sudo apt install cabal-install-3.0
Why did I do that? Because earlier versions of cabal crashed with a mysterious “The futex facility returned an unexpected” something like this https://github.com/Microsoft/WSL/issues/3881 or this https://github.com/reflex-frp/reflex-platform/issues/293
Apparently Herbert’s 3.0 does not fail in this way.
Simon
From: ghc-devs

But it fails this way instead, because 3.x works differently. Probably
should have checked docs given it's a new major version of cabal-install.
On Mon, Apr 15, 2019 at 6:44 PM Simon Peyton Jones
Simon has a cabal-install that claims to be 3.0.0.0
Ah yes, I installed it thus:
· sudo add-apt-repository ppa:hvr/ghc-wsl
· sudo apt-get update
· sudo apt install cabal-install-3.0
Why did I do that? Because earlier versions of cabal crashed with a mysterious “The futex facility returned an unexpected” something like this https://github.com/Microsoft/WSL/issues/3881 or this https://github.com/reflex-frp/reflex-platform/issues/293
Apparently Herbert’s 3.0 does not fail in this way.
Simon
*From:* ghc-devs
*On Behalf Of *Brandon Allbery *Sent:* 15 April 2019 23:24 *To:* Oleg Grenrus *Cc:* ghc-devs@haskell.org Devs *Subject:* Re: Cabal woes The facts here are in the original message: Simon has a cabal-install that claims to be 3.0.0.0, and is treating "install" as "v2-install". So evidently *someone* has released it in some fashion, perhaps inappropriately.
On Mon, Apr 15, 2019 at 6:22 PM Oleg Grenrus
wrote: cabal-install-3 isn't released. Please check the facts.
- Oleg
On 16.4.2019 1.17, Brandon Allbery wrote:
I vaguely recall seeing that bug come up with respect to v2-install. And in fact am a bit surprised that 3 has been released, since this is highlighting that neither it nor the Haskell ecosystem is quite ready for it.
I'd also have expected (and thought I'd seen) "cabal install" in recent 2.x warn that it would be "v1-install" in the future.
On Mon, Apr 15, 2019 at 6:13 PM Simon Peyton Jones
wrote: Aha! That works. I would never in a million years have found that by myself. Thank you.
But
- It is terribly mysterious that “cabal install hspec” doesn’t, well, install hspec. - It must surely be a bug that “cabal install –lib hspec” simply crashes.
Simon
*From:* Brandon Allbery
*Sent:* 15 April 2019 23:03 *To:* Simon Peyton Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Cabal woes Yes, I think a lot of documentation will need to be updated because this. You want "cabal v1-install" with cabal 3.
On Mon, Apr 15, 2019 at 6:00 PM Simon Peyton Jones
wrote: Thanks. But alas I have no clue about whether I want a v1-install or a v2-install, nor how to achieve them if I knew what they were. I just want to install ‘hspec’ so that I can use it when compiling a program. How would I do that?
The instructions here https://wiki.haskell.org/Cabal-Install https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.haskell.org%2FCabal-Install&data=02%7C01%7Csimonpj%40microsoft.com%7C2fdeabc1bf0049584e9708d6c1f11cb5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909638652533306&sdata=pJb05mqT1A0ceYxJ26%2FkMhJCYQ9S7%2Bupn89xZSl7y2I%3D&reserved=0 just say “cabal install hspec” which is what I tried. Those instructions are pointed to from here https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwiki.haskell.org%2FCabal%2FHow_to_install_a_Cabal_package&data=02%7C01%7Csimonpj%40microsoft.com%7C2fdeabc1bf0049584e9708d6c1f11cb5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909638652533306&sdata=mBDZQXgEtvQLuiTCFCKLtREPmImnr3ljNTHq%2B4A4Nf4%3D&reserved=0, which in turn are pointed to from the main Cabal home page https://www.haskell.org/cabal/ https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.haskell.org%2Fcabal%2F&data=02%7C01%7Csimonpj%40microsoft.com%7C2fdeabc1bf0049584e9708d6c1f11cb5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909638652533306&sdata=scKnLWjyw1X5N1VPpBukOq4PXDoeHcYTXa3gT5bKK7E%3D&reserved=0 .
I must be missing something.
Simon
*From:* Brandon Allbery
*Sent:* 15 April 2019 22:54 *To:* Simon Peyton Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Cabal woes I think you wanted v1-install to install a library into the user package database, since your cabal is 3.x and the v2-* commands are now the default (that is, you did what used to be cabal new-install or cabal v2-install).
On Mon, Apr 15, 2019 at 5:47 PM Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org> wrote:
I’m trying to install ‘hspec’ on my WSL (Windows subsystem for Linux) system.
But I fail; see below.
For some reason cabal complains about installing a library. (That seems peculiar – isn’t that what cabal is for?) But it helpfully suggests adding –lib.
Alas, cabal then crashes outright, which should never happen.
So I’m stuck. What should I do?
Thanks
Simon
simonpj@MSRC-9870733:~$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
simonpj@MSRC-9870733:~$ cabal install hspec
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: hspec. Perhaps you want to use --lib to install libraries instead.
simonpj@MSRC-9870733:~$ cabal install --lib hspec
Resolving dependencies...
Up to date
Distribution/Simple/GHC.hs:1959:5-56: Irrefutable pattern failed for pattern Just ghcPkgProg
simonpj@MSRC-9870733:~$ which ghc
/opt/ghc/bin/ghc
simonpj@MSRC-9870733:~$ which ghc-pkg
/opt/ghc/bin/ghc-pkg
simonpj@MSRC-9870733:~$
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7C2fdeabc1bf0049584e9708d6c1f11cb5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909638652689564&sdata=%2B2GyFeiS7e0m8Agu5CfZKCLocpx9COJJMuSa6K6m5RM%3D&reserved=0
--
brandon s allbery kf8nh
allbery.b@gmail.com
--
brandon s allbery kf8nh
allbery.b@gmail.com
--
brandon s allbery kf8nh
allbery.b@gmail.com
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7C2fdeabc1bf0049584e9708d6c1f11cb5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909638652689564&sdata=%2B2GyFeiS7e0m8Agu5CfZKCLocpx9COJJMuSa6K6m5RM%3D&reserved=0
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7C2fdeabc1bf0049584e9708d6c1f11cb5%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909638652689564&sdata=%2B2GyFeiS7e0m8Agu5CfZKCLocpx9COJJMuSa6K6m5RM%3D&reserved=0
--
brandon s allbery kf8nh
allbery.b@gmail.com
-- brandon s allbery kf8nh allbery.b@gmail.com

Hello Simon,
On Mon, 15 Apr 2019 at 23:14, Simon Peyton Jones via ghc-devs
It is terribly mysterious that “cabal install hspec” doesn’t, well, install hspec.
In the cabal v2-* model [1] installing libraries globally is no longer the recommended mode of operation, which is why you now need to pass --lib to 'install' to do that. There are now better alternatives for most use cases of 'install --lib': * For just trying out some set of libraries in REPL, you can use `cabal new-repl --build-depends=foo,bar,baz` outside of a project instead of ghci. [2] If you have .ghc.environment file generation turned on, you can also use plain ghci inside your project, and it will pick up the project context. [3] * For running Haskell scripts that expect extra libraries in the global package DB you can use `#! cabal` instead of `#! runghc`. [4]
It must surely be a bug that “cabal install –lib hspec” simply crashes.
This is a bug that we haven't fixed yet [5]. Should've just worked. [1] https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html [2] https://cabal.readthedocs.io/en/latest/nix-local-build.html#cabal-v2-repl [3] https://cabal.readthedocs.io/en/latest/nix-local-build.html#cfg-field-write-... [4] https://cabal.readthedocs.io/en/latest/nix-local-build.html#cabal-v2-run [5] https://github.com/haskell/cabal/issues/5990

Mikhail, the use case not addressed here is people who are used to v1-style and want to keep using it — and possibly aren't in a great position to rewire their setup to fit how v2 thinks. Personally, I have situations where I use v2 and others where v1 works better. On Mon, Apr 15, 2019 at 6:43 PM Mikhail Glushenkov < mikhail.glushenkov@gmail.com> wrote:
Hello Simon,
On Mon, 15 Apr 2019 at 23:14, Simon Peyton Jones via ghc-devs
wrote: It is terribly mysterious that “cabal install hspec” doesn’t, well,
install hspec.
In the cabal v2-* model [1] installing libraries globally is no longer the recommended mode of operation, which is why you now need to pass --lib to 'install' to do that.
There are now better alternatives for most use cases of 'install --lib':
* For just trying out some set of libraries in REPL, you can use `cabal new-repl --build-depends=foo,bar,baz` outside of a project instead of ghci. [2] If you have .ghc.environment file generation turned on, you can also use plain ghci inside your project, and it will pick up the project context. [3] * For running Haskell scripts that expect extra libraries in the global package DB you can use `#! cabal` instead of `#! runghc`. [4]
It must surely be a bug that “cabal install –lib hspec” simply crashes.
This is a bug that we haven't fixed yet [5]. Should've just worked.
[1] https://cabal.readthedocs.io/en/latest/nix-local-build-overview.html [2] https://cabal.readthedocs.io/en/latest/nix-local-build.html#cabal-v2-repl [3] https://cabal.readthedocs.io/en/latest/nix-local-build.html#cfg-field-write-... [4] https://cabal.readthedocs.io/en/latest/nix-local-build.html#cabal-v2-run [5] https://github.com/haskell/cabal/issues/5990
-- brandon s allbery kf8nh allbery.b@gmail.com

Hi Brandon,
On Mon, 15 Apr 2019 at 23:46, Brandon Allbery
Mikhail, the use case not addressed here is people who are used to v1-style and want to keep using it — and possibly aren't in a great position to rewire their setup to fit how v2 thinks. Personally, I have situations where I use v2 and others where v1 works better.
Sure, that's why we kept v1-* set of commands for now, and also have implemented 'v2-install --lib' (which would have worked for Simon if not for the #5990 issue).

Hello, in case it is useful, here is how I think about what's happening with cabal. At present, `cabal-install` supports two different modes of operation: the old style (aka `v1`) and the new style (aka `v2`) and---at least for me---the two require a slightly different mental model of what is going on. In the old model, there is a user package database, and users would use "cabal install" to install libraries their manually (e.g., using `cabal-install`). Later, when building various artifacts cabal would prefer using the packages installed in the user's database. This database supported having multiple versions of a package, but NOT multiple builds of the same version of a package (e.g., against different dependencies). As a result, builds would sometimes fail, because the dependencies of packages would clash with each other (the unfortunate "cabal hell"). With the new model, there is still a "user" level location where libraries are installed, but it is not really directly manipulated by the user---rather it acts as more of a "cache" containing all versions of all libraries every built and---crucially---it supports having multiple builds of the same version of a package against different dependencies. When users build an artifact using the new style (aka "v2"), cabal automatically checks if a suitable version of the library is already built in its cache, and if not it adds it there. The important difference between the two (at least in my mind) is that with the new style, you never just install a library on its own. Rather, you install it as a part of a project, so Cabal can compute which version it should install so that you get a version compatible with the rest of the project. Since in this model you never really install libraries directly, the `install` command defaults to installing executables, which is what the first error is trying to say. So, if you want to try out `hspec` with the `v2` style of Cabal, you'd just add it as a dependencies in the `cabal` file of your project, and then use `cabal v2-build` to build the project, without having to install it manually first. I hope this helps, -Iavor On Mon, Apr 15, 2019 at 3:01 PM Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org> wrote:
Thanks. But alas I have no clue about whether I want a v1-install or a v2-install, nor how to achieve them if I knew what they were. I just want to install ‘hspec’ so that I can use it when compiling a program. How would I do that?
The instructions here https://wiki.haskell.org/Cabal-Install just say “cabal install hspec” which is what I tried. Those instructions are pointed to from here https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package, which in turn are pointed to from the main Cabal home page https://www.haskell.org/cabal/.
I must be missing something.
Simon
*From:* Brandon Allbery
*Sent:* 15 April 2019 22:54 *To:* Simon Peyton Jones *Cc:* ghc-devs@haskell.org *Subject:* Re: Cabal woes I think you wanted v1-install to install a library into the user package database, since your cabal is 3.x and the v2-* commands are now the default (that is, you did what used to be cabal new-install or cabal v2-install).
On Mon, Apr 15, 2019 at 5:47 PM Simon Peyton Jones via ghc-devs < ghc-devs@haskell.org> wrote:
I’m trying to install ‘hspec’ on my WSL (Windows subsystem for Linux) system.
But I fail; see below.
For some reason cabal complains about installing a library. (That seems peculiar – isn’t that what cabal is for?) But it helpfully suggests adding –lib.
Alas, cabal then crashes outright, which should never happen.
So I’m stuck. What should I do?
Thanks
Simon
simonpj@MSRC-9870733:~$ cabal --version
cabal-install version 3.0.0.0
compiled using version 3.0.0.0 of the Cabal library
simonpj@MSRC-9870733:~$ cabal install hspec
Resolving dependencies...
Up to date
Warning: You asked to install executables, but there are no executables in
target: hspec. Perhaps you want to use --lib to install libraries instead.
simonpj@MSRC-9870733:~$ cabal install --lib hspec
Resolving dependencies...
Up to date
Distribution/Simple/GHC.hs:1959:5-56: Irrefutable pattern failed for pattern Just ghcPkgProg
simonpj@MSRC-9870733:~$ which ghc
/opt/ghc/bin/ghc
simonpj@MSRC-9870733:~$ which ghc-pkg
/opt/ghc/bin/ghc-pkg
simonpj@MSRC-9870733:~$
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-devs&data=02%7C01%7Csimonpj%40microsoft.com%7C49de1a60a36e4a04bbe208d6c1ecdac9%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636909620364700618&sdata=dMUKGqIICFPisw%2Feskzb98WxcG9kfNFMOkZfd9fB7YU%3D&reserved=0
--
brandon s allbery kf8nh
allbery.b@gmail.com _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

That’s a tremendously helpful summary, thank you Iavor. And Michail’s summary was also very helpful.
Most of this is doubtless well-known to habitual cabal users, but it might be useful to explain the user model, in a way that covers these points, somewhere close to the Cabal home page.
Simon
From: Iavor Diatchki

Hi,
On Mon, 15 Apr 2019 at 23:56, Simon Peyton Jones via ghc-devs
That’s a tremendously helpful summary, thank you Iavor. And Michail’s summary was also very helpful.
Most of this is doubtless well-known to habitual cabal users, but it might be useful to explain the user model, in a way that covers these points, somewhere close to the Cabal home page.
If anyone reading this is interested in helping out with website and documentation, we'll gladly accept PRs. Documentation for Cabal lives at https://github.com/haskell/cabal/tree/master/Cabal/doc and the website sources are at https://github.com/haskell/cabal-website/ (see also the feature/next branch).

Hi, Just wanted to note that the initial Simon's post also mentioned the outdated pages on haskell.org. It'd be good not to forget to purge them, maybe inserting links to cabal.readthedocs. -- Best, Artem On Tue, 16 Apr 2019 at 07:27 Mikhail Glushenkov < mikhail.glushenkov@gmail.com> wrote:
Hi,
On Mon, 15 Apr 2019 at 23:56, Simon Peyton Jones via ghc-devs
wrote: That’s a tremendously helpful summary, thank you Iavor. And Michail’s
summary was also very helpful.
Most of this is doubtless well-known to habitual cabal users, but it
might be useful to explain the user model, in a way that covers these points, somewhere close to the Cabal home page.
If anyone reading this is interested in helping out with website and documentation, we'll gladly accept PRs.
Documentation for Cabal lives at https://github.com/haskell/cabal/tree/master/Cabal/doc and the website sources are at https://github.com/haskell/cabal-website/ (see also the feature/next branch). _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
participants (7)
-
Artem Pelenitsyn
-
Brandon Allbery
-
Iavor Diatchki
-
Mikhail Glushenkov
-
Oleg Grenrus
-
Simon Peyton Jones
-
Vanessa McHale