From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Newsgroups: gmane.lisp.guile.devel Subject: Re: syntax-local-binding Date: Wed, 25 Jan 2012 14:18:03 +0100 Message-ID: <87liovly44.fsf@gnu.org> References: <874nvw99za.fsf@pobox.com> <87zkdo7uf5.fsf@pobox.com> <87sjjbvs12.fsf@pobox.com> <87sjjaunme.fsf@netris.org> <87r4yurruv.fsf@pobox.com> <87obtyuj4k.fsf@netris.org> <871uqqpfoo.fsf@pobox.com> <87hazmrv15.fsf@netris.org> <87zkdem58t.fsf@pobox.com> <87d3a9mjcy.fsf@pobox.com> <874nvls04f.fsf@netris.org> <87ipk0lrs2.fsf@pobox.com> <87ipk0qzsq.fsf@netris.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: dough.gmane.org 1327497510 25787 80.91.229.12 (25 Jan 2012 13:18:30 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 25 Jan 2012 13:18:30 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Jan 25 14:18:27 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 1Rq2k7-0003me-0z for guile-devel@m.gmane.org; Wed, 25 Jan 2012 14:18:27 +0100 Original-Received: from localhost ([::1]:39222 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rq2k6-0003VQ-2i for guile-devel@m.gmane.org; Wed, 25 Jan 2012 08:18:26 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:34002) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rq2k3-0003VG-2B for guile-devel@gnu.org; Wed, 25 Jan 2012 08:18:24 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rq2k1-0005HP-M6 for guile-devel@gnu.org; Wed, 25 Jan 2012 08:18:23 -0500 Original-Received: from lo.gmane.org ([80.91.229.12]:60526) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rq2k1-0005HI-Ai for guile-devel@gnu.org; Wed, 25 Jan 2012 08:18:21 -0500 Original-Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1Rq2jx-0003gi-9D for guile-devel@gnu.org; Wed, 25 Jan 2012 14:18:17 +0100 Original-Received: from reverse-83.fdn.fr ([80.67.176.83]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 25 Jan 2012 14:18:17 +0100 Original-Received: from ludo by reverse-83.fdn.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Wed, 25 Jan 2012 14:18:17 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 62 Original-X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: reverse-83.fdn.fr X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 6 =?iso-8859-1?Q?Pluvi=F4se?= an 220 de la =?iso-8859-1?Q?R=E9volution?= X-PGP-Key-ID: 0xEA52ECF4 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 83C4 F8E5 10A3 3B4C 5BEA D15D 77DD 95E2 EA52 ECF4 X-OS: x86_64-unknown-linux-gnu User-Agent: Gnus/5.110018 (No Gnus v0.18) Emacs/24.0.90 (gnu/linux) Cancel-Lock: sha1:xPDHR+m1YC9TMQZynVOYKOwcmVk= 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:13673 Archived-At: Hello Happy Guilers! :-) Sorry for remaining silent in this heated thread (I spent my spare time on other practical issues for 2.0.4, and felt I lacked the competence.) My overall feeling is that providing a 1.8-compatible ‘local-eval’ in 2.0 is great, but that it’s essentially one bug to be fixed among many others. Thus, I appreciate all the work Andy and you have put into it, and I’m glad it will be helpful to Guile users such as Lilypond. However, I think, that we should keep in mind that Guile is not just about ‘local-eval’, and that there are other great things to work on together. As for the technical aspects: Mark H Weaver skribis: > Andy Wingo writes: >> On Tue 24 Jan 2012 14:25, Mark H Weaver writes: >> >>> Andy Wingo writes: >>> >>>> None of the interfaces that I proposed leak internal psyntax >>>> representations. >>> >>> `syntax-local-binding' leaks the internal representations used for >>> bindings. >> >> You mean, whether something is a lexical, or a macro, or a global, or >> whatever; OK. > > That's actually not what I meant, although I'm not convinced that we > fully understand the implications of exposing even that much. One thing > that is already clear is that `identifier-syntax' and `local-eval' were > previously capable of emulating variables perfectly before, whereas in > the presence of `syntax-local-binding' they no longer are. > > This is a perfect example of how added flexibility in one aspect can > lead to _reduced_ flexibility in other aspects. I think we need more > time to consider the implications of this. I agree. Yet, it’s the kind of API that is useful internally for different purposes beyond ‘local-eval’, as this discussion showed, right? So, IIUC, the tension is: 1. Such as API is desirable for Guile-internal consumption. 2. Exposing it to users may restrict our ability to change the implementation in the future, just like ‘the-environment’ did. I haven’t fully thought about it, but one possible trade-off would be to mark ‘syntax-local-binding’ & co. as internal, somehow arrange to make them visible only from some (system ...) module, and document them in the “Implementation” chapter. WDYT? Thanks, Ludo’.