Problems installing Idris 1

168 views
Skip to first unread message

Martin

unread,
Jul 11, 2020, 6:07:07 AM7/11/20
to Idris Programming Language
I am trying to install Idris 1 using Cabal as suggested here:
https://www.idris-lang.org/pages/download.html

but I get the following error:

[__1] rejecting: idris:setup.Cabal-3.2.0.0/installed-3.2.0.0 (conflict: idris
=> idris:setup.Cabal>=2.4 && <3.1)

Does this mean I need to change the version of Cabal? If so how do I do it?

I have just done a clean install of openSUSE Leap 15.2 and I used Yast to install the following packages:

  • Haskell (ghc)
  • Cabal
  • ghc-zlib

Can anyone see what I'm doing wrong?

Thanks,

Martin

The full error message is here:

mjb@localhost:~> cabal update
Config file path source is default config file.
Config file /home/mjb/.cabal/config not found.
Writing default configuration to /home/mjb/.cabal/config
Downloading the latest package list from hackage.haskell.org
mjb@localhost
:~> cabal install idris
Resolving dependencies...
cabal
: Could not resolve dependencies:
[__0] trying: idris-1.3.3 (user goal)
[__1] next goal: idris:setup.Cabal (dependency of idris)
[__1] rejecting: idris:setup.Cabal-3.2.0.0/installed-3.2.0.0 (conflict: idris
=> idris:setup.Cabal>=2.4 && <3.1)
[__1] skipping: idris:setup.Cabal-3.2.0.0 (has the same characteristics that
caused the previous version to fail
: excluded by constraint '>=2.4 && <3.1'
from 'idris')
[__1] rejecting: idris:setup.Cabal-3.0.2.0, idris:setup.Cabal-3.0.1.0,
idris
:setup.Cabal-3.0.0.0, idris:setup.Cabal-2.4.1.0,
idris
:setup.Cabal-2.4.0.1, idris:setup.Cabal-2.4.0.0,
idris
:setup.Cabal-2.2.0.1, idris:setup.Cabal-2.2.0.0,
idris
:setup.Cabal-2.0.1.1, idris:setup.Cabal-2.0.1.0,
idris
:setup.Cabal-2.0.0.2, idris:setup.Cabal-1.24.2.0,
idris
:setup.Cabal-1.24.0.0, idris:setup.Cabal-1.22.8.0,
idris
:setup.Cabal-1.22.7.0, idris:setup.Cabal-1.22.6.0,
idris
:setup.Cabal-1.22.5.0, idris:setup.Cabal-1.22.4.0,
idris
:setup.Cabal-1.22.3.0, idris:setup.Cabal-1.22.2.0,
idris
:setup.Cabal-1.22.1.1, idris:setup.Cabal-1.22.1.0,
idris
:setup.Cabal-1.22.0.0, idris:setup.Cabal-1.20.0.4,
idris
:setup.Cabal-1.20.0.3, idris:setup.Cabal-1.20.0.2,
idris
:setup.Cabal-1.20.0.1, idris:setup.Cabal-1.20.0.0,
idris
:setup.Cabal-1.18.1.7, idris:setup.Cabal-1.18.1.6,
idris
:setup.Cabal-1.18.1.5, idris:setup.Cabal-1.18.1.4,
idris
:setup.Cabal-1.18.1.3, idris:setup.Cabal-1.18.1.2,
idris
:setup.Cabal-1.18.1.1, idris:setup.Cabal-1.18.1,
idris
:setup.Cabal-1.18.0, idris:setup.Cabal-1.16.0.3,
idris
:setup.Cabal-1.16.0.2, idris:setup.Cabal-1.16.0.1,
idris
:setup.Cabal-1.16.0, idris:setup.Cabal-1.14.0, idris:setup.Cabal-1.12.0,
idris
:setup.Cabal-1.10.2.0, idris:setup.Cabal-1.10.1.0,
idris
:setup.Cabal-1.10.0.0, idris:setup.Cabal-1.8.0.6,
idris
:setup.Cabal-1.8.0.4, idris:setup.Cabal-1.8.0.2,
idris
:setup.Cabal-1.6.0.3, idris:setup.Cabal-1.6.0.2,
idris
:setup.Cabal-1.6.0.1, idris:setup.Cabal-1.4.0.2,
idris
:setup.Cabal-1.4.0.1, idris:setup.Cabal-1.4.0.0,
idris
:setup.Cabal-1.2.4.0, idris:setup.Cabal-1.2.3.0,
idris
:setup.Cabal-1.2.2.0, idris:setup.Cabal-1.2.1, idris:setup.Cabal-1.1.6,
idris
:setup.Cabal-1.24.1.0 (constraint from minimum version of Cabal used by
Setup.hs requires >=3.2)
[__1] fail (backjumping, conflict set: idris, idris:setup.Cabal)
After searching the rest of the dependency tree exhaustively, these were the
goals I
've had most trouble fulfilling: idris, base, hashable, text,
blaze-builder, blaze-markup, trifecta, haskeline, idris:setup.Cabal,
optparse-applicative, unordered-containers, ivor
Try running with --minimize-conflict-set to improve the error message.

mjb@localhost:~>

jb@localhost:~> cabal install idris --minimize-conflict-set
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: idris-1.3.3 (user goal)
[__1] next goal: idris:setup.Cabal (dependency of idris)
[__1] rejecting: idris:setup.Cabal-3.2.0.0/installed-3.2.0.0 (conflict: idris
=> idris:setup.Cabal>=2.4 && <3.1)
[__1] skipping: idris:setup.Cabal-3.2.0.0 (has the same characteristics that
caused the previous version to fail: excluded by constraint '
>=2.4 && <3.1'
from '
idris')
[__1] rejecting: idris:setup.Cabal-3.0.2.0, idris:setup.Cabal-3.0.1.0,
idris:setup.Cabal-3.0.0.0, idris:setup.Cabal-2.4.1.0,
idris:setup.Cabal-2.4.0.1, idris:setup.Cabal-2.4.0.0,
idris:setup.Cabal-2.2.0.1, idris:setup.Cabal-2.2.0.0,
idris:setup.Cabal-2.0.1.1, idris:setup.Cabal-2.0.1.0,
idris:setup.Cabal-2.0.0.2, idris:setup.Cabal-1.24.2.0,
idris:setup.Cabal-1.24.0.0, idris:setup.Cabal-1.22.8.0,
idris:setup.Cabal-1.22.7.0, idris:setup.Cabal-1.22.6.0,
idris:setup.Cabal-1.22.5.0, idris:setup.Cabal-1.22.4.0,
idris:setup.Cabal-1.22.3.0, idris:setup.Cabal-1.22.2.0,
idris:setup.Cabal-1.22.1.1, idris:setup.Cabal-1.22.1.0,
idris:setup.Cabal-1.22.0.0, idris:setup.Cabal-1.20.0.4,
idris:setup.Cabal-1.20.0.3, idris:setup.Cabal-1.20.0.2,
idris:setup.Cabal-1.20.0.1, idris:setup.Cabal-1.20.0.0,
idris:setup.Cabal-1.18.1.7, idris:setup.Cabal-1.18.1.6,
idris:setup.Cabal-1.18.1.5, idris:setup.Cabal-1.18.1.4,
idris:setup.Cabal-1.18.1.3, idris:setup.Cabal-1.18.1.2,
idris:setup.Cabal-1.18.1.1, idris:setup.Cabal-1.18.1,
idris:setup.Cabal-1.18.0, idris:setup.Cabal-1.16.0.3,
idris:setup.Cabal-1.16.0.2, idris:setup.Cabal-1.16.0.1,
idris:setup.Cabal-1.16.0, idris:setup.Cabal-1.14.0, idris:setup.Cabal-1.12.0,
idris:setup.Cabal-1.10.2.0, idris:setup.Cabal-1.10.1.0,
idris:setup.Cabal-1.10.0.0, idris:setup.Cabal-1.8.0.6,
idris:setup.Cabal-1.8.0.4, idris:setup.Cabal-1.8.0.2,
idris:setup.Cabal-1.6.0.3, idris:setup.Cabal-1.6.0.2,
idris:setup.Cabal-1.6.0.1, idris:setup.Cabal-1.4.0.2,
idris:setup.Cabal-1.4.0.1, idris:setup.Cabal-1.4.0.0,
idris:setup.Cabal-1.2.4.0, idris:setup.Cabal-1.2.3.0,
idris:setup.Cabal-1.2.2.0, idris:setup.Cabal-1.2.1, idris:setup.Cabal-1.1.6,
idris:setup.Cabal-1.24.1.0 (constraint from minimum version of Cabal used by
Setup.hs requires >=3.2)
[__1] fail (backjumping, conflict set: idris, idris:setup.Cabal)
After searching the rest of the dependency tree exhaustively, these were the
goals I'
ve had most trouble fulfilling: idris:setup.Cabal, idris, base, ivor


uli...@gmail.com

unread,
Jul 11, 2020, 6:13:16 AM7/11/20
to idris...@googlegroups.com
Martin,

Try cabal install --allow-newer idris

Basically, you have too new GHC. For some arcane reasons,
https://pvp.haskell.org requires that Haskell packages always specify
upper bounds on their dependencies.

So, maintainers need to go and actively bump the bounds on every dep
update, even if it breaks nothing. Of course, that rarely gets done.

Max

On Sat, Jul 11, 2020 at 03:07, Martin <ax8...@martinb.com> wrote:
> I am trying to install Idris 1 using Cabal as suggested here:
> https://www.idris-lang.org/pages/download.html
>
> but I get the following error:
>
> [__1]rejecting:idris:setup.Cabal-3.2.0.0/installed-3.2.0.0(conflict:idris
> =>idris:setup.Cabal>=2.4&&<3.1)
>
> Does this mean I need to change the version of Cabal? If so how do I
> do it?
>
> I have just done a clean install of openSUSE Leap 15.2 and I used
> Yast to install the following packages:
>
> Haskell (ghc)Cabalghc-zlib
>
> Can anyone see what I'm doing wrong?
>
> Thanks,
>
> Martin
>
> The full error message is here:
>
> mjb@localhost:~>cabal update
> Configfile path sourceisdefaultconfig file.
> Configfile/home/mjb/.cabal/confignotfound.
> Writingdefaultconfiguration to/home/mjb/.cabal/config
> Downloadingthe latestpackagelistfromhackage.haskell.org
> mjb@localhost:~>cabal install idris
> Resolvingdependencies...
> cabal:Couldnotresolve dependencies:
> [__0]trying:idris-1.3.3(user goal)
> [__1]nextgoal:idris:setup.Cabal(dependency of idris)
> [__1]rejecting:idris:setup.Cabal-3.2.0.0/installed-3.2.0.0(conflict:idris
> =>idris:setup.Cabal>=2.4&&<3.1)
> [__1]skipping:idris:setup.Cabal-3.2.0.0(has the same characteristics
> that
> caused the previous version to fail:excludedbyconstraint'>=2.4 &&
> Aftersearching the rest of the dependency tree exhaustively,these
> were the
> goals I've had most trouble fulfilling: idris, base, hashable, text,
> blaze-builder, blaze-markup, trifecta, haskeline, idris:setup.Cabal,
> optparse-applicative, unordered-containers, ivor
> Try running with --minimize-conflict-set to improve the error message.
>
> mjb@localhost:~>
>
> jb@localhost:~> cabal install idris --minimize-conflict-set
> Resolving dependencies...
> cabal: Could not resolve dependencies:
> [__0] trying: idris-1.3.3 (user goal)
> [__1] next goal: idris:setup.Cabal (dependency of idris)
> [__1] rejecting: idris:setup.Cabal-3.2.0.0/installed-3.2.0.0
> (conflict: idris
> => idris:setup.Cabal>=2.4 && <3.1)
> [__1] skipping: idris:setup.Cabal-3.2.0.0 (has the same
> characteristics that
> caused the previous version to fail: excluded by constraint
> '>=2.4&&<3.1'
> --
> You received this message because you are subscribed to the Google
> Groups "Idris Programming Language" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to idris-lang+...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/idris-lang/1e7b836d-d123-49aa-a4c3-55ca100c97cao%40googlegroups.com.


Martin

unread,
Jul 11, 2020, 10:41:38 AM7/11/20
to Idris Programming Language
Max,

Thanks for your help so far, its now got a lot further but it now crashes with a different error.

Martin

mjb@localhost:~> cabal install --allow-newer idris
Resolving dependencies...
Build profile: -w ghc-8.10.1 -O1
In order, the following will be built (use -v for more details):
 
- annotated-wl-pprint-0.7.0 (lib:annotated-wl-pprint) (requires download & build)
 
- base-compat-0.11.1 (lib) (requires download & build)


 
<snip>


Starting     idris-1.3.3 (all, legacy fallback)
Building     idris-1.3.3 (all, legacy fallback)


Failed to build idris-1.3.3.
Build log (
/home/mjb/.cabal/logs/ghc-8.10.1/idris-1.3.3-de0682fe989e44884e1583a897d69377d31952f96f882efcfa108352cc79e923.log
):
[1 of 1] Compiling Main             ( /tmp/cabal-install.-7527/dist-newstyle/tmp/src-7527/idris-1.3.3/dist/setup/setup.hs, /tmp/cabal-install.-7527/dist-newstyle/tmp/src-7527/idris-1.3.3/dist/setup/Main.o )
Linking /tmp/cabal-install.-7527/dist-newstyle/tmp/src-7527/idris-1.3.3/dist/setup/setup ...


 
<snip>


[ 58 of 115] Compiling Idris.Output     ( src/Idris/Output.hs, dist/build/Idris/Output.o, dist/build/Idris/Output.dyn_o )


src
/Idris/Output.hs:44:1: error:
   
Could not find module System.Console.Haskeline.MonadException
   
Perhaps you meant
     
System.Console.Haskeline.Completion (from haskeline-0.8.0.0)
     
System.Console.Haskeline.Monads
     
System.Console.Haskeline.Command.Completion
   
Use -v (or `:set -v` in ghci) to see a list of the files searched for.
   
|
44 | import System.Console.Haskeline.MonadException (MonadException(controlIO),
   
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
cabal
: Failed to build idris-1.3.3. See the build log above for details.



idris-1.3.3-de0682fe989e44884e1583a897d69377d31952f96f882efcfa108352cc79e923.log

uli...@gmail.com

unread,
Jul 11, 2020, 12:19:52 PM7/11/20
to idris...@googlegroups.com
Martin,

Okay, so there's indeed breakage caused by dependency updates. We can
guess that haskeline-0.8.0.0 has incompatibly changed it's public API;
both from the major version bump, and from the compile error.

See this Pull Request https://github.com/idris-lang/Idris-dev/pull/4871

There you can see that Idris has already fixed this -- but the fix
wasn't yet released.

You have two options going forward.

1) Build Idris from git master. git clone the repo, cd into it, cabal
install --allow-newer.

2) Build the released version 1.3.3, but with an added version
constraint: cabal install --allow-newer --constraint='haskeline <
0.8.0.0'

Hope that helps
Max
> Use-v(or`:set -v`inghci)to see a list of the files searchedfor.
> |
> 44|importSystem.Console.Haskeline.MonadException(MonadException(controlIO),
>
> |^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...
> cabal:Failedto build idris-1.3.3.Seethe build log abovefordetails.
>
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Idris Programming Language" group.
> To unsubscribe from this group and stop receiving emails from it,
> send an email to idris-lang+...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/idris-lang/c7ea1a5d-835c-4340-b145-150bc13a2cfeo%40googlegroups.com.


Martin

unread,
Jul 11, 2020, 1:12:36 PM7/11/20
to Idris Programming Language
Max,

Thanks for your help, it worked! I used:

cabal install --allow-newer --constraint='haskeline < 0.8.0.0' idris

Martin

PS, I don't know who maintains:
Are they likely to read this? Or should I put this comment as a github issue?

This page says:

You can find the source from the following places:


   
Hackage has the most recently released version. Assuming you have an up to date Haskell distribution, at the shell prompt, type
        cabal update
        cabal install idris


In order to be helpful to potential new users I think this should be changed to:

To install Idris 1:


First make sure the following packaged are installed:


Haskell (ghc)
Cabal
ghc
-zlib


Then run


cabal update
cabal install
--allow-newer --constraint='haskeline < 0.8.0.0' idris


Check if path is set to .cabal/bin by typing echo $PATH
if not edit login shell. Put PATH into local '.profile' file like this:
PATH
=$PATH:/home/mjb/.cabal/bin

Reply all
Reply to author
Forward
0 new messages