From debbugs-submit-bounces@debbugs.gnu.org Tue Jul 03 18:10:23 2018 Received: (at 22608) by debbugs.gnu.org; 3 Jul 2018 22:10:23 +0000 Received: from localhost ([127.0.0.1]:45712 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1faTV9-00037R-01 for submit@debbugs.gnu.org; Tue, 03 Jul 2018 18:10:23 -0400 Received: from eggs.gnu.org ([208.118.235.92]:38870) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1faTV7-00037A-Mb for 22608@debbugs.gnu.org; Tue, 03 Jul 2018 18:10:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1faTV1-0002vP-HG for 22608@debbugs.gnu.org; Tue, 03 Jul 2018 18:10:16 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:56524) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1faTUz-0002tM-BF; Tue, 03 Jul 2018 18:10:13 -0400 Received: from [2a01:e0a:1d:7270:6a6c:dc17:fc02:cfda] (port=48332 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1faTUx-0001Ur-Lf; Tue, 03 Jul 2018 18:10:12 -0400 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) To: taylanbayirli@gmail.com (Taylan Ulrich =?utf-8?Q?=22Bay=C4=B1rl=C4=B1?= =?utf-8?Q?=2FKammer=22?=) Subject: Re: bug#22608: Module system thread unsafety and .go compilation References: <8737t1k5yk.fsf@T420.taylan> Date: Wed, 04 Jul 2018 00:10:10 +0200 In-Reply-To: <8737t1k5yk.fsf@T420.taylan> ("Taylan Ulrich \=\?utf-8\?Q\?\=5C\=22Bay\=C4\=B1rl\=C4\=B1\=2FKammer\=5C\=22\=22's\?\= message of "Tue, 09 Feb 2016 21:02:27 +0100") Message-ID: <87d0w4ezst.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-Spam-Score: -5.0 (-----) X-Debbugs-Envelope-To: 22608 Cc: 22608@debbugs.gnu.org, guile-devel@gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -6.0 (------) Hello, taylanbayirli@gmail.com (Taylan Ulrich "Bay=C4=B1rl=C4=B1/Kammer") skribis: > To speed up the compilation of the many Scheme files in Guix, we use a > script that first loads all modules to be compiled into the Guile > process (by calling 'resolve-interface' on the module names), and then > the corresponding Scheme files are compiled in a par-for-each. > > While Guile's module system is known to be thread unsafe, the idea was > that all mutation should happen in the serial loading phase, and the > parallel compile-file calls should then be thread safe. > > Sadly that assumption isn't met when autoloads are involved. For the record, these issues should be fixed in Guile 2.2.4: 533e3ff17 * Serialize accesses to submodule hash tables. 46bcbfa56 * Module import obarrays are accessed in a critical section. 761cf0fb8 * Make module autoloading thread-safe. =E2=80=98guix pull=E2=80=99 now defaults to 2.2.4, so we=E2=80=99ll see if = indeed those crashes disappear. Ludo=E2=80=99.