hako pushed a commit to branch wip-zig-bootstrap
in repository guix.

commit 7d5cc772bf3ba4f9c10200138f83a4d97a814344
Author: Hilton Chain <[email protected]>
AuthorDate: Mon Nov 11 11:10:16 2024 +0800

    gnu: Add zig-0.11.
    
    * gnu/packages/zig.scm (zig-0.11): New variable.
    
    Change-Id: I2507af62918f3989967d55dec942b84655d6d8bd
---
 gnu/packages/zig.scm | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 48457ce182..d08bc98d46 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -1261,4 +1261,64 @@ toolchain.  Among other features it provides
        (modify-inputs (package-native-inputs base)
          (replace "zig" `(,base "out")))))))
 
+(define-public zig-0.11
+  (package
+    (inherit zig-0.10)
+    (name "zig")
+    (version "0.11.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/ziglang/zig";)
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0qh7c27cd4wcdjj0mbpkarvwypfk1js8hkyxs0z149qv75zkbrca"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (delete-file "stage1/zig1.wasm")
+                  ;; Fix RUNPATH.
+                  ;; Upstream commit ae2cd5fe263e9d8ddd5719b4795f9cd39b5c0324.
+                  (substitute* "src/Compilation.zig"
+                    (("(options.each_lib_rpath orelse )false" _ prefix)
+                     (string-append prefix "options.is_native_os")))))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments zig-0.10)
+       ((#:phases phases '%standard-phases)
+        #~(modify-phases #$phases
+            (add-after 'unpack 'prepare-source
+              (lambda* (#:key native-inputs inputs #:allow-other-keys)
+                (install-file (search-input-file
+                               (or native-inputs inputs) "bin/zig1.wasm")
+                              "stage1")
+                (make-file-writable "stage1/zig1.wasm")))
+            (add-after 'install 'build-zig1
+              (lambda _
+                (invoke (string-append #$output "/bin/zig")
+                        "build" "update-zig1" "--verbose")))
+            (add-after 'build-zig1 'install-zig1
+              (lambda _
+                (install-file "stage1/zig1.wasm"
+                              (string-append #$output:zig1 "/bin"))))
+            ;; FIXME: Full test fails for non-native targets.
+            ;; See also: <https://github.com/ziglang/zig/issues/18063>.
+            (replace 'check
+              (lambda* (#:key tests? #:allow-other-keys)
+                (when tests?
+                  (invoke (string-append #$output "/bin/zig")
+                          "test" "-I" "test" "test/behavior.zig"))))))))
+    (inputs
+     (modify-inputs (package-inputs zig-0.10)
+       (replace "clang" clang-16)
+       (replace "lld" lld-16)))
+    (native-inputs
+     (modify-inputs (package-native-inputs zig-0.10)
+       (prepend binaryen `(,zig-0.10.0-3985 "zig1"))
+       (replace "llvm" llvm-16)))
+    (outputs '("out" "zig1"))
+    (properties `((max-silent-time . 9600)
+                  ,@(clang-compiler-cpu-architectures "16")))))
+
 (define-public zig zig-0.10)

Reply via email to