From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Chris Vine Newsgroups: gmane.lisp.guile.user Subject: Re: "Missing" libraries/concepts found in other languages/ecosystems? Date: Mon, 13 Jul 2020 11:10:05 +0100 Message-ID: <20200713111005.a670f4879166cdeb35bbadd6@gmail.com> References: <20200710112109.b2ffa630699452541835924b@gmail.com> <14a24bd8-2664-c7bf-eff8-ca3f4e068ef8@posteo.de> <20200711111359.acacd7d4a6b328bab44ba11e@gmail.com> <20200711233918.3355c443aaa8d44de772e572@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5063"; mail-complaints-to="usenet@ciao.gmane.io" To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Mon Jul 13 12:10:25 2020 Return-path: Envelope-to: guile-user@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 1juvPl-0001Dh-A1 for guile-user@m.gmane-mx.org; Mon, 13 Jul 2020 12:10:25 +0200 Original-Received: from localhost ([::1]:33654 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1juvPk-00074G-BX for guile-user@m.gmane-mx.org; Mon, 13 Jul 2020 06:10:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45376) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1juvPX-00073D-El for guile-user@gnu.org; Mon, 13 Jul 2020 06:10:11 -0400 Original-Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]:37898) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1juvPV-0004ub-Pf for guile-user@gnu.org; Mon, 13 Jul 2020 06:10:11 -0400 Original-Received: by mail-wr1-x42b.google.com with SMTP id z13so15563954wrw.5 for ; Mon, 13 Jul 2020 03:10:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:subject:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=taZTcVi7g250HuYW7WbxhrB43PmtTYt7T4uB8CLB7ws=; b=XSXShVFfsrcLs9H4+N2wtzqyTUoTMc64XHTW+IspxX9JCDuZhXN8ARY5JO7m7r8k7R FWahkYQf/cGoLoQFTyadoRdHNXwL6bmijEdkNf6SMGEL/suAhGxW6HkZFO3mTgtdx73t e1cpfNdmyH8vx34a+eg3Aa5o45iBTLm9d/3Y1G+g7bcq1S2PV8zOV393pjFMwfmEnk5/ ejQHQMStl3SIhCtuCr0BXnyc1JOd0/Ot360BWZj909TtMdXMBgkEICZWff9xgOapICFT 4drllPRg6H2aFO2pAUP8uKzcS+6z3dIE6wtJZJILeDzg+A8ajXTR1nRKocBthzKMk1hS jZhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:subject:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=taZTcVi7g250HuYW7WbxhrB43PmtTYt7T4uB8CLB7ws=; b=PCDN7BtEYH8e0ZGOmYLDlA2/Th2LuPwone5Lupb/nN9xHrDBn92PJxwzmFewiK4sx9 wePw7o8ZDJBgTs/XJm5vrxm09rEZQXRA0yrTPLf317cZXovOAcE6FwDwmrWTxEtsVORz DdoVC/s1r0SeUmMq1oeN0mRH5+uMkSRUjebGtca7LUfO/M2x3NeNNGIqeZp6+V6MIGUa jR93art/pn/tONpTSJfRutffWmuSxuR2JMWnlF3ohweju2BazLvS17BmUfATX9aUZZ7W oQ2T62LWb9ylq/asgOAwELCRMpIN9HKmsQ0bz6wDN7Jf46mJ1D3zgCXMqT+8Ou4UBTgK 0irA== X-Gm-Message-State: AOAM5303+fUUMN9y+BJXgR40wAGxDfy1Cw4/QaEg2wj7XxMB7InbClv2 7N7XvZBzhYZlJPzW72IKRpiT6KIP X-Google-Smtp-Source: ABdhPJwmrpG+0IDGAamNLBDsQ8GkR/BqLmdH9HXpjYFT8Dke1m+8O6iAhVObqQaSmYb0Maf+aFszpA== X-Received: by 2002:adf:ff8c:: with SMTP id j12mr78210865wrr.230.1594635007490; Mon, 13 Jul 2020 03:10:07 -0700 (PDT) Original-Received: from bother.homenet ([2.24.141.94]) by smtp.gmail.com with ESMTPSA id 133sm23307043wme.5.2020.07.13.03.10.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2020 03:10:06 -0700 (PDT) Original-Received: from bother.homenet (localhost [127.0.0.1]) by bother.homenet (Postfix) with SMTP id 93A24263BA0 for ; Mon, 13 Jul 2020 11:10:05 +0100 (BST) In-Reply-To: <20200711233918.3355c443aaa8d44de772e572@gmail.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.32; x86_64-unknown-linux-gnu) Received-SPF: pass client-ip=2a00:1450:4864:20::42b; envelope-from=vine35792468@gmail.com; helo=mail-wr1-x42b.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:16677 Archived-At: On Sat, 11 Jul 2020 23:39:18 +0100 Chris Vine wrote: > On Sat, 11 Jul 2020 14:20:22 -0400 > John Cowan wrote: > > Is the intention to provide `guard` in Guile 3.x? > > It's been in guile for as long as I can remember (at least since 2.0). By the way, guile-3.0's version of 'guard' doesn't comply with R6RS/R7RS (I think Chez scheme's 'guard' is about the only one which does). After correction, R6RS and R7RS require the cond conditionals to be evaluated and the body of any cond clause to execute in the dynamic environment in which 'guard' was called. If there is no cond conditional evaluating to true and no else clause, then the dynamic environment reverts to that of the site of the exception for the exception to be re-raised by raise-continuable. guile doesn't do that, I think mainly for efficiency reasons. In guile-3.0, the cond conditionals are evaluated in the dynamic environment in which the exception arises, and only if there is a cond conditional evaluating to true (or an else clause) does control pass to the dynamic environment in which 'guard' was called for the relevant cond clause body to execute. So as with R6RS/R7RS, where an exception is re-raised, that is done by raise-continuable in the dynamic context in which the exception occurred, but a different route is chosen to get there. I prefer guile's approach but I imagine your view is probably different.