From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.devel Subject: Re: [VM] Tail recursion and multiple values Date: Mon, 02 Mar 2009 00:48:22 +0100 Message-ID: <87y6vox0s9.fsf@gnu.org> References: <871vtiiqma.fsf@gnu.org> <8763iuhb7k.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1235951336 22391 80.91.229.12 (1 Mar 2009 23:48:56 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 1 Mar 2009 23:48:56 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Mar 02 00:50:13 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 1LdvQC-00028c-S8 for guile-devel@m.gmane.org; Mon, 02 Mar 2009 00:50:13 +0100 Original-Received: from localhost ([127.0.0.1]:35616 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LdvOr-00065C-SW for guile-devel@m.gmane.org; Sun, 01 Mar 2009 18:48:49 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LdvOl-00064j-A9 for guile-devel@gnu.org; Sun, 01 Mar 2009 18:48:43 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LdvOj-000643-NB for guile-devel@gnu.org; Sun, 01 Mar 2009 18:48:42 -0500 Original-Received: from [199.232.76.173] (port=45400 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LdvOj-000640-Ge for guile-devel@gnu.org; Sun, 01 Mar 2009 18:48:41 -0500 Original-Received: from main.gmane.org ([80.91.229.2]:56472 helo=ciao.gmane.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LdvOj-0006dk-0q for guile-devel@gnu.org; Sun, 01 Mar 2009 18:48:41 -0500 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1LdvOc-00045Z-QG for guile-devel@gnu.org; Sun, 01 Mar 2009 23:48:34 +0000 Original-Received: from reverse-83.fdn.fr ([80.67.176.83]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 01 Mar 2009 23:48:34 +0000 Original-Received: from ludo by reverse-83.fdn.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 01 Mar 2009 23:48:34 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 40 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: reverse-83.fdn.fr X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 12 =?iso-8859-1?Q?Vent=F4se?= an 217 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 821D 815D 902A 7EAB 5CEE D120 7FBA 3D4F EB1F 5364 X-OS: i686-pc-linux-gnu User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.90 (gnu/linux) Cancel-Lock: sha1:ESJdEc2tsPd/wjHwfVDdmDsnUqY= X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) 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:8203 Archived-At: Hello! Andy Wingo writes: > On Sat 28 Feb 2009 15:45, ludo@gnu.org (Ludovic Courtès) writes: >> Actually no: it works with VM-compiled code, but it breaks when using >> Guile-VM with `,o interp #t' (which appears to be the default, except at >> the REPL). > > This is a misunderstanding. > > Last things first: code is not run through the VM unless it is compiled. > The REPL in the vm branch compiles expressions by default, though it has > an option to use the interpreter instead (,option interp #t). Understood. > So what I really mean to say is: > > 1) It is expected that you don't have tail recursion between > interpreted and VM code. > > 2) This particular problem manifests itself in that call-with-values > is VM code (when r5rs.scm is compiled). (The latter is what I meant to say in my message.) As for (1), I'm unsure. The issue is that as long as running code with the interpreter is the default, people may hit this kind of problem, which is, well, problematic. Now, I have no idea how this could be solved without resorting to dirty hacks such as the one you suggested. As a side note, I think it makes sense to keep the interpreter as the default when evaluating `.scm' files since compilation can be costly and may not pay off (e.g., if the compiler performs smart optimizations, and/or the program is short-lived). Thanks, Ludo'.