Hello all, This is my attempt to upgrade Idris to 1.2.0, the version included in LTS Haskell 10.7. sclv on #hackage helped me figure out that one of the remaining problems is a version mismatch on ghc-binary:
$ ./pre-inst-env guix build idris ... Warning: This package indirectly depends on multiple versions of the same package. This is highly likely to cause a compile failure. package zip-archive-0.3.0.5 requires binary-0.8.3.0 package vector-binary-instances-0.2.4 requires binary-0.8.3.0 package uuid-types-1.0.3 requires binary-0.8.3.0 package text-1.2.2.2 requires binary-0.8.3.0 package scientific-0.3.5.2 requires binary-0.8.3.0 package idris-1.2.0 requires binary-0.8.5.1 ... [ 23 of 114] Compiling Idris.Core.Binary ( src/Idris/Core/Binary.hs, dist/build/Idris/Core/Binary.o ) src/Idris/Core/Binary.hs:233:10: error: ? No instance for (Binary Data.Text.Internal.Text) arising from a use of ?binary-0.8.5.1:Data.Binary.Class.$dmput? ? In the expression: binary-0.8.5.1:Data.Binary.Class.$dmput @Name In an equation for ?put?: put = binary-0.8.5.1:Data.Binary.Class.$dmput @Name In the instance declaration for ?Binary Name? ... It seems like ghc-text uses the GHC-bundled version of binary: $ ./pre-inst-env guix environment idris -- ghc-pkg list ... /gnu/store/gvqz0x4n15zgdqnh5z675ca97j1si766-profile/lib/ghc-8.0.2/ghc-text-1.2.2.2.conf.d array-0.5.1.1 base-4.9.1.0 binary-0.8.3.0 bytestring-0.10.8.1 containers-0.5.7.1 deepseq-1.4.2.0 ghc-prim-0.5.0.0 integer-gmp-1.0.0.1 rts-1.0 text-1.2.2.2 ... I tried adding ghc-binary (our ghc-binary is at 0.8.5.1, which should agree with Irdris's) to the inputs of ghc-text, but it appears to cause a circular dependency -- guix-building idris or ghc-text after this modification causes a heap OoM in Guile. I would appreciate any pointers about what I can try next! :)
>From 5877c2a229eda3b2d41b2b84978964cf26b0b552 Mon Sep 17 00:00:00 2001 From: Alex ter Weele <alex.ter.we...@gmail.com> Date: Sun, 4 Mar 2018 19:05:25 -0600 Subject: [PATCH] (WIP) gnu: idris: Upgrade to 1.2.0. * gnu/packages/idris.scm (idris): upgrade to 1.2.0. [inputs] alphebetize ghc-vector-binary-instances and ghc-async. Delete ghc-parsers, ghc-tasty, ghc-tasty-golden, ghc-tasty-rerun, ghc-trifecta, and ghc-zlib as they are not dependencies of 1.2.0. Add ghc-binary and ghc-megaparsec. --- gnu/packages/haskell.scm | 5 ++++- gnu/packages/idris.scm | 18 +++++++----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm index e7401e5cf..2560179e6 100644 --- a/gnu/packages/haskell.scm +++ b/gnu/packages/haskell.scm @@ -1955,7 +1955,10 @@ case with other forms of concurrent communication, such as locks or ;; The test dependencies depend on ghc-text: ghc-test-framework -> ghc-xml -> ghc-text (arguments `(#:tests? #f)) (inputs - `(("ghc-random" ,ghc-random))) + `(("ghc-random" ,ghc-random) + ;; necessary, but seems to cause a circular dependency. + #;("ghc-binary" ,ghc-binary) + )) (home-page "https://github.com/bos/text") (synopsis "Efficient packed Unicode text type library") (description diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm index 6eb940c9d..784346872 100644 --- a/gnu/packages/idris.scm +++ b/gnu/packages/idris.scm @@ -33,7 +33,7 @@ (define-public idris (package (name "idris") - (version "1.0") + (version "1.2.0") (source (origin (method url-fetch) (uri (string-append @@ -41,17 +41,18 @@ "idris-" version "/idris-" version ".tar.gz")) (sha256 (base32 - "1srbz0cyvd0k1yqgbrwnfj94yg5y3z533q1kzac96z1h7v454s5h")))) + "0bim5lmr1wh3sc5nj5axy8xa2qq8rajp13x363mb9kkrnfy5wbxk")))) (build-system haskell-build-system) (inputs `(("gmp" ,gmp) ("ncurses" ,ncurses) ("ghc-aeson" ,ghc-aeson) - ("ghc-async" ,ghc-async) ("ghc-annotated-wl-pprint" ,ghc-annotated-wl-pprint) ("ghc-ansi-terminal" ,ghc-ansi-terminal) ("ghc-ansi-wl-pprint" ,ghc-ansi-wl-pprint) + ("ghc-async" ,ghc-async) ("ghc-base64-bytestring" ,ghc-base64-bytestring) + ("ghc-binary" ,ghc-binary) ("ghc-blaze-html" ,ghc-blaze-html) ("ghc-blaze-markup" ,ghc-blaze-markup) ("ghc-cheapskate" ,ghc-cheapskate) @@ -59,26 +60,21 @@ ("ghc-fingertree" ,ghc-fingertree) ("ghc-fsnotify" ,ghc-fsnotify) ("ghc-ieee754" ,ghc-ieee754) + ("ghc-megaparsec" ,ghc-megaparsec) ("ghc-mtl" ,ghc-mtl) ("ghc-network" ,ghc-network) ("ghc-optparse-applicative" ,ghc-optparse-applicative) - ("ghc-parsers" ,ghc-parsers) ("ghc-regex-tdfa" ,ghc-regex-tdfa) ("ghc-safe" ,ghc-safe) ("ghc-split" ,ghc-split) - ("ghc-tasty" ,ghc-tasty) - ("ghc-tasty-golden" ,ghc-tasty-golden) - ("ghc-tasty-rerun" ,ghc-tasty-rerun) ("ghc-terminal-size" ,ghc-terminal-size) ("ghc-text" ,ghc-text) - ("ghc-trifecta" ,ghc-trifecta) ("ghc-uniplate" ,ghc-uniplate) ("ghc-unordered-containers" ,ghc-unordered-containers) ("ghc-utf8-string" ,ghc-utf8-string) - ("ghc-vector-binary-instances" ,ghc-vector-binary-instances) ("ghc-vector" ,ghc-vector) - ("ghc-zip-archive" ,ghc-zip-archive) - ("ghc-zlib" ,ghc-zlib))) + ("ghc-vector-binary-instances" ,ghc-vector-binary-instances) + ("ghc-zip-archive" ,ghc-zip-archive))) (arguments `(#:tests? #f ; FIXME: Test suite doesn't run in a sandbox. #:configure-flags -- 2.16.2