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 22:55:48 +0100 Message-ID: <87y6vny4gr.fsf@gnu.org> References: <871vtiiqma.fsf@gnu.org> <8763iuhb7k.fsf@gnu.org> <87y6vox0s9.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 1236030984 13569 80.91.229.12 (2 Mar 2009 21:56:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 2 Mar 2009 21:56:24 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Mar 02 22:57:40 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 1LeG8i-0006Q5-JW for guile-devel@m.gmane.org; Mon, 02 Mar 2009 22:57:34 +0100 Original-Received: from localhost ([127.0.0.1]:34664 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LeG7N-0007lh-Hf for guile-devel@m.gmane.org; Mon, 02 Mar 2009 16:56:09 -0500 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LeG7H-0007lY-JR for guile-devel@gnu.org; Mon, 02 Mar 2009 16:56:03 -0500 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LeG7F-0007lD-5a for guile-devel@gnu.org; Mon, 02 Mar 2009 16:56:02 -0500 Original-Received: from [199.232.76.173] (port=50990 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LeG7F-0007lA-02 for guile-devel@gnu.org; Mon, 02 Mar 2009 16:56:01 -0500 Original-Received: from main.gmane.org ([80.91.229.2]:37400 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 1LeG7E-0004Dp-ER for guile-devel@gnu.org; Mon, 02 Mar 2009 16:56:00 -0500 Original-Received: from list by ciao.gmane.org with local (Exim 4.43) id 1LeG7B-0003jV-Dl for guile-devel@gnu.org; Mon, 02 Mar 2009 21:55:57 +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 ; Mon, 02 Mar 2009 21:55:57 +0000 Original-Received: from ludo by reverse-83.fdn.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 02 Mar 2009 21:55:57 +0000 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 47 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:hhqLM2v4rCyULDl4Jkq0njswswg= 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:8205 Archived-At: Hello! Andy Wingo writes: > On Mon 02 Mar 2009 00:48, ludo@gnu.org (Ludovic Courtès) writes: >> 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. > > Yeah. It is certainly a counterintuitive situation. The compiler > recognizes both call-with-values and @call-with-values, so we could just > not compile call-with-values; less nasty, but still nasty, and penalizes > the vm in the (apply call-with-values ...) case. Yes, but OTOH that's an unusual case, no? >> As a side note, I think it makes sense to keep the interpreter as the >> default when evaluating `.scm' files > > Sure, for now -- or we could do what python does, and automatically > create .go files as needed (and if possible). Then it would certainly > pay off over time, and the compilation time would probably be a wash > because in that case the .scm probably isn't even in the disk cache. That's one possibility. I think I prefer having to compile things explicitly, though. >> if the compiler performs smart optimizations, > > Hahaahaha! To put it another way, the compiler may not be designed from the ground up to minimize compilation time, whereas the interpreter (supposedly) tries to achieve this. > More seriously, I think that the bar for including optimizations in the > normal compilation path will be if they actually speed up the compiler > as well (since the compiler is self-compiled). Hey, walking in Dybvig's footsteps? ;-) http://www.cs.indiana.edu/~dyb/pubs/hocs.pdf Thanks, Ludo'.