From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel Subject: Re: srfi-18 and the vm Date: Fri, 22 May 2009 18:20:22 +0200 Message-ID: References: <878wkp41ie.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1243009376 19908 80.91.229.12 (22 May 2009 16:22:56 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 22 May 2009 16:22:56 +0000 (UTC) Cc: guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri May 22 18:22:49 2009 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1M7XWC-0003rs-UI for guile-devel@m.gmane.org; Fri, 22 May 2009 18:22:49 +0200 Original-Received: from localhost ([127.0.0.1]:35490 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M7XWC-0002jW-8H for guile-devel@m.gmane.org; Fri, 22 May 2009 12:22:48 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1M7XU8-0001zn-2n for guile-devel@gnu.org; Fri, 22 May 2009 12:20:40 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1M7XU3-0001yo-9X for guile-devel@gnu.org; Fri, 22 May 2009 12:20:39 -0400 Original-Received: from [199.232.76.173] (port=46422 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1M7XU3-0001yh-4n for guile-devel@gnu.org; Fri, 22 May 2009 12:20:35 -0400 Original-Received: from a-sasl-fastnet.sasl.smtp.pobox.com ([207.106.133.19]:63573 helo=sasl.smtp.pobox.com) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1M7XTt-00045y-6A; Fri, 22 May 2009 12:20:25 -0400 Original-Received: from localhost.localdomain (unknown [127.0.0.1]) by a-sasl-fastnet.sasl.smtp.pobox.com (Postfix) with ESMTP id 177F4B5C76; Fri, 22 May 2009 12:20:22 -0400 (EDT) Original-Received: from unquote (unknown [80.24.4.74]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-sasl-fastnet.sasl.smtp.pobox.com (Postfix) with ESMTPSA id 52BE5B5C74; Fri, 22 May 2009 12:20:19 -0400 (EDT) In-Reply-To: <878wkp41ie.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Fri, 22 May 2009 17:10:17 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.92 (gnu/linux) X-Pobox-Relay-ID: 72D6FE04-46EC-11DE-90D4-F6BA321C86B1-02397024!a-sasl-fastnet.pobox.com X-detected-operating-system: by monty-python.gnu.org: Solaris 10 (beta) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:8505 Archived-At: On Fri 22 May 2009 17:10, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > =C2=A1Hola! > > Andy Wingo writes: > >> I'm catching up with mail. On my syncase-in-boot-9 branch, I enabled >> compilation of srfi-18 and fixed a bug in it regarding multiple-value >> returns. Now I just ran the srfi-18 test like 100 times in a row and it >> didn't show any strange errors. Yaaaay! > > What kind of "strange errors" would it lead to before? Random ones based on races, as code was lazily memoized from multiple threads at once. > When SRFI-18 wasn't compiled, I would expect multiple value returns > would translate in a `value.c' struct that would then be passed along as > a single value. Indeed. The VM truncates multiple values, but here we were doing a (let ((x (values))) something x), which returned 0 values to a continuation needing a value, raising a valid error. Fixed that in the original source code. In addition, we were sometimes getting 0 values in a for-effect context, which the GHIL->GLIL compiler didn't support. Like this: (begin (call/cc (lambda (k) (k))) 10) I've fixed this in the tree-il->glil compiler. Cheers, Andy --=20 http://wingolog.org/