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: CPS and RTL Date: Thu, 24 Jan 2013 09:30:19 +0100 Message-ID: <87libjhtk4.fsf@pobox.com> References: NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1359016246 4146 80.91.229.3 (24 Jan 2013 08:30:46 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 24 Jan 2013 08:30:46 +0000 (UTC) Cc: guile-devel To: Noah Lavine Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Jan 24 09:31:03 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 1TyID8-0003Xm-Gn for guile-devel@m.gmane.org; Thu, 24 Jan 2013 09:31:02 +0100 Original-Received: from localhost ([::1]:50301 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyICr-0005Vc-3G for guile-devel@m.gmane.org; Thu, 24 Jan 2013 03:30:45 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:52054) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyICf-0005BG-Qx for guile-devel@gnu.org; Thu, 24 Jan 2013 03:30:42 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TyICb-0007XA-I7 for guile-devel@gnu.org; Thu, 24 Jan 2013 03:30:33 -0500 Original-Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:39866 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyICb-0007Vt-Aw for guile-devel@gnu.org; Thu, 24 Jan 2013 03:30:29 -0500 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 1A7C7CB3B; Thu, 24 Jan 2013 03:30:22 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; s=sasl; bh=FZBSuOpTdToi3iBHjqn1xC80fJU=; b=mGtO7z ckOHa3I9NlgmTEs1LMCADqlwTLrRa/v+qR1UtsDNwIsUgHBci/22B4NK2Hh5KpGO mVy000JWYt6ZzORpoaT425qixV+bBZf5uupTlOmjsbFnp7tM69S91muBaJY6X4TB RRkwePDmO6R/0oCbr12TOEF53cy/oHxf5IavY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type; q=dns; s=sasl; b=Xn3tJIzDfDEo8EopAUwGGx+WjWRLQT/t YeLk6Mvpow7/Z79zN+KcAkFmQs/hFryY+f0VlwPM/glU7iRAtwrQ7rReW00Pf+bK UIX1PDKe/BkQeKtrwRIQ05r5VJy9QvlPJxsIfYmPqBnTAb2BfEv2apbEOFtko305 ZKuUqErF/v4= Original-Received: from a-pb-sasl-quonix.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 13769CB3A; Thu, 24 Jan 2013 03:30:22 -0500 (EST) Original-Received: from badger (unknown [88.160.190.192]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 8DA8CCB39; Thu, 24 Jan 2013 03:30:21 -0500 (EST) In-Reply-To: (Noah Lavine's message of "Sat, 17 Nov 2012 10:35:48 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) X-Pobox-Relay-ID: 4AE53348-6600-11E2-BEC9-0A4F0E5B5709-02397024!a-pb-sasl-quonix.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 X-Received-From: 208.72.237.25 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:15573 Archived-At: Hi Noah, On Sat 17 Nov 2012 16:35, Noah Lavine writes: > I've had several conversations on this list about using > continuation-passing style in Guile. I recently decided to take the hint > and implement it. I've pushed a new branch called wip-rtl-cps that I'd > appreciate comments on (but I do not necessarily think that this is the > branch that will be merged with master - it's still pretty rough). I really like it. It's clean and expressive. Of course it needs a lot of work as well :) But I think it's a good enough start that we should just merge it to wip-rtl and see where it goes from there. Some thoughts off the top of my head: * It would be good to organize the compiler as a set of passes. For example, closure conversion, assignment conversion, CSE, and register allocation should all be separate passes (perhaps in that order). Of course porting the CSE pass would be quite a bit of work... And actually, partial evaluation could work on the CPS form as well (but would be the first pass). Things for the future. * 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. * We really need the tree-il -> CPS compiler now. Of course there's more! But as a start, this this good. What do you think? Cheers, and thanks! Andy -- http://wingolog.org/