summaryrefslogtreecommitdiff
path: root/andromeda/packages/haskell.scm
blob: 9e3ec0ff715570495ff9f078824ee04e6b8ebd83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
(define-module (andromeda packages haskell)
  #:use-module (gnu packages)
  #:use-module (gnu packages haskell)
  #:use-module (guix download)
  #:use-module (guix gexp)
  #:use-module (guix packages)
  #:use-module (guix utils))

(define-public ghc-9.12
  (let ((base ghc-9.8))
    (package
      (inherit base)
      (name "ghc")
      (version "9.12.2")
      (source
        (origin
          (method url-fetch)
          (uri (string-append "https://downloads.haskell.org/~ghc/" version
                              "/ghc-" version "-src.tar.xz"))
          (sha256
            (base32
             "0czrhi8fdvzxbpviri2xjj6xdy50syjyjpbff72liws3vrfwsj8f"))))
      (arguments
        (substitute-keyword-arguments (package-arguments base)
          ((#:phases phases #~%standard-phases)
           #~(modify-phases #$phases
               (replace 'check
                 (lambda* (#:key (tests? #t) (parallel-tests? #f) (make-flags '())
                           #:allow-other-keys)
                   (if tests?
                     (apply invoke "_build/bin/hadrian"
                            `(,@(if parallel-tests?
                                  (list (string-append
                                         "-j"
                                         (number->string (parallel-job-count))))
                                  '())
                              ,@make-flags
                              "test"
                              ,(string-append
                                "--broken-test="
                                (string-join
                                 (list  "T15904"         ; ld-wrapper, apparently
                                        "T16521"         ; no idea
                                        "T7275"
                                        "toplevel_scc_1")))
                              "--skip-perf"
                              "-a"))                     ; TODO: actually figure out test failures
                     (format #t "test suite not run~%"))))))))
      (native-inputs
        (modify-inputs (package-native-inputs base)
         (replace "ghc" base)
         (replace "ghc-testsuite.tar.xz"
           (origin
             (method url-fetch)
             (uri (string-append
                    "https://downloads.haskell.org/~ghc/"
                    version "/ghc-" version "-testsuite.tar.xz"))
             (sha256
              (base32
                "1ahhyh5kwmi4ck2687mjawnp9syb7a0m47y096x896zznjnjw56g"))
             (patches (search-patches "ghc-testsuite-recomp015-execstack.patch"))))
         (replace "hadrian-bootstrap-sources.tar.gz"
           (origin
             (method url-fetch)
             (uri (string-append "https://downloads.haskell.org/~ghc/" version
                                 "/hadrian-bootstrap-sources/"
                                 "hadrian-bootstrap-sources-"
                                 (package-version base) ".tar.gz"))
             (sha256
               (base32
                 "16hxy3jk213zjqm75sa0slslfz7b2f4iqycnnjisbdr7ias2x5nl"))))))
      (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)))))))