GNU bug report logs - #61420
[PATCH 00/31] Haskell upgrade to Stackage 20.5

Previous Next

Package: guix-patches;

Reported by: Lars-Dominik Braun <lars <at> 6xq.net>

Date: Sat, 11 Feb 2023 10:00:02 UTC

Severity: normal

Tags: patch

Done: Lars-Dominik Braun <lars <at> 6xq.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 61420 in the body.
You can then email your comments to 61420 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:00:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Lars-Dominik Braun <lars <at> 6xq.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 11 Feb 2023 10:00:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: guix-patches <at> gnu.org
Subject: [PATCH 00/31] Haskell upgrade to Stackage 20.5
Date: Sat, 11 Feb 2023 10:59:17 +0100
Hi,

these patches (also found in the wip-haskell branch) lift Haskell to
the Stackage release 20.5, which is based on GHC 9.2.

Apart from the upgrade, I also made a few fixes to haskell-build-system
and the importer such as

- Support for multiple Haskell libraries in one package (see #54729).
- Add an upstream-name property to all packages and use it in the updater.
- Use hackage-uri instead of string-append to build URLs.
- Build binaries statically by default and remove extra static output
  from haskell-build-system (this reduces pandoc’s size even further
  by ~100MB without the need to resort to weird input rewriting hacks).

I’m not including the big, automated changes here – please check the branch.

Cheers,
Lars

Lars-Dominik Braun (29):
  import: hackage: Allow version at the beginning of cabal file.
  gnu: Switch default to GHC 9.2.
  import: stackage: Update to release 20.5.
  import: hackage: Add upstream-name property.
  gnu: Add upstream-name property to Haskell packages.
  import: hackage: Use upstream-name property.
  gnu: Use HACKAGE-URI for packages from Hackage.
  import: haskell: Add new internal library for GHC 9.2.
  build: haskell-build-system: Process all transitive dependencies.
  build: haskell-build-system: Remove unused linker flags.
  Upgrade Haskell packages.
  gnu: ghc-9.2: Increase make verbosity.
  gnu: Remove unused Haskell packages.
  gnu: ghc-parsec: Update to 3.1.15.0.
  gnu: idris: Fix overly zealous regular expression.
  gnu: elm: Support GHC 9.2.
  build-system: haskell: Drop default "static" output.
  gnu: ghc-9.2: Support static linking with glibc < 2.34.
  gnu: ghc-lua: Disable symbol export.
  build: haskell-build-system: Build static executables by default.
  gnu: ngless: Drop Haskell libraries and documentation.
  gnu: hledger: Drop Haskell libraries and documentation.
  gnu: darcs: Drop Haskell libraries and documentation.
  gnu: git-annex: Drop Haskell documentation.
  gnu: shellcheck: Drop Haskell libraries.
  gnu: pandoc: Drop Haskell libraries and documentation.
  gnu: purescript: Drop Haskell libraries and documentation.
  gnu: xmobar: Drop Haskell libraries and documentation.
  gnu: idris: Adapt to changed haskell-build-system.

Philip Munksgaard (1):
  build: haskell-build-system: Support multiple libraries.

zimoun (1):
  build: haskell-build-system: Remove trailing #t.

 gnu/local.mk                                  |     8 +-
 gnu/packages/agda.scm                         |     5 +-
 gnu/packages/bioinformatics.scm               |   215 +-
 gnu/packages/dhall.scm                        |   168 +-
 gnu/packages/elm.scm                          |     5 +-
 gnu/packages/finance.scm                      |   213 +-
 gnu/packages/haskell-apps.scm                 |   613 +-
 gnu/packages/haskell-check.scm                |   782 +-
 gnu/packages/haskell-crypto.scm               |   352 +-
 gnu/packages/haskell-web.scm                  |  1453 +-
 gnu/packages/haskell-xyz.scm                  | 11569 ++++++++--------
 gnu/packages/haskell.scm                      |    25 +-
 gnu/packages/idris.scm                        |    14 +-
 gnu/packages/lisp.scm                         |   127 +-
 .../cabal-install-base16-bytestring1.0.patch  |    29 -
 .../patches/cabal-install-ghc8.10.patch       |   393 -
 gnu/packages/patches/elm-ghc9.2.patch         |   187 +
 .../ghc-9.2-glibc-2.33-link-order.patch       |    35 +
 .../patches/ghc-bloomfilter-ghc9.2.patch      |   303 +
 .../patches/ghc-bytestring-handle-ghc9.patch  |    67 +
 gnu/packages/patches/ngless-unliftio.patch    |    66 -
 .../patches/xmonad-dynamic-linking.patch      |    24 +-
 .../patches/xmonad-next-dynamic-linking.patch |    16 -
 gnu/packages/purescript.scm                   |   172 +-
 gnu/packages/wm.scm                           |   136 +-
 guix/build-system/haskell.scm                 |     5 +-
 guix/build/haskell-build-system.scm           |   136 +-
 guix/import/hackage.scm                       |    21 +-
 guix/import/stackage.scm                      |     6 +-
 tests/hackage.scm                             |     5 +
 30 files changed, 8449 insertions(+), 8701 deletions(-)
 delete mode 100644 gnu/packages/patches/cabal-install-base16-bytestring1.0.patch
 delete mode 100644 gnu/packages/patches/cabal-install-ghc8.10.patch
 create mode 100644 gnu/packages/patches/elm-ghc9.2.patch
 create mode 100644 gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch
 create mode 100644 gnu/packages/patches/ghc-bloomfilter-ghc9.2.patch
 create mode 100644 gnu/packages/patches/ghc-bytestring-handle-ghc9.patch
 delete mode 100644 gnu/packages/patches/ngless-unliftio.patch
 delete mode 100644 gnu/packages/patches/xmonad-next-dynamic-linking.patch


base-commit: 900d33527c9286a811f064d4bb8f4a9b18d1db0b
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:02 GMT) Full text and rfc822 format available.

Message #8 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 01/31] import: hackage: Allow version at the beginning of
 cabal file.
Date: Sat, 11 Feb 2023 11:07:58 +0100
Fix a corner case, uncovered by the hedgehog package, which has the
version field at the beginning of its cabal file. This causes a pattern
match failure.

* guix/import/hackage.scm (latest-release): Match version at beginning
of expression too.
---
 guix/import/hackage.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 7bc2908405..e915aac58d 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -378,7 +378,10 @@ (define* (latest-release package #:key (version #f))
                "warning: failed to parse ~a~%"
                (hackage-cabal-url hackage-name))
        #f)
-      ((_ *** ("version" (version)))
+      ;; Cabal files have no particular order and while usually the version
+      ;; as somewhere in the middle it can also be at the beginning,
+      ;; requiring two pattern.
+      ((or (_ *** ("version" (version))) (("version" (version)) _ ...))
        (let ((url (hackage-uri hackage-name version)))
          (upstream-source
           (package (package-name package))
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:02 GMT) Full text and rfc822 format available.

Message #11 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Philip Munksgaard <philip <at> munksgaard.me>, Lars-Dominik Braun <lars <at> 6xq.net>,
 zimoun <zimon.toutoune <at> gmail.com>
Subject: [PATCH 03/31] build: haskell-build-system: Support multiple libraries.
Date: Sat, 11 Feb 2023 11:08:00 +0100
From: Philip Munksgaard <philip <at> munksgaard.me>

Fixes <https://bugs.gnu.org/53655>.

The patch handles correctly the multiple registration of some package using
their own internal sub-libraries.  It allows to call 'install-transitive-deps'
multiple times and deals with packages requiring a multiple registration.

* guix/build/haskell-build-system.scm (register)[install-transitive-deps]:
Guard also the destination direction.
[install-config-file]: New procedure.

Co-Authored-by: zimoun <zimon.toutoune <at> gmail.com>.
Signed-off-by: Lars-Dominik Braun <lars <at> 6xq.net>
---
 guix/build/haskell-build-system.scm | 87 ++++++++++++++++-------------
 1 file changed, 49 insertions(+), 38 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index e2e5904dce..fb4aba28ea 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -6,6 +6,7 @@
 ;;; Copyright © 2018 Alex Vong <alexvong1995 <at> gmail.com>
 ;;; Copyright © 2021 John Kehayias <john.kehayias <at> protonmail.com>
 ;;; Copyright © 2022 Simon Tournier <zimon.toutoune <at> gmail.com>
+;;; Copyright © 2022 Philip Munksgaard <philip <at> munksgaard.me>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -215,13 +216,50 @@ (define (install-transitive-deps conf-file src dest)
          (if (not (vhash-assoc id seen))
              (let ((dep-conf  (string-append src  "/" id ".conf"))
                    (dep-conf* (string-append dest "/" id ".conf")))
-               (when (not (file-exists? dep-conf))
+               (unless (file-exists? dep-conf*)
+                 (unless (file-exists? dep-conf)
                    (error (format #f "File ~a does not exist. This usually means the dependency ~a is missing. Was checking conf-file ~a." dep-conf id conf-file)))
-               (copy-file dep-conf dep-conf*) ;XXX: maybe symlink instead?
-               (loop (vhash-cons id #t seen)
-                     (append lst (conf-depends dep-conf))))
+                 (copy-file dep-conf dep-conf*) ;XXX: maybe symlink instead?
+                 (loop (vhash-cons id #t seen)
+                       (append lst (conf-depends dep-conf)))))
              (loop seen tail))))))
 
+  (define (install-config-file conf-file dest output:doc output:lib)
+      ;; Copy CONF-FILE to DEST removing reference to OUTPUT:DOC from
+      ;; OUTPUT:LIB and using install-transitive-deps.
+      (let* ((contents (call-with-input-file conf-file read-string))
+             (id-rx (make-regexp "^id:[ \n\t]+([^ \t\n]+)$" regexp/newline))
+             (config-file-name+id
+              (match:substring (first (list-matches id-rx contents)) 1)))
+
+        (when (or
+               (and
+                (string? config-file-name+id)
+                (string-null? config-file-name+id))
+               (not config-file-name+id))
+          (error (format #f "The package id for ~a is empty. This is a bug." conf-file)))
+
+        ;; Remove reference to "doc" output from "lib" (or "out") by rewriting the
+        ;; "haddock-interfaces" field and removing the optional "haddock-html"
+        ;; field in the generated .conf file.
+        (when output:doc
+          (substitute* conf-file
+            (("^haddock-html: .*") "\n")
+            (((format #f "^haddock-interfaces: ~a" output:doc))
+             (string-append "haddock-interfaces: " output:lib)))
+          ;; Move the referenced file to the "lib" (or "out") output.
+          (match (find-files output:doc "\\.haddock$")
+            ((haddock-file . rest)
+             (let* ((subdir (string-drop haddock-file (string-length output:doc)))
+                    (new    (string-append output:lib subdir)))
+               (mkdir-p (dirname new))
+               (rename-file haddock-file new)))
+            (_ #f)))
+        (install-transitive-deps conf-file %tmp-db-dir dest)
+        (rename-file conf-file
+                     (string-append dest "/"
+                                    config-file-name+id ".conf"))))
+
   (let* ((out (assoc-ref outputs "out"))
          (doc (assoc-ref outputs "doc"))
          (haskell  (assoc-ref inputs "haskell"))
@@ -231,7 +269,6 @@ (define (install-transitive-deps conf-file src dest)
          (config-dir (string-append lib
                                     "/ghc-" version
                                     "/" name ".conf.d"))
-         (id-rx (make-regexp "^id:[ \n\t]+([^ \t\n]+)$" regexp/newline))
          (config-file (string-append out "/" name ".conf"))
          (params
           (list (string-append "--gen-pkg-config=" config-file))))
@@ -239,39 +276,13 @@ (define (install-transitive-deps conf-file src dest)
     ;; The conf file is created only when there is a library to register.
     (when (file-exists? config-file)
       (mkdir-p config-dir)
-      (let* ((contents (call-with-input-file config-file read-string))
-             (config-file-name+id (match:substring (first (list-matches id-rx contents)) 1)))
-
-        (when (or
-                (and
-                  (string? config-file-name+id)
-                  (string-null? config-file-name+id))
-                (not config-file-name+id))
-          (error (format #f "The package id for ~a is empty. This is a bug." config-file)))
-
-        ;; Remove reference to "doc" output from "lib" (or "out") by rewriting the
-        ;; "haddock-interfaces" field and removing the optional "haddock-html"
-        ;; field in the generated .conf file.
-        (when doc
-          (substitute* config-file
-            (("^haddock-html: .*") "\n")
-            (((format #f "^haddock-interfaces: ~a" doc))
-             (string-append "haddock-interfaces: " lib)))
-          ;; Move the referenced file to the "lib" (or "out") output.
-          (match (find-files doc "\\.haddock$")
-            ((haddock-file . rest)
-             (let* ((subdir (string-drop haddock-file (string-length doc)))
-                    (new    (string-append lib subdir)))
-               (mkdir-p (dirname new))
-               (rename-file haddock-file new)))
-            (_ #f)))
-        (install-transitive-deps config-file %tmp-db-dir config-dir)
-        (rename-file config-file
-                     (string-append config-dir "/"
-                                    config-file-name+id ".conf"))
-        (invoke "ghc-pkg"
-                (string-append "--package-db=" config-dir)
-                "recache")))))
+      (if (file-is-directory? config-file)
+          (for-each (cut install-config-file <> config-dir doc lib)
+           (find-files config-file))
+          (install-config-file config-file config-dir doc lib))
+      (invoke "ghc-pkg"
+              (string-append "--package-db=" config-dir)
+              "recache"))))
 
 (define* (check #:key tests? test-target #:allow-other-keys)
   "Run the test suite of a given Haskell package."
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:03 GMT) Full text and rfc822 format available.

Message #14 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 04/31] gnu: Switch default to GHC 9.2.
Date: Sat, 11 Feb 2023 11:08:01 +0100
* gnu/packages/haskell.scm (ghc-9.0): Rename to just “ghc”.
(ghc-9.2): Ditto.
(ghc): Use ghc-9.2.
---
 gnu/packages/haskell.scm | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 91610a1f2e..84071cb293 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1235,19 +1235,12 @@ (define-public ghc-8.10
                                 (file-pattern ".*\\.conf\\.d$")
                                 (file-type 'directory))))))
 
-;; Versions newer than ghc defined below (i.e. the compiler
-;; haskell-build-system uses) should use ghc-next as their name to
-;; ensure ghc (without version specification) and ghc-* packages are
-;; always compatible. See https://issues.guix.gnu.org/issue/47335.
-
 (define-public ghc-8 ghc-8.10)
 
-(define-public ghc ghc-8)
-
 (define-public ghc-9.0
   (package
     (inherit ghc-8.10)
-    (name "ghc-next")
+    (name "ghc")
     (version "9.0.2")
     (source (origin
               (method url-fetch)
@@ -1285,7 +1278,7 @@ (define-public ghc-9.2
   (let ((base ghc-8.10))
     (package
       (inherit base)
-      (name "ghc-next")
+      (name "ghc")
       (version "9.2.5")
       (source (origin
                 (method url-fetch)
@@ -1327,6 +1320,12 @@ (define-public ghc-9.2
               (file-pattern ".*\\.conf\\.d$")
               (file-type 'directory)))))))
 
+;; Versions newer than ghc defined below (i.e. the compiler
+;; haskell-build-system uses) should use ghc-next as their name to
+;; ensure ghc (without version specification) and ghc-* packages are
+;; always compatible. See https://issues.guix.gnu.org/issue/47335.
+(define-public ghc ghc-9.2)
+
 ;; 9.4 is the last version to support the make-based build system,
 ;; but it boot with 9.2, only 9.0 is supported.
 (define ghc-bootstrap-for-9.4 ghc-9.0)
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:03 GMT) Full text and rfc822 format available.

Message #17 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 05/31] import: stackage: Update to release 20.5.
Date: Sat, 11 Feb 2023 11:08:02 +0100
* guix/import/stackage.scm (%default-lts-version): Update to 20.5.
---
 guix/import/stackage.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm
index c0284e48a4..9462e70791 100644
--- a/guix/import/stackage.scm
+++ b/guix/import/stackage.scm
@@ -49,7 +49,7 @@ (define %stackage-url
   (make-parameter "https://www.stackage.org"))
 
 ;; Latest LTS version compatible with current GHC.
-(define %default-lts-version "18.14")
+(define %default-lts-version "20.5")
 
 (define-json-mapping <stackage-lts> make-stackage-lts
   stackage-lts?
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:03 GMT) Full text and rfc822 format available.

Message #20 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 06/31] import: hackage: Add upstream-name property.
Date: Sat, 11 Feb 2023 11:08:03 +0100
* guix/import/hackage.scm (hackage-module->sexp): Add property
upstream-name to imported package.
* tests/hackage.scm (match-ghc-foo): Add upstream-name property.
(match-ghc-foo-6): Ditto.
(match-ghc-elif): Ditto.
(match-ghc-foo-revision): Ditto.
(match-ghc-foo-import): Ditto.
---
 guix/import/hackage.scm | 1 +
 tests/hackage.scm       | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index e915aac58d..9e305cf080 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -314,6 +314,7 @@ (define (maybe-arguments)
                          (bytevector->nix-base32-string (file-sha256 tarball))
                          "failed to download tar archive")))))
         (build-system haskell-build-system)
+        (properties '((upstream-name . ,name)))
         ,@(maybe-inputs 'inputs dependencies)
         ,@(maybe-inputs 'native-inputs native-dependencies)
         ,@(maybe-arguments)
diff --git a/tests/hackage.scm b/tests/hackage.scm
index ad2ee4b7f9..8eea818ebd 100644
--- a/tests/hackage.scm
+++ b/tests/hackage.scm
@@ -201,6 +201,7 @@ (define-package-matcher match-ghc-foo
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-http))
     ('home-page "http://test.org")
     ('synopsis (? string?))
@@ -241,6 +242,7 @@ (define-package-matcher match-ghc-foo-6
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-b 'ghc-http))
     ('native-inputs ('list 'ghc-haskell-gi))
     ('home-page "http://test.org")
@@ -471,6 +473,7 @@ (define-package-matcher match-ghc-elif
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-c))
     ('home-page "http://test.org")
     ('synopsis (? string?))
@@ -520,6 +523,7 @@ (define-package-matcher match-ghc-foo-revision
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-http))
     ('arguments
      ('quasiquote
@@ -610,6 +614,7 @@ (define-package-matcher match-ghc-foo-import
         ('base32
          (? string? hash)))))
     ('build-system 'haskell-build-system)
+    ('properties '(quote ((upstream-name . "foo"))))
     ('inputs ('list 'ghc-http))
     ('home-page "http://test.org")
     ('synopsis (? string?))
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:04 GMT) Full text and rfc822 format available.

Message #23 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 08/31] import: hackage: Use upstream-name property.
Date: Sat, 11 Feb 2023 11:08:04 +0100
* guix/import/hackage.scm (guix-package->hackage-name): Removed.
(latest-release): Use package-upstream-name* instead.
* guix/import/stackage.scm (latest-lts-release): Ditto.
(stackage-lts-package?): Ditto.
---
 guix/import/hackage.scm  | 14 +-------------
 guix/import/stackage.scm |  4 ++--
 2 files changed, 3 insertions(+), 15 deletions(-)

diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 9e305cf080..2f901af47b 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -52,7 +52,6 @@ (define-module (guix import hackage)
             hackage-recursive-import
             %hackage-updater
 
-            guix-package->hackage-name
             hackage-name->package-name
             hackage-fetch
             hackage-source-url
@@ -126,17 +125,6 @@ (define (hackage-name->package-name name)
       (string-downcase name)
       (string-append package-name-prefix (string-downcase name))))
 
-(define guix-package->hackage-name
-  (let ((uri-rx (make-regexp "(https?://hackage.haskell.org|mirror://hackage)/package/([^/]+)/.*"))
-        (name-rx (make-regexp "(.*)-[0-9\\.]+")))
-    (lambda (package)
-      "Given a Guix package name, return the corresponding Hackage name."
-      (let* ((source-url (and=> (package-source package) origin-uri))
-             (name (match:substring (regexp-exec uri-rx source-url) 2)))
-        (match (regexp-exec name-rx name)
-          (#f name)
-          (m (match:substring m 1)))))))
-
 (define (read-cabal-and-hash port)
   "Read a Cabal file from PORT and return it and its hash in nix-base32
 format as two values."
@@ -371,7 +359,7 @@ (define* (latest-release package #:key (version #f))
      (formatted-message
       (G_ "~a updater doesn't support updating to a specific version, sorry.")
       "hackage")))
-  (let* ((hackage-name (guix-package->hackage-name package))
+  (let* ((hackage-name (package-upstream-name* package))
          (cabal-meta (hackage-fetch hackage-name)))
     (match cabal-meta
       (#f
diff --git a/guix/import/stackage.scm b/guix/import/stackage.scm
index 9462e70791..735eeb75f7 100644
--- a/guix/import/stackage.scm
+++ b/guix/import/stackage.scm
@@ -149,7 +149,7 @@ (define latest-lts-release
          (formatted-message
           (G_ "~a updater doesn't support updating to a specific version, sorry.")
           "stackage")))
-      (let* ((hackage-name (guix-package->hackage-name pkg))
+      (let* ((hackage-name (package-upstream-name* pkg))
              (version (lts-package-version (packages) hackage-name))
              (name-version (hackage-name-version hackage-name version)))
         (match (and=> name-version hackage-fetch)
@@ -173,7 +173,7 @@ (define (stackage-lts-package? package)
        (false-if-networking-error
         (let ((packages (stackage-lts-packages
                          (stackage-lts-info-fetch %default-lts-version)))
-              (hackage-name (guix-package->hackage-name package)))
+              (hackage-name (package-upstream-name* package)))
           (find (lambda (package)
                   (string=? (stackage-package-name package) hackage-name))
                 packages)))))
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:04 GMT) Full text and rfc822 format available.

Message #26 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 10/31] import: haskell: Add new internal library for GHC 9.2.
Date: Sat, 11 Feb 2023 11:08:05 +0100
* guix/import/hackage.scm (ghc-standard-libraries): Add ghc-bignum.
---
 guix/import/hackage.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/guix/import/hackage.scm b/guix/import/hackage.scm
index 2f901af47b..83ad85f3fe 100644
--- a/guix/import/hackage.scm
+++ b/guix/import/hackage.scm
@@ -75,6 +75,7 @@ (define ghc-standard-libraries
     "exceptions"
     "filepath"
     "ghc"
+    "ghc-bignum"
     "ghc-boot"
     "ghc-boot-th"
     "ghc-compact"
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:05 GMT) Full text and rfc822 format available.

Message #29 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>, zimoun <zimon.toutoune <at> gmail.com>
Subject: [PATCH 02/31] build: haskell-build-system: Remove trailing #t.
Date: Sat, 11 Feb 2023 11:07:59 +0100
From: zimoun <zimon.toutoune <at> gmail.com>

* guix/build/haskell-build-system.scm (configure, install, setup-compiler,
make-ghc-package-database, install-transitive-deps, check, haddock,
patch-cabal-file, generate-setuphs): Delete trailing #t.

Signed-off-by: Lars-Dominik Braun <lars <at> 6xq.net>
---
 guix/build/haskell-build-system.scm | 25 +++++++++----------------
 1 file changed, 9 insertions(+), 16 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index ef6cb316ee..e2e5904dce 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2018, 2020 Ricardo Wurmus <rekado <at> elephly.net>
 ;;; Copyright © 2018 Alex Vong <alexvong1995 <at> gmail.com>
 ;;; Copyright © 2021 John Kehayias <john.kehayias <at> protonmail.com>
+;;; Copyright © 2022 Simon Tournier <zimon.toutoune <at> gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -118,8 +119,7 @@ (define* (configure #:key outputs inputs tests? (configure-flags '())
       (setenv "CONFIG_SHELL" "sh"))
     (run-setuphs "configure" params)
 
-    (setenv "GHC_PACKAGE_PATH" ghc-path)
-    #t))
+    (setenv "GHC_PACKAGE_PATH" ghc-path)))
 
 (define* (build #:key parallel-build? #:allow-other-keys)
   "Build a given Haskell package."
@@ -140,8 +140,7 @@ (define* (install #:key outputs #:allow-other-keys)
                          (new    (string-append static subdir)))
                     (mkdir-p (dirname new))
                     (rename-file static-lib new)))
-                (find-files lib "\\.a$"))))
-  #t)
+                (find-files lib "\\.a$")))))
 
 (define* (setup-compiler #:key system inputs outputs #:allow-other-keys)
   "Setup the compiler environment."
@@ -175,8 +174,7 @@ (define (make-ghc-package-database system inputs outputs)
               conf-files)
     (invoke "ghc-pkg"
             (string-append "--package-db=" %tmp-db-dir)
-            "recache")
-    #t))
+            "recache")))
 
 (define* (register #:key name system inputs outputs #:allow-other-keys)
   "Generate the compiler registration and binary package database files for a
@@ -273,21 +271,18 @@ (define (install-transitive-deps conf-file src dest)
                                     config-file-name+id ".conf"))
         (invoke "ghc-pkg"
                 (string-append "--package-db=" config-dir)
-                "recache")))
-    #t))
+                "recache")))))
 
 (define* (check #:key tests? test-target #:allow-other-keys)
   "Run the test suite of a given Haskell package."
   (if tests?
       (run-setuphs test-target '())
-      (format #t "test suite not run~%"))
-  #t)
+      (format #t "test suite not run~%")))
 
 (define* (haddock #:key outputs haddock? haddock-flags #:allow-other-keys)
   "Generate the Haddock documentation of a given Haskell package."
   (when haddock?
-    (run-setuphs "haddock" haddock-flags))
-  #t)
+    (run-setuphs "haddock" haddock-flags)))
 
 (define* (patch-cabal-file #:key cabal-revision #:allow-other-keys)
   (when cabal-revision
@@ -296,8 +291,7 @@ (define* (patch-cabal-file #:key cabal-revision #:allow-other-keys)
       ((original)
        (format #t "replacing ~s with ~s~%" original cabal-revision)
        (copy-file cabal-revision original))
-      (_ (error "Could not find a Cabal file to patch."))))
-  #t)
+      (_ (error "Could not find a Cabal file to patch.")))))
 
 (define* (generate-setuphs #:rest empty)
   "Generate a default Setup.hs if needed."
@@ -307,8 +301,7 @@ (define* (generate-setuphs #:rest empty)
     (with-output-to-file "Setup.hs"
       (lambda ()
         (format #t "import Distribution.Simple~%")
-        (format #t "main = defaultMain~%"))))
-  #t)
+        (format #t "main = defaultMain~%")))))
 
 (define %standard-phases
   (modify-phases gnu:%standard-phases
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:05 GMT) Full text and rfc822 format available.

Message #32 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 12/31] build: haskell-build-system: Remove unused linker flags.
Date: Sat, 11 Feb 2023 11:08:07 +0100
They were inserted as-is, without expandind variables into binaries.

* guix/build/haskell-build-system.scm (configure): Remove --ghc-option.
---
 guix/build/haskell-build-system.scm | 2 --
 1 file changed, 2 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 72e12ba746..759d3c5d17 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -103,8 +103,6 @@ (define* (configure #:key outputs inputs tests? (configure-flags '())
                    "--enable-shared"
                    "--enable-executable-dynamic"
                    "--ghc-option=-fPIC"
-                   ,(string-append "--ghc-option=-optl=-Wl,-rpath=" (or lib out)
-                                   "/lib/$compiler/$pkg-$version")
                    ,@configure-flags)))
     ;; Cabal errors if GHC_PACKAGE_PATH is set during 'configure', so unset
     ;; and restore it.
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:05 GMT) Full text and rfc822 format available.

Message #35 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 11/31] build: haskell-build-system: Process all transitive
 dependencies.
Date: Sat, 11 Feb 2023 11:08:06 +0100
A bug caused install-transitive-deps to stop looping if a dependency
file already existed in the target directory. For Haskell packages
with multiple libraries (like attoparsec) this resulted in missing
dependencies and error messages like this:

    The following packages are broken because other packages they depend
    on are missing. These broken packages must be rebuilt before they
    can be used.
    installed package attoparsec-0.14.4 is broken due to missing package
    scientific-0.3.7.0-9XG3zUjXOw970JFcruv0cZ

See <https://issues.guix.gnu.org/54729#11>.

* guix/build/haskell-build-system.scm (register): Unconditionally loop
over all tails.
---
 guix/build/haskell-build-system.scm | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index fb4aba28ea..72e12ba746 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -214,14 +214,16 @@ (define (install-transitive-deps conf-file src dest)
         (() #t)                         ;done
         ((id . tail)
          (if (not (vhash-assoc id seen))
-             (let ((dep-conf  (string-append src  "/" id ".conf"))
-                   (dep-conf* (string-append dest "/" id ".conf")))
-               (unless (file-exists? dep-conf*)
-                 (unless (file-exists? dep-conf)
+             (let* ((dep-conf  (string-append src  "/" id ".conf"))
+                    (dep-conf* (string-append dest "/" id ".conf"))
+                    (dep-conf-exists? (file-exists? dep-conf))
+                    (dep-conf*-exists? (file-exists? dep-conf*))
+                    (next-tail (append lst (if dep-conf-exists? (conf-depends dep-conf) '()))))
+               (unless dep-conf*-exists?
+                 (unless dep-conf-exists?
                    (error (format #f "File ~a does not exist. This usually means the dependency ~a is missing. Was checking conf-file ~a." dep-conf id conf-file)))
-                 (copy-file dep-conf dep-conf*) ;XXX: maybe symlink instead?
-                 (loop (vhash-cons id #t seen)
-                       (append lst (conf-depends dep-conf)))))
+                 (copy-file dep-conf dep-conf*)) ;XXX: maybe symlink instead?
+                (loop (vhash-cons id #t seen) next-tail))
              (loop seen tail))))))
 
   (define (install-config-file conf-file dest output:doc output:lib)
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:06 GMT) Full text and rfc822 format available.

Message #38 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity.
Date: Sat, 11 Feb 2023 11:08:08 +0100
Tests time out on ci.guix.gnu.org.

* gnu/packages/haskell.scm (ghc-9.2)[arguments]: Modify #:make-flags.
---
 gnu/packages/haskell.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 84071cb293..60d846e841 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1295,7 +1295,10 @@ (define-public ghc-9.2
              (replace 'fix-cc-reference
                (lambda _
                  (substitute* "utils/hsc2hs/src/Common.hs"
-                   (("\"cc\"") "\"gcc\""))))))))
+                   (("\"cc\"") "\"gcc\""))))))
+         ;; Increase verbosity, so running the test suite does not time out on CI.
+         ((#:make-flags make-flags ''())
+          #~(cons "VERBOSE=4" #$make-flags))))
       (native-inputs
        `(;; GHC 9.2 must be built with GHC >= 8.6.
          ("ghc-bootstrap" ,base)
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:06 GMT) Full text and rfc822 format available.

Message #41 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 17/31] gnu: idris: Fix overly zealous regular expression.
Date: Sat, 11 Feb 2023 11:08:11 +0100
* gnu/packages/idris.scm (idris)[arguments]: Limit characters matched
after package name in cabal file substitutions.
---
 gnu/packages/idris.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index 5e4979edc3..2a5f63c174 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -99,7 +99,7 @@ (define-public idris
          (add-before 'configure 'update-constraints
            (lambda _
              (substitute* "idris.cabal"
-               (("(aeson|ansi-terminal|bytestring|haskeline|libffi|megaparsec|network|optparse-applicative)\\s+[^,]+" all dep)
+               (("(aeson|ansi-terminal|bytestring|haskeline|libffi|megaparsec|network|optparse-applicative)\\s+[<>=0-9. &|]+" all dep)
                 dep))))
          (add-before 'configure 'set-cc-command
            (lambda _
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:06 GMT) Full text and rfc822 format available.

Message #44 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 16/31] gnu: ghc-parsec: Update to 3.1.15.0.
Date: Sat, 11 Feb 2023 11:08:10 +0100
Missed by automation.

* gnu/packages/haskell-xyz.scm (ghc-parsec)[version]: Update to 3.1.15.0.
[native-inputs]: Switch from HUnit to tasty.
---
 gnu/packages/haskell-xyz.scm | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index f320206c23..6d7fd5dc63 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8341,18 +8341,15 @@ (define-public ghc-parallel
 (define-public ghc-parsec
   (package
     (name "ghc-parsec")
-    (version "3.1.14.0")
+    (version "3.1.15.0")
     (source (origin
               (method url-fetch)
               (uri (hackage-uri "parsec" version))
               (sha256
                (base32
-                "132waj2cpn892midbhpkfmb74qq83v0zv29v885frlp1gvh94b67"))))
+                "1v8zs8zv1rk16lag2yqaxfwanjpgnh4gxw1vd70py0n04d20z0lq"))))
     (build-system haskell-build-system)
-    (native-inputs (list ghc-hunit ghc-test-framework ghc-test-framework-hunit))
-    (arguments
-     `(#:cabal-revision
-       ("4" "0p65q054iaz2117a5qk1428dic4sb41acclys9k00zna24ks7iq3")))
+    (native-inputs (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://github.com/haskell/parsec")
     (synopsis "Monadic parser combinators")
     (description "Parsec is designed from scratch as an industrial-strength
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:07 GMT) Full text and rfc822 format available.

Message #47 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 15/31] gnu: Remove unused Haskell packages.
Date: Sat, 11 Feb 2023 11:08:09 +0100
* gnu/packages/haskell-xyz.scm (ghc-attoparsec-bootstrap): Remove variable.
(ghc-integer-logarithms-bootstrap): Likewise.
(ghc-scientific-bootstrap): Likewise.
(ghc-wcwidth-bootstrap): Likewise.
(ghc-optparse-applicative-0.15.1.0): Likewise.
---
 gnu/packages/haskell-xyz.scm | 59 ------------------------------------
 1 file changed, 59 deletions(-)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 1f90cc6516..f320206c23 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -581,16 +581,6 @@ (define-public ghc-attoparsec
 complicated text/binary file formats.")
     (license license:bsd-3)))
 
-(define-public ghc-attoparsec-bootstrap
-  (package
-    (inherit ghc-attoparsec)
-    (name "ghc-attoparsec-bootstrap")
-    (arguments `(#:tests? #f))
-    (inputs
-     `(("ghc-scientific" ,ghc-scientific-bootstrap)))
-    (native-inputs '())
-    (properties '((hidden? #t)))))
-
 (define-public ghc-attoparsec-iso8601
   (package
     (name "ghc-attoparsec-iso8601")
@@ -5825,14 +5815,6 @@ (define-public ghc-integer-logarithms
 in migrated modules.")
     (license license:expat)))
 
-(define-public ghc-integer-logarithms-bootstrap
-  (package
-    (inherit ghc-integer-logarithms)
-    (name "ghc-integer-logarithms-bootstrap")
-    (arguments `(#:tests? #f))
-    (native-inputs '())
-    (properties '((hidden? #t)))))
-
 (define-public ghc-interpolate
   (package
     (name "ghc-interpolate")
@@ -8051,27 +8033,6 @@ (define-public ghc-optparse-applicative
 command line options in Haskell.")
     (license license:bsd-3)))
 
-(define-public ghc-optparse-applicative-0.15.1.0
-  (package
-    (inherit ghc-optparse-applicative)
-    (name "ghc-optparse-applicative")
-    (version "0.15.1.0")
-    (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "https://hackage.haskell.org/package/optparse-applicative/optparse-applicative-"
-               version
-               ".tar.gz"))
-        (sha256
-          (base32 "1ws6y3b3f6hsgv0ff0yp6lw4hba1rps4dnvry3yllng0s5gngcsd"))))
-    (inputs
-      (list ghc-transformers-compat ghc-ansi-wl-pprint))
-    (native-inputs (list ghc-quickcheck))
-    (arguments
-      `(#:cabal-revision
-        ("1" "0zmhqkd96v2z1ilhqdkd9z4jgsnsxb8yi2479ind8m5zm9363zr9")))))
-
 (define-public ghc-jira-wiki-markup
   (package
     (name "ghc-jira-wiki-markup")
@@ -10178,18 +10139,6 @@ (define-public ghc-scientific
 notation}.")
     (license license:bsd-3)))
 
-(define-public ghc-scientific-bootstrap
-  (package
-    (inherit ghc-scientific)
-    (name "ghc-scientific-bootstrap")
-    (arguments `(#:tests? #f))
-    (inputs
-     `(("ghc-integer-logarithms" ,ghc-integer-logarithms-bootstrap)
-       ("ghc-hashable" ,ghc-hashable)
-       ("ghc-primitive" ,ghc-primitive)))
-    (native-inputs '())
-    (properties '((hidden? #t)))))
-
 (define-public ghc-sdl
   (package
     (name "ghc-sdl")
@@ -13422,14 +13371,6 @@ (define-public ghc-wcwidth
 widths to the Char type.")
     (license license:bsd-3)))
 
-(define-public ghc-wcwidth-bootstrap
-  (package
-    (inherit ghc-wcwidth)
-    (name "ghc-wcwidth-bootstrap")
-    (inputs
-     (list ghc-setlocale ghc-utf8-string ghc-attoparsec-bootstrap))
-    (properties '((hidden? #t)))))
-
 (define-public ghc-weigh
   (package
     (name "ghc-weigh")
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:07 GMT) Full text and rfc822 format available.

Message #50 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 21/31] gnu: ghc-lua: Disable symbol export.
Date: Sat, 11 Feb 2023 11:08:15 +0100
This turns on the linker flag -Wl,-E for all libraries depending on it,
resulting in large binaries, because --gc-sections cannot clean exported
symbols.

* gnu/packages/haskell-xyz.scm (ghc-lua)[arguments]: Disable
export-dynamic feature.
---
 gnu/packages/haskell-xyz.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 3efde02932..0a6efedd29 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -15452,6 +15452,9 @@ (define-public ghc-lua
                 "07wni3ji46ndqabwffgwzij2jk34dq2d66z15hcd6jg33sqnym45"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "lua")))
+    (arguments
+     ;; Allow creating fully static binaries. Avoids issues with linking pandoc statically.
+     `(#:configure-flags (list "-f-export-dynamic")))
     (native-inputs (list ghc-tasty ghc-tasty-hunit))
     (home-page "https://hslua.org/")
     (synopsis "Lua, an embeddable scripting language")
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:08 GMT) Full text and rfc822 format available.

Message #53 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 20/31] gnu: ghc-9.2: Support static linking with glibc < 2.34.
Date: Sat, 11 Feb 2023 11:08:14 +0100
* gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/haskell.scm (ghc-9.2)[origin]: Use it.
---
 gnu/local.mk                                  |  1 +
 gnu/packages/haskell.scm                      |  3 +-
 .../ghc-9.2-glibc-2.33-link-order.patch       | 35 +++++++++++++++++++
 3 files changed, 38 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index b6b44f7836..5cb34a7b3b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1195,6 +1195,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/genimage-mke2fs-test.patch		\
   %D%/packages/patches/geoclue-config.patch			\
   %D%/packages/patches/ghc-8.0-fall-back-to-madv_dontneed.patch	\
+  %D%/packages/patches/ghc-9.2-glibc-2.33-link-order.patch \
   %D%/packages/patches/ghc-testsuite-dlopen-pie.patch		\
   %D%/packages/patches/ghc-bloomfilter-ghc9.2.patch	\
   %D%/packages/patches/ghc-bytestring-handle-ghc9.patch	\
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 60d846e841..a2815814ed 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1286,7 +1286,8 @@ (define-public ghc-9.2
                                     "/ghc-" version "-src.tar.xz"))
                 (sha256
                  (base32
-                  "07028i0hm74svvq9b3jpkczaj6lsdgn3hgr4wa7diqiq3dypj1h6"))))
+                  "07028i0hm74svvq9b3jpkczaj6lsdgn3hgr4wa7diqiq3dypj1h6"))
+                (patches (search-patches "ghc-9.2-glibc-2.33-link-order.patch"))))
       (arguments
        (substitute-keyword-arguments (package-arguments base)
          ((#:phases phases '%standard-phases)
diff --git a/gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch b/gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch
new file mode 100644
index 0000000000..5d4afa28c1
--- /dev/null
+++ b/gnu/packages/patches/ghc-9.2-glibc-2.33-link-order.patch
@@ -0,0 +1,35 @@
+Slightly modified version of
+https://gitlab.haskell.org/ghc/ghc/-/issues/19029#note_447989, required
+for older, buggy glibc versions < 2.34.
+
+diff -Naur ghc-9.2.5/compiler/GHC/Linker/Unit.hs ghc-9.2.5.patched/compiler/GHC/Linker/Unit.hs
+--- ghc-9.2.5/compiler/GHC/Linker/Unit.hs	2022-11-06 20:40:29.000000000 +0100
++++ ghc-9.2.5.patched/compiler/GHC/Linker/Unit.hs	2023-01-15 14:52:57.511275338 +0100
+@@ -31,11 +31,26 @@
+     ps <- mayThrowUnitErr $ preloadUnitsInfo' unit_env pkgs
+     return (collectLinkOpts dflags ps)
+ 
++fixOrderLinkOpts :: [String] -> [String]
++fixOrderLinkOpts opts
++  | have_bad_glibc_version -- glibc version strictly less than 2.34
++  , let (before, rest) = break (== libc) opts
++  , not (pthread `elem` before)
++  , pthread `elem` rest -- optional if we know pthread is definitely present
++  = before ++ pthread_and_deps ++ rest
++  | otherwise
++  = opts
++  where
++    pthread = "-lpthread"
++    libc = "-lc"
++    pthread_and_deps = [ "-lrt", pthread ] -- should depend on the environment
++    have_bad_glibc_version = True
++
+ collectLinkOpts :: DynFlags -> [UnitInfo] -> ([String], [String], [String])
+ collectLinkOpts dflags ps =
+     (
+         concatMap (map ("-l" ++) . unitHsLibs (ghcNameVersion dflags) (ways dflags)) ps,
+-        concatMap (map ("-l" ++) . map ST.unpack . unitExtDepLibsSys) ps,
++        fixOrderLinkOpts $ concatMap (map ("-l" ++) . map ST.unpack . unitExtDepLibsSys) ps,
+         concatMap (map ST.unpack . unitLinkerOptions) ps
+     )
+ 
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:08 GMT) Full text and rfc822 format available.

Message #56 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 22/31] build: haskell-build-system: Build static executables
 by default.
Date: Sat, 11 Feb 2023 11:08:16 +0100
This is the only way to get reasonably small binaries that don’t pull
in a ton of ghc-* packages.

* guix/build/haskell-build-system.scm (configure): Explicitly
add --enable-static and --disable-executable-dynamic, as well as
-split-sections to configure flags.
---
 guix/build/haskell-build-system.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index d77f55da19..0e94cf59a5 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -99,10 +99,14 @@ (define* (configure #:key outputs inputs tests? (configure-flags '())
                    ,@(if tests?
                          '("--enable-tests")
                          '())
-                   ;; Build and link with shared libraries
+                   ;; Build static and shared libraries.
                    "--enable-shared"
-                   "--enable-executable-dynamic"
+                   "--enable-static"
+                   ;; Link executables statically by default.
+                   "--disable-executable-dynamic"
                    "--ghc-option=-fPIC"
+                   ;; Ensure static libraries can be used with -Wl,--gc-sections for size.
+                   "--ghc-option=-split-sections"
                    ,@configure-flags)))
     ;; Cabal errors if GHC_PACKAGE_PATH is set during 'configure', so unset
     ;; and restore it.
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:08 GMT) Full text and rfc822 format available.

Message #59 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 19/31] build-system: haskell: Drop default "static" output.
Date: Sat, 11 Feb 2023 11:08:13 +0100
* guix/build-system/haskell.scm (lower): Pass outputs to lowered bag.
* guix/build/haskell-build-system.scm (install): Remove static library
moving code.
* gnu/packages/haskell-check.scm (ghc-hunit): Remove "static" output.
* gnu/packages/haskell-crypto.scm (ghc-crypto-api-tests): Likewise.
* gnu/packages/haskell-xyz.scm (ghc-case-insensitive): Likewise.
(ghc-cmdargs): Likewise.
(ghc-conduit): Likewise.
(ghc-fgl): Likewise.
(ghc-haskell-src-exts): Likewise.
(ghc-lib-parser): Likewise.
(ghc-mono-traversable): Likewise.
(ghc-parallel): Likewise.
(ghc-paths): Likewise.
(ghc-profunctors): Likewise.
(ghc-tf-random): Likewise.
(ghc-vector): Likewise.
---
 gnu/packages/haskell-check.scm      |  2 +-
 gnu/packages/haskell-crypto.scm     |  1 -
 gnu/packages/haskell-xyz.scm        | 24 ++++++++++++------------
 guix/build-system/haskell.scm       |  5 +----
 guix/build/haskell-build-system.scm | 12 +-----------
 5 files changed, 15 insertions(+), 29 deletions(-)

diff --git a/gnu/packages/haskell-check.scm b/gnu/packages/haskell-check.scm
index 3174ac1a81..16b718827a 100644
--- a/gnu/packages/haskell-check.scm
+++ b/gnu/packages/haskell-check.scm
@@ -629,7 +629,7 @@ (define-public ghc-hunit
   (package
     (name "ghc-hunit")
     (version "1.6.2.0")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
diff --git a/gnu/packages/haskell-crypto.scm b/gnu/packages/haskell-crypto.scm
index 0046e0481a..42e2a15709 100644
--- a/gnu/packages/haskell-crypto.scm
+++ b/gnu/packages/haskell-crypto.scm
@@ -141,7 +141,6 @@ (define-public ghc-crypto-api-tests
          "0w3j43jdrlj28jryp18hc6q84nkl2yf4vs1hhgrsk7gb9kfyqjpl"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "crypto-api-tests")))
-    (outputs '("out" "static" "doc"))
     (inputs (list ghc-test-framework-quickcheck2
                   ghc-crypto-api
                   ghc-cereal
diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 6d7fd5dc63..3efde02932 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -1395,7 +1395,7 @@ (define-public ghc-case-insensitive
   (package
     (name "ghc-case-insensitive")
     (version "1.2.1.0")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -1993,7 +1993,7 @@ (define-public ghc-cmdargs
          "0xfabq187n1vqrnnm4ciprpl0dcjq97rksyjnpcniwva9rffmn7p"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "cmdargs")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (home-page
      "http://community.haskell.org/~ndm/cmdargs/")
     (synopsis "Command line argument processing")
@@ -2171,7 +2171,7 @@ (define-public ghc-conduit
                 "18izjgff4pmrknc8py06yvg3g6x27nx0rzmlwjxcflwm5v4szpw4"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "conduit")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (inputs
      (list ghc-exceptions
            ghc-lifted-base
@@ -3855,7 +3855,7 @@ (define-public ghc-fgl
   (package
     (name "ghc-fgl")
     (version "5.7.0.3")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -4958,7 +4958,7 @@ (define-public ghc-haskell-src-exts
          "01bcrxs9af4yqpclw43aijmsd1g19qhyzb47blz7vzwz2r3k11b7"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "haskell-src-exts")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (inputs
      (list cpphs ghc-happy ghc-pretty-show))
     (native-inputs
@@ -6348,7 +6348,7 @@ (define-public ghc-lib-parser
                 "1xh8rm5lwbh96g4v34whkcbb1yjsyvx3rwwycj30lrglhqk7f4c4"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "ghc-lib-parser")))
-    (outputs '("out" "static" "doc")) ; documentation is 39M
+    (outputs '("out" "doc")) ; documentation is 39M
     (native-inputs (list ghc-alex ghc-happy))
     (home-page "https://github.com/digital-asset/ghc-lib")
     (synopsis "The GHC API, decoupled from GHC versions")
@@ -7313,7 +7313,7 @@ (define-public ghc-mono-traversable
          "1dvlp7r7r1lc3fxkwaz68f1nffg83240q8a989x24x1x67rj1clq"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "mono-traversable")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (inputs (list ghc-unordered-containers ghc-hashable ghc-vector
                   ghc-vector-algorithms ghc-split))
     (native-inputs (list ghc-hspec ghc-hunit ghc-quickcheck ghc-foldl))
@@ -8319,7 +8319,7 @@ (define-public ghc-parallel
   (package
     (name "ghc-parallel")
     (version "3.2.2.0")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -8479,7 +8479,7 @@ (define-public ghc-paths
   (package
     (name "ghc-paths")
     (version "0.1.0.12")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -9117,7 +9117,7 @@ (define-public ghc-profunctors
          "0an9v003ivxmjid0s51qznbjhd5fsa1dkcfsrhxllnjja1xmv5b5"))))
     (build-system haskell-build-system)
     (properties '((upstream-name . "profunctors")))
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (inputs
      (list ghc-base-orphans
            ghc-bifunctors
@@ -11893,7 +11893,7 @@ (define-public ghc-tf-random
   (package
     (name "ghc-tf-random")
     (version "0.5")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
@@ -13161,7 +13161,7 @@ (define-public ghc-vector
   (package
     (name "ghc-vector")
     (version "0.12.3.1")
-    (outputs '("out" "static" "doc"))
+    (outputs '("out" "doc"))
     (source
      (origin
        (method url-fetch)
diff --git a/guix/build-system/haskell.scm b/guix/build-system/haskell.scm
index dc83512d30..a37b3a938c 100644
--- a/guix/build-system/haskell.scm
+++ b/guix/build-system/haskell.scm
@@ -109,10 +109,7 @@ (define (cabal-revision->origin cabal-revision)
                         ,@(standard-packages)))
          (build-inputs `(("haskell" ,haskell)
                          ,@native-inputs))
-         ;; XXX: this is a hack to get around issue #41569.
-         (outputs (match outputs
-                    (("out") (cons "static" outputs))
-                    (_ outputs)))
+         (outputs outputs)
          (build haskell-build)
          (arguments
           (substitute-keyword-arguments
diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 759d3c5d17..d77f55da19 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -129,17 +129,7 @@ (define* (build #:key parallel-build? #:allow-other-keys)
 
 (define* (install #:key outputs #:allow-other-keys)
   "Install a given Haskell package."
-  (run-setuphs "copy" '())
-  (when (assoc-ref outputs "static")
-    (let ((static (assoc-ref outputs "static"))
-          (lib (or (assoc-ref outputs "lib")
-                   (assoc-ref outputs "out"))))
-      (for-each (lambda (static-lib)
-                  (let* ((subdir (string-drop static-lib (string-length lib)))
-                         (new    (string-append static subdir)))
-                    (mkdir-p (dirname new))
-                    (rename-file static-lib new)))
-                (find-files lib "\\.a$")))))
+  (run-setuphs "copy" '()))
 
 (define* (setup-compiler #:key system inputs outputs #:allow-other-keys)
   "Setup the compiler environment."
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:09 GMT) Full text and rfc822 format available.

Message #62 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 18/31] gnu: elm: Support GHC 9.2.
Date: Sat, 11 Feb 2023 11:08:12 +0100
* gnu/packages/elm.scm (elm-sans-reactor)[source]: Add patch to support GHC 9.2.
* gnu/packages/patches/elm-ghc9.2.patch: This one.
* gnu/local.mk: Add it.
---
 gnu/local.mk                          |   1 +
 gnu/packages/elm.scm                  |   3 +-
 gnu/packages/patches/elm-ghc9.2.patch | 187 ++++++++++++++++++++++++++
 3 files changed, 190 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/elm-ghc9.2.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 61e0598a5f..b6b44f7836 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1054,6 +1054,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/einstein-build.patch			\
   %D%/packages/patches/elfutils-tests-ptrace.patch		\
   %D%/packages/patches/elixir-path-length.patch			\
+  %D%/packages/patches/elm-ghc9.2.patch	\
   %D%/packages/patches/elm-offline-package-registry.patch	\
   %D%/packages/patches/elm-reactor-static-files.patch		\
   %D%/packages/patches/elogind-revert-polkit-detection.patch	\
diff --git a/gnu/packages/elm.scm b/gnu/packages/elm.scm
index 6d301cf51c..a74d294ae5 100644
--- a/gnu/packages/elm.scm
+++ b/gnu/packages/elm.scm
@@ -56,7 +56,8 @@ (define-public elm-sans-reactor
         (base32 "1rdg3xp3js9xadclk3cdypkscm5wahgsfmm4ldcw3xswzhw6ri8w"))
        (patches
         (search-patches "elm-reactor-static-files.patch"
-                        "elm-offline-package-registry.patch"))))
+                        "elm-offline-package-registry.patch"
+                        "elm-ghc9.2.patch"))))
     (build-system haskell-build-system)
     (arguments
      (list
diff --git a/gnu/packages/patches/elm-ghc9.2.patch b/gnu/packages/patches/elm-ghc9.2.patch
new file mode 100644
index 0000000000..7b1e653e80
--- /dev/null
+++ b/gnu/packages/patches/elm-ghc9.2.patch
@@ -0,0 +1,187 @@
+From f88043586337ba33cf3e852908003a71dfe493ec Mon Sep 17 00:00:00 2001
+From: vlkrs <codeberg <at> schlecht.dev>
+Date: Sat, 7 May 2022 17:51:15 +0200
+Subject: [PATCH] Quick hack to build on ghc-9.2.2
+
+Taken from
+https://codeberg.org/vlkrs/elm-compiler/commit/f88043586337ba33cf3e852908003a71dfe493ec.patch
+
+diff --git a/compiler/src/Data/Name.hs b/compiler/src/Data/Name.hs
+index beecf114..39b64029 100644
+--- a/compiler/src/Data/Name.hs
++++ b/compiler/src/Data/Name.hs
+@@ -47,6 +47,7 @@ import qualified Data.Utf8 as Utf8
+ import GHC.Exts
+   ( Int(I#), Ptr
+   , MutableByteArray#
++  , int8ToInt#
+   , isTrue#
+   , newByteArray#
+   , sizeofByteArray#
+@@ -241,7 +242,7 @@ fromTypeVariable name@(Utf8.Utf8 ba#) index =
+   else
+     let
+       len# = sizeofByteArray# ba#
+-      end# = indexWord8Array# ba# (len# -# 1#)
++      end# = word8ToWord# (indexWord8Array# ba# (len# -# 1#))
+     in
+     if isTrue# (leWord# 0x30## end#) && isTrue# (leWord# end# 0x39##) then
+       runST
+@@ -316,11 +317,11 @@ fromManyNames names =
+         ST $ \s ->
+           case newByteArray# (len# +# 3#) s of
+             (# s, mba# #) ->
+-              case writeWord8Array# mba# 0# 0x5F## {-_-} s of
++              case writeWord8Array# mba# 0# (wordToWord8# 0x5F##) {-_-} s of
+                 s ->
+-                  case writeWord8Array# mba# 1# 0x4D## {-M-} s of
++                  case writeWord8Array# mba# 1# (wordToWord8# 0x4D##) {-M-} s of
+                     s ->
+-                      case writeWord8Array# mba# 2# 0x24## {-$-} s of
++                      case writeWord8Array# mba# 2# (wordToWord8# 0x24##) {-$-} s of
+                         s ->
+                           case copyByteArray# ba# 0# mba# 3# len# s of
+                             s ->
+diff --git a/compiler/src/Data/Utf8.hs b/compiler/src/Data/Utf8.hs
+index e985aa64..472777df 100644
+--- a/compiler/src/Data/Utf8.hs
++++ b/compiler/src/Data/Utf8.hs
+@@ -109,10 +109,10 @@ contains (W8# word#) (Utf8 ba#) =
+   containsHelp word# ba# 0# (sizeofByteArray# ba#)
+ 
+ 
+-containsHelp :: Word# -> ByteArray# -> Int# -> Int# -> Bool
++containsHelp :: Word8# -> ByteArray# -> Int# -> Int# -> Bool
+ containsHelp word# ba# !offset# len# =
+   if isTrue# (offset# <# len#) then
+-    if isTrue# (eqWord# word# (indexWord8Array# ba# offset#))
++    if isTrue# (eqWord8# word# (indexWord8Array# ba# offset#))
+       then True
+       else containsHelp word# ba# (offset# +# 1#) len#
+   else
+@@ -147,10 +147,10 @@ startsWithChar isGood bytes@(Utf8 ba#) =
+     let
+       !w# = indexWord8Array# ba# 0#
+       !char
+-        | isTrue# (ltWord# w# 0xC0##) = C# (chr# (word2Int# w#))
+-        | isTrue# (ltWord# w# 0xE0##) = chr2 ba# 0# w#
+-        | isTrue# (ltWord# w# 0xF0##) = chr3 ba# 0# w#
+-        | True                        = chr4 ba# 0# w#
++        | isTrue# (ltWord8# w# (wordToWord8# 0xC0##)) = C# (chr# (int8ToInt# (word8ToInt8# w#)))
++        | isTrue# (ltWord8# w# (wordToWord8# 0xE0##)) = chr2 ba# 0# (word8ToWord# w#)
++        | isTrue# (ltWord8# w# (wordToWord8# 0xF0##)) = chr3 ba# 0# (word8ToWord# w#)
++        | True                        = chr4 ba# 0# (word8ToWord# w#)
+     in
+     isGood char
+ 
+@@ -164,7 +164,7 @@ endsWithWord8 (W8# w#) (Utf8 ba#) =
+   let len# = sizeofByteArray# ba# in
+   isTrue# (len# ># 0#)
+   &&
+-  isTrue# (eqWord# w# (indexWord8Array# ba# (len# -# 1#)))
++  isTrue# (eqWord8# w# (indexWord8Array# ba# (len# -# 1#)))
+ 
+ 
+ 
+@@ -186,11 +186,11 @@ splitHelp str start offsets =
+       unsafeSlice str start offset : splitHelp str (offset + 1) offsets
+ 
+ 
+-findDividers :: Word# -> ByteArray# -> Int# -> Int# -> [Int] -> [Int]
++findDividers :: Word8# -> ByteArray# -> Int# -> Int# -> [Int] -> [Int]
+ findDividers divider# ba# !offset# len# revOffsets =
+   if isTrue# (offset# <# len#) then
+     findDividers divider# ba# (offset# +# 1#) len# $
+-      if isTrue# (eqWord# divider# (indexWord8Array# ba# offset#))
++      if isTrue# (eqWord8# divider# (indexWord8Array# ba# offset#))
+       then I# offset# : revOffsets
+       else revOffsets
+   else
+@@ -353,10 +353,10 @@ toCharsHelp ba# offset# len# =
+     let
+       !w# = indexWord8Array# ba# offset#
+       !(# char, width# #)
+-        | isTrue# (ltWord# w# 0xC0##) = (# C# (chr# (word2Int# w#)), 1# #)
+-        | isTrue# (ltWord# w# 0xE0##) = (# chr2 ba# offset# w#, 2# #)
+-        | isTrue# (ltWord# w# 0xF0##) = (# chr3 ba# offset# w#, 3# #)
+-        | True                        = (# chr4 ba# offset# w#, 4# #)
++        | isTrue# (ltWord8# w# (wordToWord8# 0xC0##)) = (# C# (chr# (int8ToInt# (word8ToInt8# w#))), 1# #)
++        | isTrue# (ltWord8# w# (wordToWord8# 0xE0##)) = (# chr2 ba# offset# (word8ToWord# w#), 2# #)
++        | isTrue# (ltWord8# w# (wordToWord8# 0xF0##)) = (# chr3 ba# offset# (word8ToWord# w#), 3# #)
++        | True                        = (# chr4 ba# offset# (word8ToWord# w#), 4# #)
+ 
+       !newOffset# = offset# +# width#
+     in
+@@ -368,7 +368,7 @@ chr2 :: ByteArray# -> Int# -> Word# -> Char
+ chr2 ba# offset# firstWord# =
+   let
+     !i1# = word2Int# firstWord#
+-    !i2# = word2Int# (indexWord8Array# ba# (offset# +# 1#))
++    !i2# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 1#)))
+     !c1# = uncheckedIShiftL# (i1# -# 0xC0#) 6#
+     !c2# = i2# -# 0x80#
+   in
+@@ -380,8 +380,8 @@ chr3 :: ByteArray# -> Int# -> Word# -> Char
+ chr3 ba# offset# firstWord# =
+   let
+     !i1# = word2Int# firstWord#
+-    !i2# = word2Int# (indexWord8Array# ba# (offset# +# 1#))
+-    !i3# = word2Int# (indexWord8Array# ba# (offset# +# 2#))
++    !i2# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 1#)))
++    !i3# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 2#)))
+     !c1# = uncheckedIShiftL# (i1# -# 0xE0#) 12#
+     !c2# = uncheckedIShiftL# (i2# -# 0x80#) 6#
+     !c3# = i3# -# 0x80#
+@@ -394,9 +394,9 @@ chr4 :: ByteArray# -> Int# -> Word# -> Char
+ chr4 ba# offset# firstWord# =
+   let
+     !i1# = word2Int# firstWord#
+-    !i2# = word2Int# (indexWord8Array# ba# (offset# +# 1#))
+-    !i3# = word2Int# (indexWord8Array# ba# (offset# +# 2#))
+-    !i4# = word2Int# (indexWord8Array# ba# (offset# +# 3#))
++    !i2# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 1#)))
++    !i3# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 2#)))
++    !i4# = int8ToInt# (word8ToInt8# (indexWord8Array# ba# (offset# +# 3#)))
+     !c1# = uncheckedIShiftL# (i1# -# 0xF0#) 18#
+     !c2# = uncheckedIShiftL# (i2# -# 0x80#) 12#
+     !c3# = uncheckedIShiftL# (i3# -# 0x80#) 6#
+@@ -471,7 +471,7 @@ toEscapedBuilderHelp before after !name@(Utf8 ba#) k =
+ escape :: Word8 -> Word8 -> Ptr a -> Utf8 t -> Int -> Int -> Int -> IO ()
+ escape before@(W8# before#) after ptr name@(Utf8 ba#) offset@(I# offset#) len@(I# len#) i@(I# i#) =
+   if isTrue# (i# <# len#) then
+-    if isTrue# (eqWord# before# (indexWord8Array# ba# (offset# +# i#)))
++    if isTrue# (eqWord8# before# (indexWord8Array# ba# (offset# +# i#)))
+     then
+       do  writeWordToPtr ptr i after
+           escape before after ptr name offset len (i + 1)
+diff --git a/compiler/src/Parse/Primitives.hs b/compiler/src/Parse/Primitives.hs
+index bb973193..3747cfac 100644
+--- a/compiler/src/Parse/Primitives.hs
++++ b/compiler/src/Parse/Primitives.hs
+@@ -82,7 +82,7 @@ instance Functor (Parser x) where
+ 
+ instance Applicative.Applicative (Parser x) where
+   {-# INLINE pure #-}
+-  pure = return
++  pure = pure
+ 
+   {-# INLINE (<*>) #-}
+   (<*>) (Parser parserFunc) (Parser parserArg) =
+diff --git a/compiler/src/Parse/Variable.hs b/compiler/src/Parse/Variable.hs
+index f3d86145..5e0ea802 100644
+--- a/compiler/src/Parse/Variable.hs
++++ b/compiler/src/Parse/Variable.hs
+@@ -22,6 +22,7 @@ import qualified Data.Set as Set
+ import Data.Word (Word8)
+ import Foreign.Ptr (Ptr, plusPtr)
+ import GHC.Exts (Char(C#), Int#, (+#), (-#), chr#, uncheckedIShiftL#, word2Int#)
++import GHC.Prim
+ import GHC.Word (Word8(W8#))
+ 
+ import qualified AST.Source as Src
+@@ -384,4 +385,4 @@ chr4 pos firstWord =
+ 
+ unpack :: Word8 -> Int#
+ unpack (W8# word#) =
+-  word2Int# word#
++  int8ToInt# (word8ToInt8# word#)
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:09 GMT) Full text and rfc822 format available.

Message #65 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 23/31] gnu: ngless: Drop Haskell libraries and documentation.
Date: Sat, 11 Feb 2023 11:08:17 +0100
* gnu/packages/bioinformatics.scm (ngless)[arguments]: Add
'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/bioinformatics.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 3e2d1efc87..8eb164d24b 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -14316,7 +14316,8 @@ (define-public ngless
                 "0pljyrlpr9r3cl5311dhgxdl8y40szyi4vprn34i3piy0qrldymi"))))
     (build-system haskell-build-system)
     (arguments
-     `(#:phases
+     `(#:haddock? #f
+       #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'update-constraints
            (lambda _
@@ -14360,7 +14361,10 @@ (define-public ngless
           (add-after 'wrap-program 'check-install
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((ngless (string-append (assoc-ref outputs "out") "/bin/ngless")))
-                 (invoke ngless "--check-install")))))))
+                 (invoke ngless "--check-install"))))
+          (add-after 'register 'remove-libraries
+            (lambda* (#:key outputs #:allow-other-keys)
+              (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (inputs (list prodigal
                   bwa
                   samtools
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:10 GMT) Full text and rfc822 format available.

Message #68 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 26/31] gnu: git-annex: Drop Haskell documentation.
Date: Sat, 11 Feb 2023 11:08:20 +0100
* gnu/packages/haskell-apps.scm (git-annex)[arguments]: Disable #:haddock?.
---
 gnu/packages/haskell-apps.scm | 13 ++-----------
 1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 7189d82ec1..80abc99cb1 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -306,6 +306,7 @@ (define-public git-annex
     (arguments
      `(#:configure-flags
        '("--flags=-Android -Webapp")
+       #:haddock? #f
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'patch-shell-for-tests
@@ -386,17 +387,7 @@ (define-public git-annex
                (symlink (string-append bin "/git-annex")
                         (string-append bin "/git-annex-shell"))
                (symlink (string-append bin "/git-annex")
-                        (string-append bin "/git-remote-tor-annex")))))
-         (add-after 'install 'touch-static-output
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; The Haskell build system adds a "static" output by
-             ;; default, and there is no way to override this until
-             ;; <https://issues.guix.gnu.org/41569> is fixed.  Without
-             ;; this phase, the daemon complains because we do not
-             ;; create the "static" output.
-             (with-output-to-file (assoc-ref outputs "static")
-               (lambda ()
-                 (display "static output not used\n"))))))))
+                        (string-append bin "/git-remote-tor-annex"))))))))
     (inputs
      (list curl
            ghc-aeson
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:10 GMT) Full text and rfc822 format available.

Message #71 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 29/31] gnu: purescript: Drop Haskell libraries and
 documentation.
Date: Sat, 11 Feb 2023 11:08:23 +0100
* gnu/packages/purescript.scm (purescript)[arguments]: Add
'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/purescript.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/purescript.scm b/gnu/packages/purescript.scm
index d968a6f0e6..0a5eccc459 100644
--- a/gnu/packages/purescript.scm
+++ b/gnu/packages/purescript.scm
@@ -99,13 +99,17 @@ (define-public purescript
      `(;; Tests require npm
        #:tests? #f
        #:configure-flags '("--flags=release")
+       #:haddock? #f
        #:phases
        (modify-phases %standard-phases
          (add-before 'configure 'update-constraints
            (lambda _
              (substitute* "purescript.cabal"
                (("\\b(language-javascript|process)\\s+[^,]+" all dep)
-                dep)))))))
+                dep))))
+         (add-after 'register 'remove-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (home-page "https://www.purescript.org/")
     (synopsis "Haskell inspired programming language compiling to JavaScript")
     (description
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:09:11 GMT) Full text and rfc822 format available.

Message #74 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 30/31] gnu: xmobar: Drop Haskell libraries and documentation.
Date: Sat, 11 Feb 2023 11:08:24 +0100
* gnu/packages/wm.scm (xmobar)[arguments]: Add
'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/wm.scm | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 7d64cfe6ce..40b0ee2185 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -831,13 +831,17 @@ (define-public xmobar
            libxpm))
     (arguments
      `(#:configure-flags (list "--flags=all_extensions")
+       ;; Haddock documentation is for the library.
+       #:haddock? #f
        #:phases
        (modify-phases %standard-phases
+         (add-after 'register 'remove-libraries
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib"))))
          (add-before 'build 'patch-test-shebang
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "test/Xmobar/Plugins/Monitors/AlsaSpec.hs"
-               (("/bin/bash") (which "bash")))
-             #t)))))
+               (("/bin/bash") (which "bash"))))))))
     (home-page "https://xmobar.org")
     (synopsis "Minimalistic text based status bar")
     (description
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:10:02 GMT) Full text and rfc822 format available.

Message #77 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 31/31] gnu: idris: Adapt to changed haskell-build-system.
Date: Sat, 11 Feb 2023 11:08:25 +0100
…which does not support the “static” output any more.

* gnu/packages/idris.scm (idris)[arguments]: Remove phase
restore-libidris_rts.
---
 gnu/packages/idris.scm | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/gnu/packages/idris.scm b/gnu/packages/idris.scm
index 2a5f63c174..85fb6cc2d2 100644
--- a/gnu/packages/idris.scm
+++ b/gnu/packages/idris.scm
@@ -122,17 +122,7 @@ (define-public idris
                (setenv "TASTY_NUM_THREADS" (number->string (parallel-job-count)))
                (setenv "IDRIS_CC" ,(cc-for-target)) ;Needed for creating executables
                (setenv "PATH" (string-append out "/bin:" (getenv "PATH")))
-               (apply (assoc-ref %standard-phases 'check) args))))
-         (add-before 'check 'restore-libidris_rts
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; The Haskell build system moves this library to the
-             ;; "static" output.  Idris only knows how to find it in the
-             ;; "out" output, so we restore it here.
-             (let ((out (assoc-ref outputs "out"))
-                   (static (assoc-ref outputs "static"))
-                   (filename "/lib/idris/rts/libidris_rts.a"))
-               (rename-file (string-append static filename)
-                            (string-append out filename))))))))
+               (apply (assoc-ref %standard-phases 'check) args)))))))
     (native-search-paths
      (list (search-path-specification
             (variable "IDRIS_LIBRARY_PATH")
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:16:01 GMT) Full text and rfc822 format available.

Message #80 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 27/31] gnu: shellcheck: Drop Haskell libraries.
Date: Sat, 11 Feb 2023 11:08:21 +0100
* gnu/packages/haskell-apps.scm (shellcheck)[arguments]: Add
'remove-libraries phase.
---
 gnu/packages/haskell-apps.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 80abc99cb1..35e369df3f 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -836,7 +836,10 @@ (define-public shellcheck
            (lambda* (#:key outputs #:allow-other-keys)
              (install-file "shellcheck.1"
                            (string-append (assoc-ref outputs "out")
-                                          "/share/man/man1/")))))))
+                                          "/share/man/man1/"))))
+         (add-after 'register 'remove-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (native-inputs
      (list pandoc))
     (inputs
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:17:02 GMT) Full text and rfc822 format available.

Message #83 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 24/31] gnu: hledger: Drop Haskell libraries and documentation.
Date: Sat, 11 Feb 2023 11:08:18 +0100
* gnu/packages/finance.scm (ghc-hledger): New variable.
(hledger): Inherit from ghc-hledger and add 'remove-libraries phase and
disable #:haddock?.
---
 gnu/packages/finance.scm | 48 ++++++++++++++++++++++++++--------------
 1 file changed, 31 insertions(+), 17 deletions(-)

diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index d04cf465f4..28f9f67595 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -212,9 +212,9 @@ (define-public bitcoin-core-23.0
 
 (define-public bitcoin-core bitcoin-core-23.0)
 
-(define-public hledger
+(define-public ghc-hledger
   (package
-    (name "hledger")
+    (name "ghc-hledger")
     (version "1.27.1")
     (source (origin
               (method url-fetch)
@@ -223,14 +223,6 @@ (define-public hledger
                (base32
                 "0qdg87m7ys2ykqqq32p7h7aw827w4f5bcqx4dspxxq6zqlvzddqb"))))
     (build-system haskell-build-system)
-    (arguments
-     (list
-      #:phases
-      #~(modify-phases %standard-phases
-          (add-after 'install 'install-doc
-            (lambda _
-              (install-file "hledger.info" (string-append #$output "/share/info"))
-              (install-file "hledger.1" (string-append #$output "/man/man1")))))))
     (properties '((upstream-name . "hledger")))
     (inputs (list ghc-decimal
                   ghc-diff
@@ -273,6 +265,23 @@ (define-public hledger
 Accounting.")
     (license license:gpl3)))
 
+(define-public hledger
+  (package
+    (inherit ghc-hledger)
+    (name "hledger")
+    (arguments
+     (list
+      #:haddock? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'install-doc
+            (lambda _
+              (install-file "hledger.info" (string-append #$output "/share/info"))
+              (install-file "hledger.1" (string-append #$output "/man/man1"))))
+           (add-after 'register 'remove-libraries
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))))
+
 (define-public homebank
   (package
     (name "homebank")
@@ -1988,7 +1997,7 @@ (define-public hledger-web
                   ghc-data-default
                   ghc-extra
                   ghc-hjsmin
-                  hledger
+                  ghc-hledger
                   ghc-hledger-lib
                   ghc-hspec
                   ghc-http-client
@@ -2012,12 +2021,17 @@ (define-public hledger-web
                   ghc-yesod-static
                   ghc-yesod-test))
     (arguments
-     (list #:phases
-           #~(modify-phases %standard-phases
-               ;; Tests write to $HOME.
-               (add-before 'check 'set-home
-                 (lambda _
-                   (setenv "HOME" "/tmp"))))))
+     (list
+      #:haddock? #f
+      #:phases
+      #~(modify-phases %standard-phases
+          ;; Tests write to $HOME.
+          (add-before 'check 'set-home
+            (lambda _
+              (setenv "HOME" "/tmp")))
+           (add-after 'register 'remove-libraries
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (home-page "http://hledger.org")
     (synopsis "Web-based user interface for the hledger accounting system")
     (description
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:18:01 GMT) Full text and rfc822 format available.

Message #86 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 25/31] gnu: darcs: Drop Haskell libraries and documentation.
Date: Sat, 11 Feb 2023 11:08:19 +0100
* gnu/packages/haskell-apps.scm (darcs)[arguments]: Add
'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/haskell-apps.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 3cae64a42e..7189d82ec1 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -187,6 +187,7 @@ (define-public darcs
        #:configure-flags '("-fpkgconfig" "-fcurl" "-flibiconv" "-fthreaded"
                            "-fnetwork-uri" "-fhttp" "--flag=executable"
                            "--flag=library")
+       #:haddock? #f
        #:phases
        (modify-phases %standard-phases
          (add-after 'patch-source-shebangs 'patch-sh
@@ -198,7 +199,10 @@ (define-public darcs
            (lambda _
              (substitute* "darcs.cabal"
                (("(attoparsec|base|bytestring|constraints|cryptonite|hashable|memory|regex-tdfa|time)\\s+[^,]+" all dep)
-                dep)))))))
+                dep))))
+         (add-after 'register 'remove-libraries
+           (lambda* (#:key outputs #:allow-other-keys)
+             (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
     (inputs (list ghc-regex-base
                   ghc-regex-tdfa
                   ghc-regex-applicative
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Sat, 11 Feb 2023 10:18:02 GMT) Full text and rfc822 format available.

Message #89 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: [PATCH 28/31] gnu: pandoc: Drop Haskell libraries and documentation.
Date: Sat, 11 Feb 2023 11:08:22 +0100
* gnu/packages/haskell-xyz.scm (ghc-pandoc): Renamed from pandoc.
(pandoc) [arguments]: Add 'remove-libraries phase and disable #:haddock?.
---
 gnu/packages/haskell-xyz.scm | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/haskell-xyz.scm b/gnu/packages/haskell-xyz.scm
index 0a6efedd29..7578065eb1 100644
--- a/gnu/packages/haskell-xyz.scm
+++ b/gnu/packages/haskell-xyz.scm
@@ -8188,9 +8188,9 @@ (define-public ghc-doclayout
 code.  It was designed for use in @code{Pandoc}.")
     (license license:bsd-3)))
 
-(define-public pandoc
+(define-public ghc-pandoc
   (package
-    (name "pandoc")
+    (name "ghc-pandoc")
     (version "2.19.2")
     (source (origin
               (method url-fetch)
@@ -8288,8 +8288,19 @@ (define-public pandoc
 provided for those who need a drop-in replacement for Markdown.pl.")
     (license license:gpl2+)))
 
-(define-public ghc-pandoc
-  (deprecated-package "ghc-pandoc" pandoc))
+(define-public pandoc
+  (package
+    (inherit ghc-pandoc)
+    (name "pandoc")
+    (arguments
+     (list
+       #:phases
+       #~(modify-phases %standard-phases
+           (add-after 'register 'remove-libraries
+             (lambda* (#:key outputs #:allow-other-keys)
+               (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))
+       ;; Haddock documentation is for the library.
+       #:haddock? #f))))
 
 (define-public ghc-pandoc-types
   (package
-- 
2.38.2





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Tue, 14 Feb 2023 19:28:01 GMT) Full text and rfc822 format available.

Message #92 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Lars-Dominik Braun <lars <at> 6xq.net>, 61420 <at> debbugs.gnu.org
Subject: Re: [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
Date: Tue, 14 Feb 2023 20:27:03 +0100
Hi Lars,

On sam., 11 févr. 2023 at 10:59, Lars-Dominik Braun <lars <at> 6xq.net> wrote:

> these patches (also found in the wip-haskell branch) lift Haskell to
> the Stackage release 20.5, which is based on GHC 9.2.

From the CI dashboard

    https://ci.guix.gnu.org/eval/183093/dashboard

all seem green.  Well, it is hard to know but giving a look at the
various evaluations,

https://ci.guix.gnu.org/eval/183093
https://ci.guix.gnu.org/eval/154817?status=failed

for instance, https://ci.guix.gnu.org/build/373800/log/raw reports that
’opencv’ is failing but it is unrelated to this branch – “guix weather”
reports it is broken on master for Berlin but not Bordeaux.

https://ci.guix.gnu.org/build/420612/details

Similarly for the other broken packages in this wip-haskell branch.

However, python-pypandoc seems broken on wip-haskell but not in master.
Idem for ganeti

I have locally rebased wip-haskell on the top of master (4501a50bbd) and
these 2 packages (python-pypandoc and ganeti) are still failing (once
the series is applied) but not in master (before the series is applied,
i.e., commit 4501a50bbd).


Well, I have not carefully checked yet each commit but they appear good
to me; except maybe « Upgrade Haskell packages. » but it is too much
work for improving, IMHO. :-)

Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 08:46:02 GMT) Full text and rfc822 format available.

Message #95 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: Simon Tournier <zimon.toutoune <at> gmail.com>
Cc: 61420 <at> debbugs.gnu.org
Subject: Re: [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
Date: Wed, 15 Feb 2023 09:45:33 +0100
Hi,

> However, python-pypandoc seems broken on wip-haskell but not in master.
> Idem for ganeti
yeah, python-pypandoc and ganeti are known to be broken. Ganeti does
not support GHC 9.2 (and there don’t seem to be any patches fixing
this anywhere) and pypandoc fails even more tests when upgrading it to
v1.10 – not sure what to do.

> except maybe « Upgrade Haskell packages. » but it is too much
> work for improving, IMHO. :-)
Well, I know that this is not what the policy requires, but it is a
deliberate choice. There is no functional/working intermediate state
here. You can only have all of the changes or none. Creating >700 commits
“just because” seems wrong.

Cheers,
Lars





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 09:52:01 GMT) Full text and rfc822 format available.

Message #98 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Lars-Dominik Braun <lars <at> 6xq.net>
Cc: 61420 <at> debbugs.gnu.org
Subject: Re: [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
Date: Wed, 15 Feb 2023 10:20:44 +0100
Hi,

On Wed, 15 Feb 2023 at 09:45, Lars-Dominik Braun <lars <at> 6xq.net> wrote:

>> However, python-pypandoc seems broken on wip-haskell but not in master.
>> Idem for ganeti
> yeah, python-pypandoc and ganeti are known to be broken. Ganeti does
> not support GHC 9.2 (and there don’t seem to be any patches fixing
> this anywhere) and pypandoc fails even more tests when upgrading it to
> v1.10 – not sure what to do.

About ganeti, does it make sense to build it with a transformation and
use an older GHC version (that it is still available).‘

About python-pypandoc, if there is no solution for fixing it and it will
be broken, I propose to remove it.  WDYT?


Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 10:45:02 GMT) Full text and rfc822 format available.

Message #101 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Lars-Dominik Braun <lars <at> 6xq.net>, 61420 <at> debbugs.gnu.org
Subject: Re: [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
Date: Wed, 15 Feb 2023 11:43:41 +0100
Hi Lars,

On Sat, 11 Feb 2023 at 10:59, Lars-Dominik Braun <lars <at> 6xq.net> wrote:

> Lars-Dominik Braun (29):
>   import: hackage: Allow version at the beginning of cabal file.
>   gnu: Switch default to GHC 9.2.
>   import: stackage: Update to release 20.5.
>   import: hackage: Add upstream-name property.
>   gnu: Add upstream-name property to Haskell packages.
>   import: hackage: Use upstream-name property.
>   gnu: Use HACKAGE-URI for packages from Hackage.
>   import: haskell: Add new internal library for GHC 9.2.
>   build: haskell-build-system: Process all transitive dependencies.
>   build: haskell-build-system: Remove unused linker flags.
>   Upgrade Haskell packages.
>   gnu: ghc-9.2: Increase make verbosity.
>   gnu: Remove unused Haskell packages.
>   gnu: ghc-parsec: Update to 3.1.15.0.
>   gnu: idris: Fix overly zealous regular expression.
>   gnu: elm: Support GHC 9.2.
>   build-system: haskell: Drop default "static" output.
>   gnu: ghc-9.2: Support static linking with glibc < 2.34.
>   gnu: ghc-lua: Disable symbol export.
>   build: haskell-build-system: Build static executables by default.
>   gnu: ngless: Drop Haskell libraries and documentation.
>   gnu: hledger: Drop Haskell libraries and documentation.
>   gnu: darcs: Drop Haskell libraries and documentation.
>   gnu: git-annex: Drop Haskell documentation.
>   gnu: shellcheck: Drop Haskell libraries.
>   gnu: pandoc: Drop Haskell libraries and documentation.
>   gnu: purescript: Drop Haskell libraries and documentation.
>   gnu: xmobar: Drop Haskell libraries and documentation.
>   gnu: idris: Adapt to changed haskell-build-system.
>
> Philip Munksgaard (1):
>   build: haskell-build-system: Support multiple libraries.
>
> zimoun (1):
>   build: haskell-build-system: Remove trailing #t.

From this series, I do not see [PATCH 07/31], neither 09/31 or 13/31.
Is it expected?

 [PATCH 00/31] Haskell upgrade to Stackage 20.5 (Guix Guix::review? list::guix-patches replied)
 [PATCH 01/31] import: hackage: Allow version at the beginning of cabal file. (Guix list::guix-patches unread)
 [PATCH 02/31] build: haskell-build-system: Remove trailing #t. (Guix inbox list::guix-patches unread)
 [PATCH 03/31] build: haskell-build-system: Support multiple libraries. (Guix inbox list::guix-patches unread)
 [PATCH 04/31] gnu: Switch default to GHC 9.2. (Guix Guix::review? list::guix-patches unread)
 [PATCH 05/31] import: stackage: Update to release 20.5. (Guix list::guix-patches unread)
 [PATCH 06/31] import: hackage: Add upstream-name property. (Guix list::guix-patches unread)
 [PATCH 08/31] import: hackage: Use upstream-name property. (Guix list::guix-patches unread)
 [PATCH 10/31] import: haskell: Add new internal library for GHC 9.2. (Guix list::guix-patches unread)
 [PATCH 11/31] build: haskell-build-system: Process all transitive dependencies. (Guix list::guix-patches unread)
 [PATCH 12/31] build: haskell-build-system: Remove unused linker flags. (Guix list::guix-patches unread)
 [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity. (Guix Guix::review? list::guix-patches unread)
 [PATCH 15/31] gnu: Remove unused Haskell packages. (Guix Guix::review? list::guix-patches unread)
 [PATCH 16/31] gnu: ghc-parsec: Update to 3.1.15.0. (Guix Guix::review? list::guix-patches unread)
 [PATCH 17/31] gnu: idris: Fix overly zealous regular expression. (Guix list::guix-patches unread)
 [PATCH 18/31] gnu: elm: Support GHC 9.2. (Guix list::guix-patches unread)
 [PATCH 19/31] build-system: haskell: Drop default "static" output. (Guix Guix::review? list::guix-patches unread)
 [PATCH 20/31] gnu: ghc-9.2: Support static linking with glibc < 2.34. (Guix Guix::review? list::guix-patches unread)
 [PATCH 21/31] gnu: ghc-lua: Disable symbol export. (Guix Guix::review? list::guix-patches unread)
 [PATCH 22/31] build: haskell-build-system: Build static executables by default. (Guix list::guix-patches unread)
 [PATCH 23/31] gnu: ngless: Drop Haskell libraries and documentation. (Guix Guix::review? list::guix-patches unread)
 [PATCH 24/31] gnu: hledger: Drop Haskell libraries and documentation. (Guix list::guix-patches unread)
 [PATCH 25/31] gnu: darcs: Drop Haskell libraries and documentation. (Guix Guix::review? list::guix-patches unread)
 [PATCH 26/31] gnu: git-annex: Drop Haskell documentation. (Guix Guix::review? list::guix-patches unread)
 [PATCH 27/31] gnu: shellcheck: Drop Haskell libraries. (Guix Guix::review? list::guix-patches unread)
 [PATCH 28/31] gnu: pandoc: Drop Haskell libraries and documentation. (Guix Guix::review? list::guix-patches unread)
 [PATCH 29/31] gnu: purescript: Drop Haskell libraries and documentation. (Guix list::guix-patches unread)
 [PATCH 30/31] gnu: xmobar: Drop Haskell libraries and documentation. (Guix list::guix-patches unread)
 [PATCH 31/31] gnu: idris: Adapt to changed haskell-build-system. (Guix list::guix-patches unread)


Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 10:59:02 GMT) Full text and rfc822 format available.

Message #104 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 61420 <at> debbugs.gnu.org
Subject: Re: [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
Date: Wed, 15 Feb 2023 11:58:36 +0100
Hi,

> From this series, I do not see [PATCH 07/31], neither 09/31 or 13/31.
> Is it expected?
yes, they’re a few hundred kilobytes with thousands of lines
each. Please have a look at the branch instead.

Lars





Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 11:08:02 GMT) Full text and rfc822 format available.

Message #107 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Lars-Dominik Braun <lars <at> 6xq.net>, 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: Re: [bug#61420] [PATCH 08/31] import: hackage: Use upstream-name
 property.
Date: Wed, 15 Feb 2023 11:48:00 +0100
Hi,

On Sat, 11 Feb 2023 at 11:08, Lars-Dominik Braun <lars <at> 6xq.net> wrote:
> * guix/import/hackage.scm (guix-package->hackage-name): Removed.
> (latest-release): Use package-upstream-name* instead.
> * guix/import/stackage.scm (latest-lts-release): Ditto.
> (stackage-lts-package?): Ditto.

> -(define guix-package->hackage-name
> -  (let ((uri-rx (make-regexp "(https?://hackage.haskell.org|mirror://hackage)/package/([^/]+)/.*"))
> -        (name-rx (make-regexp "(.*)-[0-9\\.]+")))
> -    (lambda (package)
> -      "Given a Guix package name, return the corresponding Hackage name."
> -      (let* ((source-url (and=> (package-source package) origin-uri))
> -             (name (match:substring (regexp-exec uri-rx source-url) 2)))
> -        (match (regexp-exec name-rx name)
> -          (#f name)
> -          (m (match:substring m 1)))))))

Why not just do a drop-in replacement of the implement of
’guix-package->hackage-name’ by the implementation of
’package-upstream-name*’?

Other said, avoid to introduce a new procedure and remove another; and
instead just replace the implementation of the old by the new.


> -  (let* ((hackage-name (guix-package->hackage-name package))
> +  (let* ((hackage-name (package-upstream-name* package))

It would avoid all these kind of replacement, no?


Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 11:08:02 GMT) Full text and rfc822 format available.

Message #110 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Lars-Dominik Braun <lars <at> 6xq.net>, 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: Re: [bug#61420] [PATCH 14/31] gnu: ghc-9.2: Increase make verbosity.
Date: Wed, 15 Feb 2023 11:53:13 +0100
Hi,

On Sat, 11 Feb 2023 at 11:08, Lars-Dominik Braun <lars <at> 6xq.net> wrote:
> Tests time out on ci.guix.gnu.org.

[...]

> +         ;; Increase verbosity, so running the test suite does not time out on CI.

Hehe!  Well, I think there is variable for that.  Something like:

      (properties
       `((max-silent-time . 36000)))

Well, one is not exclusive with the other. :-)


Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 11:08:03 GMT) Full text and rfc822 format available.

Message #113 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Lars-Dominik Braun <lars <at> 6xq.net>, 61420 <at> debbugs.gnu.org
Cc: Lars-Dominik Braun <lars <at> 6xq.net>
Subject: Re: [bug#61420] [PATCH 19/31] build-system: haskell: Drop default
 "static" output.
Date: Wed, 15 Feb 2023 11:55:30 +0100
Hi,

On Sat, 11 Feb 2023 at 11:08, Lars-Dominik Braun <lars <at> 6xq.net> wrote:

> * guix/build-system/haskell.scm (lower): Pass outputs to lowered bag.
> * guix/build/haskell-build-system.scm (install): Remove static library
> moving code.
> * gnu/packages/haskell-check.scm (ghc-hunit): Remove "static" output.

This change could be announced with ’--news’, WDYT?

Cheers,
simon




Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 14:11:01 GMT) Full text and rfc822 format available.

Message #116 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Christopher Baines <mail <at> cbaines.net>
To: Lars-Dominik Braun <lars <at> 6xq.net>
Cc: 61420 <at> debbugs.gnu.org, guix-patches <at> gnu.org
Subject: Re: [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
Date: Wed, 15 Feb 2023 14:03:13 +0000
[Message part 1 (text/plain, inline)]
Lars-Dominik Braun <lars <at> 6xq.net> writes:

>> From this series, I do not see [PATCH 07/31], neither 09/31 or 13/31.
>> Is it expected?
> yes, they’re a few hundred kilobytes with thousands of lines
> each. Please have a look at the branch instead.

I ended up also looking at these missing patches, since that explains
why the testing for https://qa.guix.gnu.org/issue/61420 hasn't happened.

I've been sent these large diffs anyway since that happened when you
pushed to the branch, so I wouldn't hesitate to send large patches to
guix-patches, since that's helpful to have the testing happen
automatically.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 14:11:02 GMT) Full text and rfc822 format available.

Information forwarded to guix-patches <at> gnu.org:
bug#61420; Package guix-patches. (Wed, 15 Feb 2023 15:59:02 GMT) Full text and rfc822 format available.

Message #122 received at 61420 <at> debbugs.gnu.org (full text, mbox):

From: Simon Tournier <zimon.toutoune <at> gmail.com>
To: Lars-Dominik Braun <lars <at> 6xq.net>
Cc: 61420 <at> debbugs.gnu.org
Subject: Re: [bug#61420] [PATCH 00/31] Haskell upgrade to Stackage 20.5
Date: Wed, 15 Feb 2023 12:10:55 +0100
Hi,

On Wed, 15 Feb 2023 at 11:58, Lars-Dominik Braun <lars <at> 6xq.net> wrote:

> yes, they’re a few hundred kilobytes with thousands of lines
> each. Please have a look at the branch instead.

All LGTM.  Some minor comments that can be addressed later, IMHO.

Thank you for this hard work!

Cheers,
simon




Reply sent to Lars-Dominik Braun <lars <at> 6xq.net>:
You have taken responsibility. (Sun, 26 Feb 2023 09:48:02 GMT) Full text and rfc822 format available.

Notification sent to Lars-Dominik Braun <lars <at> 6xq.net>:
bug acknowledged by developer. (Sun, 26 Feb 2023 09:48:02 GMT) Full text and rfc822 format available.

Message #127 received at 61420-done <at> debbugs.gnu.org (full text, mbox):

From: Lars-Dominik Braun <lars <at> 6xq.net>
To: 61420-done <at> debbugs.gnu.org
Subject: Re: [PATCH 00/31] Haskell upgrade to Stackage 20.5
Date: Sun, 26 Feb 2023 10:47:03 +0100
Hi,

the branch wip-haskell has been merged.

Lars





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 26 Mar 2023 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 24 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.