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

commit 0b6e72f9ccc669d0d08e0c2ca9b631605bbbc5d0
Author: Hilton Chain <[email protected]>
AuthorDate: Mon Nov 11 10:47:59 2024 +0800

    gnu: Add zig-0.10.0-722.
    
    * gnu/packages/zig.scm (zig-0.10.0-722,%arguments-zig2+zig1): New variables.
    
    Change-Id: I08abdf7f85d03853c74f46afffebf5aff0aa18f4
---
 gnu/packages/zig.scm | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 4cec7972bd..9f953475fc 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -358,4 +358,46 @@ toolchain.  Among other features it provides
        (modify-inputs (package-native-inputs base)
          (prepend `(,base "zig1")))))))
 
+(define-public zig-0.10.0-722
+  (let ((commit "d10fd78d4615f329141f5c19f893039d56aff425")
+        (revision "722")
+        (base zig-0.10.0-675))
+    (package
+      (inherit base)
+      (name "zig")
+      (version (git-version "0.10.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/ziglang/zig";)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0829wymcwph71zlwql6v7i7j9gr1m96acyp2xsr69vq2h98wmlap"))
+                (snippet '(delete-file "stage1/zig1.wasm"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments base)
+         ((#:phases phases '%standard-phases)
+          #~(modify-phases #$phases
+              (replace 'prepare-source
+                (lambda* (#:key native-inputs inputs #:allow-other-keys)
+                  (install-file (search-input-file
+                                 (or native-inputs inputs) "bin/zig1.wasm.zst")
+                                "stage1")
+                  (invoke "zstd" "-d" "stage1/zig1.wasm.zst")
+                  (make-file-writable "stage1/zig1.wasm")))
+              (replace 'install-zig1
+                (lambda _
+                  (install-file "stage1/zig1.wasm"
+                                (string-append #$output:zig1 "/bin"))))))))
+      (native-inputs
+       (modify-inputs (package-native-inputs base)
+         (prepend zstd)
+         (replace "zig" `(,base "zig1")))))))
+
+;; Bootstrap with supplied zig1.wasm.  Build zig2 and build zig1.wasm using it.
+(define %arguments-zig2+zig1
+      (package-arguments zig-0.10.0-722))
+
 (define-public zig zig-0.10)

Reply via email to