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 11:35:43 +0100 Message-ID: <878v7ij2bk.fsf@pobox.com> References: <87libjhtk4.fsf@pobox.com> <878v7jnd5m.fsf@tines.lan> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: ger.gmane.org 1359023761 4096 80.91.229.3 (24 Jan 2013 10:36:01 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 24 Jan 2013 10:36:01 +0000 (UTC) Cc: guile-devel To: Mark H Weaver Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu Jan 24 11:36:20 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 1TyKAL-0006x1-Hr for guile-devel@m.gmane.org; Thu, 24 Jan 2013 11:36:17 +0100 Original-Received: from localhost ([::1]:56866 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyKA4-0003jg-5H for guile-devel@m.gmane.org; Thu, 24 Jan 2013 05:36:00 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:55765) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyK9v-0003Xx-Ck for guile-devel@gnu.org; Thu, 24 Jan 2013 05:35:58 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TyK9s-0003uR-Ob for guile-devel@gnu.org; Thu, 24 Jan 2013 05:35:51 -0500 Original-Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:39632 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TyK9s-0003uD-KQ for guile-devel@gnu.org; Thu, 24 Jan 2013 05:35:48 -0500 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 2D705A0B2; Thu, 24 Jan 2013 05:35:46 -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=kOFx2Q6aoxBD1NiqDo2fausnLGk=; b=AVcrwQ VBy8hyypcGWOAKipvE65ojvTpv3uYVulxqVVI1doeVyDQfhaXjaCIaip31tJsiS3 9z186a189LCjyG6yDBYF7cT25yFXvppSy9zi7meb8Nv42L3frdhZ9k0mUhgBvsa5 SWrXzg5N/oG4yf4cEsBMPEFlm25wvb9n8qDLE= 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=cYuUHOJR4/9gm6uP0a8BDcUdqpiUOKEJ 7ZxyXknazecWfxEHWnXrwC1cuAK1EOIPh+6nKO8rqLoj95ilS0+vmhmPxFZSHXiq I/ujJ+tBgn5F61OxkvbO6kImpHCuCanSSpBvfMVo4siGr29WT0nV8WhPTr37eD67 /R6BSDH4760= 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 20900A0B1; Thu, 24 Jan 2013 05:35:46 -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 9EC73A0B0; Thu, 24 Jan 2013 05:35:45 -0500 (EST) In-Reply-To: <878v7jnd5m.fsf@tines.lan> (Mark H. Weaver's message of "Thu, 24 Jan 2013 04:28:05 -0500") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.2 (gnu/linux) X-Pobox-Relay-ID: CF971CA8-6611-11E2-B3E0-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:15576 Archived-At: Hi! On Thu 24 Jan 2013 10:28, Mark H Weaver writes: > 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. Agreed with the sentiment; however, two points: * we can have a CPS with let / letrec / * operators that bind a number of values in unspecified order, and have a pass later that fixes their order. * code motion passes like CSE depend on effects analysis, and can often commute some operations Anyway, violent agreement! Cheers, Andy -- http://wingolog.org/