[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
62/72: DRAFT: gnu: zig: Default to zig-0.13.
From: |
guix-commits |
Subject: |
62/72: DRAFT: gnu: zig: Default to zig-0.13. |
Date: |
Thu, 21 Nov 2024 07:19:52 -0500 (EST) |
hako pushed a commit to branch wip-zig-bootstrap
in repository guix.
commit 569803018de83a2b1ab74e07d706412707fa0021
Author: Hilton Chain <hako@ultrarare.space>
AuthorDate: Wed Nov 20 08:00:54 2024 +0800
DRAFT: gnu: zig: Default to zig-0.13.
* gnu/packages/zig.scm (zig): Use zig-0.13.
* guix/build-system/zig.scm (#:parallel-build?,#:parallel-tests?): New
arguments.
* guix/build/zig-build-system.scm (zig-arguments): New procedure.
(bulid): Use it and honor #:parallel-build?.
(check): Use it and honor #:parallel-tests?.
* gnu/packages/zig-xyz.scm (river)[arguments]<#:zig>: Use zig-0.10.
(zig-zls)[arguments]<#:zig>: Use zig-0.10.
<#:zig-release-type>: Set to "safe".
* gnu/packages/ncdu.scm (ncdu)[arguments]: Remove field.
Change-Id: I1f0087ff39ea9fecb2ad911019d0525f1e6285f6
---
gnu/packages/ncdu.scm | 2 --
gnu/packages/zig-xyz.scm | 7 ++--
gnu/packages/zig.scm | 2 +-
guix/build-system/zig.scm | 8 +++++
guix/build/zig-build-system.scm | 71 ++++++++++++++++++++++++++++++++---------
5 files changed, 70 insertions(+), 20 deletions(-)
diff --git a/gnu/packages/ncdu.scm b/gnu/packages/ncdu.scm
index ab88f41dad..95d8330410 100644
--- a/gnu/packages/ncdu.scm
+++ b/gnu/packages/ncdu.scm
@@ -71,8 +71,6 @@ ncurses installed.")
(base32
"01g5mpvsm78lkd0yin82gyancrl23npy69qcp3d60vmm72yiwirz"))))
(build-system zig-build-system)
- (arguments
- (list #:zig zig-0.12))
(inputs (list ncurses `(,zstd "lib")))
(native-inputs (list pkg-config))
(properties `((tunable? . #t)))))
diff --git a/gnu/packages/zig-xyz.scm b/gnu/packages/zig-xyz.scm
index 0cd08b6ac6..5c91bdbb21 100644
--- a/gnu/packages/zig-xyz.scm
+++ b/gnu/packages/zig-xyz.scm
@@ -53,6 +53,7 @@
(build-system zig-build-system)
(arguments
(list
+ #:zig zig-0.10
#:phases
#~(modify-phases %standard-phases
(add-after 'install 'install-wayland-session
@@ -122,8 +123,10 @@ mission-critical safety and performance for financial
services.")
(build-system zig-build-system)
(inputs (list zig-0.10 python))
(arguments
- ;; The tests fail with memory leaks.
- (list #:tests? #f))
+ (list #:zig zig-0.10
+ #:zig-release-type "safe"
+ ;; The tests fail with memory leaks.
+ #:tests? #f))
(synopsis "Zig language server")
(description
"Zig Language Server is a language server implementing the @acronym{LSP,
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index cf733eaee8..b19b8baa6a 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -1488,4 +1488,4 @@ toolchain. Among other features it provides
(properties `((max-silent-time . 9600)
,@(clang-compiler-cpu-architectures "18")))))
-(define-public zig zig-0.10)
+(define-public zig zig-0.13)
diff --git a/guix/build-system/zig.scm b/guix/build-system/zig.scm
index 0ac40b1bde..3574f63507 100644
--- a/guix/build-system/zig.scm
+++ b/guix/build-system/zig.scm
@@ -61,6 +61,8 @@
source
(tests? #t)
(test-target #f)
+ (parallel-build? #t)
+ (parallel-tests? #t)
(skip-build? #f)
(zig-build-flags ''())
(zig-test-flags ''())
@@ -83,6 +85,8 @@
#:source #+source
#:system #$system
#:test-target #$test-target
+ #:parallel-build? #$parallel-build?
+ #:parallel-tests? #$parallel-tests?
#:skip-build? #$skip-build?
#:zig-build-flags #$zig-build-flags
#:zig-test-flags #$zig-test-flags
@@ -113,6 +117,8 @@
(native-search-paths '())
(tests? #t)
(test-target #f)
+ (parallel-build? #t)
+ (parallel-tests? #t)
(skip-build? #f)
(zig-build-flags ''())
(zig-test-flags ''())
@@ -151,6 +157,8 @@
#:outputs %outputs
#:target #$target
#:test-target #$test-target
+ #:parallel-build? #$parallel-build?
+ #:parallel-tests? #$parallel-tests?
#:inputs %build-target-inputs
#:native-inputs %build-host-inputs
#:search-paths '#$(map search-path-specification->sexp
diff --git a/guix/build/zig-build-system.scm b/guix/build/zig-build-system.scm
index 0d4a354186..7907eece8e 100644
--- a/guix/build/zig-build-system.scm
+++ b/guix/build/zig-build-system.scm
@@ -34,6 +34,32 @@
;; Interesting guide here:
;; https://github.com/riverwm/river/blob/master/PACKAGING.md
+(define (zig-arguments)
+ (define version-major+minor
+ (let* ((port (open-input-pipe "zig version"))
+ (str (read-line port)))
+ (close-pipe port)
+ (take (string-split str #\.) 2)))
+ (define (version>=? a b-major b-minor)
+ (let ((a-major (string->number (first a)))
+ (a-minor (string->number (second a))))
+ (or (> a-major b-major)
+ (and (= a-major b-major)
+ (>= a-minor b-minor)))))
+ `(("parallel-jobs" .
+ ,(lambda (jobs)
+ (cond
+ ((version>=? version-major+minor 0 11)
+ (list (string-append "-j" (number->string jobs))))
+ (else '()))))
+ ("release-type" .
+ ,(lambda (type)
+ (cond
+ ((version>=? version-major+minor 0 11)
+ (list (string-append "-Doptimize=Release" (string-capitalize type))))
+ (else
+ (list (string-append "-Drelease-" type))))))))
+
(define* (unpack-dependencies #:key zig-inputs skip-build? #:allow-other-keys)
"Unpack and overwrite dependencies specified in build.zig.zon with the ones
provided in ZIG-INPUTS."
@@ -53,37 +79,52 @@ provided in ZIG-INPUTS."
;; "safe", "fast" or "small", empty for a "debug" build.
zig-release-type
target
+ parallel-build?
skip-build?
#:allow-other-keys)
"Build a given Zig package."
(when (not skip-build?)
(setenv "DESTDIR" "out")
- (let ((call `("zig" "build"
- "--prefix" "" ;; Don't add /usr
- "--prefix-lib-dir" "lib"
- "--prefix-exe-dir" "bin"
- "--prefix-include-dir" "include"
- ,@(if target
- (list (string-append "-Dtarget=" (zig-target target)))
- '())
- ,@(if zig-release-type
- (list (string-append "-Drelease-" zig-release-type))
- '())
- "--libc" "/tmp/guix-zig-libc-paths"
- ,@zig-build-flags)))
+ (let* ((arguments (zig-arguments))
+ (call `("zig" "build"
+ "--prefix" "" ;; Don't add /usr
+ "--prefix-lib-dir" "lib"
+ "--prefix-exe-dir" "bin"
+ "--prefix-include-dir" "include"
+ ,@(if target
+ (list (string-append "-Dtarget=" (zig-target target)))
+ '())
+ ,@(if parallel-build?
+ ((assoc-ref arguments "parallel-jobs")
+ (parallel-job-count))
+ ((assoc-ref arguments "parallel-jobs")
+ 1))
+ ,@(if zig-release-type
+ ((assoc-ref arguments "release-type")
+ zig-release-type)
+ '())
+ "--libc" "/tmp/guix-zig-libc-paths"
+ ,@zig-build-flags)))
(format #t "running: ~s~%" call)
(apply invoke call))))
(define* (check #:key tests?
zig-test-flags
target
+ parallel-tests?
#:allow-other-keys)
"Run all the tests"
(when (and tests? (not target))
(let ((old-destdir (getenv "DESTDIR")))
(setenv "DESTDIR" "test-out") ;; Avoid colisions with the build output
- (let ((call `("zig" "build" "test"
- ,@zig-test-flags)))
+ (let* ((arguments (zig-arguments))
+ (call `("zig" "build" "test"
+ ,@(if parallel-tests?
+ ((assoc-ref arguments "parallel-jobs")
+ (parallel-job-count))
+ ((assoc-ref arguments "parallel-jobs")
+ 1))
+ ,@zig-test-flags)))
(format #t "running: ~s~%" call)
(apply invoke call))
(if old-destdir
- 21/72: gnu: Add zig-0.10.0-1712., (continued)
- 21/72: gnu: Add zig-0.10.0-1712., guix-commits, 2024/11/21
- 29/72: gnu: Add zig-0.10.0-2838., guix-commits, 2024/11/21
- 33/72: gnu: Add zig-0.10.0-3807., guix-commits, 2024/11/21
- 34/72: gnu: Add zig-0.10.0-3813., guix-commits, 2024/11/21
- 39/72: gnu: Add zig-0.11.0-384., guix-commits, 2024/11/21
- 48/72: gnu: Add zig-0.11.0-3344., guix-commits, 2024/11/21
- 49/72: gnu: Add zig-0.11.0-3501., guix-commits, 2024/11/21
- 50/72: gnu: Add zig-0.11.0-3503., guix-commits, 2024/11/21
- 52/72: gnu: Add zig-0.11.0-3604., guix-commits, 2024/11/21
- 58/72: build/zig: Adjust the build triplets for some systems., guix-commits, 2024/11/21
- 62/72: DRAFT: gnu: zig: Default to zig-0.13.,
guix-commits <=
- 65/72: gnu: Add zig-wlroots., guix-commits, 2024/11/21
- 18/72: gnu: Add zig-0.10.0-1638., guix-commits, 2024/11/21
- 19/72: gnu: Add zig-0.10.0-1657., guix-commits, 2024/11/21
- 23/72: gnu: Add zig-0.10.0-1888., guix-commits, 2024/11/21
- 25/72: gnu: Add zig-0.10.0-2558., guix-commits, 2024/11/21
- 28/72: gnu: Add zig-0.10.0-2797., guix-commits, 2024/11/21
- 32/72: gnu: Add zig-0.10.0-3728., guix-commits, 2024/11/21
- 36/72: gnu: Add zig-0.10.0-3985., guix-commits, 2024/11/21
- 12/72: gnu: Add zig-0.10.0-961., guix-commits, 2024/11/21
- 13/72: gnu: Add zig-0.10.0-962., guix-commits, 2024/11/21