GNU bug report logs - #27476
Multi-threaded compilation of 'syntax-parameterize' forms crashes

Previous Next

Package: guile;

Reported by: Leo Famulari <leo <at> famulari.name>

Date: Sat, 24 Jun 2017 16:33:01 UTC

Severity: serious

Tags: unreproducible

Merged with 27652, 28144, 31294, 31367, 31740, 32385, 34112, 34319

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: ludo <at> gnu.org (Ludovic Courtès)
To: Andy Wingo <wingo <at> igalia.com>
Cc: Ricardo Wurmus <rekado <at> elephly.net>, 27476 <at> debbugs.gnu.org
Subject: bug#27476: libguile/memoize.c is not thread safe, so syntax parameter expansion is not thread-safe
Date: Wed, 09 May 2018 11:23:59 +0200
Hello Andy!

Andy Wingo <wingo <at> igalia.com> skribis:

> On Mon 30 Apr 2018 23:39, ludo <at> gnu.org (Ludovic Courtès) writes:
>
>> So the problem, AIUI, is that psyntax evaluates syntax parameters using
>> ‘primitive-eval’ (via ‘eval-local-transformer’), but memoization in
>> (ice-9 eval) is not thread-safe, hence the random crashes.
>
> Sorry I've been a bit AWOL here... if this diagnosis is correct, then
> the problem is ultimately the memoization that needs to be thread-safe,
> right?

It looks like it, yes.

> Is the memoization you are referring to the "set!" in the "lazy" form in
> ice-9/eval.scm ?  Or something else?  FWIW I would not think the "set!"
> could be the issue, at least on x86, but who knows.

Actually I’m not sure exactly.  ‘memoize-expression’ itself is
side-effect-free, right?

Thanks for your feedback,
Ludo’.




This bug report was last modified 4 years and 153 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.