[PATCH haskell-team 1/3] gnu: ghc-next: Update to version 9.4.8

  • Open
  • quality assurance status badge
Details
4 participants
  • Lars-Dominik Braun
  • Nicolas Graves
  • Saku Laesvuori
  • Suhail
Owner
unassigned
Submitted by
Saku Laesvuori
Severity
normal
S
S
Saku Laesvuori wrote on 20 Dec 2023 08:10
(address . guix-patches@gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
5cdfcf3aadfbe42655b941764d5a700b6d4bca88.1703056111.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-9.4): Update to version 9.4.8.
[native-inputs]<ghc-testsuite>: Add a patch to fix the testsuite.
(ghc-happy-bootstrap-for-9.4): Update to version 1.20.1.1.
* gnu/packages/patches/ghc-9.4-testsuite-fixes.patch: New patch.

Change-Id: I5ef72f83e5feed1defb706bafa934077fda1553c
---
gnu/packages/haskell.scm | 11 +-
.../patches/ghc-9.4-testsuite-fixes.patch | 119 ++++++++++++++++++
2 files changed, 125 insertions(+), 5 deletions(-)
create mode 100644 gnu/packages/patches/ghc-9.4-testsuite-fixes.patch

Toggle diff (177 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 62815efbb1..88826fb31f 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1437,14 +1437,14 @@ (define ghc-happy-bootstrap-for-9.4
(hidden-package
(package
(name "ghc-happy")
- (version "1.20.0")
+ (version "1.20.1.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "happy" version))
(sha256
(base32
- "1346r2x5ravs5fqma65bzjragqbb2g6v41wz9maknwm2jf7kl79v"))))
+ "06w8g3lfk2ynrfhqznhp1mnp8a5b64lj6qviixpndzf5lv2psklb"))))
(build-system haskell-build-system)
(arguments
(list #:haskell ghc-bootstrap-for-9.4
@@ -1462,14 +1462,14 @@ (define-public ghc-9.4
(package
(inherit base)
(name "ghc-next")
- (version "9.4.4")
+ (version "9.4.8")
(source (origin
(method url-fetch)
(uri (string-append "https://www.haskell.org/ghc/dist/" version
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
- "1qk7rlqf02s3b6m6sqqngmjq1mxnrz88h159lz6k25gddmdg5kp8"))))
+ "0pmqg9846lanb0hcyxhgr9ipzq33rfldxj7ln0j3qgpyczmhgx0b"))))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases '%standard-phases)
@@ -1487,7 +1487,8 @@ (define-public ghc-9.4
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
- "04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))))
+ "159wsqnqpqb0pxa3zyhvyg07wxr2zz7v52h52wkplw4pn12dsidc"))
+ (patches (search-patches "ghc-9.4-testsuite-fixes.patch"))))
("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
,@(filter (match-lambda
diff --git a/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch b/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch
new file mode 100644
index 0000000000..f394632add
--- /dev/null
+++ b/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch
@@ -0,0 +1,119 @@
+From 3acd8aa948a27465cffc8e2ab56229485e2a5b98 Mon Sep 17 00:00:00 2001
+From: Saku Laesvuori <saku@laesvuori.fi>
+Date: Tue, 5 Dec 2023 22:49:45 +0200
+Subject: [PATCH] Fix tests
+
+* replaces egrep with grep -E
+* removes unnecessary escaping in some grep regular expressions
+* adds a missing include header to a makefile
+---
+ testsuite/tests/cabal/cabal01/Makefile | 2 +-
+ testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile | 4 ++++
+ testsuite/tests/haddock/perf/Makefile | 8 ++++----
+ testsuite/tests/hsc2hs/Makefile | 4 ++--
+ testsuite/tests/numeric/should_run/T7014.primops | 4 ++--
+ testsuite/tests/simplCore/should_compile/Makefile | 4 ++--
+ 6 files changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/testsuite/tests/cabal/cabal01/Makefile b/testsuite/tests/cabal/cabal01/Makefile
+index 004e4c75..6ec499c9 100644
+--- a/testsuite/tests/cabal/cabal01/Makefile
++++ b/testsuite/tests/cabal/cabal01/Makefile
+@@ -5,7 +5,7 @@ include $(TOP)/mk/test.mk
+ # Find all the env variables starting with CI_ to unset them.
+ # Otherwise, we might run into environment length limitations on Windows.
+ # (See `xargs --show-limits`.)
+-VARS_TO_UNSET := $(shell env | grep ^CI_ | egrep -o '^[^=]+')
++VARS_TO_UNSET := $(shell env | grep ^CI_ | grep -E -o '^[^=]+')
+ unexport $(VARS_TO_UNSET)
+
+ clean:
+diff --git a/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile b/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
+index fd64d23f..cb669db3 100644
+--- a/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
++++ b/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
+@@ -1,3 +1,7 @@
++TOP=../../../..
++include $(TOP)/mk/boilerplate.mk
++include $(TOP)/mk/test.mk
++
+ .PHONY: GHCiPrimCall
+ GHCiPrimCall:
+ '$(TEST_HC)' $(TEST_HC_OPTS) -fPIC -v0 -c GHCiPrimCall_cmm.cmm
+diff --git a/testsuite/tests/haddock/perf/Makefile b/testsuite/tests/haddock/perf/Makefile
+index b67b52f2..ff2f7ebb 100644
+--- a/testsuite/tests/haddock/perf/Makefile
++++ b/testsuite/tests/haddock/perf/Makefile
+@@ -4,12 +4,12 @@ include $(TOP)/mk/test.mk
+
+ # We accept a 5% increase in parser allocations due to -haddock
+ haddock_parser_perf :
+- WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Parser | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
+- WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Parser | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Parser | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Parser | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
+ awk "BEGIN { ratio = ($$WithHaddock / $$WithoutHaddock); if (ratio > 1.05) {print \"-haddock allocation ratio too high:\", ratio; exit 1} else {exit 0} }"
+
+ # Similarly for the renamer
+ haddock_renamer_perf :
+- WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Renamer | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
+- WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Renamer | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Renamer | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Renamer | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
+ awk "BEGIN { ratio = ($$WithHaddock / $$WithoutHaddock); if (ratio > 1.05) {print \"-haddock allocation ratio too high:\", ratio; exit 1} else {exit 0} }"
+diff --git a/testsuite/tests/hsc2hs/Makefile b/testsuite/tests/hsc2hs/Makefile
+index d0b2d249..95b011c8 100644
+--- a/testsuite/tests/hsc2hs/Makefile
++++ b/testsuite/tests/hsc2hs/Makefile
+@@ -52,9 +52,9 @@ T11004:
+ T12504:
+ '$(HSC2HS)' $(HSC2HS_OPTS) T12504/path/to/$@.hsc
+ ifeq "$(WINDOWS)" "YES"
+- grep '{-# LINE 1 \"T12504\\\\path\\\\to\\\\$@\.hsc\" #-}' T12504/path/to/$@.hs
++ grep '{-# LINE 1 "T12504\\\\path\\\\to\\\\$@\.hsc" #-}' T12504/path/to/$@.hs
+ else
+- grep '{-# LINE 1 \"T12504/path/to/$@\.hsc\" #-}' T12504/path/to/$@.hs
++ grep '{-# LINE 1 "T12504/path/to/$@\.hsc" #-}' T12504/path/to/$@.hs
+ endif
+
+ .PHONY: T15758
+diff --git a/testsuite/tests/numeric/should_run/T7014.primops b/testsuite/tests/numeric/should_run/T7014.primops
+index 3243666d..c807fb45 100644
+--- a/testsuite/tests/numeric/should_run/T7014.primops
++++ b/testsuite/tests/numeric/should_run/T7014.primops
+@@ -1,8 +1,8 @@
+ and#
+ or#
+ uncheckedShift.*#
+-\+#
+-\-#
+++#
++-#
+ \*#
+ quotInt#
+ remInt#
+diff --git a/testsuite/tests/simplCore/should_compile/Makefile b/testsuite/tests/simplCore/should_compile/Makefile
+index b5041800..c56e04f6 100644
+--- a/testsuite/tests/simplCore/should_compile/Makefile
++++ b/testsuite/tests/simplCore/should_compile/Makefile
+@@ -66,7 +66,7 @@ T13367:
+
+ T8832:
+ $(RM) -f T8832.o T8832.hi
+- '$(TEST_HC)' $(TEST_HC_OPTS) -O -c -ddump-simpl -dsuppress-ticks T8832.hs | egrep '^[a-zA-Z0-9]+ ='
++ '$(TEST_HC)' $(TEST_HC_OPTS) -O -c -ddump-simpl -dsuppress-ticks T8832.hs | grep -E '^[a-zA-Z0-9]+ ='
+
+ T12603:
+ $(RM) -f T12603.o T12603.hi
+@@ -259,7 +259,7 @@ str-rules:
+ # g should have been collapsed into one defininition by CSE.
+ .PHONY: T13340
+ T13340:
+- '$(TEST_HC)' $(TEST_HC_OPTS) -c -O T13340.hs -ddump-simpl -dsuppress-all | grep -c '\+#'
++ '$(TEST_HC)' $(TEST_HC_OPTS) -c -O T13340.hs -ddump-simpl -dsuppress-all | grep -c '+#'
+
+
+ # We expect to see all dictionaries specialized away.
+--
+2.41.0
+

base-commit: dc2b59ddc1e8f510935777db40e881896f7a0cab
--
2.41.0
S
S
Saku Laesvuori wrote on 20 Dec 2023 08:13
[PATCH haskell-team 2/3] gnu: ghc: Use version 9.4.8 as the default
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
c4f97924d832d52aa15366b4e2397568e2d96868.1703056111.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-9.4): Rename from ghc-next to ghc.
(ghc): Redefine as ghc-9.4 instead of ghc-9.2.

Change-Id: I5696907ea6e2fac656d21d68c2ac89d549767ec2
---
gnu/packages/haskell.scm | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)

Toggle diff (39 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 88826fb31f..ebe5bc6dc8 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1392,12 +1392,6 @@ (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)
@@ -1461,7 +1455,7 @@ (define-public ghc-9.4
(let ((base ghc-9.2))
(package
(inherit base)
- (name "ghc-next")
+ (name "ghc")
(version "9.4.8")
(source (origin
(method url-fetch)
@@ -1503,4 +1497,10 @@ (define-public ghc-9.4
(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.4)
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 20 Dec 2023 08:13
[PATCH haskell-team 3/3] guix: haskell-build-system: Hide dependecies from ghc's package db
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
6030eebe203e81a45acda76c95bcbfb064ff5e74.1703056111.git.saku@laesvuori.fi
A Haskell package P contains information about all other haskell
packages P_n it depends on. This commit hides the packages P_n in the
package database stored in P, which enables being explicit about which
haskell packages one wants to be visible in their profile.

* guix/build/haskell-build-system.scm
(register)[install-transitive-deps]: Set the 'exposed' field to False in
the dependencies' .conf files. Remove a comment about symlinking because
the copied files are now modified.

Change-Id: I66332cd49e6036689873d9435036c9f876216f1b
---
guix/build/haskell-build-system.scm | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

Toggle diff (18 lines)
diff --git a/guix/build/haskell-build-system.scm b/guix/build/haskell-build-system.scm
index 0e94cf59a5..83c742427a 100644
--- a/guix/build/haskell-build-system.scm
+++ b/guix/build/haskell-build-system.scm
@@ -214,7 +214,10 @@ (define* (register #:key name system inputs outputs #:allow-other-keys)
(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?
+ (copy-file dep-conf dep-conf*)
+ (substitute* dep-conf*
+ (("(exposed:[ \t]*)True" _ field)
+ (string-append field "False"))))
(loop (vhash-cons id #t seen) next-tail))
(loop seen tail))))))
--
2.41.0
L
L
Lars-Dominik Braun wrote on 22 Dec 2023 11:07
Re: [bug#67921] [PATCH haskell-team 2/3] gnu: ghc: Use version 9.4.8 as the default
(name . Saku Laesvuori)(address . saku@laesvuori.fi)(address . 67921@debbugs.gnu.org)
ZYVfxTBW9lsUtMFW@noor.fritz.box
Hi,

Toggle quote (2 lines)
> * gnu/packages/haskell.scm (ghc-9.4): Rename from ghc-next to ghc.

why 9.4 and not 9.6? Stackage 22.0 for 9.6 has just been released and
if we go for a big upgrade (you’ll have to update the entire Haskell
ecosystem if you update GHC), we might as well just make the jump to
GHC 9.6 and Stackage 22.0.

Lars
S
S
Saku Laesvuori wrote on 22 Dec 2023 11:33
(name . Lars-Dominik Braun)(address . lars@6xq.net)(address . 67921@debbugs.gnu.org)
o22z5twrua57nzv5aqyldigbempxwglsa6xh2ytpxif4l2nacc@hgfkyqqcsbmt
Toggle quote (9 lines)
> Hi,
>
> > * gnu/packages/haskell.scm (ghc-9.4): Rename from ghc-next to ghc.
>
> why 9.4 and not 9.6? Stackage 22.0 for 9.6 has just been released and
> if we go for a big upgrade (you’ll have to update the entire Haskell
> ecosystem if you update GHC), we might as well just make the jump to
> GHC 9.6 and Stackage 22.0.

Because I wrote that patch when there wasn't yet a Stackage release for
ghc 9.6. But if a stackage release for it has now been released I'll try
updating it to 9.6.

Regarding the big upgrade, I have been wondering how could the cabal
revisions be updated automatically. Is there a simpler way than to

1. include a procedure for editing the declaration in the <upstream-updater>
2. refactor the entire updater code to use that procedure
3. implement completely new logic for adding fields to package definitions?

That seems like a lot of work in code that I don't know all that well.
Is there some reason why the revision is not part of the package
version? Moving it there would probably be much easier than modifying
guix refresh (but then again, if those modifications should be done
anyway it doesn't really reduce the amount of work)

- Saku
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoMkZR3NPB29fCOn/JX0oSiodOjIFAmWFZfEACgkQJX0oSiod
OjL3EhAAkQSMY/WVBDEndRqbgCc1TMLpeeC6GXP1xFY6xmlkNG5CRPjVEpf7Yq2N
YaMbQq1qAnLRRa4WHmq/hFvbpgaNXut6BiOruePQ+0LWl6Zay4ITd0OO8Bjq8weu
gaNdBpLbCKBWw3mEBbZdVPpjFtI6xBWf/FZRMbLTvOUvfZPuDfTXpyRQMrUGNXzr
NU/GkHuIktIMN3neP7Z5lQhojTBSA6WAaq+NrQGQb0zWocwVurxnGFF77/LfUOQ6
KgpqiyJRK+LPhiJQoU3M13LUXxiMHzzAojjJx6WHtRQtM4AAbD7PvQUZbo0soez9
XJm+KTWUMT1RYkvRdMtzhPmRkBQJ0fWOETFcFAardn18cKFdl9PLPz3QD4Wtl9yd
0vUp6CrNQl/4TM2A/05v6AQWv87lAFy27Q0CjfU4WKWiRLFPPEsCQQilWRrYl29e
i40ce4t0MXNWIBCsrp2wivG6NVtxIAPbMG/d5v+ocyEF2LoVxRrxDbVg90Wyb4oJ
KYRiIxT4a57q0iUMFuyaZLnQ0T6tK9SY8xTGLf02iMsYQk58iD/d+rW5guSvM8Dc
ueHY+TMOp//VaMiTcPlPBOiw+IJmZ0AB6ivtKNUQZK9NVNGgGUrZU1BX8eL7tfr1
1SOCFpz6jwLbghbPYI/85zCxMEBTUWvsLGDDiqRjZXWJj093D8Q=
=fZSa
-----END PGP SIGNATURE-----


L
L
Lars-Dominik Braun wrote on 22 Dec 2023 12:03
(name . Saku Laesvuori)(address . saku@laesvuori.fi)(address . 67921@debbugs.gnu.org)
ZYVtFfZ5DdWiYaHl@noor.fritz.box
Hi Saku,

Toggle quote (4 lines)
> Because I wrote that patch when there wasn't yet a Stackage release for
> ghc 9.6. But if a stackage release for it has now been released I'll try
> updating it to 9.6.

oh, I see. I believe 9.6 drops the Makefile-based build-system, making
it a slightly more involved upgrade.

Toggle quote (3 lines)
> Regarding the big upgrade, I have been wondering how could the cabal
> revisions be updated automatically.

I’ve been using the script attached, which basically overwrites the
entire package, except for synopsis and description.

Toggle quote (3 lines)
> Is there some reason why the revision is not part of the package
> version?

I don’t know.

Toggle quote (4 lines)
> Moving it there would probably be much easier than modifying
> guix refresh (but then again, if those modifications should be done
> anyway it doesn't really reduce the amount of work)

The thing is that we still need the cabal file hash somewhere and it
needs to be updated. My idea was to create a new HACKAGE-URI procedure,
which accepts package name, version, revision and cabal file hash and
add some black magic to combine the new cabal file with the tarball from
hackage. Code exists for this, but I’ve never been able to finalize it.

Lars
Attachment: haskell-update.scm
L
L
Lars-Dominik Braun wrote on 6 Jan 19:42 +0100
Re: [bug#67921] [PATCH haskell-team 3/3] guix: haskell-build-system: Hide dependecies from ghc's package db
(name . Saku Laesvuori)(address . saku@laesvuori.fi)(address . 67921@debbugs.gnu.org)
ZZmfF_c4kxUV0BZl@noor.fritz.box
Hi,

Toggle quote (5 lines)
> A Haskell package P contains information about all other haskell
> packages P_n it depends on. This commit hides the packages P_n in the
> package database stored in P, which enables being explicit about which
> haskell packages one wants to be visible in their profile.

oddly enough this patch causes the 'check phase of ghc-doctest to
not finish/hang. Any idea why?

Cheers,
Lars
S
S
Saku Laesvuori wrote on 8 Jan 08:09 +0100
(name . Lars-Dominik Braun)(address . lars@6xq.net)(address . 67921@debbugs.gnu.org)
vceyvgylkpftupwxlm4nc2555nvrg6kdeqsghv4lo722po57el@t5xc7wwn5b2r
Toggle quote (10 lines)
> Hi,
>
> > A Haskell package P contains information about all other haskell
> > packages P_n it depends on. This commit hides the packages P_n in the
> > package database stored in P, which enables being explicit about which
> > haskell packages one wants to be visible in their profile.
>
> oddly enough this patch causes the 'check phase of ghc-doctest to
> not finish/hang. Any idea why?

No idea, I'll look into it more when I get GHC 9.6 packaged.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoMkZR3NPB29fCOn/JX0oSiodOjIFAmWbn6MACgkQJX0oSiod
OjIKLhAAiQ5m3svlXkdRKUQsXAHjsDs8qA6CAOtegPMsvd/fEUn4GOaIJ6wYxF9T
RDrxKYd03eJ3IcNeOftlGEE4lhaaP0mqotQKx640tzlxwH0yPt1E3GNYfcgay1Ti
VKqz4eOyeCvustpykLh4MCx0pDKEYvCr8BV7UyRHx6O+g2X1xAUEvQL1SnJaa1Dj
QUQbDR+4xIvbUqz8XqrJxO7bx+8ipP481vhciXbFbGkwJ4BFxuy1NRY1/dMwefEK
NefZqKPgf9NWGLbdiS0S/1LNwOBs3vcbkh+Kr+MH4MY7XQ4tnjXTmRm9BHKjcZXZ
Jc9BaCMjlwAulGE0QRsFg8C0yjYAiX8NAEnpJT0/dST/3WeFqjYEBvIbjLQd3ZfU
nl4290VL13IIwNpYtYoNSIXbKbReYUmqcDK2O5/ndezCI7ceHwTJBW5JPfghc9Cg
DgN49kIScevnaVt95cbsZfXYFilWS6NTye2hFT4uUk9eUwaIWmisX+a6HYkhpDfU
B3wDdlKXqtvI+qYoHVZ8w5smmkhBcyRCh+GsPRfv/q/l6Ph17q42fIRuPnRweHJ8
wVv185A7e9B3tUIGyp7l+bTB/KpuN0xmIm1zAEWMosc4UaIjRUvBB8DtUX65EW8C
lWgCvbiFEXB72Hws1lPCUuOUgCcortAY6jSQyA/jRLfCMUu/D8k=
=tkO5
-----END PGP SIGNATURE-----


S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[WIP PATCH v2 00/23] Update GHC to 9.6.4
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
cover.1707827100.git.saku@laesvuori.fi
This series

- updates ghc-next to 9.4.8
- adds bootstrap dependencies for Hadrian (ghc-9.6 build system)
- adds ghc-9.6
- changes the default ghc to ghc-9.6.

The compiler seems to work (I have built some haskell packages with it
after running `guix refresh` and disabling it's tests) but some tests
fail with weird errors like the following:

```
ld: cannot find \: No such file or directory
ld: cannot find \: No such file or directory
ld: cannot find spaces/testsuite/tests/backpack/cabal/T16219/T16219.run/dist/build/library-a-impl: No such file or directory
collect2: error: ld returned 1 exit status
`gcc' failed in phase `Linker'. (Exit code: 1)
make: *** [Makefile:12: T16219] Error 1
```

Something seems to be failing due to the tests being run in
'/tmp/guix-build-ghc-9.6.4.drv-0/ghctest-lgjqumae/test spaces/testsuite/...'
but I can't figure out what it is. I've tried tracing the tests and it
seems that ld is called with arguments '/tmp/.../test' '\' '\' 'spaces/...'
which obviously can't work, but I could not pin down where the escaping
fails. This happens with just ~40 out of almost 10 000 tests which makes
it even more confusing.

Any ideas what could be causing the failures or should I just try
disabling those tests?

I also noticed that hidden packages shadow other packages, for example
the hidden base package from any haskell package can shadow the exposed
version from ghc. I guess I'll try implementing a fix for
https://issues.guix.gnu.org/66347by adding a new profile hook that
creates a package environment[1] for ghc.


Saku Laesvuori (23):
gnu: ghc-next: Update to version 9.4.8
gnu: Add ghc-js-flot-bootstrap-for-9.6
gnu: Add ghc-clock-bootstrap-for-9.6
gnu: Add ghc-extra-bootstrap-for-9.6
gnu: Add ghc-hashable-bootstrap-for-9.6
gnu: Add ghc-splitmix-bootstrap-for-9.6
gnu: Add ghc-random-bootstrap-for-9.6
gnu: Add ghc-primitive-bootstrap-for-9.6
gnu: Add ghc-js-jquery-bootstrap-for-9.6
gnu: Add ghc-utf8-string-bootstrap-for-9.6
gnu: Add ghc-heaps-bootstrap-for-9.6
gnu: Add ghc-js-dgtable-bootstrap-for-9.6
gnu: Add ghc-nats-bootstrap-for-9.6
gnu: Add ghc-tagged-bootstrap-for-9.6
gnu: Add ghc-semigroups-bootstrap-for-9.6
gnu: Add ghc-base16-bytestring-bootstrap-for-9.6
gnu: Add ghc-cryptohash-sha256-bootstrap-for-9.6
gnu: Add ghc-unordered-containers-bootstrap-for-9.6
gnu: Add ghc-filepattern-bootstrap-for-9.6
gnu: Add ghc-shake-bootstrap-for-9.6
gnu: Add hadrian-for-ghc-9.6
gnu: Add ghc-9.6
gnu: ghc: Update to version 9.6.4

gnu/packages/haskell.scm | 686 +++++++++++++++++-
.../patches/ghc-9.4-testsuite-fixes.patch | 119 +++
2 files changed, 792 insertions(+), 13 deletions(-)
create mode 100644 gnu/packages/patches/ghc-9.4-testsuite-fixes.patch


base-commit: f2102cb5b9239be2ed2023b908b726af542e0124
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 01/23] gnu: ghc-next: Update to version 9.4.8
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
a034d509b200281d69d32f56b67949b4c20ce5a1.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-9.4): Update to version 9.4.8.
[native-inputs]<ghc-testsuite>: Add a patch to fix the testsuite.
(ghc-happy-bootstrap-for-9.4): Update to version 1.20.1.1.
* gnu/packages/patches/ghc-9.4-testsuite-fixes.patch: New patch.

Change-Id: I5ef72f83e5feed1defb706bafa934077fda1553c
---
gnu/packages/haskell.scm | 11 +-
.../patches/ghc-9.4-testsuite-fixes.patch | 119 ++++++++++++++++++
2 files changed, 125 insertions(+), 5 deletions(-)
create mode 100644 gnu/packages/patches/ghc-9.4-testsuite-fixes.patch

Toggle diff (175 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 62815efbb1..88826fb31f 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1437,14 +1437,14 @@ (define ghc-happy-bootstrap-for-9.4
(hidden-package
(package
(name "ghc-happy")
- (version "1.20.0")
+ (version "1.20.1.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "happy" version))
(sha256
(base32
- "1346r2x5ravs5fqma65bzjragqbb2g6v41wz9maknwm2jf7kl79v"))))
+ "06w8g3lfk2ynrfhqznhp1mnp8a5b64lj6qviixpndzf5lv2psklb"))))
(build-system haskell-build-system)
(arguments
(list #:haskell ghc-bootstrap-for-9.4
@@ -1462,14 +1462,14 @@ (define-public ghc-9.4
(package
(inherit base)
(name "ghc-next")
- (version "9.4.4")
+ (version "9.4.8")
(source (origin
(method url-fetch)
(uri (string-append "https://www.haskell.org/ghc/dist/" version
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
- "1qk7rlqf02s3b6m6sqqngmjq1mxnrz88h159lz6k25gddmdg5kp8"))))
+ "0pmqg9846lanb0hcyxhgr9ipzq33rfldxj7ln0j3qgpyczmhgx0b"))))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases '%standard-phases)
@@ -1487,7 +1487,8 @@ (define-public ghc-9.4
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
- "04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))))
+ "159wsqnqpqb0pxa3zyhvyg07wxr2zz7v52h52wkplw4pn12dsidc"))
+ (patches (search-patches "ghc-9.4-testsuite-fixes.patch"))))
("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
,@(filter (match-lambda
diff --git a/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch b/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch
new file mode 100644
index 0000000000..f394632add
--- /dev/null
+++ b/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch
@@ -0,0 +1,119 @@
+From 3acd8aa948a27465cffc8e2ab56229485e2a5b98 Mon Sep 17 00:00:00 2001
+From: Saku Laesvuori <saku@laesvuori.fi>
+Date: Tue, 5 Dec 2023 22:49:45 +0200
+Subject: [PATCH] Fix tests
+
+* replaces egrep with grep -E
+* removes unnecessary escaping in some grep regular expressions
+* adds a missing include header to a makefile
+---
+ testsuite/tests/cabal/cabal01/Makefile | 2 +-
+ testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile | 4 ++++
+ testsuite/tests/haddock/perf/Makefile | 8 ++++----
+ testsuite/tests/hsc2hs/Makefile | 4 ++--
+ testsuite/tests/numeric/should_run/T7014.primops | 4 ++--
+ testsuite/tests/simplCore/should_compile/Makefile | 4 ++--
+ 6 files changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/testsuite/tests/cabal/cabal01/Makefile b/testsuite/tests/cabal/cabal01/Makefile
+index 004e4c75..6ec499c9 100644
+--- a/testsuite/tests/cabal/cabal01/Makefile
++++ b/testsuite/tests/cabal/cabal01/Makefile
+@@ -5,7 +5,7 @@ include $(TOP)/mk/test.mk
+ # Find all the env variables starting with CI_ to unset them.
+ # Otherwise, we might run into environment length limitations on Windows.
+ # (See `xargs --show-limits`.)
+-VARS_TO_UNSET := $(shell env | grep ^CI_ | egrep -o '^[^=]+')
++VARS_TO_UNSET := $(shell env | grep ^CI_ | grep -E -o '^[^=]+')
+ unexport $(VARS_TO_UNSET)
+
+ clean:
+diff --git a/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile b/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
+index fd64d23f..cb669db3 100644
+--- a/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
++++ b/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
+@@ -1,3 +1,7 @@
++TOP=../../../..
++include $(TOP)/mk/boilerplate.mk
++include $(TOP)/mk/test.mk
++
+ .PHONY: GHCiPrimCall
+ GHCiPrimCall:
+ '$(TEST_HC)' $(TEST_HC_OPTS) -fPIC -v0 -c GHCiPrimCall_cmm.cmm
+diff --git a/testsuite/tests/haddock/perf/Makefile b/testsuite/tests/haddock/perf/Makefile
+index b67b52f2..ff2f7ebb 100644
+--- a/testsuite/tests/haddock/perf/Makefile
++++ b/testsuite/tests/haddock/perf/Makefile
+@@ -4,12 +4,12 @@ include $(TOP)/mk/test.mk
+
+ # We accept a 5% increase in parser allocations due to -haddock
+ haddock_parser_perf :
+- WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Parser | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
+- WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Parser | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Parser | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Parser | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
+ awk "BEGIN { ratio = ($$WithHaddock / $$WithoutHaddock); if (ratio > 1.05) {print \"-haddock allocation ratio too high:\", ratio; exit 1} else {exit 0} }"
+
+ # Similarly for the renamer
+ haddock_renamer_perf :
+- WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Renamer | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
+- WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Renamer | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Renamer | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Renamer | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
+ awk "BEGIN { ratio = ($$WithHaddock / $$WithoutHaddock); if (ratio > 1.05) {print \"-haddock allocation ratio too high:\", ratio; exit 1} else {exit 0} }"
+diff --git a/testsuite/tests/hsc2hs/Makefile b/testsuite/tests/hsc2hs/Makefile
+index d0b2d249..95b011c8 100644
+--- a/testsuite/tests/hsc2hs/Makefile
++++ b/testsuite/tests/hsc2hs/Makefile
+@@ -52,9 +52,9 @@ T11004:
+ T12504:
+ '$(HSC2HS)' $(HSC2HS_OPTS) T12504/path/to/$@.hsc
+ ifeq "$(WINDOWS)" "YES"
+- grep '{-# LINE 1 \"T12504\\\\path\\\\to\\\\$@\.hsc\" #-}' T12504/path/to/$@.hs
++ grep '{-# LINE 1 "T12504\\\\path\\\\to\\\\$@\.hsc" #-}' T12504/path/to/$@.hs
+ else
+- grep '{-# LINE 1 \"T12504/path/to/$@\.hsc\" #-}' T12504/path/to/$@.hs
++ grep '{-# LINE 1 "T12504/path/to/$@\.hsc" #-}' T12504/path/to/$@.hs
+ endif
+
+ .PHONY: T15758
+diff --git a/testsuite/tests/numeric/should_run/T7014.primops b/testsuite/tests/numeric/should_run/T7014.primops
+index 3243666d..c807fb45 100644
+--- a/testsuite/tests/numeric/should_run/T7014.primops
++++ b/testsuite/tests/numeric/should_run/T7014.primops
+@@ -1,8 +1,8 @@
+ and#
+ or#
+ uncheckedShift.*#
+-\+#
+-\-#
+++#
++-#
+ \*#
+ quotInt#
+ remInt#
+diff --git a/testsuite/tests/simplCore/should_compile/Makefile b/testsuite/tests/simplCore/should_compile/Makefile
+index b5041800..c56e04f6 100644
+--- a/testsuite/tests/simplCore/should_compile/Makefile
++++ b/testsuite/tests/simplCore/should_compile/Makefile
+@@ -66,7 +66,7 @@ T13367:
+
+ T8832:
+ $(RM) -f T8832.o T8832.hi
+- '$(TEST_HC)' $(TEST_HC_OPTS) -O -c -ddump-simpl -dsuppress-ticks T8832.hs | egrep '^[a-zA-Z0-9]+ ='
++ '$(TEST_HC)' $(TEST_HC_OPTS) -O -c -ddump-simpl -dsuppress-ticks T8832.hs | grep -E '^[a-zA-Z0-9]+ ='
+
+ T12603:
+ $(RM) -f T12603.o T12603.hi
+@@ -259,7 +259,7 @@ str-rules:
+ # g should have been collapsed into one defininition by CSE.
+ .PHONY: T13340
+ T13340:
+- '$(TEST_HC)' $(TEST_HC_OPTS) -c -O T13340.hs -ddump-simpl -dsuppress-all | grep -c '\+#'
++ '$(TEST_HC)' $(TEST_HC_OPTS) -c -O T13340.hs -ddump-simpl -dsuppress-all | grep -c '+#'
+
+
+ # We expect to see all dictionaries specialized away.
+--
+2.41.0
+
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 02/23] gnu: Add ghc-js-flot-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
e56ebd2dc8b475d86eb6bf9d46285db80f3986a0.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-js-flot-bootstrap-for-9.6): New
variable.

Change-Id: Ie01768c263084a3aa38b7120de832913a80fc99a
---
gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 88826fb31f..cd44d9c915 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1503,4 +1503,34 @@ (define-public ghc-9.4
(file-pattern ".*\\.conf\\.d$")
(file-type 'directory)))))))
+;;; Bootstrap packages for hadrian, the new GHC build system
+
+(define ghc-bootstrap-for-9.6 ghc-9.4)
+
+(define ghc-js-flot-bootstrap-for-9.6
+ (package
+ (name "ghc-js-flot-bootstrap")
+ (version "0.8.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (hackage-uri "js-flot" version))
+ (sha256
+ (base32
+ "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"))))
+ (build-system haskell-build-system)
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (properties '((upstream-name . "js-flot")))
+ (home-page "https://github.com/ndmitchell/js-flot")
+ (synopsis "Obtain minified flot code")
+ (description "This package bundles the minified
+@url{http://www.flotcharts.org/, Flot} code (a jQuery plotting library)
+into a Haskell package, so it can be depended upon by Cabal packages.
+The first three components of the version number match the upstream flot
+version. The package is designed to meet the redistribution
+requirements of downstream users (e.g. Debian).")
+ (license license:expat)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 03/23] gnu: Add ghc-clock-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
e67642a48939cf99153a168f3c839fe54be8bfb2.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-clock-bootstrap-for-9.6): New
variable.

Change-Id: I78d0997ee749a0c1725490c99308dcd1dc5bfbe5
---
gnu/packages/haskell.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index cd44d9c915..c2f0d8a160 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1533,4 +1533,25 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-clock-bootstrap-for-9.6
+ (package
+ (name "ghc-clock-bootstrap")
+ (version "0.8.3")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "clock" version))
+ (sha256
+ (base32
+ "1l850pf1dxjf3i15wc47d64gzkpzgvw0bq13fd8zvklq9kdyap44"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "clock")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/corsis/clock")
+ (synopsis "High-resolution clock for Haskell")
+ (description
+ "A package for convenient access to high-resolution clock and
+timer functions of different operating systems via a unified API.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 05/23] gnu: Add ghc-hashable-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
78c6174b635442b945df8fde9449c329e92fdbc6.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-hashable-bootstrap-for-9.6): New
variable.

Change-Id: Id96f7df459a3db56747cd4204b32b7ad253139a4
---
gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 717181b424..307231e8f3 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1578,4 +1578,27 @@ (define ghc-clock-bootstrap-for-9.6
timer functions of different operating systems via a unified API.")
(license license:bsd-3)))
+(define ghc-hashable-bootstrap-for-9.6
+ (package
+ (name "ghc-hashable-bootstrap")
+ (version "1.4.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "hashable" version))
+ (sha256
+ (base32
+ "11sycr73821amdz8g0k8c97igi4z7f9xdvgaxlkxhsp6h310bcz1"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "hashable")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (home-page "http://github.com/haskell-unordered-containers/hashable")
+ (synopsis "Class for types that can be converted to a hash value")
+ (description
+ "This package defines a class, @code{Hashable}, for types that can be
+converted to a hash value. This class exists for the benefit of hashing-based
+data structures. The package provides instances for basic types and a way to
+combine hash values.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 04/23] gnu: Add ghc-extra-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
7e65460e888f1493803b733a1f7bad7857751d4c.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-extra-bootstrap-for-9.6): New
variable.

Change-Id: I73f1bd1a821bb01fc9d081c78313e583ce8fab6b
---
gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index c2f0d8a160..717181b424 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1533,6 +1533,30 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-extra-bootstrap-for-9.6
+ (package
+ (name "ghc-extra-bootstrap")
+ (version "1.7.12")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "extra" version))
+ (sha256
+ (base32
+ "0g5h8fp0nq4k9asiknw0bhvb10zpfnsixfp0n3xz0rc83pnajwg5"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "extra")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (inputs (list ghc-clock-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/extra#readme")
+ (synopsis "Extra Haskell functions")
+ (description
+ "This library provides extra functions for the standard
+Haskell libraries. Most functions are simple additions, filling out missing
+functionality. A few functions are available in later versions of GHC, but
+this package makes them available back to GHC 7.2.")
+ (license license:bsd-3)))
+
(define ghc-clock-bootstrap-for-9.6
(package
(name "ghc-clock-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 07/23] gnu: Add ghc-random-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
18347a8224a94cd64bfb1d8d665abcf2aeb81937.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-random-bootstrap-for-9.6): New variable.

Change-Id: If1a39b27687a63a63dab5aa4c1a366a8ba78196a
---
gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index ce3ca5083d..9487223636 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1633,4 +1633,26 @@ (define ghc-splitmix-bootstrap-for-9.6
internal state).")
(license license:bsd-3)))
+(define ghc-random-bootstrap-for-9.6
+ (package
+ (name "ghc-random-bootstrap")
+ (version "1.2.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "random" version))
+ (sha256
+ (base32
+ "0xlv1k4sj87akwvj54kq4nrfkzi6qcz1941bf78pnkbaxpvp44iy"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "random")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (inputs (list ghc-splitmix-bootstrap-for-9.6))
+ (home-page "http://hackage.haskell.org/package/random")
+ (synopsis "Random number library")
+ (description
+ "This package provides a basic random number generation
+library, including the ability to split random number generators.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 06/23] gnu: Add ghc-splitmix-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
0b77306b9641fc095a6d8ce755b160afaeda9bff.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-splitmix-bootstrap-for-9.6): New
variable.

Change-Id: I65584aa893975015dc44491b120636844af801de
---
gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 307231e8f3..ce3ca5083d 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1601,4 +1601,36 @@ (define ghc-hashable-bootstrap-for-9.6
combine hash values.")
(license license:bsd-3)))
+(define ghc-splitmix-bootstrap-for-9.6
+ (package
+ (name "ghc-splitmix-bootstrap")
+ (version "0.1.0.5")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "splitmix" version))
+ (sha256
+ (base32
+ "00ihw7vji8ydik7f5lk9iwj21j829lpl22wa4nqz2igg26b7mw4x"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "splitmix")))
+ (arguments
+ `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (home-page "http://hackage.haskell.org/package/splitmix")
+ (synopsis "Fast and splittable pseudorandom number generator")
+ (description
+ "This package provides a Pure Haskell implementation of the
+SplitMix pseudorandom number generator. SplitMix is a \"splittable\"
+pseudorandom number generator that is quite fast: 9 64-bit
+arithmetic/logical operations per 64 bits generated. SplitMix is tested
+with two standard statistical test suites (DieHarder and TestU01, this
+implementation only using the former) and it appears to be adequate for
+\"everyday\" use, such as Monte Carlo algorithms and randomized data
+structures where speed is important. In particular, it @strong{should not
+be used for cryptographic or security applications}, because generated
+sequences of pseudorandom values are too predictable (the mixing functions
+are easily inverted, and two successive outputs suffice to reconstruct the
+internal state).")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 08/23] gnu: Add ghc-primitive-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
af493b31a4f1b2cdd4ff9ee213617b95829722a8.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-primitive-bootstrap-for-9.6): New
variable.

Change-Id: I393ff5f57862de0c6da118a803ed6f898adcf0cb
---
gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 9487223636..cc6215ef80 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1655,4 +1655,27 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-primitive-bootstrap-for-9.6
+ (package
+ (name "ghc-primitive-bootstrap")
+ (version "0.8.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "primitive" version))
+ (sha256
+ (base32
+ "0pwr5g3bra5m2zjm14pj98klqj2qrjcfasgd3rcrp7vq98dw4lsm"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "primitive")))
+ (arguments
+ `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6
+ #:cabal-revision ("1"
+ "0w1nf0rabgyk5q7ccw7va1mj6k50lswvikhi6vr2myb1dvx4bzyh")))
+ (home-page "https://github.com/haskell/primitive")
+ (synopsis "Primitive memory-related operations")
+ (description
+ "This package provides various primitive memory-related operations.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 09/23] gnu: Add ghc-js-jquery-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
01cb2540efacba50a9740d633c6e169538ea572c.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-js-jquery-bootstrap-for-9.6): New
variable.

Change-Id: I579efb04ad665f0938e24a9656f959abdd27905e
---
gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index cc6215ef80..9f442e25a1 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1655,6 +1655,32 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-js-jquery-bootstrap-for-9.6
+ (package
+ (name "ghc-js-jquery-bootstrap")
+ (version "3.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (hackage-uri "js-jquery" version))
+ (sha256
+ (base32
+ "16q68jzbs7kp07dnq8cprdcc8fd41rim38039vg0w4x11lgniq70"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "js-jquery")))
+ (arguments `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/js-jquery")
+ (synopsis "Obtain minified jQuery code")
+ (description "This package bundles the minified
+@url{http://jquery.com/, jQuery} code into a Haskell package, so it can
+be depended upon by Cabal packages. The first three components of the
+version number match the upstream jQuery version. The package is
+designed to meet the redistribution requirements of downstream
+users (e.g. Debian).")
+ (license license:expat)))
+
(define ghc-primitive-bootstrap-for-9.6
(package
(name "ghc-primitive-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 11/23] gnu: Add ghc-heaps-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
f76b21175d5c22c9926c7a325a6a76afbc1ed3e6.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-heaps-bootstrap-for-9.6): New variable.

Change-Id: Ib04a47d3eacba415fd44cd532c18c02f8d9cf40b
---
gnu/packages/haskell.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 3561e494d2..a83d785554 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1655,6 +1655,27 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-heaps-bootstrap-for-9.6
+ (package
+ (name "ghc-heaps-bootstrap")
+ (version "0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "heaps" version))
+ (sha256
+ (base32 "1zbw0qrlnhb42v04phzwmizbpwg21wnpl7p4fbr9xsasp7w9scl9"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "heaps")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (home-page "http://github.com/ekmett/heaps/")
+ (synopsis "Asymptotically optimal Brodal/Okasaki heaps.")
+ (description
+ "Asymptotically optimal Brodal\\/Okasaki bootstrapped skew-binomial heaps from the
+paper <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.973 \"Optimal
+Purely Functional Priority Queues\">, extended with a Foldable interface.")
+ (license license:bsd-3)))
+
(define ghc-utf8-string-bootstrap-for-9.6
(package
(name "ghc-utf8-string-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 10/23] gnu: Add ghc-utf8-string-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
b6dce692d4ff5f41170ab8ac28c63b85f7a21faa.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-utf8-string-bootstrap-for-9.6): New
variable.

Change-Id: Iea2ba4d3202195a54b71037882352cdac9415901
---
gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 9f442e25a1..3561e494d2 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1655,6 +1655,28 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-utf8-string-bootstrap-for-9.6
+ (package
+ (name "ghc-utf8-string-bootstrap")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "utf8-string" version))
+ (sha256
+ (base32 "16mh36ffva9rh6k37bi1046pgpj14h0cnmj1iir700v0lynxwj7f"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "utf8-string")))
+ (arguments `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/glguy/utf8-string/")
+ (synopsis "Support for reading and writing UTF8 Strings")
+ (description
+ "A UTF8 layer for Strings. The utf8-string package provides operations
+for encoding UTF8 strings to Word8 lists and back, and for reading and writing
+UTF8 without truncation.")
+ (license license:bsd-3)))
+
(define ghc-js-jquery-bootstrap-for-9.6
(package
(name "ghc-js-jquery-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 12/23] gnu: Add ghc-js-dgtable-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
cbb9dc256cba13f7b98092f7ac012364bc1185b8.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-js-dgtable-bootstrap-for-9.6): New
variable.

Change-Id: Ic7e9e6c584e4fb8830ec55288759796271822964
---
gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index a83d785554..88c7278168 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1655,6 +1655,29 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-js-dgtable-bootstrap-for-9.6
+ (package
+ (name "ghc-js-dgtable-bootstrap")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "js-dgtable" version))
+ (sha256
+ (base32 "1b10kx703kbkb5q1ggdpqcrxqjb33kh24khk21rb30w0xrdxd3g2"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "js-dgtable")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/js-dgtable#readme")
+ (synopsis "Obtain minified jquery.dgtable code")
+ (description
+ "This package bundles the minified <https://github.com/danielgindi/jquery.dgtable
+jquery.dgtable> code into a Haskell package, so it can be depended upon by Cabal
+packages. The first three components of the version number match the upstream
+jquery.dgtable version. The package is designed to meet the redistribution
+requirements of downstream users (e.g. Debian).")
+ (license license:expat)))
+
(define ghc-heaps-bootstrap-for-9.6
(package
(name "ghc-heaps-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 13/23] gnu: Add ghc-nats-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
d0a32bbcd0352a5c68b749f0d284e26bc4e5992e.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-nats-bootstrap-for-9.6): New variable.

Change-Id: I57351e88ba0bc52e7fd5fefc5c3006f63925fd86
---
gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 88c7278168..604b38cce6 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1655,6 +1655,28 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-nats-bootstrap-for-9.6
+ (package
+ (name "ghc-nats-bootstrap")
+ (version "1.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "nats" version))
+ (sha256
+ (base32
+ "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "nats")))
+ (arguments `(#:haddock? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (inputs
+ (list ghc-hashable-bootstrap-for-9.6))
+ (home-page "https://hackage.haskell.org/package/nats")
+ (synopsis "Natural numbers")
+ (description "This library provides the natural numbers for Haskell.")
+ (license license:bsd-3)))
+
(define ghc-js-dgtable-bootstrap-for-9.6
(package
(name "ghc-js-dgtable-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 14/23] gnu: Add ghc-tagged-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
754e2c787ada867156e382f4b167de1f03710456.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-tagged-bootstrap-for-9.6): New variable.

Change-Id: Ifd3996a62cfa33d155315807d4ead706f7e64452
---
gnu/packages/haskell.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 604b38cce6..0f49aabdb1 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1655,6 +1655,26 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-tagged-bootstrap-for-9.6
+ (package
+ (name "ghc-tagged-bootstrap")
+ (version "0.8.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "tagged" version))
+ (sha256
+ (base32
+ "0qdr1kv1zn5iamnwyn5nf0ywxs4wv779k0gpw94kyqx14ynfw534"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "tagged")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (home-page "https://hackage.haskell.org/package/tagged")
+ (synopsis "Haskell phantom types to avoid passing dummy arguments")
+ (description "This library provides phantom types for Haskell 98, to avoid
+having to unsafely pass dummy arguments.")
+ (license license:bsd-3)))
+
(define ghc-nats-bootstrap-for-9.6
(package
(name "ghc-nats-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 15/23] gnu: Add ghc-semigroups-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
b445a688642189d47fbbd64098af401aab9ddcb6.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-semigroups-bootstrap-for-9.6): New
variable.

Change-Id: Ic676fed80bea3805f8e70cd958c3d7523226053d
---
gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 0f49aabdb1..6a19287d4a 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1655,6 +1655,36 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-semigroups-bootstrap-for-9.6
+ (package
+ (name "ghc-semigroups-bootstrap")
+ (version "0.20")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "semigroups" version))
+ (sha256
+ (base32
+ "1qbk6scp1rzb69dy8mz26p6az5vi16g2lzwmwnfshh3br4rjwbch"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "semigroups")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (inputs
+ (list ghc-nats-bootstrap-for-9.6
+ ghc-tagged-bootstrap-for-9.6
+ ghc-unordered-containers-bootstrap-for-9.6
+ ghc-hashable-bootstrap-for-9.6))
+ (home-page "http://github.com/ekmett/semigroups/")
+ (synopsis "Semigroup operations for Haskell")
+ (description
+ "This package provides semigroups for Haskell. In
+mathematics, a semigroup is an algebraic structure consisting of a set
+together with an associative binary operation. A semigroup generalizes a
+monoid in that there might not exist an identity element. It
+also (originally) generalized a group (a monoid with all inverses) to a type
+where every element did not have to have an inverse, thus the name
+semigroup.")
+ (license license:bsd-3)))
+
(define ghc-tagged-bootstrap-for-9.6
(package
(name "ghc-tagged-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 16/23] gnu: Add ghc-base16-bytestring-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
8a165ae652b0652299f4075f40c52d58d42b2313.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-base16-bytestring-bootstrap-for-9.6):
New variable.

Change-Id: I7c20bdfd7600fb2bed5de497e02acda74b242fec
---
gnu/packages/haskell.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 6a19287d4a..348a67f1c5 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1533,6 +1533,27 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-base16-bytestring-bootstrap-for-9.6
+ (package
+ (name "ghc-base16-bytestring-bootstrap")
+ (version "1.0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "base16-bytestring" version))
+ (sha256
+ (base32
+ "1167f9jaivnabn6kg2gc421ac9njb67fr4v0adbj3qph7qa92nhx"))))
+ (build-system haskell-build-system)
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (properties '((upstream-name . "base16-bytestring")))
+ (home-page "http://github.com/haskell/base16-bytestring")
+ (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
+ (description
+ "This package provides a Haskell library for working with base16-encoded
+data quickly and efficiently, using the ByteString type.")
+ (license license:bsd-3)))
+
(define ghc-extra-bootstrap-for-9.6
(package
(name "ghc-extra-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 17/23] gnu: Add ghc-cryptohash-sha256-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
5024925e614ba9b15470aabd183169ce60c4e273.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-cryptohash-sha256-bootstrap-for-9.6):
New variable.

Change-Id: I80dd73de554160f4dc904c01ea292a886f51e970
---
gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 348a67f1c5..d163331b2b 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1533,6 +1533,35 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-cryptohash-sha256-bootstrap-for-9.6
+ (package
+ (name "ghc-cryptohash-sha256-bootstrap")
+ (version "0.11.102.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "cryptohash-sha256" version))
+ (sha256
+ (base32
+ "1xkb7iqplbw4fy1122p79xf1zcb7k44rl0wmfj1q06l7cdqxr9vk"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "cryptohash-sha256")))
+ (arguments
+ `(#:cabal-revision
+ ("1" "1hyzqv30rpj920ddnr0zypyjjlh52vyp2d140pn2byayj820rkgs")
+ #:haskell ,ghc-bootstrap-for-9.6
+ #:tests? #f))
+ (home-page "https://github.com/hvr/cryptohash-sha1")
+ (synopsis "SHA-256 implementation for Haskell")
+ (description "This Haskell package provides an incremental and
+one-pass, pure API to the @uref{https://en.wikipedia.org/wiki/SHA-2,
+SHA-256 cryptographic hash algorithm}, with performance close to the
+fastest implementations available in other languages.
+
+The implementation is made in C with a haskell FFI wrapper that hides
+the C implementation.")
+ (license license:bsd-3)))
+
(define ghc-base16-bytestring-bootstrap-for-9.6
(package
(name "ghc-base16-bytestring-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:49 +0100
[PATCH v2 18/23] gnu: Add ghc-unordered-containers-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
4f3d4f1d26348b10303c4b1f2590007db93300f7.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-unordered-containers-bootstrap-for-9.6):
New variable.

Change-Id: I190d7e765d30b469290d26109478fbe97dfbe3ae
---
gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index d163331b2b..3b591c6ffa 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1533,6 +1533,33 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-unordered-containers-bootstrap-for-9.6
+ (package
+ (name "ghc-unordered-containers-bootstrap")
+ (version "0.2.19.1")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "unordered-containers" version))
+ (sha256
+ (base32
+ "1li8s6qw8mgv6a7011y7hg0cn2nllv2g9sr9c1xb48nmw32vw9qv"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "unordered-containers")))
+ (inputs (list ghc-hashable-bootstrap-for-9.6))
+ (arguments
+ `(#:cabal-revision ("3"
+ "1p9a2mvfbfz2d4cyr16b03bxvb6c4yj7k1ch601xwq1rkr1cla0w")
+ #:haskell ,ghc-bootstrap-for-9.6
+ #:tests? #f))
+ (home-page
+ "https://github.com/haskell-unordered-containers/unordered-containers")
+ (synopsis "Efficient hashing-based container types")
+ (description
+ "Efficient hashing-based container types. The containers have been
+optimized for performance critical use, both in terms of large data quantities
+and high speed.")
+ (license license:bsd-3)))
+
(define ghc-cryptohash-sha256-bootstrap-for-9.6
(package
(name "ghc-cryptohash-sha256-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:50 +0100
[PATCH v2 19/23] gnu: Add ghc-filepattern-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
635c344ad4a4862184093aba05c4eae6d71b324f.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-filepattern-bootstrap-for-9.6): New
variable.

Change-Id: I3778f85d7a14474445295ebd6bbb1f4bfbe4f6d5
---
gnu/packages/haskell.scm | 41 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 3b591c6ffa..47eab1d5fa 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1533,6 +1533,47 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-filepattern-bootstrap-for-9.6
+ (package
+ (name "ghc-filepattern-bootstrap")
+ (version "0.1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "filepattern" version))
+ (sha256
+ (base32
+ "0dlnwnwhsfdkwm69z66wj5d2x9n3la55glq4fsn5rxm2kr1msi6c"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "filepattern")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (inputs (list ghc-extra-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/filepattern#readme")
+ (synopsis "File path glob-like matching")
+ (description
+ "This package provides Haskell library for matching files using patterns
+such as @code{\\\"src\\/**\\/*.png\\\"} for all @@file{.png} files recursively
+under the @@file{src} directory.
+
+Some of its features include:
+
+@itemize
+@item All matching is O(n).
+
+@item Most functions pre-compute some information given only one argument.
+
+@item Uses @code{match} and @code{substitute} to extract suitable strings from
+the @code{*} and @code{**} matches, and substitutes them back into other
+patterns.
+
+@item Uses @code{step} and @code{matchMany} to perform bulk matching of many
+patterns against many paths simultaneously.
+
+@item Uses @code{System.FilePattern.Directory} to perform optimised directory
+traverals using patterns.
+@end itemize")
+ (license license:bsd-3)))
+
(define ghc-unordered-containers-bootstrap-for-9.6
(package
(name "ghc-unordered-containers-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:50 +0100
[PATCH v2 20/23] gnu: Add ghc-shake-bootstrap-for-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
e3ffb21b60cd14cde0e296a6feedffda614ec12a.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-shake-bootstrap-for-9.6): New variable.

Change-Id: I195bc5f779709ef7b2ccefe2271402ef342bc0b8
---
gnu/packages/haskell.scm | 56 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)

Toggle diff (69 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 47eab1d5fa..4127d7d4a7 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1507,6 +1507,62 @@ (define-public ghc-9.4
(define ghc-bootstrap-for-9.6 ghc-9.4)
+(define ghc-shake-bootstrap-for-9.6
+ (package
+ (name "ghc-shake-bootstrap")
+ (version "0.19.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "shake" version))
+ (sha256
+ (base32 "1lcr6q53qwm308bny6gfawcjhxsmalqi3dnwckam02zp2apmcaim"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "shake")))
+ (inputs (list bash-minimal
+ ghc-extra-bootstrap-for-9.6
+ ghc-filepattern-bootstrap-for-9.6
+ ghc-hashable-bootstrap-for-9.6
+ ghc-heaps-bootstrap-for-9.6
+ ghc-js-dgtable-bootstrap-for-9.6
+ ghc-js-flot-bootstrap-for-9.6
+ ghc-js-jquery-bootstrap-for-9.6
+ ghc-primitive-bootstrap-for-9.6
+ ghc-random-bootstrap-for-9.6
+ ghc-unordered-containers-bootstrap-for-9.6
+ ghc-utf8-string-bootstrap-for-9.6
+ ghc-semigroups-bootstrap-for-9.6))
+ (arguments
+ (list #:cabal-revision '("1"
+ "1hz57kw5pp5cpbicbi7x8sz8c6qy58dzyiljz9b9f2r1rr683d9w")
+ #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'patch-source-shebangs 'patch-/bin/sh
+ (lambda _
+ (for-each
+ (lambda (file)
+ (substitute*
+ file
+ (("/bin/sh")
+ #$(file-append (this-package-input "bash-minimal")
+ "/bin/sh"))))
+ '("src/Development/Shake/Command.hs")))))))
+ (home-page "https://shakebuild.com")
+ (synopsis
+ "Build system library, like Make, but more accurate dependencies.")
+ (description
+ "Shake is a Haskell library for writing build systems - designed as a
+replacement for @@make@@. To use Shake the user writes a Haskell program that
+imports \"Development.Shake\", defines some build rules, and calls the
+Development.Shake.@code{shakeArgs} function. However, as build systems get more
+complex, Shake is able to take advantage of the excellent abstraction facilities
+offered by Haskell and easily support much larger projects. Shake also provides more
+accurate dependency tracking, including seamless support for generated files, and
+dependencies on system information (e.g. compiler version).")
+ (license license:bsd-3)))
+
(define ghc-js-flot-bootstrap-for-9.6
(package
(name "ghc-js-flot-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:50 +0100
[PATCH v2 21/23] gnu: Add hadrian-for-ghc-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
e874d2c0f592e4f92be8c5baaabb3f3f7f8c4db2.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (hadrian-for-ghc-9.6): New variable.

Change-Id: I4205c888afa7b03b4b1622a3af7d1d538fa5c9b1
---
gnu/packages/haskell.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 4127d7d4a7..9e1e659cf1 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2016,4 +2016,44 @@ (define ghc-primitive-bootstrap-for-9.6
"This package provides various primitive memory-related operations.")
(license license:bsd-3)))
+(define hadrian-for-ghc-9.6
+ (package
+ (name "hadrian")
+ (version "9.6.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.haskell.org/ghc/dist/" version
+ "/ghc-" version "-src.tar.xz"))
+ (sha256
+ (base32
+ "1h6lpx8kd4xycjwb8iv2rgnz23kwq5b0qp4bhvczsx3in2w2bgqh"))))
+ (build-system haskell-build-system)
+ (inputs
+ (list ghc-base16-bytestring-bootstrap-for-9.6
+ ghc-cryptohash-sha256-bootstrap-for-9.6
+ ghc-extra-bootstrap-for-9.6
+ ghc-shake-bootstrap-for-9.6
+ ghc-unordered-containers-bootstrap-for-9.6
+ bash-minimal))
+ (arguments
+ (list #:configure-flags ''("--flags=-selftest")
+ #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'cd-to-hadrian
+ (lambda _
+ (chdir "hadrian")))
+ (add-after 'cd-to-hadrian 'fix-shell-wrappers
+ (lambda _
+ (substitute*
+ "src/Rules/Test.hs"
+ (("\"#!/bin/sh\"")
+ (format #f "\"#!~a/bin/sh\"" #$(this-package-input "bash-minimal")))))))))
+ (home-page "https://gitlab.haskell.org/ghc/ghc/-/tree/master/hadrian")
+ (synopsis "Build system for the Glasgow Haskell Compiler (@code{ghc})")
+ (description "Hadrian is the build system for the Glasgow Haskell Compiler.
+It is based on the Shake library and replaces @{make} in building GHC")
+ (license license:expat)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:50 +0100
[PATCH v2 22/23] gnu: Add ghc-9.6
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
073e883857858856f28e19843adbef915ab9df60.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-9.6): New variable.

Change-Id: I6883ed973bdd1d6eaf981605c1bc8f855f850187
---
gnu/packages/haskell.scm | 108 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 107 insertions(+), 1 deletion(-)

Toggle diff (126 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 9e1e659cf1..e316fc860e 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -72,7 +72,8 @@ (define-module (gnu packages haskell)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (ice-9 match)
- #:use-module (ice-9 regex))
+ #:use-module (ice-9 regex)
+ #:use-module (srfi srfi-26))
(define-public cl-yale-haskell
(let ((commit "85f94c72a16c5f70301dd8db04cde9de2d7dd270")
@@ -2056,4 +2057,109 @@ (define hadrian-for-ghc-9.6
It is based on the Shake library and replaces @{make} in building GHC")
(license license:expat)))
+(define-public ghc-9.6
+ (let ((base ghc-9.4))
+ (package
+ (inherit base)
+ (name "ghc-next")
+ (version "9.6.4")
+ (source (origin
+ (inherit (package-source base))
+ (uri (string-append "https://www.haskell.org/ghc/dist/" version
+ "/ghc-" version "-src.tar.xz"))
+ (sha256
+ (base32
+ "1h6lpx8kd4xycjwb8iv2rgnz23kwq5b0qp4bhvczsx3in2w2bgqh"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:make-flags flags ''())
+ #~(list "-V" "--docs=no-sphinx"))
+ ((#:phases phases '%standard-phases)
+ #~(let* ((run-hadrian (lambda args
+ (apply invoke "hadrian" args))))
+ (modify-phases #$phases
+ (delete 'fix-shell-wrappers)
+ ;; https://gitlab.haskell.org/ghc/ghc/-/issues/22557
+ (add-before 'build 'fix-iserv-rpath
+ (lambda _
+ (mkdir-p "_build")
+ (call-with-output-file
+ "_build/hadrian.settings"
+ (lambda (port)
+ (display
+ (string-append
+ "*.iserv.ghc.link.opts += -optl-Wl,-rpath,"
+ #$output "/lib/ghc-" #$(package-version this-package)
+ "/lib/" #$(or (%current-target-system)
+ (%current-system))
+ "-ghc-" #$(package-version this-package) "/")
+ port)))))
+ (replace 'build
+ (lambda* (#:key (parallel-build? #f) (make-flags '())
+ #:allow-other-keys)
+ (apply run-hadrian
+ `("binary-dist-dir"
+ ,@(if parallel-build?
+ `(,(string-append "-j" (number->string (parallel-job-count))))
+ '())
+ ,@make-flags))))
+ (replace 'check
+ (lambda* (#:key (tests? #t) (parallel-tests? #f) (make-flags '()) #:allow-other-keys)
+ (if tests?
+ (apply run-hadrian
+ `(,@(if parallel-tests?
+ `(,(string-append "-j" (number->string (parallel-job-count))))
+ '())
+ ,@make-flags
+ "test"
+ "--skip-perf"))
+ (format #t "test suite not run~%"))))
+ (replace 'install
+ (lambda* (#:key (make-flags '()) #:allow-other-keys)
+ (apply run-hadrian
+ `("install"
+ ,@make-flags
+ ,(string-append "--prefix=" #$output)))))
+ (add-after 'install 'replace-$pkgroot
+ (lambda _
+ (substitute*
+ (find-files
+ (string-append #$output "/lib/ghc-"
+ #$(package-version this-package)
+ "/lib/package.conf.d/")
+ "^.*\\.conf$")
+ (("\\$\\{pkgroot\\}/")
+ (string-append #$output "/lib/ghc-"
+ #$(package-version this-package)
+ "/lib/"))))))))))
+ (inputs (list bash-minimal gmp ncurses libffi))
+ (native-inputs
+ `(("perl" ,perl)
+ ("python" ,python)
+ ("git" ,git-minimal/pinned)
+ ("which" ,which)
+ ("ghostscript" ,ghostscript)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+
+ ("hadrian" ,hadrian-for-ghc-9.6)
+ ("ghc-bootstrap" ,ghc-bootstrap-for-9.6)
+ ("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
+ ("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
+ ("ghc-testsuite"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.haskell.org/ghc/dist/"
+ version "/ghc-" version "-testsuite.tar.xz"))
+ (sha256
+ (base32
+ "0wwd6d68aia2rmlpki30azz0raf98is472cqljhbzzdzpqpjh4vf"))))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GHC_PACKAGE_PATH")
+ (files (list (string-append "lib/ghc-" version)))
+ (file-pattern ".*\\.conf\\.d$")
+ (file-type 'directory)))))))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 15 Feb 09:50 +0100
[PATCH v2 23/23] gnu: ghc: Update to version 9.6.4
(name . Saku Laesvuori)(address . saku@laesvuori.fi)
64d0be34c74b765c544e16a1f9115a774357f183.1707827100.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc): Update to ghc-9.6

Change-Id: I40da6cacc4d260902cd66d7d626375038fba4346
---
gnu/packages/haskell.scm | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

Toggle diff (48 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index e316fc860e..3944d8f15f 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1393,12 +1393,6 @@ (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)
@@ -1462,7 +1456,7 @@ (define-public ghc-9.4
(let ((base ghc-9.2))
(package
(inherit base)
- (name "ghc-next")
+ (name "ghc")
(version "9.4.8")
(source (origin
(method url-fetch)
@@ -2061,7 +2055,7 @@ (define-public ghc-9.6
(let ((base ghc-9.4))
(package
(inherit base)
- (name "ghc-next")
+ (name "ghc")
(version "9.6.4")
(source (origin
(inherit (package-source base))
@@ -2162,4 +2156,10 @@ (define-public ghc-9.6
(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.6)
+
;;; haskell.scm ends here
--
2.41.0
S
S
Suhail wrote on 15 Feb 18:05 +0100
Re: [bug#67921] [WIP PATCH v2 00/23] Update GHC to 9.6.4
(address . 67921@debbugs.gnu.org)
87il2p1wv1.fsf@bayesians.ca
Saku Laesvuori via Guix-patches via <guix-patches@gnu.org> writes:

Toggle quote (2 lines)
> - updates ghc-next to 9.4.8

Did you mean "updates ghc-9.4 to 9.4.8", instead?

Toggle quote (2 lines)
> - changes the default ghc to ghc-9.6.

If my understanding is correct, this means that 9.8 onwards should use
"ghc-next".

--
Suhail
S
S
Saku Laesvuori wrote on 15 Feb 18:49 +0100
(name . Suhail)(address . suhail@bayesians.ca)
e3ui54vi2rgrzo2yoqgvvtwl6rlqgz4sl22jtqwibirracry42@7duqmnvkebrd
Toggle quote (6 lines)
> Saku Laesvuori via Guix-patches via <guix-patches@gnu.org> writes:
>
> > - updates ghc-next to 9.4.8
>
> Did you mean "updates ghc-9.4 to 9.4.8", instead?

I guess that would be a clearer way of wording it.

Toggle quote (5 lines)
> > - changes the default ghc to ghc-9.6.
>
> If my understanding is correct, this means that 9.8 onwards should use
> "ghc-next".

Yes.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoMkZR3NPB29fCOn/JX0oSiodOjIFAmXOTpcACgkQJX0oSiod
OjJK+BAAvR48oCCtZj5qs9RKGBF9HO8GQnkW2ZTE1im2RuY8AdDtYZHK4VMjEIUv
IgvIcvdYk/DZXnF4HnREzSytwoD7xiKbVKQfI3Dlub66ojw8Twdg2Uv2rDoCy2r7
3ibvUjb7pFseeOICU5MbYPaI8CyD+64gICQubltRHl63ScptGsEBW2eYRjR6WtE9
zpts2K0JoU/vXCoQAKKLh4IMswJjSPCmU2r88h7uaCSQd9ECH0DiA5KZWpNyGLsP
KuYTiYG5yJOISq0xT09N0G5kdraBFp/VTZK4uYV2JzOwAD2OrRGcdcIvAuHgsq6h
Vk0kwy/+n3zfFkQA7W3mayjI50cnQtpYHKI8PPI4mIiltqjjs0jjqQb23aHGGXo1
HIZEje+lY9GJe7n68oKqrZiXiCWMe1vpYSvXdxDowngqoZJbIYgrajVR5JznC3gr
0eUAyYjFmZAguwQJfrYpc72FJ79QEsd0voFpOn1FbLoc6gOrQGfxOKkEGdOOaIF0
yPspsodavyZCEy3ngmArMfjhebeLkxLiB5wbbg6+b7EObfAaDP/Y9JSny7hZ7tNY
beWpBU6fkbNEbbC00NBsGfkxctKW1O/Ye7q1zO9zgMCh33NV4+B7j1PyjAcroTjY
fdhF5zFUfgnldYQ/SZ2KFAfJnJmF5wxL9dVYmq+ZjKYGlo1a0OY=
=xVTV
-----END PGP SIGNATURE-----


S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 00/23] Update GHC to 9.6.5
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
cover.1717746077.git.saku@laesvuori.fi
I didn't hear any ideas for a better solution, so here is a patch set
with the failing tests disabled. The current haskell-team merge should
probably be continued without this series and a new one started from
these patches.

Saku Laesvuori (23):
gnu: ghc-next: Update to version 9.4.8
gnu: Add ghc-js-flot-bootstrap-for-9.6
gnu: Add ghc-clock-bootstrap-for-9.6
gnu: Add ghc-extra-bootstrap-for-9.6
gnu: Add ghc-hashable-bootstrap-for-9.6
gnu: Add ghc-splitmix-bootstrap-for-9.6
gnu: Add ghc-random-bootstrap-for-9.6
gnu: Add ghc-primitive-bootstrap-for-9.6
gnu: Add ghc-js-jquery-bootstrap-for-9.6
gnu: Add ghc-utf8-string-bootstrap-for-9.6
gnu: Add ghc-heaps-bootstrap-for-9.6
gnu: Add ghc-js-dgtable-bootstrap-for-9.6
gnu: Add ghc-nats-bootstrap-for-9.6
gnu: Add ghc-tagged-bootstrap-for-9.6
gnu: Add ghc-semigroups-bootstrap-for-9.6
gnu: Add ghc-base16-bytestring-bootstrap-for-9.6
gnu: Add ghc-cryptohash-sha256-bootstrap-for-9.6
gnu: Add ghc-unordered-containers-bootstrap-for-9.6
gnu: Add ghc-filepattern-bootstrap-for-9.6
gnu: Add ghc-shake-bootstrap-for-9.6
gnu: Add hadrian-for-ghc-9.6
gnu: Add ghc-9.6
gnu: ghc: Update to version 9.6.5

gnu/packages/haskell.scm | 731 +++++++++++++++++-
.../patches/ghc-9.4-testsuite-fixes.patch | 119 +++
2 files changed, 838 insertions(+), 12 deletions(-)
create mode 100644 gnu/packages/patches/ghc-9.4-testsuite-fixes.patch


base-commit: 447e9c96259e8fa15a828de9b2dd3400e2ffafe6
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 02/23] gnu: Add ghc-js-flot-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
a434ec84807485ba96d4a191901075f8c4233511.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-js-flot-bootstrap-for-9.6): New
variable.

Change-Id: Ie01768c263084a3aa38b7120de832913a80fc99a
---
gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 25b21a0209..3d7612bc61 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1599,4 +1599,34 @@ (define-public ghc-9.4
(file-pattern ".*\\.conf\\.d$")
(file-type 'directory)))))))
+;;; Bootstrap packages for hadrian, the new GHC build system
+
+(define ghc-bootstrap-for-9.6 ghc-9.4)
+
+(define ghc-js-flot-bootstrap-for-9.6
+ (package
+ (name "ghc-js-flot-bootstrap")
+ (version "0.8.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (hackage-uri "js-flot" version))
+ (sha256
+ (base32
+ "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"))))
+ (build-system haskell-build-system)
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (properties '((upstream-name . "js-flot")))
+ (home-page "https://github.com/ndmitchell/js-flot")
+ (synopsis "Obtain minified flot code")
+ (description "This package bundles the minified
+@url{http://www.flotcharts.org/, Flot} code (a jQuery plotting library)
+into a Haskell package, so it can be depended upon by Cabal packages.
+The first three components of the version number match the upstream flot
+version. The package is designed to meet the redistribution
+requirements of downstream users (e.g. Debian).")
+ (license license:expat)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 03/23] gnu: Add ghc-clock-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
08a8c9168069b14c371963a09bab2e6fc1b8fc76.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-clock-bootstrap-for-9.6): New
variable.

Change-Id: I78d0997ee749a0c1725490c99308dcd1dc5bfbe5
---
gnu/packages/haskell.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 3d7612bc61..0f5cc323f8 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1629,4 +1629,25 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-clock-bootstrap-for-9.6
+ (package
+ (name "ghc-clock-bootstrap")
+ (version "0.8.3")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "clock" version))
+ (sha256
+ (base32
+ "1l850pf1dxjf3i15wc47d64gzkpzgvw0bq13fd8zvklq9kdyap44"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "clock")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/corsis/clock")
+ (synopsis "High-resolution clock for Haskell")
+ (description
+ "A package for convenient access to high-resolution clock and
+timer functions of different operating systems via a unified API.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 04/23] gnu: Add ghc-extra-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
10117aa0c9db856d2aa54b4226ef746935917ecb.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-extra-bootstrap-for-9.6): New
variable.

Change-Id: I73f1bd1a821bb01fc9d081c78313e583ce8fab6b
---
gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 0f5cc323f8..c2ce7d9e16 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1629,6 +1629,30 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-extra-bootstrap-for-9.6
+ (package
+ (name "ghc-extra-bootstrap")
+ (version "1.7.12")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "extra" version))
+ (sha256
+ (base32
+ "0g5h8fp0nq4k9asiknw0bhvb10zpfnsixfp0n3xz0rc83pnajwg5"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "extra")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (inputs (list ghc-clock-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/extra#readme")
+ (synopsis "Extra Haskell functions")
+ (description
+ "This library provides extra functions for the standard
+Haskell libraries. Most functions are simple additions, filling out missing
+functionality. A few functions are available in later versions of GHC, but
+this package makes them available back to GHC 7.2.")
+ (license license:bsd-3)))
+
(define ghc-clock-bootstrap-for-9.6
(package
(name "ghc-clock-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 22/23] gnu: Add ghc-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
aa782edc1fd49a3da3c843888bd91d1759d7b41f.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-9.6): New variable.

Change-Id: I6883ed973bdd1d6eaf981605c1bc8f855f850187
---
gnu/packages/haskell.scm | 157 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 155 insertions(+), 2 deletions(-)

Toggle diff (181 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 5070833a94..158bdd41bd 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2115,14 +2115,14 @@ (define ghc-primitive-bootstrap-for-9.6
(define hadrian-for-ghc-9.6
(package
(name "hadrian")
- (version "9.6.4")
+ (version "9.6.5")
(source (origin
(method url-fetch)
(uri (string-append "https://www.haskell.org/ghc/dist/" version
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
- "1h6lpx8kd4xycjwb8iv2rgnz23kwq5b0qp4bhvczsx3in2w2bgqh"))))
+ "0g5r68j788i6lbx71xpws4xb7nn871rpa8ji41na5hcq9y98kcw7"))))
(build-system haskell-build-system)
(inputs
(list ghc-base16-bytestring-bootstrap-for-9.6
@@ -2152,4 +2152,157 @@ (define hadrian-for-ghc-9.6
It is based on the Shake library and replaces @{make} in building GHC")
(license license:expat)))
+(define-public ghc-9.6
+ (let ((base ghc-9.4))
+ (package
+ (inherit base)
+ (name "ghc-next")
+ (version "9.6.5")
+ (source (origin
+ (inherit (package-source base))
+ (uri (string-append "https://www.haskell.org/ghc/dist/" version
+ "/ghc-" version "-src.tar.xz"))
+ (sha256
+ (base32
+ "0g5r68j788i6lbx71xpws4xb7nn871rpa8ji41na5hcq9y98kcw7"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:make-flags flags ''())
+ #~(list "-V" "--docs=no-sphinx"))
+ ((#:phases phases '%standard-phases)
+ #~(let* ((run-hadrian (lambda args
+ (apply invoke "hadrian" args))))
+ (modify-phases #$phases
+ (delete 'fix-shell-wrappers)
+ ;; https://gitlab.haskell.org/ghc/ghc/-/issues/22557
+ (replace 'fix-lib-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute*
+ (list "libraries/process/System/Process/Posix.hs"
+ "libraries/unix/cbits/execvpe.c")
+ (("/bin/sh") (search-input-file inputs "/bin/sh")))))
+ (add-before 'build 'fix-iserv-rpath
+ (lambda _
+ (mkdir-p "_build")
+ (call-with-output-file
+ "_build/hadrian.settings"
+ (lambda (port)
+ (display
+ (string-append
+ "*.iserv.ghc.link.opts += -optl-Wl,-rpath,"
+ #$output "/lib/ghc-" #$(package-version this-package)
+ "/lib/" #$(or (%current-target-system)
+ (%current-system))
+ "-ghc-" #$(package-version this-package) "/")
+ port)))))
+ (replace 'build
+ (lambda* (#:key (parallel-build? #f) (make-flags '())
+ #:allow-other-keys)
+ (apply run-hadrian
+ `("binary-dist-dir"
+ ,@(if parallel-build?
+ `(,(string-append "-j" (number->string (parallel-job-count))))
+ '())
+ ,@make-flags))))
+ (replace 'check
+ (lambda* (#:key (tests? #t) (parallel-tests? #f) (make-flags '()) #:allow-other-keys)
+ (if tests?
+ (apply run-hadrian
+ `(,@(if parallel-tests?
+ `(,(string-append "-j" (number->string (parallel-job-count))))
+ '())
+ ,@make-flags
+ "test"
+ ,(string-append "--broken-test="
+ (string-join
+ (list "bkpcabal01"
+ "cabal01"
+ "cabal06"
+ "cabal08"
+ "haddock_parser_perf"
+ "haddock_renamer_perf"
+ "package-imports-20779"
+ "plugins01"
+ "plugins08"
+ "plugins10"
+ "recomp007"
+ "recompChangedPackage"
+ "recompPkgLink"
+ "recompPluginPackage"
+ "recompTHpackage"
+ "T10420"
+ "T10458"
+ "T12504"
+ "T13340"
+ "T1372"
+ "T14304"
+ "T16219"
+ "T20218b"
+ "T22333"
+ "T3007"
+ "T7014"
+ "T8832"
+ "test-defaulting-plugin"
+ "plugin-recomp-change"
+ "plugin-recomp-change-2"
+ "plugin-recomp-change-prof"
+ "plugin-recomp-flags"
+ "plugin-recomp-impure"
+ "plugin-recomp-pure"
+ "plugins-order"
+ "plugins-order-pragma"
+ "T15633a"
+ "T15633b"
+ "T15858"
+ "T20417")))
+ "--skip-perf"))
+ (format #t "test suite not run~%"))))
+ (replace 'install
+ (lambda* (#:key (make-flags '()) #:allow-other-keys)
+ (apply run-hadrian
+ `("install"
+ ,@make-flags
+ ,(string-append "--prefix=" #$output)))))
+ (add-after 'install 'replace-$pkgroot
+ (lambda _
+ (substitute*
+ (find-files
+ (string-append #$output "/lib/ghc-"
+ #$(package-version this-package)
+ "/lib/package.conf.d/")
+ "^.*\\.conf$")
+ (("\\$\\{pkgroot\\}/")
+ (string-append #$output "/lib/ghc-"
+ #$(package-version this-package)
+ "/lib/"))))))))))
+ (inputs (list bash-minimal gmp ncurses libffi))
+ (native-inputs
+ `(("perl" ,perl)
+ ("python" ,python)
+ ("git" ,git-minimal/pinned)
+ ("which" ,which)
+ ("ghostscript" ,ghostscript)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+
+ ("hadrian" ,hadrian-for-ghc-9.6)
+ ("ghc-bootstrap" ,ghc-bootstrap-for-9.6)
+ ("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
+ ("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
+ ("ghc-testsuite"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.haskell.org/ghc/dist/"
+ version "/ghc-" version "-testsuite.tar.xz"))
+ (sha256
+ (base32
+ "0k521601lgbs03ii66nb6y1y9327x4965zz3niyr3xswjx4dz8yw"))))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GHC_PACKAGE_PATH")
+ (files (list (string-append "lib/ghc-" version)))
+ (file-pattern ".*\\.conf\\.d$")
+ (file-type 'directory)))))))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 23/23] gnu: ghc: Update to version 9.6.5
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
5d724aa7ae40390b15cb4fea38a6b3d2740cf3f3.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc): Update to ghc-9.6

Change-Id: I40da6cacc4d260902cd66d7d626375038fba4346
---
gnu/packages/haskell.scm | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

Toggle diff (48 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 158bdd41bd..e8ec1eb3ae 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1488,12 +1488,6 @@ (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)
@@ -1557,7 +1551,7 @@ (define-public ghc-9.4
(let ((base ghc-9.2))
(package
(inherit base)
- (name "ghc-next")
+ (name "ghc")
(version "9.4.8")
(source (origin
(method url-fetch)
@@ -2156,7 +2150,7 @@ (define-public ghc-9.6
(let ((base ghc-9.4))
(package
(inherit base)
- (name "ghc-next")
+ (name "ghc")
(version "9.6.5")
(source (origin
(inherit (package-source base))
@@ -2305,4 +2299,10 @@ (define-public ghc-9.6
(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.6)
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 06/23] gnu: Add ghc-splitmix-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
e2d86e91a52e5ef9417c98cfeec268f731bce95e.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-splitmix-bootstrap-for-9.6): New
variable.

Change-Id: I65584aa893975015dc44491b120636844af801de
---
gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index bd30f2804d..3c3016f999 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1697,4 +1697,36 @@ (define ghc-hashable-bootstrap-for-9.6
combine hash values.")
(license license:bsd-3)))
+(define ghc-splitmix-bootstrap-for-9.6
+ (package
+ (name "ghc-splitmix-bootstrap")
+ (version "0.1.0.5")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "splitmix" version))
+ (sha256
+ (base32
+ "00ihw7vji8ydik7f5lk9iwj21j829lpl22wa4nqz2igg26b7mw4x"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "splitmix")))
+ (arguments
+ `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (home-page "http://hackage.haskell.org/package/splitmix")
+ (synopsis "Fast and splittable pseudorandom number generator")
+ (description
+ "This package provides a Pure Haskell implementation of the
+SplitMix pseudorandom number generator. SplitMix is a \"splittable\"
+pseudorandom number generator that is quite fast: 9 64-bit
+arithmetic/logical operations per 64 bits generated. SplitMix is tested
+with two standard statistical test suites (DieHarder and TestU01, this
+implementation only using the former) and it appears to be adequate for
+\"everyday\" use, such as Monte Carlo algorithms and randomized data
+structures where speed is important. In particular, it @strong{should not
+be used for cryptographic or security applications}, because generated
+sequences of pseudorandom values are too predictable (the mixing functions
+are easily inverted, and two successive outputs suffice to reconstruct the
+internal state).")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 11/23] gnu: Add ghc-heaps-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
e961fe588bae30d9a1e49c13babdbad40911c75f.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-heaps-bootstrap-for-9.6): New variable.

Change-Id: Ib04a47d3eacba415fd44cd532c18c02f8d9cf40b
---
gnu/packages/haskell.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index e9aa8f7524..fd814a2346 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1751,6 +1751,27 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-heaps-bootstrap-for-9.6
+ (package
+ (name "ghc-heaps-bootstrap")
+ (version "0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "heaps" version))
+ (sha256
+ (base32 "1zbw0qrlnhb42v04phzwmizbpwg21wnpl7p4fbr9xsasp7w9scl9"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "heaps")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (home-page "http://github.com/ekmett/heaps/")
+ (synopsis "Asymptotically optimal Brodal/Okasaki heaps.")
+ (description
+ "Asymptotically optimal Brodal\\/Okasaki bootstrapped skew-binomial heaps from the
+paper <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.973 \"Optimal
+Purely Functional Priority Queues\">, extended with a Foldable interface.")
+ (license license:bsd-3)))
+
(define ghc-utf8-string-bootstrap-for-9.6
(package
(name "ghc-utf8-string-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 12/23] gnu: Add ghc-js-dgtable-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
6f6d2b6ce6f97b4d4ab505707ce7284cbc00fa0f.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-js-dgtable-bootstrap-for-9.6): New
variable.

Change-Id: Ic7e9e6c584e4fb8830ec55288759796271822964
---
gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index fd814a2346..e4e4fe5cf6 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1751,6 +1751,29 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-js-dgtable-bootstrap-for-9.6
+ (package
+ (name "ghc-js-dgtable-bootstrap")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "js-dgtable" version))
+ (sha256
+ (base32 "1b10kx703kbkb5q1ggdpqcrxqjb33kh24khk21rb30w0xrdxd3g2"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "js-dgtable")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/js-dgtable#readme")
+ (synopsis "Obtain minified jquery.dgtable code")
+ (description
+ "This package bundles the minified <https://github.com/danielgindi/jquery.dgtable
+jquery.dgtable> code into a Haskell package, so it can be depended upon by Cabal
+packages. The first three components of the version number match the upstream
+jquery.dgtable version. The package is designed to meet the redistribution
+requirements of downstream users (e.g. Debian).")
+ (license license:expat)))
+
(define ghc-heaps-bootstrap-for-9.6
(package
(name "ghc-heaps-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 13/23] gnu: Add ghc-nats-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
c32d50893b2f895145c27c41e3870bed693e1d0d.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-nats-bootstrap-for-9.6): New variable.

Change-Id: I57351e88ba0bc52e7fd5fefc5c3006f63925fd86
---
gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index e4e4fe5cf6..d3517d2740 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1751,6 +1751,28 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-nats-bootstrap-for-9.6
+ (package
+ (name "ghc-nats-bootstrap")
+ (version "1.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "nats" version))
+ (sha256
+ (base32
+ "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "nats")))
+ (arguments `(#:haddock? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (inputs
+ (list ghc-hashable-bootstrap-for-9.6))
+ (home-page "https://hackage.haskell.org/package/nats")
+ (synopsis "Natural numbers")
+ (description "This library provides the natural numbers for Haskell.")
+ (license license:bsd-3)))
+
(define ghc-js-dgtable-bootstrap-for-9.6
(package
(name "ghc-js-dgtable-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 14/23] gnu: Add ghc-tagged-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
9614edd2b13ce89f8799ddfaea7a967bf6f05742.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-tagged-bootstrap-for-9.6): New variable.

Change-Id: Ifd3996a62cfa33d155315807d4ead706f7e64452
---
gnu/packages/haskell.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index d3517d2740..970934dad8 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1751,6 +1751,26 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-tagged-bootstrap-for-9.6
+ (package
+ (name "ghc-tagged-bootstrap")
+ (version "0.8.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "tagged" version))
+ (sha256
+ (base32
+ "0qdr1kv1zn5iamnwyn5nf0ywxs4wv779k0gpw94kyqx14ynfw534"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "tagged")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (home-page "https://hackage.haskell.org/package/tagged")
+ (synopsis "Haskell phantom types to avoid passing dummy arguments")
+ (description "This library provides phantom types for Haskell 98, to avoid
+having to unsafely pass dummy arguments.")
+ (license license:bsd-3)))
+
(define ghc-nats-bootstrap-for-9.6
(package
(name "ghc-nats-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 17/23] gnu: Add ghc-cryptohash-sha256-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
3fe27c152474aabceb77b297244a3dfda518c086.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-cryptohash-sha256-bootstrap-for-9.6):
New variable.

Change-Id: I80dd73de554160f4dc904c01ea292a886f51e970
---
gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index eb4d546ad4..9afe9a5382 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1629,6 +1629,35 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-cryptohash-sha256-bootstrap-for-9.6
+ (package
+ (name "ghc-cryptohash-sha256-bootstrap")
+ (version "0.11.102.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "cryptohash-sha256" version))
+ (sha256
+ (base32
+ "1xkb7iqplbw4fy1122p79xf1zcb7k44rl0wmfj1q06l7cdqxr9vk"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "cryptohash-sha256")))
+ (arguments
+ `(#:cabal-revision
+ ("1" "1hyzqv30rpj920ddnr0zypyjjlh52vyp2d140pn2byayj820rkgs")
+ #:haskell ,ghc-bootstrap-for-9.6
+ #:tests? #f))
+ (home-page "https://github.com/hvr/cryptohash-sha1")
+ (synopsis "SHA-256 implementation for Haskell")
+ (description "This Haskell package provides an incremental and
+one-pass, pure API to the @uref{https://en.wikipedia.org/wiki/SHA-2,
+SHA-256 cryptographic hash algorithm}, with performance close to the
+fastest implementations available in other languages.
+
+The implementation is made in C with a haskell FFI wrapper that hides
+the C implementation.")
+ (license license:bsd-3)))
+
(define ghc-base16-bytestring-bootstrap-for-9.6
(package
(name "ghc-base16-bytestring-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 18/23] gnu: Add ghc-unordered-containers-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
a78ce26e4c577ecbfc3033298aaffbdd260e7924.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-unordered-containers-bootstrap-for-9.6):
New variable.

Change-Id: I190d7e765d30b469290d26109478fbe97dfbe3ae
---
gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 9afe9a5382..c2e5391fea 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1629,6 +1629,33 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-unordered-containers-bootstrap-for-9.6
+ (package
+ (name "ghc-unordered-containers-bootstrap")
+ (version "0.2.19.1")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "unordered-containers" version))
+ (sha256
+ (base32
+ "1li8s6qw8mgv6a7011y7hg0cn2nllv2g9sr9c1xb48nmw32vw9qv"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "unordered-containers")))
+ (inputs (list ghc-hashable-bootstrap-for-9.6))
+ (arguments
+ `(#:cabal-revision ("3"
+ "1p9a2mvfbfz2d4cyr16b03bxvb6c4yj7k1ch601xwq1rkr1cla0w")
+ #:haskell ,ghc-bootstrap-for-9.6
+ #:tests? #f))
+ (home-page
+ "https://github.com/haskell-unordered-containers/unordered-containers")
+ (synopsis "Efficient hashing-based container types")
+ (description
+ "Efficient hashing-based container types. The containers have been
+optimized for performance critical use, both in terms of large data quantities
+and high speed.")
+ (license license:bsd-3)))
+
(define ghc-cryptohash-sha256-bootstrap-for-9.6
(package
(name "ghc-cryptohash-sha256-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 19/23] gnu: Add ghc-filepattern-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
3a5d794e547439ab1fbf8b4aa994e196717d1e07.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-filepattern-bootstrap-for-9.6): New
variable.

Change-Id: I3778f85d7a14474445295ebd6bbb1f4bfbe4f6d5
---
gnu/packages/haskell.scm | 41 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index c2e5391fea..b2d874e330 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1629,6 +1629,47 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-filepattern-bootstrap-for-9.6
+ (package
+ (name "ghc-filepattern-bootstrap")
+ (version "0.1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "filepattern" version))
+ (sha256
+ (base32
+ "0dlnwnwhsfdkwm69z66wj5d2x9n3la55glq4fsn5rxm2kr1msi6c"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "filepattern")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (inputs (list ghc-extra-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/filepattern#readme")
+ (synopsis "File path glob-like matching")
+ (description
+ "This package provides Haskell library for matching files using patterns
+such as @code{\\\"src\\/**\\/*.png\\\"} for all @@file{.png} files recursively
+under the @@file{src} directory.
+
+Some of its features include:
+
+@itemize
+@item All matching is O(n).
+
+@item Most functions pre-compute some information given only one argument.
+
+@item Uses @code{match} and @code{substitute} to extract suitable strings from
+the @code{*} and @code{**} matches, and substitutes them back into other
+patterns.
+
+@item Uses @code{step} and @code{matchMany} to perform bulk matching of many
+patterns against many paths simultaneously.
+
+@item Uses @code{System.FilePattern.Directory} to perform optimised directory
+traverals using patterns.
+@end itemize")
+ (license license:bsd-3)))
+
(define ghc-unordered-containers-bootstrap-for-9.6
(package
(name "ghc-unordered-containers-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 21/23] gnu: Add hadrian-for-ghc-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
edaabf0509d355711ef206719198bdd8009ccca3.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (hadrian-for-ghc-9.6): New variable.

Change-Id: I4205c888afa7b03b4b1622a3af7d1d538fa5c9b1
---
gnu/packages/haskell.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index fb20f3e2a3..5070833a94 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2112,4 +2112,44 @@ (define ghc-primitive-bootstrap-for-9.6
"This package provides various primitive memory-related operations.")
(license license:bsd-3)))
+(define hadrian-for-ghc-9.6
+ (package
+ (name "hadrian")
+ (version "9.6.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.haskell.org/ghc/dist/" version
+ "/ghc-" version "-src.tar.xz"))
+ (sha256
+ (base32
+ "1h6lpx8kd4xycjwb8iv2rgnz23kwq5b0qp4bhvczsx3in2w2bgqh"))))
+ (build-system haskell-build-system)
+ (inputs
+ (list ghc-base16-bytestring-bootstrap-for-9.6
+ ghc-cryptohash-sha256-bootstrap-for-9.6
+ ghc-extra-bootstrap-for-9.6
+ ghc-shake-bootstrap-for-9.6
+ ghc-unordered-containers-bootstrap-for-9.6
+ bash-minimal))
+ (arguments
+ (list #:configure-flags ''("--flags=-selftest")
+ #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'cd-to-hadrian
+ (lambda _
+ (chdir "hadrian")))
+ (add-after 'cd-to-hadrian 'fix-shell-wrappers
+ (lambda _
+ (substitute*
+ "src/Rules/Test.hs"
+ (("\"#!/bin/sh\"")
+ (format #f "\"#!~a/bin/sh\"" #$(this-package-input "bash-minimal")))))))))
+ (home-page "https://gitlab.haskell.org/ghc/ghc/-/tree/master/hadrian")
+ (synopsis "Build system for the Glasgow Haskell Compiler (@code{ghc})")
+ (description "Hadrian is the build system for the Glasgow Haskell Compiler.
+It is based on the Shake library and replaces @{make} in building GHC")
+ (license license:expat)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 05/23] gnu: Add ghc-hashable-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
65089b893a4ae34a2f58b0e452961c2699652866.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-hashable-bootstrap-for-9.6): New
variable.

Change-Id: Id96f7df459a3db56747cd4204b32b7ad253139a4
---
gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index c2ce7d9e16..bd30f2804d 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1674,4 +1674,27 @@ (define ghc-clock-bootstrap-for-9.6
timer functions of different operating systems via a unified API.")
(license license:bsd-3)))
+(define ghc-hashable-bootstrap-for-9.6
+ (package
+ (name "ghc-hashable-bootstrap")
+ (version "1.4.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "hashable" version))
+ (sha256
+ (base32
+ "11sycr73821amdz8g0k8c97igi4z7f9xdvgaxlkxhsp6h310bcz1"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "hashable")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (home-page "http://github.com/haskell-unordered-containers/hashable")
+ (synopsis "Class for types that can be converted to a hash value")
+ (description
+ "This package defines a class, @code{Hashable}, for types that can be
+converted to a hash value. This class exists for the benefit of hashing-based
+data structures. The package provides instances for basic types and a way to
+combine hash values.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 10/23] gnu: Add ghc-utf8-string-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
dd24bd2edbc34aa4e2c37cd7239966bd4b43add7.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-utf8-string-bootstrap-for-9.6): New
variable.

Change-Id: Iea2ba4d3202195a54b71037882352cdac9415901
---
gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 4482fdb0d3..e9aa8f7524 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1751,6 +1751,28 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-utf8-string-bootstrap-for-9.6
+ (package
+ (name "ghc-utf8-string-bootstrap")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "utf8-string" version))
+ (sha256
+ (base32 "16mh36ffva9rh6k37bi1046pgpj14h0cnmj1iir700v0lynxwj7f"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "utf8-string")))
+ (arguments `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/glguy/utf8-string/")
+ (synopsis "Support for reading and writing UTF8 Strings")
+ (description
+ "A UTF8 layer for Strings. The utf8-string package provides operations
+for encoding UTF8 strings to Word8 lists and back, and for reading and writing
+UTF8 without truncation.")
+ (license license:bsd-3)))
+
(define ghc-js-jquery-bootstrap-for-9.6
(package
(name "ghc-js-jquery-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 08/23] gnu: Add ghc-primitive-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
2a3ec845fca31364cc21896850dafe6b9afd748c.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-primitive-bootstrap-for-9.6): New
variable.

Change-Id: I393ff5f57862de0c6da118a803ed6f898adcf0cb
---
gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index cb66e5d745..2212bd2cf6 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1751,4 +1751,27 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-primitive-bootstrap-for-9.6
+ (package
+ (name "ghc-primitive-bootstrap")
+ (version "0.8.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "primitive" version))
+ (sha256
+ (base32
+ "0pwr5g3bra5m2zjm14pj98klqj2qrjcfasgd3rcrp7vq98dw4lsm"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "primitive")))
+ (arguments
+ `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6
+ #:cabal-revision ("1"
+ "0w1nf0rabgyk5q7ccw7va1mj6k50lswvikhi6vr2myb1dvx4bzyh")))
+ (home-page "https://github.com/haskell/primitive")
+ (synopsis "Primitive memory-related operations")
+ (description
+ "This package provides various primitive memory-related operations.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 09/23] gnu: Add ghc-js-jquery-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
8b02ea798f9d6ed0ebc8fc1edf98b1859ad5cc14.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-js-jquery-bootstrap-for-9.6): New
variable.

Change-Id: I579efb04ad665f0938e24a9656f959abdd27905e
---
gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 2212bd2cf6..4482fdb0d3 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1751,6 +1751,32 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-js-jquery-bootstrap-for-9.6
+ (package
+ (name "ghc-js-jquery-bootstrap")
+ (version "3.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (hackage-uri "js-jquery" version))
+ (sha256
+ (base32
+ "16q68jzbs7kp07dnq8cprdcc8fd41rim38039vg0w4x11lgniq70"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "js-jquery")))
+ (arguments `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/js-jquery")
+ (synopsis "Obtain minified jQuery code")
+ (description "This package bundles the minified
+@url{http://jquery.com/, jQuery} code into a Haskell package, so it can
+be depended upon by Cabal packages. The first three components of the
+version number match the upstream jQuery version. The package is
+designed to meet the redistribution requirements of downstream
+users (e.g. Debian).")
+ (license license:expat)))
+
(define ghc-primitive-bootstrap-for-9.6
(package
(name "ghc-primitive-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 16/23] gnu: Add ghc-base16-bytestring-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
31f84dc3d438564619dc95cd1ac2f18adb7be714.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-base16-bytestring-bootstrap-for-9.6):
New variable.

Change-Id: I7c20bdfd7600fb2bed5de497e02acda74b242fec
---
gnu/packages/haskell.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 9a66b6d225..eb4d546ad4 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1629,6 +1629,27 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-base16-bytestring-bootstrap-for-9.6
+ (package
+ (name "ghc-base16-bytestring-bootstrap")
+ (version "1.0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "base16-bytestring" version))
+ (sha256
+ (base32
+ "1167f9jaivnabn6kg2gc421ac9njb67fr4v0adbj3qph7qa92nhx"))))
+ (build-system haskell-build-system)
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (properties '((upstream-name . "base16-bytestring")))
+ (home-page "http://github.com/haskell/base16-bytestring")
+ (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
+ (description
+ "This package provides a Haskell library for working with base16-encoded
+data quickly and efficiently, using the ByteString type.")
+ (license license:bsd-3)))
+
(define ghc-extra-bootstrap-for-9.6
(package
(name "ghc-extra-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 20/23] gnu: Add ghc-shake-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
fa2221de8d1b0ebe0913f70c75cad2e1185c4746.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-shake-bootstrap-for-9.6): New variable.

Change-Id: I195bc5f779709ef7b2ccefe2271402ef342bc0b8
---
gnu/packages/haskell.scm | 56 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)

Toggle diff (69 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index b2d874e330..fb20f3e2a3 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1603,6 +1603,62 @@ (define-public ghc-9.4
(define ghc-bootstrap-for-9.6 ghc-9.4)
+(define ghc-shake-bootstrap-for-9.6
+ (package
+ (name "ghc-shake-bootstrap")
+ (version "0.19.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "shake" version))
+ (sha256
+ (base32 "1lcr6q53qwm308bny6gfawcjhxsmalqi3dnwckam02zp2apmcaim"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "shake")))
+ (inputs (list bash-minimal
+ ghc-extra-bootstrap-for-9.6
+ ghc-filepattern-bootstrap-for-9.6
+ ghc-hashable-bootstrap-for-9.6
+ ghc-heaps-bootstrap-for-9.6
+ ghc-js-dgtable-bootstrap-for-9.6
+ ghc-js-flot-bootstrap-for-9.6
+ ghc-js-jquery-bootstrap-for-9.6
+ ghc-primitive-bootstrap-for-9.6
+ ghc-random-bootstrap-for-9.6
+ ghc-unordered-containers-bootstrap-for-9.6
+ ghc-utf8-string-bootstrap-for-9.6
+ ghc-semigroups-bootstrap-for-9.6))
+ (arguments
+ (list #:cabal-revision '("1"
+ "1hz57kw5pp5cpbicbi7x8sz8c6qy58dzyiljz9b9f2r1rr683d9w")
+ #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'patch-source-shebangs 'patch-/bin/sh
+ (lambda _
+ (for-each
+ (lambda (file)
+ (substitute*
+ file
+ (("/bin/sh")
+ #$(file-append (this-package-input "bash-minimal")
+ "/bin/sh"))))
+ '("src/Development/Shake/Command.hs")))))))
+ (home-page "https://shakebuild.com")
+ (synopsis
+ "Build system library, like Make, but more accurate dependencies.")
+ (description
+ "Shake is a Haskell library for writing build systems - designed as a
+replacement for @@make@@. To use Shake the user writes a Haskell program that
+imports \"Development.Shake\", defines some build rules, and calls the
+Development.Shake.@code{shakeArgs} function. However, as build systems get more
+complex, Shake is able to take advantage of the excellent abstraction facilities
+offered by Haskell and easily support much larger projects. Shake also provides more
+accurate dependency tracking, including seamless support for generated files, and
+dependencies on system information (e.g. compiler version).")
+ (license license:bsd-3)))
+
(define ghc-js-flot-bootstrap-for-9.6
(package
(name "ghc-js-flot-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 15/23] gnu: Add ghc-semigroups-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
bbd79e52b032e552119ff43b16b0736caf83cb67.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-semigroups-bootstrap-for-9.6): New
variable.

Change-Id: Ic676fed80bea3805f8e70cd958c3d7523226053d
---
gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 970934dad8..9a66b6d225 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1751,6 +1751,36 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-semigroups-bootstrap-for-9.6
+ (package
+ (name "ghc-semigroups-bootstrap")
+ (version "0.20")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "semigroups" version))
+ (sha256
+ (base32
+ "1qbk6scp1rzb69dy8mz26p6az5vi16g2lzwmwnfshh3br4rjwbch"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "semigroups")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (inputs
+ (list ghc-nats-bootstrap-for-9.6
+ ghc-tagged-bootstrap-for-9.6
+ ghc-unordered-containers-bootstrap-for-9.6
+ ghc-hashable-bootstrap-for-9.6))
+ (home-page "http://github.com/ekmett/semigroups/")
+ (synopsis "Semigroup operations for Haskell")
+ (description
+ "This package provides semigroups for Haskell. In
+mathematics, a semigroup is an algebraic structure consisting of a set
+together with an associative binary operation. A semigroup generalizes a
+monoid in that there might not exist an identity element. It
+also (originally) generalized a group (a monoid with all inverses) to a type
+where every element did not have to have an inverse, thus the name
+semigroup.")
+ (license license:bsd-3)))
+
(define ghc-tagged-bootstrap-for-9.6
(package
(name "ghc-tagged-bootstrap")
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 01/23] gnu: ghc-next: Update to version 9.4.8
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
9786d1f5689c51ae37afaa3c323eb4c134a942bb.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-9.4): Update to version 9.4.8.
[native-inputs]<ghc-testsuite>: Add a patch to fix the testsuite.
(ghc-happy-bootstrap-for-9.4): Update to version 1.20.1.1.
* gnu/packages/patches/ghc-9.4-testsuite-fixes.patch: New patch.

Change-Id: I5ef72f83e5feed1defb706bafa934077fda1553c
---
gnu/packages/haskell.scm | 11 +-
.../patches/ghc-9.4-testsuite-fixes.patch | 119 ++++++++++++++++++
2 files changed, 125 insertions(+), 5 deletions(-)
create mode 100644 gnu/packages/patches/ghc-9.4-testsuite-fixes.patch

Toggle diff (175 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 6d8675d37e..25b21a0209 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1533,14 +1533,14 @@ (define ghc-happy-bootstrap-for-9.4
(hidden-package
(package
(name "ghc-happy")
- (version "1.20.0")
+ (version "1.20.1.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "happy" version))
(sha256
(base32
- "1346r2x5ravs5fqma65bzjragqbb2g6v41wz9maknwm2jf7kl79v"))))
+ "06w8g3lfk2ynrfhqznhp1mnp8a5b64lj6qviixpndzf5lv2psklb"))))
(build-system haskell-build-system)
(arguments
(list #:haskell ghc-bootstrap-for-9.4
@@ -1558,14 +1558,14 @@ (define-public ghc-9.4
(package
(inherit base)
(name "ghc-next")
- (version "9.4.4")
+ (version "9.4.8")
(source (origin
(method url-fetch)
(uri (string-append "https://www.haskell.org/ghc/dist/" version
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
- "1qk7rlqf02s3b6m6sqqngmjq1mxnrz88h159lz6k25gddmdg5kp8"))))
+ "0pmqg9846lanb0hcyxhgr9ipzq33rfldxj7ln0j3qgpyczmhgx0b"))))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases '%standard-phases)
@@ -1583,7 +1583,8 @@ (define-public ghc-9.4
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
- "04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))))
+ "159wsqnqpqb0pxa3zyhvyg07wxr2zz7v52h52wkplw4pn12dsidc"))
+ (patches (search-patches "ghc-9.4-testsuite-fixes.patch"))))
("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
,@(filter (match-lambda
diff --git a/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch b/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch
new file mode 100644
index 0000000000..f394632add
--- /dev/null
+++ b/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch
@@ -0,0 +1,119 @@
+From 3acd8aa948a27465cffc8e2ab56229485e2a5b98 Mon Sep 17 00:00:00 2001
+From: Saku Laesvuori <saku@laesvuori.fi>
+Date: Tue, 5 Dec 2023 22:49:45 +0200
+Subject: [PATCH] Fix tests
+
+* replaces egrep with grep -E
+* removes unnecessary escaping in some grep regular expressions
+* adds a missing include header to a makefile
+---
+ testsuite/tests/cabal/cabal01/Makefile | 2 +-
+ testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile | 4 ++++
+ testsuite/tests/haddock/perf/Makefile | 8 ++++----
+ testsuite/tests/hsc2hs/Makefile | 4 ++--
+ testsuite/tests/numeric/should_run/T7014.primops | 4 ++--
+ testsuite/tests/simplCore/should_compile/Makefile | 4 ++--
+ 6 files changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/testsuite/tests/cabal/cabal01/Makefile b/testsuite/tests/cabal/cabal01/Makefile
+index 004e4c75..6ec499c9 100644
+--- a/testsuite/tests/cabal/cabal01/Makefile
++++ b/testsuite/tests/cabal/cabal01/Makefile
+@@ -5,7 +5,7 @@ include $(TOP)/mk/test.mk
+ # Find all the env variables starting with CI_ to unset them.
+ # Otherwise, we might run into environment length limitations on Windows.
+ # (See `xargs --show-limits`.)
+-VARS_TO_UNSET := $(shell env | grep ^CI_ | egrep -o '^[^=]+')
++VARS_TO_UNSET := $(shell env | grep ^CI_ | grep -E -o '^[^=]+')
+ unexport $(VARS_TO_UNSET)
+
+ clean:
+diff --git a/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile b/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
+index fd64d23f..cb669db3 100644
+--- a/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
++++ b/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
+@@ -1,3 +1,7 @@
++TOP=../../../..
++include $(TOP)/mk/boilerplate.mk
++include $(TOP)/mk/test.mk
++
+ .PHONY: GHCiPrimCall
+ GHCiPrimCall:
+ '$(TEST_HC)' $(TEST_HC_OPTS) -fPIC -v0 -c GHCiPrimCall_cmm.cmm
+diff --git a/testsuite/tests/haddock/perf/Makefile b/testsuite/tests/haddock/perf/Makefile
+index b67b52f2..ff2f7ebb 100644
+--- a/testsuite/tests/haddock/perf/Makefile
++++ b/testsuite/tests/haddock/perf/Makefile
+@@ -4,12 +4,12 @@ include $(TOP)/mk/test.mk
+
+ # We accept a 5% increase in parser allocations due to -haddock
+ haddock_parser_perf :
+- WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Parser | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
+- WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Parser | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Parser | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Parser | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
+ awk "BEGIN { ratio = ($$WithHaddock / $$WithoutHaddock); if (ratio > 1.05) {print \"-haddock allocation ratio too high:\", ratio; exit 1} else {exit 0} }"
+
+ # Similarly for the renamer
+ haddock_renamer_perf :
+- WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Renamer | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
+- WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Renamer | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Renamer | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Renamer | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
+ awk "BEGIN { ratio = ($$WithHaddock / $$WithoutHaddock); if (ratio > 1.05) {print \"-haddock allocation ratio too high:\", ratio; exit 1} else {exit 0} }"
+diff --git a/testsuite/tests/hsc2hs/Makefile b/testsuite/tests/hsc2hs/Makefile
+index d0b2d249..95b011c8 100644
+--- a/testsuite/tests/hsc2hs/Makefile
++++ b/testsuite/tests/hsc2hs/Makefile
+@@ -52,9 +52,9 @@ T11004:
+ T12504:
+ '$(HSC2HS)' $(HSC2HS_OPTS) T12504/path/to/$@.hsc
+ ifeq "$(WINDOWS)" "YES"
+- grep '{-# LINE 1 \"T12504\\\\path\\\\to\\\\$@\.hsc\" #-}' T12504/path/to/$@.hs
++ grep '{-# LINE 1 "T12504\\\\path\\\\to\\\\$@\.hsc" #-}' T12504/path/to/$@.hs
+ else
+- grep '{-# LINE 1 \"T12504/path/to/$@\.hsc\" #-}' T12504/path/to/$@.hs
++ grep '{-# LINE 1 "T12504/path/to/$@\.hsc" #-}' T12504/path/to/$@.hs
+ endif
+
+ .PHONY: T15758
+diff --git a/testsuite/tests/numeric/should_run/T7014.primops b/testsuite/tests/numeric/should_run/T7014.primops
+index 3243666d..c807fb45 100644
+--- a/testsuite/tests/numeric/should_run/T7014.primops
++++ b/testsuite/tests/numeric/should_run/T7014.primops
+@@ -1,8 +1,8 @@
+ and#
+ or#
+ uncheckedShift.*#
+-\+#
+-\-#
+++#
++-#
+ \*#
+ quotInt#
+ remInt#
+diff --git a/testsuite/tests/simplCore/should_compile/Makefile b/testsuite/tests/simplCore/should_compile/Makefile
+index b5041800..c56e04f6 100644
+--- a/testsuite/tests/simplCore/should_compile/Makefile
++++ b/testsuite/tests/simplCore/should_compile/Makefile
+@@ -66,7 +66,7 @@ T13367:
+
+ T8832:
+ $(RM) -f T8832.o T8832.hi
+- '$(TEST_HC)' $(TEST_HC_OPTS) -O -c -ddump-simpl -dsuppress-ticks T8832.hs | egrep '^[a-zA-Z0-9]+ ='
++ '$(TEST_HC)' $(TEST_HC_OPTS) -O -c -ddump-simpl -dsuppress-ticks T8832.hs | grep -E '^[a-zA-Z0-9]+ ='
+
+ T12603:
+ $(RM) -f T12603.o T12603.hi
+@@ -259,7 +259,7 @@ str-rules:
+ # g should have been collapsed into one defininition by CSE.
+ .PHONY: T13340
+ T13340:
+- '$(TEST_HC)' $(TEST_HC_OPTS) -c -O T13340.hs -ddump-simpl -dsuppress-all | grep -c '\+#'
++ '$(TEST_HC)' $(TEST_HC_OPTS) -c -O T13340.hs -ddump-simpl -dsuppress-all | grep -c '+#'
+
+
+ # We expect to see all dictionaries specialized away.
+--
+2.41.0
+
--
2.41.0
S
S
Saku Laesvuori wrote on 7 Jun 09:49 +0200
[PATCH haskell-team 07/23] gnu: Add ghc-random-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)(name . Saku Laesvuori)(address . saku@laesvuori.fi)
989a8c9d29432ec4a4f54a037be37e8e2dae1271.1717746077.git.saku@laesvuori.fi
* gnu/packages/haskell.scm (ghc-random-bootstrap-for-9.6): New variable.

Change-Id: If1a39b27687a63a63dab5aa4c1a366a8ba78196a
---
gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 3c3016f999..cb66e5d745 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1729,4 +1729,26 @@ (define ghc-splitmix-bootstrap-for-9.6
internal state).")
(license license:bsd-3)))
+(define ghc-random-bootstrap-for-9.6
+ (package
+ (name "ghc-random-bootstrap")
+ (version "1.2.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "random" version))
+ (sha256
+ (base32
+ "0xlv1k4sj87akwvj54kq4nrfkzi6qcz1941bf78pnkbaxpvp44iy"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "random")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (inputs (list ghc-splitmix-bootstrap-for-9.6))
+ (home-page "http://hackage.haskell.org/package/random")
+ (synopsis "Random number library")
+ (description
+ "This package provides a basic random number generation
+library, including the ability to split random number generators.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.41.0
L
L
Lars-Dominik Braun wrote on 14 Jun 15:55 +0200
Re: [bug#67921] [PATCH haskell-team 00/23] Update GHC to 9.6.5
(name . Saku Laesvuori)(address . saku@laesvuori.fi)(address . 67921@debbugs.gnu.org)
ZmxL5LQgDItlfMDz@noor.fritz.box
Hi,

Toggle quote (5 lines)
> I didn't hear any ideas for a better solution, so here is a patch set
> with the failing tests disabled. The current haskell-team merge should
> probably be continued without this series and a new one started from
> these patches.

perhaps, instead of disabling working tests, we can just patch line
370 of testsuite/driver/runtests.py to not use a directory with
spaces? Maybe it’s just a test system failure? I tried compiling
a simple Hello World Haskell program in a directory with spaces and
that worked.

Lars
S
S
Saku Laesvuori wrote on 27 Jun 22:24 +0200
(name . Lars-Dominik Braun)(address . lars@6xq.net)(address . 67921@debbugs.gnu.org)
wwbsgyayjwv3w6zuwhblzkh66txjjawmsu5qqdfwdptj6vhlws@xtibgfn6vto5
On Fri, Jun 14, 2024 at 03:55:48PM +0200, Lars-Dominik Braun wrote:
Toggle quote (11 lines)
> Hi,
>
> > I didn't hear any ideas for a better solution, so here is a patch set
> > with the failing tests disabled. The current haskell-team merge should
> > probably be continued without this series and a new one started from
> > these patches.
>
> perhaps, instead of disabling working tests, we can just patch line
> 370 of testsuite/driver/runtests.py to not use a directory with
> spaces? Maybe it’s just a test system failure?

I tried patching that line with a trivial `(substitute* ... (("test
spaces") ""))` snippet and it does fix all but 7 failures. The remaining
ones could just be caused by some simple egrep vs grep -E warnings, but
I will have very little time to look into this during the next six
weeks. Anyone interested should feel free to try finalizing this series
in the meantime.

- Saku
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEoMkZR3NPB29fCOn/JX0oSiodOjIFAmZ9yn8ACgkQJX0oSiod
OjKtNQ/9GumVYxETmo8TocnrlEWq477hmI0fyOhwBAo5fFf8S0WeUk17Q6mKFGU0
9kxvqMvCR429v+NTlak26cKm+TXEGAso1cD/tdJV1R409UImQUA083vu5AQLkpRr
9bI9MSgXoWshl068Vi6+c4pBe1low+M/IlSQJIv9+BZJppvFU+O29mgLFYfJUNyd
F1lyQvFOW2MTggTtGjW8KcFiNMoUSKz9BOtUlGgwlDuhcFAYbaSV6MUJO5NCsDEi
23VeXA8BToGPcYAp5Wm6eLMtlxfKqOHo4tEQHcepwbNeXhN7G3j0W6c6RvMYBuvg
b1UGCTkOnmJiOq/RKKV+NcsjEJAE2WMCVpDZpWuRdDmGrmvPYbRVZNrNBmwIeFoO
actrxsXxiFuwgfjcnYa9fpyEVrc6gOm4rnqJW8aFu6rR6L5C8NvvbSdlwZJPdAYQ
Bcf+mqgeNaqRoiRIBhvDUJ8kOSdFvoD6ukjeq4+qB9Iu1oEMgW2HX45VaVeYZZxD
I1lrMFwU9wp0kwSgLFLvsC5H6ryWFOmSIxBo8Q5lJ/Yv3bfnQw8qMKfJPIHsX7VF
maYAXTE7Lrk/EW7tpaSLaTh6SQdpfJEw05ddPAuVPa3ab0WjbOVJhaACro7mnBHE
Kb77KN5vZZHQPdizSfLzn4cwoqhFUCan5ZsFQ3C/5nLuH3TUOx8=
=G7pv
-----END PGP SIGNATURE-----


N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 00/24] [haskell-team] GHC update.
(address . 67921@debbugs.gnu.org)
20241031125127.14080-1-ngraves@ngraves.fr
Hi! Such a long rabbithole to update pandoc, but I think I managed to
find a way to make the last errors disappear. It however includes a
lot of earlier GHC rebuilds, so it could be a fix added only for 9.4.8
instead of on earlier versions of GHC too. I haven't rebuilt
everything from the ground up myself, but have tested this fix on
8.6.5.

I add Josselin to the cc loop since it's a rewrite of one of its
patches durign the last core-updates.

Nicolas Graves (1):
gnu: ghc: More robust build with binutils ≥ 2.39.

Saku Laesvuori (23):
gnu: ghc-next: Update to version 9.4.8
gnu: Add ghc-js-flot-bootstrap-for-9.6
gnu: Add ghc-clock-bootstrap-for-9.6
gnu: Add ghc-extra-bootstrap-for-9.6
gnu: Add ghc-hashable-bootstrap-for-9.6
gnu: Add ghc-splitmix-bootstrap-for-9.6
gnu: Add ghc-random-bootstrap-for-9.6
gnu: Add ghc-primitive-bootstrap-for-9.6
gnu: Add ghc-js-jquery-bootstrap-for-9.6
gnu: Add ghc-utf8-string-bootstrap-for-9.6
gnu: Add ghc-heaps-bootstrap-for-9.6
gnu: Add ghc-js-dgtable-bootstrap-for-9.6
gnu: Add ghc-nats-bootstrap-for-9.6
gnu: Add ghc-tagged-bootstrap-for-9.6
gnu: Add ghc-semigroups-bootstrap-for-9.6
gnu: Add ghc-base16-bytestring-bootstrap-for-9.6
gnu: Add ghc-cryptohash-sha256-bootstrap-for-9.6
gnu: Add ghc-unordered-containers-bootstrap-for-9.6
gnu: Add ghc-filepattern-bootstrap-for-9.6
gnu: Add ghc-shake-bootstrap-for-9.6
gnu: Add hadrian-for-ghc-9.6
gnu: Add ghc-9.6
gnu: ghc: Update to version 9.6.4

gnu/local.mk | 1 -
gnu/packages/haskell.scm | 712 +++++++++++++++++-
.../patches/ghc-9.4-testsuite-fixes.patch | 119 +++
.../ghc-testsuite-recomp015-execstack.patch | 10 -
4 files changed, 805 insertions(+), 37 deletions(-)
create mode 100644 gnu/packages/patches/ghc-9.4-testsuite-fixes.patch
delete mode 100644 gnu/packages/patches/ghc-testsuite-recomp015-execstack.patch

--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 02/24] gnu: ghc-next: Update to version 9.4.8
(address . 67921@debbugs.gnu.org)
20241031125127.14080-3-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-9.4): Update to version 9.4.8.
[native-inputs]<ghc-testsuite>: Add a patch to fix the testsuite.
(ghc-happy-bootstrap-for-9.4): Update to version 1.20.1.1.
* gnu/packages/patches/ghc-9.4-testsuite-fixes.patch: New patch.

Change-Id: I5ef72f83e5feed1defb706bafa934077fda1553c
---
gnu/packages/haskell.scm | 13 +-
.../patches/ghc-9.4-testsuite-fixes.patch | 119 ++++++++++++++++++
2 files changed, 125 insertions(+), 7 deletions(-)
create mode 100644 gnu/packages/patches/ghc-9.4-testsuite-fixes.patch

Toggle diff (177 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index c580c660f1..4e2875cffa 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1542,14 +1542,14 @@ (define ghc-happy-bootstrap-for-9.4
(hidden-package
(package
(name "ghc-happy")
- (version "1.20.0")
+ (version "1.20.1.1")
(source
(origin
(method url-fetch)
(uri (hackage-uri "happy" version))
(sha256
(base32
- "1346r2x5ravs5fqma65bzjragqbb2g6v41wz9maknwm2jf7kl79v"))))
+ "06w8g3lfk2ynrfhqznhp1mnp8a5b64lj6qviixpndzf5lv2psklb"))))
(build-system haskell-build-system)
(arguments
(list #:haskell ghc-bootstrap-for-9.4
@@ -1567,15 +1567,14 @@ (define-public ghc-9.4
(package
(inherit base)
(name "ghc-next")
- (version "9.4.4")
+ (version "9.4.8")
(source (origin
(method url-fetch)
(uri (string-append "https://www.haskell.org/ghc/dist/" version
"/ghc-" version "-src.tar.xz"))
(sha256
(base32
- "1qk7rlqf02s3b6m6sqqngmjq1mxnrz88h159lz6k25gddmdg5kp8"))
- (patches (search-patches "ghc-9-StgCRunAsm-only-when-needed.patch"))))
+ "0pmqg9846lanb0hcyxhgr9ipzq33rfldxj7ln0j3qgpyczmhgx0b"))))
(arguments
(substitute-keyword-arguments (package-arguments base)
((#:phases phases '%standard-phases)
@@ -1593,8 +1592,8 @@ (define-public ghc-9.4
version "/ghc-" version "-testsuite.tar.xz"))
(sha256
(base32
- "04p2lawxxg3nyv6frzhyjyh3arhqqyh5ka3alxa2pxhcd2hdcja3"))
- (patches (search-patches "ghc-testsuite-recomp015-execstack.patch"))))
+ "159wsqnqpqb0pxa3zyhvyg07wxr2zz7v52h52wkplw4pn12dsidc"))
+ (patches (search-patches "ghc-9.4-testsuite-fixes.patch"))))
("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
,@(filter (match-lambda
diff --git a/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch b/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch
new file mode 100644
index 0000000000..f394632add
--- /dev/null
+++ b/gnu/packages/patches/ghc-9.4-testsuite-fixes.patch
@@ -0,0 +1,119 @@
+From 3acd8aa948a27465cffc8e2ab56229485e2a5b98 Mon Sep 17 00:00:00 2001
+From: Saku Laesvuori <saku@laesvuori.fi>
+Date: Tue, 5 Dec 2023 22:49:45 +0200
+Subject: [PATCH] Fix tests
+
+* replaces egrep with grep -E
+* removes unnecessary escaping in some grep regular expressions
+* adds a missing include header to a makefile
+---
+ testsuite/tests/cabal/cabal01/Makefile | 2 +-
+ testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile | 4 ++++
+ testsuite/tests/haddock/perf/Makefile | 8 ++++----
+ testsuite/tests/hsc2hs/Makefile | 4 ++--
+ testsuite/tests/numeric/should_run/T7014.primops | 4 ++--
+ testsuite/tests/simplCore/should_compile/Makefile | 4 ++--
+ 6 files changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/testsuite/tests/cabal/cabal01/Makefile b/testsuite/tests/cabal/cabal01/Makefile
+index 004e4c75..6ec499c9 100644
+--- a/testsuite/tests/cabal/cabal01/Makefile
++++ b/testsuite/tests/cabal/cabal01/Makefile
+@@ -5,7 +5,7 @@ include $(TOP)/mk/test.mk
+ # Find all the env variables starting with CI_ to unset them.
+ # Otherwise, we might run into environment length limitations on Windows.
+ # (See `xargs --show-limits`.)
+-VARS_TO_UNSET := $(shell env | grep ^CI_ | egrep -o '^[^=]+')
++VARS_TO_UNSET := $(shell env | grep ^CI_ | grep -E -o '^[^=]+')
+ unexport $(VARS_TO_UNSET)
+
+ clean:
+diff --git a/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile b/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
+index fd64d23f..cb669db3 100644
+--- a/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
++++ b/testsuite/tests/ghci/should_run/GHCiPrimCall/Makefile
+@@ -1,3 +1,7 @@
++TOP=../../../..
++include $(TOP)/mk/boilerplate.mk
++include $(TOP)/mk/test.mk
++
+ .PHONY: GHCiPrimCall
+ GHCiPrimCall:
+ '$(TEST_HC)' $(TEST_HC_OPTS) -fPIC -v0 -c GHCiPrimCall_cmm.cmm
+diff --git a/testsuite/tests/haddock/perf/Makefile b/testsuite/tests/haddock/perf/Makefile
+index b67b52f2..ff2f7ebb 100644
+--- a/testsuite/tests/haddock/perf/Makefile
++++ b/testsuite/tests/haddock/perf/Makefile
+@@ -4,12 +4,12 @@ include $(TOP)/mk/test.mk
+
+ # We accept a 5% increase in parser allocations due to -haddock
+ haddock_parser_perf :
+- WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Parser | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
+- WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Parser | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Parser | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Parser | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
+ awk "BEGIN { ratio = ($$WithHaddock / $$WithoutHaddock); if (ratio > 1.05) {print \"-haddock allocation ratio too high:\", ratio; exit 1} else {exit 0} }"
+
+ # Similarly for the renamer
+ haddock_renamer_perf :
+- WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Renamer | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
+- WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Renamer | egrep -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithoutHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -O0 Fold.hs 2>/dev/null | grep Renamer | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
++ WithHaddock=$(shell '$(TEST_HC)' $(TEST_HC_OPTS) -fno-code -fforce-recomp -Wno-all -ddump-timings -haddock -O0 Fold.hs 2>/dev/null | grep Renamer | grep -E -o 'alloc=[0-9]+' | cut -c7- ) ; \
+ awk "BEGIN { ratio = ($$WithHaddock / $$WithoutHaddock); if (ratio > 1.05) {print \"-haddock allocation ratio too high:\", ratio; exit 1} else {exit 0} }"
+diff --git a/testsuite/tests/hsc2hs/Makefile b/testsuite/tests/hsc2hs/Makefile
+index d0b2d249..95b011c8 100644
+--- a/testsuite/tests/hsc2hs/Makefile
++++ b/testsuite/tests/hsc2hs/Makefile
+@@ -52,9 +52,9 @@ T11004:
+ T12504:
+ '$(HSC2HS)' $(HSC2HS_OPTS) T12504/path/to/$@.hsc
+ ifeq "$(WINDOWS)" "YES"
+- grep '{-# LINE 1 \"T12504\\\\path\\\\to\\\\$@\.hsc\" #-}' T12504/path/to/$@.hs
++ grep '{-# LINE 1 "T12504\\\\path\\\\to\\\\$@\.hsc" #-}' T12504/path/to/$@.hs
+ else
+- grep '{-# LINE 1 \"T12504/path/to/$@\.hsc\" #-}' T12504/path/to/$@.hs
++ grep '{-# LINE 1 "T12504/path/to/$@\.hsc" #-}' T12504/path/to/$@.hs
+ endif
+
+ .PHONY: T15758
+diff --git a/testsuite/tests/numeric/should_run/T7014.primops b/testsuite/tests/numeric/should_run/T7014.primops
+index 3243666d..c807fb45 100644
+--- a/testsuite/tests/numeric/should_run/T7014.primops
++++ b/testsuite/tests/numeric/should_run/T7014.primops
+@@ -1,8 +1,8 @@
+ and#
+ or#
+ uncheckedShift.*#
+-\+#
+-\-#
+++#
++-#
+ \*#
+ quotInt#
+ remInt#
+diff --git a/testsuite/tests/simplCore/should_compile/Makefile b/testsuite/tests/simplCore/should_compile/Makefile
+index b5041800..c56e04f6 100644
+--- a/testsuite/tests/simplCore/should_compile/Makefile
++++ b/testsuite/tests/simplCore/should_compile/Makefile
+@@ -66,7 +66,7 @@ T13367:
+
+ T8832:
+ $(RM) -f T8832.o T8832.hi
+- '$(TEST_HC)' $(TEST_HC_OPTS) -O -c -ddump-simpl -dsuppress-ticks T8832.hs | egrep '^[a-zA-Z0-9]+ ='
++ '$(TEST_HC)' $(TEST_HC_OPTS) -O -c -ddump-simpl -dsuppress-ticks T8832.hs | grep -E '^[a-zA-Z0-9]+ ='
+
+ T12603:
+ $(RM) -f T12603.o T12603.hi
+@@ -259,7 +259,7 @@ str-rules:
+ # g should have been collapsed into one defininition by CSE.
+ .PHONY: T13340
+ T13340:
+- '$(TEST_HC)' $(TEST_HC_OPTS) -c -O T13340.hs -ddump-simpl -dsuppress-all | grep -c '\+#'
++ '$(TEST_HC)' $(TEST_HC_OPTS) -c -O T13340.hs -ddump-simpl -dsuppress-all | grep -c '+#'
+
+
+ # We expect to see all dictionaries specialized away.
+--
+2.41.0
+
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 01/24] gnu: ghc: More robust build with binutils ≥ 2.39.
(address . 67921@debbugs.gnu.org)
20241031125127.14080-2-ngraves@ngraves.fr
Future versions of ghc will have more occurrences of the execstack
warning. Instead of modifying the tests for each new version, a more
robust approach is to explicitely make ghc pass -Wl,-z,noexecstack to
its ld invocations during all tests. This is what this patch does.

* gnu/packages/patches/ghc-testsuite-recomp015-execstack.patch: New patches.
* gnu/local.mk (disp_path_DATA): Deregister patch.
* gnu/packages/haskell.scm (ghc-8.6, ghc-8.8, ghc-9.0, ghc-9.2,
ghc-9.4): Deregister patch use. Add phase 'fix-tests-with-binutils@2.39.
---
gnu/local.mk | 1 -
gnu/packages/haskell.scm | 24 ++++++++++---------
.../ghc-testsuite-recomp015-execstack.patch | 10 --------
3 files changed, 13 insertions(+), 22 deletions(-)
delete mode 100644 gnu/packages/patches/ghc-testsuite-recomp015-execstack.patch

Toggle diff (100 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index b0b3d2ea2b..2292577c86 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1381,7 +1381,6 @@ dist_patch_DATA = \
%D%/packages/patches/ghc-basement-fix-32-bit.patch \
%D%/packages/patches/ghc-testsuite-dlopen-pie.patch \
%D%/packages/patches/ghc-testsuite-grep-compat.patch \
- %D%/packages/patches/ghc-testsuite-recomp015-execstack.patch \
%D%/packages/patches/ghc-aeson-encodeDouble.patch \
%D%/packages/patches/ghc-basement-fix-32bit.patch \
%D%/packages/patches/ghc-bytestring-handle-ghc9.patch \
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 10803f5afe..c580c660f1 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1174,8 +1174,7 @@ (define-public ghc-8.6
"https://www.haskell.org/ghc/dist/"
version "/" name "-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
- "ghc-testsuite-grep-compat.patch"
- "ghc-testsuite-recomp015-execstack.patch"))
+ "ghc-testsuite-grep-compat.patch"))
(sha256
(base32
"0pw9r91g2np3i806g2f4f8z4jfdd7mx226cmdizk4swa7av1qf91"))
@@ -1229,7 +1228,14 @@ (define-public ghc-8.6
(substitute* "libraries/unix/tests/all.T"
(("^test\\('T8108'") "# guix skipped: test('T8108'"))
(substitute* "libraries/unix/tests/libposix/all.T"
- (("^test\\('posix010'") "# guix skipped: test('posix010'"))))))))
+ (("^test\\('posix010'") "# guix skipped: test('posix010'"))))
+ ;; binutils@2.39 warns for execstack deprecation by default, causing
+ ;; some tests to fail ; explicitely disable during linking instead.
+ (add-after 'unpack-testsuite 'fix-tests-with-binutils@2.39
+ (lambda _
+ (substitute* "testsuite/mk/test.mk"
+ (("^TEST_HC_OPTS = ")
+ "TEST_HC_OPTS = -optl -Wl,-z,noexecstack "))))))))
(native-search-paths (list (search-path-specification
(variable "GHC_PACKAGE_PATH")
(files (list
@@ -1257,8 +1263,7 @@ (define-public ghc-8.8
"https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
- "ghc-testsuite-grep-compat.patch"
- "ghc-testsuite-recomp015-execstack.patch"))
+ "ghc-testsuite-grep-compat.patch"))
(sha256
(base32
"0c55pj2820q26rikhpf636sn4mjgqsxjrl94vsywrh79dxp3k14z"))
@@ -1317,8 +1322,7 @@ (define-public ghc-8.10
"https://www.haskell.org/ghc/dist/"
version "/ghc-" version "-testsuite.tar.xz"))
(patches (search-patches "ghc-testsuite-dlopen-pie.patch"
- "ghc-testsuite-grep-compat.patch"
- "ghc-testsuite-recomp015-execstack.patch"))
+ "ghc-testsuite-grep-compat.patch"))
(sha256
(base32
"1zl25gg6bpx5601k8h3cqnns1xfc0nqgwnh8jvn2s65ra3f2g1nz"))
@@ -1415,8 +1419,7 @@ (define-public ghc-9.0
(sha256
(base32
"1m5fzhr4gjn9ni8gxx7ag3fkbw1rspjzgv39mnfb0nkm5mw70v3s"))
- (patches (search-patches "ghc-9.2-grep-warnings.patch"
- "ghc-testsuite-recomp015-execstack.patch"))
+ (patches (search-patches "ghc-9.2-grep-warnings.patch"))
(modules '((guix build utils)))
(snippet
;; collections.Iterable was moved to collections.abc in Python 3.10.
@@ -1481,8 +1484,7 @@ (define-public ghc-9.2
(sha256
(base32
"0cmmwhcwv9fjzvmgjj85d354858qqbmqfzaz5160xqj4yl9zk225"))
- (patches (search-patches "ghc-9.2-grep-warnings.patch"
- "ghc-testsuite-recomp015-execstack.patch"))))
+ (patches (search-patches "ghc-9.2-grep-warnings.patch"))))
,@(filter (match-lambda
(("ghc-bootstrap" . _) #f)
(("ghc-testsuite" . _) #f)
diff --git a/gnu/packages/patches/ghc-testsuite-recomp015-execstack.patch b/gnu/packages/patches/ghc-testsuite-recomp015-execstack.patch
deleted file mode 100644
index cdaf5b180d..0000000000
--- a/gnu/packages/patches/ghc-testsuite-recomp015-execstack.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/testsuite/tests/driver/recomp015/Makefile 2024-01-13 16:22:42.643106725 +0100
-+++ b/testsuite/tests/driver/recomp015/Makefile 2024-01-13 16:23:18.406867917 +0100
-@@ -26,6 +26,7 @@
- # number of sections)
- '$(TEST_HC)' $(TEST_HC_OPTS) Generate.hs
- ./Generate > ManySections.s
-+ echo '.section .note.GNU-stack,"",@progbits' > ManySections.s
- echo 'main = putStrLn "Running main..."' > Main.hs
- '$(TEST_HC)' $(TEST_HC_OPTS) -c ManySections.s
- '$(TEST_HC)' $(TEST_HC_OPTS) --make -O Main.hs ManySections.o
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 03/24] gnu: Add ghc-js-flot-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-4-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-js-flot-bootstrap-for-9.6): New
variable.

Change-Id: Ie01768c263084a3aa38b7120de832913a80fc99a
---
gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 4e2875cffa..05be1c019a 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1608,4 +1608,34 @@ (define-public ghc-9.4
(file-pattern ".*\\.conf\\.d$")
(file-type 'directory)))))))
+;;; Bootstrap packages for hadrian, the new GHC build system
+
+(define ghc-bootstrap-for-9.6 ghc-9.4)
+
+(define ghc-js-flot-bootstrap-for-9.6
+ (package
+ (name "ghc-js-flot-bootstrap")
+ (version "0.8.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (hackage-uri "js-flot" version))
+ (sha256
+ (base32
+ "0yjyzqh3qzhy5h3nql1fckw0gcfb0f4wj9pm85nafpfqp2kg58hv"))))
+ (build-system haskell-build-system)
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (properties '((upstream-name . "js-flot")))
+ (home-page "https://github.com/ndmitchell/js-flot")
+ (synopsis "Obtain minified flot code")
+ (description "This package bundles the minified
+@url{http://www.flotcharts.org/, Flot} code (a jQuery plotting library)
+into a Haskell package, so it can be depended upon by Cabal packages.
+The first three components of the version number match the upstream flot
+version. The package is designed to meet the redistribution
+requirements of downstream users (e.g. Debian).")
+ (license license:expat)))
+
;;; haskell.scm ends here
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 04/24] gnu: Add ghc-clock-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-5-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-clock-bootstrap-for-9.6): New
variable.

Change-Id: I78d0997ee749a0c1725490c99308dcd1dc5bfbe5
---
gnu/packages/haskell.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (32 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 05be1c019a..8cfbeed186 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1638,4 +1638,25 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-clock-bootstrap-for-9.6
+ (package
+ (name "ghc-clock-bootstrap")
+ (version "0.8.3")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "clock" version))
+ (sha256
+ (base32
+ "1l850pf1dxjf3i15wc47d64gzkpzgvw0bq13fd8zvklq9kdyap44"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "clock")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/corsis/clock")
+ (synopsis "High-resolution clock for Haskell")
+ (description
+ "A package for convenient access to high-resolution clock and
+timer functions of different operating systems via a unified API.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 05/24] gnu: Add ghc-extra-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-6-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-extra-bootstrap-for-9.6): New
variable.

Change-Id: I73f1bd1a821bb01fc9d081c78313e583ce8fab6b
---
gnu/packages/haskell.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 8cfbeed186..22fa3614ea 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1638,6 +1638,30 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-extra-bootstrap-for-9.6
+ (package
+ (name "ghc-extra-bootstrap")
+ (version "1.7.12")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "extra" version))
+ (sha256
+ (base32
+ "0g5h8fp0nq4k9asiknw0bhvb10zpfnsixfp0n3xz0rc83pnajwg5"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "extra")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (inputs (list ghc-clock-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/extra#readme")
+ (synopsis "Extra Haskell functions")
+ (description
+ "This library provides extra functions for the standard
+Haskell libraries. Most functions are simple additions, filling out missing
+functionality. A few functions are available in later versions of GHC, but
+this package makes them available back to GHC 7.2.")
+ (license license:bsd-3)))
+
(define ghc-clock-bootstrap-for-9.6
(package
(name "ghc-clock-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 06/24] gnu: Add ghc-hashable-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-7-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-hashable-bootstrap-for-9.6): New
variable.

Change-Id: Id96f7df459a3db56747cd4204b32b7ad253139a4
---
gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 22fa3614ea..c1a1fa190c 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1683,4 +1683,27 @@ (define ghc-clock-bootstrap-for-9.6
timer functions of different operating systems via a unified API.")
(license license:bsd-3)))
+(define ghc-hashable-bootstrap-for-9.6
+ (package
+ (name "ghc-hashable-bootstrap")
+ (version "1.4.1.0")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "hashable" version))
+ (sha256
+ (base32
+ "11sycr73821amdz8g0k8c97igi4z7f9xdvgaxlkxhsp6h310bcz1"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "hashable")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (home-page "http://github.com/haskell-unordered-containers/hashable")
+ (synopsis "Class for types that can be converted to a hash value")
+ (description
+ "This package defines a class, @code{Hashable}, for types that can be
+converted to a hash value. This class exists for the benefit of hashing-based
+data structures. The package provides instances for basic types and a way to
+combine hash values.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 07/24] gnu: Add ghc-splitmix-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-8-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-splitmix-bootstrap-for-9.6): New
variable.

Change-Id: I65584aa893975015dc44491b120636844af801de
---
gnu/packages/haskell.scm | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index c1a1fa190c..f93e3bf6c7 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1706,4 +1706,36 @@ (define ghc-hashable-bootstrap-for-9.6
combine hash values.")
(license license:bsd-3)))
+(define ghc-splitmix-bootstrap-for-9.6
+ (package
+ (name "ghc-splitmix-bootstrap")
+ (version "0.1.0.5")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "splitmix" version))
+ (sha256
+ (base32
+ "00ihw7vji8ydik7f5lk9iwj21j829lpl22wa4nqz2igg26b7mw4x"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "splitmix")))
+ (arguments
+ `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (home-page "http://hackage.haskell.org/package/splitmix")
+ (synopsis "Fast and splittable pseudorandom number generator")
+ (description
+ "This package provides a Pure Haskell implementation of the
+SplitMix pseudorandom number generator. SplitMix is a \"splittable\"
+pseudorandom number generator that is quite fast: 9 64-bit
+arithmetic/logical operations per 64 bits generated. SplitMix is tested
+with two standard statistical test suites (DieHarder and TestU01, this
+implementation only using the former) and it appears to be adequate for
+\"everyday\" use, such as Monte Carlo algorithms and randomized data
+structures where speed is important. In particular, it @strong{should not
+be used for cryptographic or security applications}, because generated
+sequences of pseudorandom values are too predictable (the mixing functions
+are easily inverted, and two successive outputs suffice to reconstruct the
+internal state).")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 08/24] gnu: Add ghc-random-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-9-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-random-bootstrap-for-9.6): New variable.

Change-Id: If1a39b27687a63a63dab5aa4c1a366a8ba78196a
---
gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index f93e3bf6c7..2d50113d64 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1738,4 +1738,26 @@ (define ghc-splitmix-bootstrap-for-9.6
internal state).")
(license license:bsd-3)))
+(define ghc-random-bootstrap-for-9.6
+ (package
+ (name "ghc-random-bootstrap")
+ (version "1.2.1.1")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "random" version))
+ (sha256
+ (base32
+ "0xlv1k4sj87akwvj54kq4nrfkzi6qcz1941bf78pnkbaxpvp44iy"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "random")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (inputs (list ghc-splitmix-bootstrap-for-9.6))
+ (home-page "http://hackage.haskell.org/package/random")
+ (synopsis "Random number library")
+ (description
+ "This package provides a basic random number generation
+library, including the ability to split random number generators.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 09/24] gnu: Add ghc-primitive-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-10-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-primitive-bootstrap-for-9.6): New
variable.

Change-Id: I393ff5f57862de0c6da118a803ed6f898adcf0cb
---
gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 2d50113d64..a241e9253f 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1760,4 +1760,27 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-primitive-bootstrap-for-9.6
+ (package
+ (name "ghc-primitive-bootstrap")
+ (version "0.8.0.0")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "primitive" version))
+ (sha256
+ (base32
+ "0pwr5g3bra5m2zjm14pj98klqj2qrjcfasgd3rcrp7vq98dw4lsm"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "primitive")))
+ (arguments
+ `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6
+ #:cabal-revision ("1"
+ "0w1nf0rabgyk5q7ccw7va1mj6k50lswvikhi6vr2myb1dvx4bzyh")))
+ (home-page "https://github.com/haskell/primitive")
+ (synopsis "Primitive memory-related operations")
+ (description
+ "This package provides various primitive memory-related operations.")
+ (license license:bsd-3)))
+
;;; haskell.scm ends here
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 10/24] gnu: Add ghc-js-jquery-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-11-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-js-jquery-bootstrap-for-9.6): New
variable.

Change-Id: I579efb04ad665f0938e24a9656f959abdd27905e
---
gnu/packages/haskell.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index a241e9253f..fbca58286c 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1760,6 +1760,32 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-js-jquery-bootstrap-for-9.6
+ (package
+ (name "ghc-js-jquery-bootstrap")
+ (version "3.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri
+ (hackage-uri "js-jquery" version))
+ (sha256
+ (base32
+ "16q68jzbs7kp07dnq8cprdcc8fd41rim38039vg0w4x11lgniq70"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "js-jquery")))
+ (arguments `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/js-jquery")
+ (synopsis "Obtain minified jQuery code")
+ (description "This package bundles the minified
+@url{http://jquery.com/, jQuery} code into a Haskell package, so it can
+be depended upon by Cabal packages. The first three components of the
+version number match the upstream jQuery version. The package is
+designed to meet the redistribution requirements of downstream
+users (e.g. Debian).")
+ (license license:expat)))
+
(define ghc-primitive-bootstrap-for-9.6
(package
(name "ghc-primitive-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 11/24] gnu: Add ghc-utf8-string-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-12-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-utf8-string-bootstrap-for-9.6): New
variable.

Change-Id: Iea2ba4d3202195a54b71037882352cdac9415901
---
gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index fbca58286c..c5224aee1e 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1760,6 +1760,28 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-utf8-string-bootstrap-for-9.6
+ (package
+ (name "ghc-utf8-string-bootstrap")
+ (version "1.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "utf8-string" version))
+ (sha256
+ (base32 "16mh36ffva9rh6k37bi1046pgpj14h0cnmj1iir700v0lynxwj7f"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "utf8-string")))
+ (arguments `(#:tests? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/glguy/utf8-string/")
+ (synopsis "Support for reading and writing UTF8 Strings")
+ (description
+ "A UTF8 layer for Strings. The utf8-string package provides operations
+for encoding UTF8 strings to Word8 lists and back, and for reading and writing
+UTF8 without truncation.")
+ (license license:bsd-3)))
+
(define ghc-js-jquery-bootstrap-for-9.6
(package
(name "ghc-js-jquery-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 12/24] gnu: Add ghc-heaps-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-13-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-heaps-bootstrap-for-9.6): New variable.

Change-Id: Ib04a47d3eacba415fd44cd532c18c02f8d9cf40b
---
gnu/packages/haskell.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index c5224aee1e..ab770be456 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1760,6 +1760,27 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-heaps-bootstrap-for-9.6
+ (package
+ (name "ghc-heaps-bootstrap")
+ (version "0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "heaps" version))
+ (sha256
+ (base32 "1zbw0qrlnhb42v04phzwmizbpwg21wnpl7p4fbr9xsasp7w9scl9"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "heaps")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (home-page "http://github.com/ekmett/heaps/")
+ (synopsis "Asymptotically optimal Brodal/Okasaki heaps.")
+ (description
+ "Asymptotically optimal Brodal\\/Okasaki bootstrapped skew-binomial heaps from the
+paper <http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.973 \"Optimal
+Purely Functional Priority Queues\">, extended with a Foldable interface.")
+ (license license:bsd-3)))
+
(define ghc-utf8-string-bootstrap-for-9.6
(package
(name "ghc-utf8-string-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 14/24] gnu: Add ghc-nats-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-15-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-nats-bootstrap-for-9.6): New variable.

Change-Id: I57351e88ba0bc52e7fd5fefc5c3006f63925fd86
---
gnu/packages/haskell.scm | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)

Toggle diff (35 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 6c2fd8bdd5..a7e8cc93ef 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1760,6 +1760,28 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-nats-bootstrap-for-9.6
+ (package
+ (name "ghc-nats-bootstrap")
+ (version "1.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "nats" version))
+ (sha256
+ (base32
+ "1v40drmhixck3pz3mdfghamh73l4rp71mzcviipv1y8jhrfxilmr"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "nats")))
+ (arguments `(#:haddock? #f
+ #:haskell ,ghc-bootstrap-for-9.6))
+ (inputs
+ (list ghc-hashable-bootstrap-for-9.6))
+ (home-page "https://hackage.haskell.org/package/nats")
+ (synopsis "Natural numbers")
+ (description "This library provides the natural numbers for Haskell.")
+ (license license:bsd-3)))
+
(define ghc-js-dgtable-bootstrap-for-9.6
(package
(name "ghc-js-dgtable-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 13/24] gnu: Add ghc-js-dgtable-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-14-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-js-dgtable-bootstrap-for-9.6): New
variable.

Change-Id: Ic7e9e6c584e4fb8830ec55288759796271822964
---
gnu/packages/haskell.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index ab770be456..6c2fd8bdd5 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1760,6 +1760,29 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-js-dgtable-bootstrap-for-9.6
+ (package
+ (name "ghc-js-dgtable-bootstrap")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "js-dgtable" version))
+ (sha256
+ (base32 "1b10kx703kbkb5q1ggdpqcrxqjb33kh24khk21rb30w0xrdxd3g2"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "js-dgtable")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/js-dgtable#readme")
+ (synopsis "Obtain minified jquery.dgtable code")
+ (description
+ "This package bundles the minified <https://github.com/danielgindi/jquery.dgtable
+jquery.dgtable> code into a Haskell package, so it can be depended upon by Cabal
+packages. The first three components of the version number match the upstream
+jquery.dgtable version. The package is designed to meet the redistribution
+requirements of downstream users (e.g. Debian).")
+ (license license:expat)))
+
(define ghc-heaps-bootstrap-for-9.6
(package
(name "ghc-heaps-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 15/24] gnu: Add ghc-tagged-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-16-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-tagged-bootstrap-for-9.6): New variable.

Change-Id: Ifd3996a62cfa33d155315807d4ead706f7e64452
---
gnu/packages/haskell.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index a7e8cc93ef..d59f9d7133 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1760,6 +1760,26 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-tagged-bootstrap-for-9.6
+ (package
+ (name "ghc-tagged-bootstrap")
+ (version "0.8.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "tagged" version))
+ (sha256
+ (base32
+ "0qdr1kv1zn5iamnwyn5nf0ywxs4wv779k0gpw94kyqx14ynfw534"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "tagged")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (home-page "https://hackage.haskell.org/package/tagged")
+ (synopsis "Haskell phantom types to avoid passing dummy arguments")
+ (description "This library provides phantom types for Haskell 98, to avoid
+having to unsafely pass dummy arguments.")
+ (license license:bsd-3)))
+
(define ghc-nats-bootstrap-for-9.6
(package
(name "ghc-nats-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 16/24] gnu: Add ghc-semigroups-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-17-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-semigroups-bootstrap-for-9.6): New
variable.

Change-Id: Ic676fed80bea3805f8e70cd958c3d7523226053d
---
gnu/packages/haskell.scm | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index d59f9d7133..ca82f51fd0 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1760,6 +1760,36 @@ (define ghc-random-bootstrap-for-9.6
library, including the ability to split random number generators.")
(license license:bsd-3)))
+(define ghc-semigroups-bootstrap-for-9.6
+ (package
+ (name "ghc-semigroups-bootstrap")
+ (version "0.20")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "semigroups" version))
+ (sha256
+ (base32
+ "1qbk6scp1rzb69dy8mz26p6az5vi16g2lzwmwnfshh3br4rjwbch"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "semigroups")))
+ (arguments (list #:haskell ghc-bootstrap-for-9.6))
+ (inputs
+ (list ghc-nats-bootstrap-for-9.6
+ ghc-tagged-bootstrap-for-9.6
+ ghc-unordered-containers-bootstrap-for-9.6
+ ghc-hashable-bootstrap-for-9.6))
+ (home-page "http://github.com/ekmett/semigroups/")
+ (synopsis "Semigroup operations for Haskell")
+ (description
+ "This package provides semigroups for Haskell. In
+mathematics, a semigroup is an algebraic structure consisting of a set
+together with an associative binary operation. A semigroup generalizes a
+monoid in that there might not exist an identity element. It
+also (originally) generalized a group (a monoid with all inverses) to a type
+where every element did not have to have an inverse, thus the name
+semigroup.")
+ (license license:bsd-3)))
+
(define ghc-tagged-bootstrap-for-9.6
(package
(name "ghc-tagged-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 17/24] gnu: Add ghc-base16-bytestring-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-18-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-base16-bytestring-bootstrap-for-9.6):
New variable.

Change-Id: I7c20bdfd7600fb2bed5de497e02acda74b242fec
---
gnu/packages/haskell.scm | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)

Toggle diff (34 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index ca82f51fd0..5feef5992c 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1638,6 +1638,27 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-base16-bytestring-bootstrap-for-9.6
+ (package
+ (name "ghc-base16-bytestring-bootstrap")
+ (version "1.0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "base16-bytestring" version))
+ (sha256
+ (base32
+ "1167f9jaivnabn6kg2gc421ac9njb67fr4v0adbj3qph7qa92nhx"))))
+ (build-system haskell-build-system)
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (properties '((upstream-name . "base16-bytestring")))
+ (home-page "http://github.com/haskell/base16-bytestring")
+ (synopsis "Fast base16 (hex) encoding and decoding for ByteStrings")
+ (description
+ "This package provides a Haskell library for working with base16-encoded
+data quickly and efficiently, using the ByteString type.")
+ (license license:bsd-3)))
+
(define ghc-extra-bootstrap-for-9.6
(package
(name "ghc-extra-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 18/24] gnu: Add ghc-cryptohash-sha256-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-19-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-cryptohash-sha256-bootstrap-for-9.6):
New variable.

Change-Id: I80dd73de554160f4dc904c01ea292a886f51e970
---
gnu/packages/haskell.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 5feef5992c..c0d2ab8c1d 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1638,6 +1638,35 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-cryptohash-sha256-bootstrap-for-9.6
+ (package
+ (name "ghc-cryptohash-sha256-bootstrap")
+ (version "0.11.102.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "cryptohash-sha256" version))
+ (sha256
+ (base32
+ "1xkb7iqplbw4fy1122p79xf1zcb7k44rl0wmfj1q06l7cdqxr9vk"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "cryptohash-sha256")))
+ (arguments
+ `(#:cabal-revision
+ ("1" "1hyzqv30rpj920ddnr0zypyjjlh52vyp2d140pn2byayj820rkgs")
+ #:haskell ,ghc-bootstrap-for-9.6
+ #:tests? #f))
+ (home-page "https://github.com/hvr/cryptohash-sha1")
+ (synopsis "SHA-256 implementation for Haskell")
+ (description "This Haskell package provides an incremental and
+one-pass, pure API to the @uref{https://en.wikipedia.org/wiki/SHA-2,
+SHA-256 cryptographic hash algorithm}, with performance close to the
+fastest implementations available in other languages.
+
+The implementation is made in C with a haskell FFI wrapper that hides
+the C implementation.")
+ (license license:bsd-3)))
+
(define ghc-base16-bytestring-bootstrap-for-9.6
(package
(name "ghc-base16-bytestring-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 19/24] gnu: Add ghc-unordered-containers-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-20-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-unordered-containers-bootstrap-for-9.6):
New variable.

Change-Id: I190d7e765d30b469290d26109478fbe97dfbe3ae
---
gnu/packages/haskell.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index c0d2ab8c1d..d63dde6319 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1638,6 +1638,33 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-unordered-containers-bootstrap-for-9.6
+ (package
+ (name "ghc-unordered-containers-bootstrap")
+ (version "0.2.19.1")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "unordered-containers" version))
+ (sha256
+ (base32
+ "1li8s6qw8mgv6a7011y7hg0cn2nllv2g9sr9c1xb48nmw32vw9qv"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "unordered-containers")))
+ (inputs (list ghc-hashable-bootstrap-for-9.6))
+ (arguments
+ `(#:cabal-revision ("3"
+ "1p9a2mvfbfz2d4cyr16b03bxvb6c4yj7k1ch601xwq1rkr1cla0w")
+ #:haskell ,ghc-bootstrap-for-9.6
+ #:tests? #f))
+ (home-page
+ "https://github.com/haskell-unordered-containers/unordered-containers")
+ (synopsis "Efficient hashing-based container types")
+ (description
+ "Efficient hashing-based container types. The containers have been
+optimized for performance critical use, both in terms of large data quantities
+and high speed.")
+ (license license:bsd-3)))
+
(define ghc-cryptohash-sha256-bootstrap-for-9.6
(package
(name "ghc-cryptohash-sha256-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 20/24] gnu: Add ghc-filepattern-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-21-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-filepattern-bootstrap-for-9.6): New
variable.

Change-Id: I3778f85d7a14474445295ebd6bbb1f4bfbe4f6d5
---
gnu/packages/haskell.scm | 41 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (54 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index d63dde6319..0ffc4df728 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1638,6 +1638,47 @@ (define ghc-js-flot-bootstrap-for-9.6
requirements of downstream users (e.g. Debian).")
(license license:expat)))
+(define ghc-filepattern-bootstrap-for-9.6
+ (package
+ (name "ghc-filepattern-bootstrap")
+ (version "0.1.3")
+ (source (origin
+ (method url-fetch)
+ (uri (hackage-uri "filepattern" version))
+ (sha256
+ (base32
+ "0dlnwnwhsfdkwm69z66wj5d2x9n3la55glq4fsn5rxm2kr1msi6c"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "filepattern")))
+ (arguments (list #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6))
+ (inputs (list ghc-extra-bootstrap-for-9.6))
+ (home-page "https://github.com/ndmitchell/filepattern#readme")
+ (synopsis "File path glob-like matching")
+ (description
+ "This package provides Haskell library for matching files using patterns
+such as @code{\\\"src\\/**\\/*.png\\\"} for all @@file{.png} files recursively
+under the @@file{src} directory.
+
+Some of its features include:
+
+@itemize
+@item All matching is O(n).
+
+@item Most functions pre-compute some information given only one argument.
+
+@item Uses @code{match} and @code{substitute} to extract suitable strings from
+the @code{*} and @code{**} matches, and substitutes them back into other
+patterns.
+
+@item Uses @code{step} and @code{matchMany} to perform bulk matching of many
+patterns against many paths simultaneously.
+
+@item Uses @code{System.FilePattern.Directory} to perform optimised directory
+traverals using patterns.
+@end itemize")
+ (license license:bsd-3)))
+
(define ghc-unordered-containers-bootstrap-for-9.6
(package
(name "ghc-unordered-containers-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 21/24] gnu: Add ghc-shake-bootstrap-for-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-22-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-shake-bootstrap-for-9.6): New variable.

Change-Id: I195bc5f779709ef7b2ccefe2271402ef342bc0b8
---
gnu/packages/haskell.scm | 56 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 56 insertions(+)

Toggle diff (69 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 0ffc4df728..4bd1ef150b 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1612,6 +1612,62 @@ (define-public ghc-9.4
(define ghc-bootstrap-for-9.6 ghc-9.4)
+(define ghc-shake-bootstrap-for-9.6
+ (package
+ (name "ghc-shake-bootstrap")
+ (version "0.19.7")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (hackage-uri "shake" version))
+ (sha256
+ (base32 "1lcr6q53qwm308bny6gfawcjhxsmalqi3dnwckam02zp2apmcaim"))))
+ (build-system haskell-build-system)
+ (properties '((upstream-name . "shake")))
+ (inputs (list bash-minimal
+ ghc-extra-bootstrap-for-9.6
+ ghc-filepattern-bootstrap-for-9.6
+ ghc-hashable-bootstrap-for-9.6
+ ghc-heaps-bootstrap-for-9.6
+ ghc-js-dgtable-bootstrap-for-9.6
+ ghc-js-flot-bootstrap-for-9.6
+ ghc-js-jquery-bootstrap-for-9.6
+ ghc-primitive-bootstrap-for-9.6
+ ghc-random-bootstrap-for-9.6
+ ghc-unordered-containers-bootstrap-for-9.6
+ ghc-utf8-string-bootstrap-for-9.6
+ ghc-semigroups-bootstrap-for-9.6))
+ (arguments
+ (list #:cabal-revision '("1"
+ "1hz57kw5pp5cpbicbi7x8sz8c6qy58dzyiljz9b9f2r1rr683d9w")
+ #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'patch-source-shebangs 'patch-/bin/sh
+ (lambda _
+ (for-each
+ (lambda (file)
+ (substitute*
+ file
+ (("/bin/sh")
+ #$(file-append (this-package-input "bash-minimal")
+ "/bin/sh"))))
+ '("src/Development/Shake/Command.hs")))))))
+ (home-page "https://shakebuild.com")
+ (synopsis
+ "Build system library, like Make, but more accurate dependencies.")
+ (description
+ "Shake is a Haskell library for writing build systems - designed as a
+replacement for @@make@@. To use Shake the user writes a Haskell program that
+imports \"Development.Shake\", defines some build rules, and calls the
+Development.Shake.@code{shakeArgs} function. However, as build systems get more
+complex, Shake is able to take advantage of the excellent abstraction facilities
+offered by Haskell and easily support much larger projects. Shake also provides more
+accurate dependency tracking, including seamless support for generated files, and
+dependencies on system information (e.g. compiler version).")
+ (license license:bsd-3)))
+
(define ghc-js-flot-bootstrap-for-9.6
(package
(name "ghc-js-flot-bootstrap")
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 22/24] gnu: Add hadrian-for-ghc-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-23-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (hadrian-for-ghc-9.6): New variable.

Change-Id: I4205c888afa7b03b4b1622a3af7d1d538fa5c9b1
---
gnu/packages/haskell.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 4bd1ef150b..256fe84c89 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -2121,4 +2121,44 @@ (define ghc-primitive-bootstrap-for-9.6
"This package provides various primitive memory-related operations.")
(license license:bsd-3)))
+(define hadrian-for-ghc-9.6
+ (package
+ (name "hadrian")
+ (version "9.6.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.haskell.org/ghc/dist/" version
+ "/ghc-" version "-src.tar.xz"))
+ (sha256
+ (base32
+ "1h6lpx8kd4xycjwb8iv2rgnz23kwq5b0qp4bhvczsx3in2w2bgqh"))))
+ (build-system haskell-build-system)
+ (inputs
+ (list ghc-base16-bytestring-bootstrap-for-9.6
+ ghc-cryptohash-sha256-bootstrap-for-9.6
+ ghc-extra-bootstrap-for-9.6
+ ghc-shake-bootstrap-for-9.6
+ ghc-unordered-containers-bootstrap-for-9.6
+ bash-minimal))
+ (arguments
+ (list #:configure-flags ''("--flags=-selftest")
+ #:tests? #f
+ #:haskell ghc-bootstrap-for-9.6
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'cd-to-hadrian
+ (lambda _
+ (chdir "hadrian")))
+ (add-after 'cd-to-hadrian 'fix-shell-wrappers
+ (lambda _
+ (substitute*
+ "src/Rules/Test.hs"
+ (("\"#!/bin/sh\"")
+ (format #f "\"#!~a/bin/sh\"" #$(this-package-input "bash-minimal")))))))))
+ (home-page "https://gitlab.haskell.org/ghc/ghc/-/tree/master/hadrian")
+ (synopsis "Build system for the Glasgow Haskell Compiler (@code{ghc})")
+ (description "Hadrian is the build system for the Glasgow Haskell Compiler.
+It is based on the Shake library and replaces @{make} in building GHC")
+ (license license:expat)))
+
;;; haskell.scm ends here
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 23/24] gnu: Add ghc-9.6
(address . 67921@debbugs.gnu.org)
20241031125127.14080-24-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc-9.6): New variable.

Change-Id: I6883ed973bdd1d6eaf981605c1bc8f855f850187
---
gnu/packages/haskell.scm | 108 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 107 insertions(+), 1 deletion(-)

Toggle diff (126 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 256fe84c89..239871cfcd 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -72,7 +72,8 @@ (define-module (gnu packages haskell)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (ice-9 match)
- #:use-module (ice-9 regex))
+ #:use-module (ice-9 regex)
+ #:use-module (srfi srfi-26))
(define-public cl-yale-haskell
(let ((commit "85f94c72a16c5f70301dd8db04cde9de2d7dd270")
@@ -2161,4 +2162,109 @@ (define hadrian-for-ghc-9.6
It is based on the Shake library and replaces @{make} in building GHC")
(license license:expat)))
+(define-public ghc-9.6
+ (let ((base ghc-9.4))
+ (package
+ (inherit base)
+ (name "ghc-next")
+ (version "9.6.4")
+ (source (origin
+ (inherit (package-source base))
+ (uri (string-append "https://www.haskell.org/ghc/dist/" version
+ "/ghc-" version "-src.tar.xz"))
+ (sha256
+ (base32
+ "1h6lpx8kd4xycjwb8iv2rgnz23kwq5b0qp4bhvczsx3in2w2bgqh"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments base)
+ ((#:make-flags flags ''())
+ #~(list "-V" "--docs=no-sphinx"))
+ ((#:phases phases '%standard-phases)
+ #~(let* ((run-hadrian (lambda args
+ (apply invoke "hadrian" args))))
+ (modify-phases #$phases
+ (delete 'fix-shell-wrappers)
+ ;; https://gitlab.haskell.org/ghc/ghc/-/issues/22557
+ (add-before 'build 'fix-iserv-rpath
+ (lambda _
+ (mkdir-p "_build")
+ (call-with-output-file
+ "_build/hadrian.settings"
+ (lambda (port)
+ (display
+ (string-append
+ "*.iserv.ghc.link.opts += -optl-Wl,-rpath,"
+ #$output "/lib/ghc-" #$(package-version this-package)
+ "/lib/" #$(or (%current-target-system)
+ (%current-system))
+ "-ghc-" #$(package-version this-package) "/")
+ port)))))
+ (replace 'build
+ (lambda* (#:key (parallel-build? #f) (make-flags '())
+ #:allow-other-keys)
+ (apply run-hadrian
+ `("binary-dist-dir"
+ ,@(if parallel-build?
+ `(,(string-append "-j" (number->string (parallel-job-count))))
+ '())
+ ,@make-flags))))
+ (replace 'check
+ (lambda* (#:key (tests? #t) (parallel-tests? #f) (make-flags '()) #:allow-other-keys)
+ (if tests?
+ (apply run-hadrian
+ `(,@(if parallel-tests?
+ `(,(string-append "-j" (number->string (parallel-job-count))))
+ '())
+ ,@make-flags
+ "test"
+ "--skip-perf"))
+ (format #t "test suite not run~%"))))
+ (replace 'install
+ (lambda* (#:key (make-flags '()) #:allow-other-keys)
+ (apply run-hadrian
+ `("install"
+ ,@make-flags
+ ,(string-append "--prefix=" #$output)))))
+ (add-after 'install 'replace-$pkgroot
+ (lambda _
+ (substitute*
+ (find-files
+ (string-append #$output "/lib/ghc-"
+ #$(package-version this-package)
+ "/lib/package.conf.d/")
+ "^.*\\.conf$")
+ (("\\$\\{pkgroot\\}/")
+ (string-append #$output "/lib/ghc-"
+ #$(package-version this-package)
+ "/lib/"))))))))))
+ (inputs (list bash-minimal gmp ncurses libffi))
+ (native-inputs
+ `(("perl" ,perl)
+ ("python" ,python)
+ ("git" ,git-minimal/pinned)
+ ("which" ,which)
+ ("ghostscript" ,ghostscript)
+ ("autoconf" ,autoconf)
+ ("automake" ,automake)
+
+ ("hadrian" ,hadrian-for-ghc-9.6)
+ ("ghc-bootstrap" ,ghc-bootstrap-for-9.6)
+ ("ghc-alex" ,ghc-alex-bootstrap-for-9.4)
+ ("ghc-happy" ,ghc-happy-bootstrap-for-9.4)
+ ("ghc-testsuite"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.haskell.org/ghc/dist/"
+ version "/ghc-" version "-testsuite.tar.xz"))
+ (sha256
+ (base32
+ "0wwd6d68aia2rmlpki30azz0raf98is472cqljhbzzdzpqpjh4vf"))))))
+ (native-search-paths
+ (list (search-path-specification
+ (variable "GHC_PACKAGE_PATH")
+ (files (list (string-append "lib/ghc-" version)))
+ (file-pattern ".*\\.conf\\.d$")
+ (file-type 'directory)))))))
+
;;; haskell.scm ends here
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
[PATCH v3 24/24] gnu: ghc: Update to version 9.6.4
(address . 67921@debbugs.gnu.org)
20241031125127.14080-25-ngraves@ngraves.fr
From: Saku Laesvuori <saku@laesvuori.fi>

* gnu/packages/haskell.scm (ghc): Update to ghc-9.6

Change-Id: I40da6cacc4d260902cd66d7d626375038fba4346
---
gnu/packages/haskell.scm | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)

Toggle diff (48 lines)
diff --git a/gnu/packages/haskell.scm b/gnu/packages/haskell.scm
index 239871cfcd..5bdedcc05c 100644
--- a/gnu/packages/haskell.scm
+++ b/gnu/packages/haskell.scm
@@ -1498,12 +1498,6 @@ (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)
@@ -1567,7 +1561,7 @@ (define-public ghc-9.4
(let ((base ghc-9.2))
(package
(inherit base)
- (name "ghc-next")
+ (name "ghc")
(version "9.4.8")
(source (origin
(method url-fetch)
@@ -2166,7 +2160,7 @@ (define-public ghc-9.6
(let ((base ghc-9.4))
(package
(inherit base)
- (name "ghc-next")
+ (name "ghc")
(version "9.6.4")
(source (origin
(inherit (package-source base))
@@ -2267,4 +2261,10 @@ (define-public ghc-9.6
(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.6)
+
;;; haskell.scm ends here
--
2.46.0
N
N
Nicolas Graves wrote 5 days ago
Re: [bug#67921] [PATCH v3 01/24] gnu: ghc: More robust build with binutils ≥ 2.39.
87bjz09xqs.fsf@ngraves.fr
On 2024-10-31 13:46, Nicolas Graves via Guix-patches via wrote:

Toggle quote (10 lines)
> Future versions of ghc will have more occurrences of the execstack
> warning. Instead of modifying the tests for each new version, a more
> robust approach is to explicitely make ghc pass -Wl,-z,noexecstack to
> its ld invocations during all tests. This is what this patch does.
>
> * gnu/packages/patches/ghc-testsuite-recomp015-execstack.patch: New patches.
> * gnu/local.mk (disp_path_DATA): Deregister patch.
> * gnu/packages/haskell.scm (ghc-8.6, ghc-8.8, ghc-9.0, ghc-9.2,
> ghc-9.4): Deregister patch use. Add phase 'fix-tests-with-binutils@2.39.

My mistake, just to be clear, this patch is here to fix the build of
9.8.4 after the core-updates merges, more than to fix the last errors on
the 9.6 version. I needed it anyway to be able to compile up to 9.6,
but I haven't taken a look at 9.6 yet.

--
Best regards,
Nicolas Graves
L
L
Lars-Dominik Braun wrote 3 days ago
Re: [bug#67921] [PATCH v3 01/2 4] gnu: ghc: More robust build with binutils ≥ 2.39.
(name . Nicolas Graves)(address . ngraves@ngraves.fr)
ZyZC3GmjNmkVm-j0@noor.fritz.box
Hi,

Toggle quote (5 lines)
> My mistake, just to be clear, this patch is here to fix the build of
> 9.8.4 after the core-updates merges, more than to fix the last errors on
> the 9.6 version. I needed it anyway to be able to compile up to 9.6,
> but I haven't taken a look at 9.6 yet.

you mean “fix the build of 8.8.4”? I don’t see that we have 9.8 anywhere.

Lars
N
N
Nicolas Graves wrote 3 days ago
Re: [bug#67921] [PATCH v3 01/24] gnu: ghc: More robust build with binutils ≥ 2.39.
(name . Lars-Dominik Braun)(address . lars@6xq.net)
87h68p322g.fsf@ngraves.fr
On 2024-11-02 16:18, Lars-Dominik Braun wrote:

Toggle quote (10 lines)
> Hi,
>
>> My mistake, just to be clear, this patch is here to fix the build of
>> 9.8.4 after the core-updates merges, more than to fix the last errors on
>> the 9.6 version. I needed it anyway to be able to compile up to 9.6,
>> but I haven't taken a look at 9.6 yet.
>
> you mean “fix the build of 8.8.4”? I don’t see that we have 9.8
> anywhere.

9.4.8 sorry.

It actually needed another small fix (there is an invocation of ghc in
RTS tests that doesn't use TEST_HC_OPTS). I will provide it in another
revision. I still have the bugs for 9.6, I'm trying to investigate them
but they are indeed tricky, the rebuild time for ghc and the default
flags of ld incompatible with --print-c-compiler-link-flags
makes it difficult to even understand why these last 9.6 tests are
failing.

Toggle quote (4 lines)
>
> Lars
>

--
Best regards,
Nicolas Graves
N
N
Nicolas Graves wrote 2 days ago
tag 67921 moreinfo
(address . control@debbugs.gnu.org)
87o72wpqni.fsf@ngraves.fr
tags 67921 + moreinfo
quit

Marking it as moreinfo until resolved, so that QA doesn't try to build
it right now.

--
Best regards,
Nicolas Graves
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 67921@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 67921
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch