From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.user,gmane.lisp.guile.devel Subject: Re: GNU Guile 2.9.5 Released [beta] Date: Tue, 07 Jan 2020 22:53:44 +0100 Message-ID: <87r20b3pcn.fsf@pobox.com> References: <87lfs8kkao.fsf@pobox.com> <20191201204142.0388791e61fa443e615605da@gmail.com> <87eewdu0av.fsf@pobox.com> <20200105232640.8d389c139c7b4993e90938a1@gmail.com> <87eewcs4r0.fsf@pobox.com> <20200106231419.7fd821d8a60f0ef400f7ffe1@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="263561"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Cc: guile-user@gnu.org, guile-devel@gnu.org To: Chris Vine Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Tue Jan 07 22:54:28 2020 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1iownz-001347-Qc for guile-user@m.gmane.org; Tue, 07 Jan 2020 22:54:27 +0100 Original-Received: from localhost ([::1]:56340 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iowny-0004EO-7j for guile-user@m.gmane.org; Tue, 07 Jan 2020 16:54:26 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47766) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iownX-00049V-R6 for guile-user@gnu.org; Tue, 07 Jan 2020 16:54:00 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iownW-0002zG-Sv for guile-user@gnu.org; Tue, 07 Jan 2020 16:53:59 -0500 Original-Received: from fanzine.igalia.com ([178.60.130.6]:48336) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iownU-0002vG-ML; Tue, 07 Jan 2020 16:53:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Type:MIME-Version:Message-ID:In-Reply-To:Date:References:Subject:Cc:To:From; bh=VUKy1g202PKKqwoDZmtfIo2IcSV+Xwtu7EDACwX+p/s=; b=OScSX4ZeTN7TYtta6cTF8VCTQVIwX+3uvINTNjT45eYU5W2s31YsV8J9489RxRWQBRQpmUkuQsuMF9t51N5uomg1eaXctn+JeJ3fPna8lLvzYmdehGwzzVlh6666lvOh9u3zyW96HATWvI6lFO4Zs1TwVmDT9jjeqiRUZja7bgjO1iEWaoBVqU9KmW4QEnpflZehl0S8LLG1OYOQlPq/ekrJ44FlNg/SHIjRD/rYFbJYabpIYBILa80gRUbQxbbFGERRmzfT8ZpaNfaIkB/rmCufWQUXTDu0Y3ZpMAaqw6O5eFe3afrfqnVb+8CBRig6L2AH+DIqyApH8DFYzBsZSg==; Original-Received: from [88.123.12.110] (helo=sparrow) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1iownS-0002rx-Cg; Tue, 07 Jan 2020 22:53:54 +0100 In-Reply-To: <20200106231419.7fd821d8a60f0ef400f7ffe1@gmail.com> (Chris Vine's message of "Mon, 6 Jan 2020 23:14:19 +0000") X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 178.60.130.6 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.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:16006 gmane.lisp.guile.devel:20242 Archived-At: On Tue 07 Jan 2020 00:14, Chris Vine writes: > I wonder if it would surprise the programmer to have the cond > conditionals evaluated in a different dynamic environment from the one > in which the cond consequential is evaluated where there is a > conditional which is true. I entirely agree it's not ideal and can be surprising! I am not sure that there is an "ideal" here though; with-exception-handler is wonderfully expressive but can be verbose, guard is a pleasant abbreviation but how to deal with re-raising from the original context? In the end, "guard" is just a macro over a more general facility. But it's a macro that we expect people to use, and to cover the common case. To that end I think we should make it cheap and avoid rewinding while also preserving the nice characteristic of evaluating cond consequents in the continuation of the "guard" itself. Andy