From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Wingo Subject: bug#27476: libguile/memoize.c is not thread safe, so syntax parameter expansion is not thread-safe Date: Wed, 09 May 2018 10:41:32 +0200 Message-ID: <87603x6x1f.fsf@igalia.com> References: <87h8vvp1q7.fsf@elephly.net> <87377esu1a.fsf@gnu.org> <87k20nz18u.fsf@igalia.com> <87a81jj5gg.fsf@gnu.org> <87bmlyzxj7.fsf@elephly.net> <87shf44ny0.fsf@elephly.net> <878tfi9x15.fsf@gnu.org> <87h8nstms1.fsf@gnu.org> <874ljstlvq.fsf_-_@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:49150) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGKfm-0002lK-UR for bug-guix@gnu.org; Wed, 09 May 2018 04:42:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fGKfi-0001D8-TX for bug-guix@gnu.org; Wed, 09 May 2018 04:42:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:46872) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fGKfi-0001CP-PV for bug-guix@gnu.org; Wed, 09 May 2018 04:42:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <874ljstlvq.fsf_-_@gnu.org> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Mon, 30 Apr 2018 23:39:05 +0200") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 27476@debbugs.gnu.org Hi, On Mon 30 Apr 2018 23:39, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > So the problem, AIUI, is that psyntax evaluates syntax parameters using > =E2=80=98primitive-eval=E2=80=99 (via =E2=80=98eval-local-transformer=E2= =80=99), 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? 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. A