From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) 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 Message-ID: <878t8tyyfk.fsf@gnu.org> 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> <87603x6x1f.fsf@igalia.com> 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]:60719) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fGLLK-0001jj-So for bug-guix@gnu.org; Wed, 09 May 2018 05:25:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fGLLK-0001ZC-2t for bug-guix@gnu.org; Wed, 09 May 2018 05:25:02 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:46919) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fGLLJ-0001Z1-Vm for bug-guix@gnu.org; Wed, 09 May 2018 05:25:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87603x6x1f.fsf@igalia.com> (Andy Wingo's message of "Wed, 09 May 2018 10:41:32 +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: Andy Wingo Cc: 27476@debbugs.gnu.org Hello Andy! Andy Wingo skribis: > 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? 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=E2=80=99m not sure exactly. =E2=80=98memoize-expression=E2=80= =99 itself is side-effect-free, right? Thanks for your feedback, Ludo=E2=80=99.