From db3b2316f0578f87da66938d88b66777ca90760a Mon Sep 17 00:00:00 2001 From: Puck Meerburg Date: Sun, 11 May 2025 22:21:07 +0000 Subject: [PATCH] (zilch magic): configurable CA build job count Change-Id: I6a6a6964f157a33b35dae7245c344be7907c5221 --- cli/zilch-ninja.scm | 14 ++++++++------ core/src/magic.sld | 6 ++++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/cli/zilch-ninja.scm b/cli/zilch-ninja.scm index 79730fd..f425c34 100644 --- a/cli/zilch-ninja.scm +++ b/cli/zilch-ninja.scm @@ -38,12 +38,12 @@ to final build, or to specific Ninja targets. ; Set up the logger. (define (set-print-logs val) #f) (let ((prev-error-handler (current-exception-handler))) (current-exception-handler (lambda data (set-print-logs #t) (apply prev-error-handler data)))) -(when (terminal-port? (current-error-port)) - (let-values (((new-out new-err statusbar-set-print-logs logger) (statusbar-logger (current-output-port) (current-error-port) (assoc 'print-build-logs options)))) - (current-output-port new-out) - (current-error-port new-err) - (set! set-print-logs statusbar-set-print-logs) - (*logger* logger))) +; (when (terminal-port? (current-error-port)) +; (let-values (((new-out new-err statusbar-set-print-logs logger) (statusbar-logger (current-output-port) (current-error-port) (assoc 'print-build-logs options)))) +; (current-output-port new-out) +; (current-error-port new-err) +; (set! set-print-logs statusbar-set-print-logs) +; (*logger* logger))) ;; Flags passed to the nix daemon: (define max-jobs (if (assoc 'max-jobs options) (string->number (cdr (assoc 'max-jobs options))) (get-cpu-count))) @@ -52,6 +52,8 @@ to final build, or to specific Ninja targets. (write-string (string-append "Connected to Nix daemon, version " (daemon-link-daemon-version (*daemon*)) "\n") (current-error-port)) (daemon-wop-set-options (*daemon*) verbosity max-jobs #t) +(ca-thread-count max-jobs) + (import (scheme base) (scheme file) (scheme read) (chicken format) diff --git a/core/src/magic.sld b/core/src/magic.sld index 30e995d..6c22fc4 100644 --- a/core/src/magic.sld +++ b/core/src/magic.sld @@ -23,7 +23,7 @@ store-path-realised store-path-open store-path-devirtualise - drv-resolve-ca + ca-thread-count drv-resolve-ca zilch-magic-counters) @@ -333,6 +333,8 @@ (define-record-printer ( item out) (fprintf out "#" (derivation-path (pending-item-ca-drv item)) (pending-item-awaiting-count item))) + (define ca-thread-count (make-parameter 4)) + (define (rewrite-ca-stack input-drv) ; A mapping of CA derivation path to . (define ca-to-pending-map (mapping (make-default-comparator))) @@ -478,7 +480,7 @@ (builder quit conn)))))) (define builder-threads '()) - (do ((i 0 (+ i 1))) ((>= i 16) #f) + (do ((i 0 (+ i 1))) ((>= i (ca-thread-count)) #f) (set! builder-threads (cons (thread-start!