Subject: Re: [bug#49919] [PATCH core-updates 0/2] build-system/go: Enable parallelism.

From: Sarah Morgensen <[email-masked]>
Date: Tue, 31 Aug 2021 09:06:17 -0700

Hello,

zimoun <[email-masked]> writes:

> Hi,
>
> On Fri, 06 Aug 2021 at 21:45, Sarah Morgensen <[email-masked]> wrote:
>
>> These patches give the Go build system the standard parallelism levers. I would
>> have thought that Go was already detecting the correct number for GOMAXPROCS,
>> but after I made this same change for the bootstrapping Go compiler, Efraim
>> found that it cut the build time nearly in half [0].
>>
>> [0] https://issues.guix.gnu.org/49616
>
> Honoring the parallelism, do the Go packages still build
> deterministically?  If not, the default should be still non parallel, as
> it is for Haskell packages, IIRC.  However, maybe there is room for a
> package transformation ’--with-parallelism’ to easily turn on when speed
> matters more than reproducibility.

I haven't personally tested this aside from a few casual runs with
--check, but from everything I understand about Go, parallelism does not
affect build determinism.  Each build unit should still be compiled by a
single worker sequentially, but parallelism enables separate build units
to be compiled in parallel.

--
Sarah