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.
This commit is contained in:
Ludovic Courtès 2020-06-22 23:58:42 +02:00
parent 301527be8b
commit 2f6901c9df
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5

View File

@ -290,7 +290,7 @@ DOMAIN, a gettext domain."
#~(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 @@ a list of extra files, such as '(\"contributing\")."
(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))