From 2f6901c9df7d4fb2e0c0d67f9bb0bb4cabaf5a29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 22 Jun 2020 23:58:42 +0200 Subject: [PATCH] self: Parallelize translation of the manual. The guix-translated-texinfo.drv execution time goes from 1mn42s with 1 core to 1mn8s with 4 cores. * guix/self.scm (translate-texi-manuals)[build]: Use 'n-par-for-each' instead of 'for-each' for translation. --- guix/self.scm | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/guix/self.scm b/guix/self.scm index 12727ddbae..e1350a7403 100644 --- a/guix/self.scm +++ b/guix/self.scm @@ -290,7 +290,7 @@ (define build #~(begin (use-modules (guix build utils) (guix build po) (ice-9 match) (ice-9 regex) (ice-9 textual-ports) - (ice-9 vlist) + (ice-9 vlist) (ice-9 threads) (srfi srfi-1)) (define (translate-tmp-texi po source output) @@ -413,16 +413,18 @@ (define (available-translations directory domain) (setenv "LC_ALL" "en_US.UTF-8") (setlocale LC_ALL "en_US.UTF-8") - (for-each (match-lambda - ((language . po) - (translate-texi "guix" po language - #:extras '("contributing")))) - (available-translations "." "guix-manual")) + (n-par-for-each (parallel-job-count) + (match-lambda + ((language . po) + (translate-texi "guix" po language + #:extras '("contributing")))) + (available-translations "." "guix-manual")) - (for-each (match-lambda - ((language . po) - (translate-texi "guix-cookbook" po language))) - (available-translations "." "guix-cookbook")) + (n-par-for-each (parallel-job-count) + (match-lambda + ((language . po) + (translate-texi "guix-cookbook" po language))) + (available-translations "." "guix-cookbook")) (for-each (lambda (file) (install-file file #$output))