From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: =?UTF-8?Q?Linus_Bj=c3=b6rnstam?= Newsgroups: gmane.lisp.guile.devel Subject: Re: GNU Guile 3.0.0 released Date: Sun, 19 Jan 2020 13:03:17 +0100 Message-ID: <85f37019-73d2-c305-65d1-4be80d564805@fastmail.se> References: <87zhenekcp.fsf@pobox.com> <87o8v32ifj.fsf@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="104137"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 To: Arne Babenhauserheide , guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Sun Jan 19 14:53:35 2020 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1itB1C-000R2U-M0 for guile-devel@m.gmane-mx.org; Sun, 19 Jan 2020 14:53:34 +0100 Original-Received: from localhost ([::1]:50378 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1itB1B-0007Xr-Jf for guile-devel@m.gmane-mx.org; Sun, 19 Jan 2020 08:53:33 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56694) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1it9IY-0002z4-Dk for guile-devel@gnu.org; Sun, 19 Jan 2020 07:03:23 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1it9IX-0001FS-9b for guile-devel@gnu.org; Sun, 19 Jan 2020 07:03:22 -0500 Original-Received: from out1-smtp.messagingengine.com ([66.111.4.25]:35601) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1it9IW-0001Eu-Pb for guile-devel@gnu.org; Sun, 19 Jan 2020 07:03:21 -0500 Original-Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id E215021B6B; Sun, 19 Jan 2020 07:03:18 -0500 (EST) Original-Received: from mailfrontend2 ([10.202.2.163]) by compute6.internal (MEProxy); Sun, 19 Jan 2020 07:03:18 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.se; h= subject:to:references:from:message-id:date:mime-version :in-reply-to:content-type:content-transfer-encoding; s=fm2; bh=5 AGnsZNyl5xQl1Ue8iILfUJADnSx+dKzU4z5qty1WaY=; b=WlnhR09twhUxDHjXH FkqdcNml6qrWtugch5TeyAiB4fSlsSiSHTwKreUwK56oW3AmZ0DZBBMi/8Bql2Sc P//Wjmi+lyVeu5VWmkl8ODyEGrhKQThT8WerdChWgVtup8WrsgQWkMRhu7NORmr9 u6nD37rvXjhASJFn3IHX+A3DTNivVs2P56Nfu5YoOZip/+P9OoY+TScPjGVEkCL3 uE85x0omyNb8BzAHr9QvH47Jdl4eepjuwUGOBomCLjPe3xaRhaXQjfS0jO5Y4pXi ti2LvAdyGU84JPKPbTTRtf5YUyNhJU3V7SpOsh632QNHdVdiWLdyv9+L0wcJVtM7 f8I4g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm1; bh=5AGnsZNyl5xQl1Ue8iILfUJADnSx+dKzU4z5qty1W aY=; b=uhXu4FELfsADLWbZOkGAbLzAz2ixZMlPs/YNA7oFtDjKPz5BKx3L3gNFY 7jfDHSYB27xJpa2okv7iSzdGUZPawR/uVEWdY4nzuOKqgjJZr6MPZuLYLfJShkxs GCXSNvp59bfB+rtEr2bS6Bav9jWfNeIRBfzfX74sganQ2KsIpRA4bznXOoKk8KaF PrpEUauoLp3/xmbQnU99Sfr+nbdgPvVL1KzGXoHiGq9jIj6CxzSuP1LhvVmzQRiQ U6PKa0YjQnrJBUp5kN1SLkAldIAJMSUbJPuSwrAkZSdon0hb25lmmMWwNd/KfBbA mKgknDiI6ISJaTejWOPyhE0dnMUiw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrudefgdefhecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefuvfhfhffkffgfgggjtgfgsehtjeertddtfeejnecuhfhrohhmpefnihhnuhhs pgeujhpnrhhnshhtrghmuceolhhinhhushesfhgrshhtmhgrihhlrdhsvgeqnecuffhomh grihhnpehsrhdrhhhtnecukfhppedukeehrdeihedrudefhedrvdefvdenucfrrghrrghm pehmrghilhhfrhhomheplhhinhhushesfhgrshhtmhgrihhlrdhsvgenucevlhhushhtvg hrufhiiigvpedt X-ME-Proxy: Original-Received: from Linuss-iMac.local (unknown [185.65.135.232]) by mail.messagingengine.com (Postfix) with ESMTPA id 546923060B12; Sun, 19 Jan 2020 07:03:18 -0500 (EST) In-Reply-To: <87o8v32ifj.fsf@web.de> Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 66.111.4.25 X-Mailman-Approved-At: Sun, 19 Jan 2020 08:53:15 -0500 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.23 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-mx.org@gnu.org Original-Sender: "guile-devel" Xref: news.gmane.io gmane.lisp.guile.devel:20307 Archived-At: On 2020-01-16 22:35, Arne Babenhauserheide wrote: > Can we get this into the Scheme standard, too? If you want a portable implementation, you can actually hack it using macros. Re-define lambda, define, let(*,-values,letrec,letrec*) and begin to rewrite everything to letrec and you are done! The problem is that it will be slower than using let* for the bindings that don't require letrec in many schemes, since the don't do the equivilent of guile's letrectification pass (described in the paper "Letrec done right (reloaded)" iirc). I have a syntax-rules implementation of it if you are interested, that also supports a simplified define-like binding that converts to let*. That one does _not_ convert the body to one letrec, only defines following eachother. so (define a 1) (when (even? a) (error "ERROR")) (define b 2) becomes (letrec ((a ...)) (when (even? a) (error "ERROR")) (letrec ((b 2)) ...) This is not compatible with guile, but is trivial to fix! Trivially portable to any other scheme, since it uses no fancy features except the usual module things: https://hg.sr.ht/~bjoli/guile-define/