From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: David Kastrup Newsgroups: gmane.lisp.guile.devel Subject: Re: A plea for local-eval in 2.0.4 Date: Fri, 13 Jan 2012 10:20:23 +0100 Organization: Organization?!? Message-ID: <8762gg7yco.fsf@fencepost.gnu.org> References: <87aa5s8uli.fsf@netris.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1326447750 15007 80.91.229.12 (13 Jan 2012 09:42:30 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Fri, 13 Jan 2012 09:42:30 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Fri Jan 13 10:42:24 2012 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RldeR-0005Dj-Ib for guile-devel@m.gmane.org; Fri, 13 Jan 2012 10:42:23 +0100 Original-Received: from localhost ([::1]:40834 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RldKG-0001Qx-Pm for guile-devel@m.gmane.org; Fri, 13 Jan 2012 04:21:32 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:45255) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RldJb-0008Ip-G8 for guile-devel@gnu.org; Fri, 13 Jan 2012 04:21:04 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RldJV-0004Yy-H5 for guile-devel@gnu.org; Fri, 13 Jan 2012 04:20:51 -0500 Original-Received: from lo.gmane.org ([80.91.229.12]:33842) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RldJV-0004Ye-9d for guile-devel@gnu.org; Fri, 13 Jan 2012 04:20:45 -0500 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1RldJQ-0003TT-HZ for guile-devel@gnu.org; Fri, 13 Jan 2012 10:20:40 +0100 Original-Received: from p508ead5a.dip.t-dialin.net ([80.142.173.90]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 13 Jan 2012 10:20:40 +0100 Original-Received: from dak by p508ead5a.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 13 Jan 2012 10:20:40 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 41 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: p508ead5a.dip.t-dialin.net X-Face: 2FEFf>]>q>2iw=B6, xrUubRI>pR&Ml9=ao@P@i)L:\urd*t9M~y1^:+Y]'C0~{mAl`oQuAl \!3KEIp?*w`|bL5qr,H)LFO6Q=qx~iH4DN; i"; /yuIsqbLLCh/!U#X[S~(5eZ41to5f%E@'ELIi$t^ Vc\LWP@J5p^rst0+('>Er0=^1{]M9!p?&:\z]|;&=NP3AhB!B_bi^]Pfkw User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux) Cancel-Lock: sha1:HQdqtAvpSCIfKvOdxkrOH1NPeA4= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 80.91.229.12 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:13477 Archived-At: Mark H Weaver writes: > I'd like to make one last plea to include my simple `local-eval' > implementation in 2.0.4. My hope is that if we can ship it soon enough, > versions of Guile without `local-eval' will be rare enough to enable > Lilypond to eliminate their ugly hacks and simply declare that Guile > 2.0.0-2.0.3 are unsupported. We won't be able to declare this anytime soon, but it would likely be feasible to include a fallback implementation. It would make little sense to include a fallback that differs from 2.0.4 however. I am still fuzzy on what local-eval will do when the current module at the time of the-environment is different from that at the time of local-eval. Since the current module, even if nominally the same, can contain different variables at the time of local-eval, my take on that would be to not make it part of the environment at all. That is, everything that is not reachable through local scopes is not part of the environment. While this would indeed be the most convenient option with regard to the LilyPond case, I think that other options make less sense in general (or cause semantics that do more harm than help). Note that I have not actually checked what Guilev1 does here with regard to the-environment. If we reconstitute its use, I'll probably set the module explicitly in the argument of the local-eval call if it turns out to be necessary. > I worked very hard to produce a simple and maintainable implementation > of `local-eval' in time for 2.0.4, so that we might rectify this > unfortunate Lilypond unhappiness. It would be a shame if that work > were wasted. As I said, we won't get around catering for 2.0-2.0.3 manually for quite a while. But I would not want to be doing this with code different from what shall end up in Guile eventually. -- David Kastrup