From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.devel Subject: Re: CPS and RTL Date: Thu, 24 Jan 2013 04:28:05 -0500 Message-ID: <878v7jnd5m.fsf@tines.lan> References: <87libjhtk4.fsf@pobox.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1359019709 15830 80.91.229.3 (24 Jan 2013 09:28:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 24 Jan 2013 09:28:29 +0000 (UTC) Cc: guile-devel To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Jan 24 10:28:48 2013 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TyJ6z-0005aC-Do for guile-devel@m.gmane.org; Thu, 24 Jan 2013 10:28:45 +0100 Original-Received: from localhost ([::1]:49688 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyJ6i-0006q0-4b for guile-devel@m.gmane.org; Thu, 24 Jan 2013 04:28:28 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:39294) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyJ6d-0006pi-Ab for guile-devel@gnu.org; Thu, 24 Jan 2013 04:28:25 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TyJ6a-0008Nw-Iv for guile-devel@gnu.org; Thu, 24 Jan 2013 04:28:23 -0500 Original-Received: from world.peace.net ([96.39.62.75]:50062) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyJ6a-0008Mv-Em for guile-devel@gnu.org; Thu, 24 Jan 2013 04:28:20 -0500 Original-Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=tines.lan) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1TyJ6T-0003hK-KM; Thu, 24 Jan 2013 04:28:13 -0500 In-Reply-To: <87libjhtk4.fsf@pobox.com> (Andy Wingo's message of "Thu, 24 Jan 2013 09:30:19 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 96.39.62.75 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:15575 Archived-At: Andy Wingo writes: > * We should still compile Scheme to tree-il I think; it's convenient, > and other languages may well prefer a more direct-style IL as a > target. I like CPS for later passes of the compiler, but it should not come first. The problem is that CPS fixes the order in which everything is evaluated, such as the order in which procedure arguments are evaluated, the order in which 'let' or 'letrec' initializers are evaluated, etc. The fact that these orders are unspecified in the direct-style gives the compiler freedom to choose an order that generates the best code, and apparently this freedom can often result in significant gains. Such ordering decisions must be made before the conversion to CPS. Mark