From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Mark H Weaver Newsgroups: gmane.lisp.guile.devel Subject: Re: Anything better for delayed lexical evaluation than (lambda () ...)? Date: Wed, 14 Dec 2011 06:03:51 -0500 Message-ID: <87vcpjmn3c.fsf@netris.org> References: <87liqtpsl9.fsf@fencepost.gnu.org> <87d3bvfo5d.fsf@fencepost.gnu.org> <871usaicvi.fsf@netris.org> <87mxaycmlx.fsf@fencepost.gnu.org> <87wra1hcek.fsf@netris.org> <87mxaxihnw.fsf@pobox.com> <87obvclu92.fsf@fencepost.gnu.org> <87aa6wbp0w.fsf@pobox.com> <87fwgolgm5.fsf@fencepost.gnu.org> <8762hkbkwi.fsf@pobox.com> <87borclcem.fsf@fencepost.gnu.org> <87zkewa2vy.fsf@pobox.com> <87zkewjvyz.fsf@fencepost.gnu.org> <87vcpka13n.fsf@pobox.com> <87zkewnzy7.fsf@netris.org> <87r5089ui3.fsf@pobox.com> <87r508nv0o.fsf@netris.org> <87fwgondme.fsf@netris.org> <87borboalb.fsf@netris.org> <87liqf5uty.fsf@pobox.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: dough.gmane.org 1323860745 31057 80.91.229.12 (14 Dec 2011 11:05:45 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Wed, 14 Dec 2011 11:05:45 +0000 (UTC) Cc: David Kastrup , guile-devel@gnu.org To: Andy Wingo Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Wed Dec 14 12:05:37 2011 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 1RameX-0005Pu-Eb for guile-devel@m.gmane.org; Wed, 14 Dec 2011 12:05:37 +0100 Original-Received: from localhost ([::1]:58959 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RameU-0006re-Dp for guile-devel@m.gmane.org; Wed, 14 Dec 2011 06:05:34 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:52766) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RameO-0006rT-70 for guile-devel@gnu.org; Wed, 14 Dec 2011 06:05:32 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RameL-0006aD-VG for guile-devel@gnu.org; Wed, 14 Dec 2011 06:05:28 -0500 Original-Received: from world.peace.net ([96.39.62.75]:57016) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RameL-0006Zy-Qs; Wed, 14 Dec 2011 06:05:25 -0500 Original-Received: from 209-6-91-212.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([209.6.91.212] helo=yeeloong) by world.peace.net with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.69) (envelope-from ) id 1RameG-00013M-MN; Wed, 14 Dec 2011 06:05:20 -0500 In-Reply-To: <87liqf5uty.fsf@pobox.com> (Andy Wingo's message of "Wed, 14 Dec 2011 11:08:41 +0100") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 96.39.62.75 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:13087 Archived-At: Andy Wingo writes: > On Wed 14 Dec 2011 08:50, Mark H Weaver writes: > >> I have successfully implemented the (capture-lexical-environment) >> special form in the evaluator, and also primitive-local-eval. > > I dunno, Mark. That's a neat hack, but why should we have it in Guile? > It can't compile. It's not for efficiency, because if you wanted more > efficiency, you would compile. So what is it for? It has a cost, so it > needs to justify itself. For starters, it's for handling languages like Lilypond, which fundamentally _cannot_ be compiled. It's not a question of implementation strategy. Even if someone were willing to rewrite Lilypond's implementation from scratch, I have become convinced that it cannot be compiled without redesigning the language itself. More generally, it's to increase the generality and flexibility of Guile. One of the things I like most about Scheme is that it is powerful enough to implement just about anything on top of it, using just about any strategy you wish, in a simple, straightforward manner, thanks to advanced features like macros and continuations. I found it somewhat embarrassing that Guile 2.0 was unable to gracefully support a language that Guile 1.8 handled beautifully. I would like to fix that. Also, I think that it is crucially important to keep the Lilypond developers happy with Guile. We don't have very many users. We should make an effort to keep our existing users happy. Mark