From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: zimoun <zimon.toutoune@gmail.com>
Cc: 52117@debbugs.gnu.org
Subject: [bug#52117] [core-updates-frozen] [PATCH 0/6] Fix Julia packages.
Date: Fri, 26 Nov 2021 22:17:02 -0500 [thread overview]
Message-ID: <87fsri8ez5.fsf_-_@gmail.com> (raw)
In-Reply-To: <20211125233559.34575-2-zimon.toutoune@gmail.com> (zimoun's message of "Fri, 26 Nov 2021 00:35:55 +0100")
Hello Simon!
zimoun <zimon.toutoune@gmail.com> writes:
> Even providing '--procs=1' launches 2 workers which breaks some testsuite of
^ the
> packages; therefore set '#:parallel-tests?' to '#false' was ineffective.
^ some ^ setting
It's good to put the rationale here, as you did.
> * guix/build/julia-build-system.scm (check): Fix unexpected behaviour from
> 'julia' command line option.
But in the changelog message I'd expect to see foremost *what* it does
rather than a reformulation of *why* it does it :-). E.g., something
like: do not pass the '--procs' argument when not running the tests in
parallel.
> ---
> 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?
> (string-append builddir "loadpath/"
> package "/test/runtests.jl"))))
> #t)
Trailing '#t' are no longer required. Actually, looking at the output
of julia --help:
-p, --procs {N|auto} Integer value N launches N *additional* local worker processes
The key is 'additional' :-). So to disable parallel processing it needs
to be 0.
I've modified it like so:
--8<---------------cut here---------------start------------->8---
(define* (check #:key tests? source inputs outputs julia-package-name
parallel-tests? #:allow-other-keys)
(when tests?
(let* ((out (assoc-ref outputs "out"))
(package (or julia-package-name (project.toml->name "Project.toml")))
(builddir (string-append out "/share/julia/"))
(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.
(additional-procs (max 0 (1- job-count))))
;; With a patch, SOURCE_DATE_EPOCH is honored
(setenv "SOURCE_DATE_EPOCH" "1")
(setenv "JULIA_DEPOT_PATH" builddir)
(setenv "JULIA_LOAD_PATH"
(string-append builddir "loadpath/" ":"
(or (getenv "JULIA_LOAD_PATH")
"")))
(setenv "JULIA_CPU_THREADS" (number->string job-count))
(setenv "HOME" "/tmp")
(invoke "julia" "--depwarn=yes"
"--procs" (number->string additional-procs)
(string-append builddir "loadpath/"
package "/test/runtests.jl")))))
--8<---------------cut here---------------start------------->8---
And took the liberty to remove trailing #f in other phases.
Thank you!
Maxim
next prev parent reply other threads:[~2021-11-27 3:18 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-25 23:32 [bug#52117] [core-updates-frozen] [PATCH 0/6] Fix Julia packages zimoun
2021-11-25 23:35 ` [bug#52117] [PATCH 1/6] gnu: julia: Test correctly '#:parallel-tests?' zimoun
2021-11-25 23:35 ` [bug#52117] [PATCH 2/6] build: julia-build-system: Correctly disable parallel tests zimoun
2021-11-27 3:17 ` Maxim Cournoyer [this message]
2021-11-27 12:38 ` [bug#52117] [core-updates-frozen] [PATCH 0/6] Fix Julia packages zimoun
2021-11-27 18:59 ` zimoun
2021-11-28 2:57 ` Maxim Cournoyer
2021-11-29 14:10 ` zimoun
2021-11-25 23:35 ` [bug#52117] [PATCH 3/6] gnu: julia-aqua: Disable parallel tests zimoun
2021-11-25 23:35 ` [bug#52117] [PATCH 4/6] gnu: julia-interpolations: " zimoun
2021-11-25 23:35 ` [bug#52117] [PATCH 5/6] gnu: julia-requires: " zimoun
2021-11-25 23:35 ` [bug#52117] [PATCH 6/6] gnu: julia-unitful: " zimoun
2021-11-27 2:26 ` [bug#52117] [core-updates-frozen] [PATCH 0/6] Fix Julia packages Maxim Cournoyer
2021-11-27 6:31 ` bug#52117: " Maxim Cournoyer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fsri8ez5.fsf_-_@gmail.com \
--to=maxim.cournoyer@gmail.com \
--cc=52117@debbugs.gnu.org \
--cc=zimon.toutoune@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).