Hi Maxim, Thanks for the review and the improved patch. I am sorry if the commit message and/or changelog I provided was badly worded, but somehow it was an attempt to explain the odd behaviour – at least counter-intuitive since I initially felt into when sending the very first patch allowing parallel tests and you felt too, I guess. :-) On Fri, 26 Nov 2021 at 22:17, Maxim Cournoyer wrote: >> --- >> guix/build/julia-build-system.scm | 8 +++++--- >> 1 file changed, 5 insertions(+), 3 deletions(-) >> >> diff --git a/guix/build/julia-build-system.scm b/guix/build/julia-build-system.scm >> index f0dc419c17..af478fd4a3 100644 >> --- a/guix/build/julia-build-system.scm >> +++ b/guix/build/julia-build-system.scm >> @@ -112,7 +112,10 @@ (define* (check #:key tests? source inputs outputs julia-package-name >> (builddir (string-append out "/share/julia/")) >> (jobs (if parallel-tests? >> (number->string (parallel-job-count)) >> - "1"))) >> + "1")) >> + (nprocs (if parallel-tests? >> + (string-append "--procs=" jobs) >> + ""))) >> ;; With a patch, SOURCE_DATE_EPOCH is honored >> (setenv "SOURCE_DATE_EPOCH" "1") >> (setenv "JULIA_DEPOT_PATH" builddir) >> @@ -122,8 +125,7 @@ (define* (check #:key tests? source inputs outputs julia-package-name >> ""))) >> (setenv "JULIA_CPU_THREADS" jobs) >> (setenv "HOME" "/tmp") >> - (invoke "julia" "--depwarn=yes" >> - (string-append "--procs=" jobs) >> + (invoke "julia" "--depwarn=yes" nprocs > > Here nprocs can be ""; is it really OK to pass an empty string argument > to julia? Yes it is OK. When #:parallel-tests? sets to #f, my patch leads to the call “julia --depwarn=yes” which is valid. Your modified patch adds another test but leads to the same call “julia --depwarn=yes”. --8<---------------cut here---------------start------------->8--- + (job-count (if parallel-tests? + (parallel-job-count) + 1)) + ;; The --proc argument of Julia *adds* extra processors rather than + ;; specify the exact count to use, so zero must be specified to + ;; disable parallel processing... [..] + (apply invoke "julia" + `("--depwarn=yes" + ,@(if parallel-tests? + ;; XXX: ... but '--procs' doesn't accept 0 as a valid + ;; value, so just omit the argument entirely. + (list (string-append "--procs=" + (number->string additional-procs))) + '()) --8<---------------cut here---------------end--------------->8--- So because of 2 tests. I think your modified patch is more “complicated”. :-) About this, --8<---------------cut here---------------start------------->8--- + (additional-procs (max 0 (1- job-count)))) --8<---------------cut here---------------end--------------->8--- I considered that it was not a big deal; initially, I did something similar in ’let’ but remove it because it changes nothing from my experiments. In fact, because ’--procs’ overrides JULIA_CPU_THREADS and run Julia with n or n+1 is more or less the same for the Julia land, IMHO. Well, it is not clear what is the load for the main worker. And JULIA_CPU_THREADS=1 is required for running using only one worker. Anyway, this changes nothing, practically speaking. :-) Indeed, it is better and more consistent. Last, I am confused by Cuirass. Because it says evaluation complete but julia-* packages are scheduled. https://ci.guix.gnu.org/eval/48802?status=pending And for instance, https://ci.guix.gnu.org/build/1853818/log/raw BTW, Berlin has some issues I guess #48720 - d508c5b was pushed CommitDate: Fri Nov 26 23:21:45 2021 +0100 - 941f776 was pushed CommitDate: Sat Nov 27 01:22:32 2021 -0500 - 9c4752b was pushed CommitDate: Sat Nov 27 10:24:12 2021 +0100 #48802 - 1b8a18b was pushed CommitDate: Sat Nov 27 11:48:17 2021 +0100 I do not understand why 941f776 or 9c4752b had not been evaluated. Could you give a look? For example, by restarting the evaluation? Cheers, simon