Cabal woes

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
18 messages Options
Reply | Threaded
Open this post in threaded view
|

Cabal woes

GHC - devs mailing list

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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Brandon Allbery
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


--
brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

RE: Cabal woes

GHC - devs mailing list

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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh


_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Vanessa McHale

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 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 [hidden email]
Sent: 15 April 2019 22:54
To: Simon Peyton Jones [hidden email]
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh


_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
--



Vanessa McHale
Functional Compiler Engineer | Chicago, IL

Website: www.iohk.io
Twitter: @vamchale
PGP Key ID: 4209B7B5

Input
          Output

Twitter Github LinkedIn


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

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Brandon Allbery
In reply to this post by GHC - devs mailing list
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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh



--
brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

RE: Cabal woes

GHC - devs mailing list

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 <[hidden email]>
Sent: 15 April 2019 23:03
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh


 

--

brandon s allbery kf8nh


_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 23:03
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh


 

--

brandon s allbery kf8nh



--
brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 23:03
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh


 

--

brandon s allbery kf8nh



--
brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Brandon Allbery
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 23:03
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh


 

--

brandon s allbery kf8nh



--
brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


--
brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Iavor Diatchki
In reply to this post by GHC - devs mailing list
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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Mikhail Glushenkov
In reply to this post by GHC - devs mailing list
Hello Simon,

On Mon, 15 Apr 2019 at 23:14, Simon Peyton Jones via ghc-devs
<[hidden email]> 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-ghc-environment-files
[4] https://cabal.readthedocs.io/en/latest/nix-local-build.html#cabal-v2-run
[5] https://github.com/haskell/cabal/issues/5990
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

RE: Cabal woes

GHC - devs mailing list
In reply to this post by Brandon Allbery

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 <[hidden email]> On Behalf Of Brandon Allbery
Sent: 15 April 2019 23:24
To: Oleg Grenrus <[hidden email]>
Cc: [hidden email] Devs <[hidden email]>
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 23:03
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh


 

--

brandon s allbery kf8nh


 

--

brandon s allbery kf8nh

 

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh


_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Brandon Allbery
In reply to this post by Mikhail Glushenkov
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 <[hidden email]> wrote:
Hello Simon,

On Mon, 15 Apr 2019 at 23:14, Simon Peyton Jones via ghc-devs
<[hidden email]> 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-ghc-environment-files
[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

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Brandon Allbery
In reply to this post by GHC - devs mailing list
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 <[hidden email]> wrote:

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 <[hidden email]> On Behalf Of Brandon Allbery
Sent: 15 April 2019 23:24
To: Oleg Grenrus <[hidden email]>
Cc: [hidden email] Devs <[hidden email]>
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 <[hidden email]> 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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 23:03
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh


 

--

brandon s allbery kf8nh


 

--

brandon s allbery kf8nh

 

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh



--
brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Mikhail Glushenkov
In reply to this post by Brandon Allbery
Hi Brandon,

On Mon, 15 Apr 2019 at 23:46, Brandon Allbery <[hidden email]> wrote:
>
> 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).
_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

RE: Cabal woes

GHC - devs mailing list
In reply to this post by Iavor Diatchki

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 <[hidden email]>
Sent: 15 April 2019 23:39
To: Simon Peyton Jones <[hidden email]>
Cc: Brandon Allbery <[hidden email]>; [hidden email]
Subject: Re: Cabal woes

 

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 <[hidden email]> 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 <[hidden email]>
Sent: 15 April 2019 22:54
To: Simon Peyton Jones <[hidden email]>
Cc: [hidden email]
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 <[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


 

--

brandon s allbery kf8nh

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs


_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Mikhail Glushenkov
Hi,

On Mon, 15 Apr 2019 at 23:56, Simon Peyton Jones via ghc-devs
<[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
Reply | Threaded
Open this post in threaded view
|

Re: Cabal woes

Artem Pelenitsyn
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 <[hidden email]> wrote:
Hi,

On Mon, 15 Apr 2019 at 23:56, Simon Peyton Jones via ghc-devs
<[hidden email]> 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
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

_______________________________________________
ghc-devs mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs