guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] build: Speed up .go compilation.


From: Ludovic Courtès
Subject: Re: [PATCH] build: Speed up .go compilation.
Date: Mon, 11 Jan 2016 22:14:23 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Mark H Weaver <address@hidden> skribis:

> I haven't yet investigated, but my strong suspicion is that this is due
> to the fact that Guile's module system is not thread safe.  More
> specifically, when a new module is created, it mutates the global
> directory of modules in a way that is not thread safe.
>
> New modules are created by 'compile-file', both for the module being
> compiled and for any imported modules that haven't been previously
> loaded.  Unfortunately, this means that this approach of compiling files
> in multiple threads within a single guile process is not safe.  There
> are likely to be random crashes and corruptions.

Right.  This is one of the concerns I raised before I forgot again.  ;-)

  https://lists.gnu.org/archive/html/guix-devel/2015-11/msg00359.html

Taylan writes:

> The latest version of the patch loads all needed modules first, in the
> main thread, and then compiles the files corresponding to the modules in
> parallel.  Does that still lead to mutation in the directory of modules
> in the parallelized segment of the code?

It seems to be safe, but we’re treading in a risky zone.

We’re pushing ‘compile-file’ and related code to its limits.  It would
be great to address these issues in Guile itself.

Ludo’.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]