From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Marius Vollmer Newsgroups: gmane.emacs.devel Subject: Re: Emacs Lisp and Guile Date: 25 Jul 2002 21:16:03 +0200 Sender: emacs-devel-admin@gnu.org Message-ID: <874renlito.fsf@zagadka.ping.de> References: <200207200035.g6K0ZAb27891@aztec.santafe.edu> <200207212015.g6LKF4c00874@aztec.santafe.edu> <200207251807.g6PI75d07615@aztec.santafe.edu> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1027624620 18895 127.0.0.1 (25 Jul 2002 19:17:00 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Thu, 25 Jul 2002 19:17:00 +0000 (UTC) Cc: neil@ossau.uklinux.net, raeburn@raeburn.org, emacs-devel@gnu.org Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.33 #1 (Debian)) id 17Xo6c-0004ue-00 for ; Thu, 25 Jul 2002 21:16:58 +0200 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17XoM2-0004tC-00 for ; Thu, 25 Jul 2002 21:32:54 +0200 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17Xo6s-0007o5-00; Thu, 25 Jul 2002 15:17:14 -0400 Original-Received: from dialin.speedway43.dip201.dokom.de ([195.138.43.201] helo=zagadka.ping.de) by fencepost.gnu.org with smtp (Exim 3.35 #1 (Debian)) id 17Xo5l-0007gT-00 for ; Thu, 25 Jul 2002 15:16:05 -0400 Original-Received: (qmail 2335 invoked by uid 1000); 25 Jul 2002 19:16:03 -0000 Original-To: rms@gnu.org In-Reply-To: <200207251807.g6PI75d07615@aztec.santafe.edu> Original-Lines: 47 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.11 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:6048 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:6048 Richard Stallman writes: > Since Emacs Lisp syntax is not the same as Guile syntax, we will need > a reader that handles Emacs Lisp syntax--unless it happens that the > Guile reader could be customized to support Emacs Lisp syntax. Is > that feasible? It is not possible to configure the Guile reader enough right now, but it would certainly be a good thing to add that configurability. > 2. The representation of Elisp variables doesn't allow for buffer- and > frame-local variables. > > How to handle these in a Guile-based system is not obvious, but they are > such important features that we must make them work. A Elisp variable can start its existence as a normal variable and then be later turned into a buffer- or frame-local variable and when such a change occurs, all code (possibly already compiled) must start to treat the variable as buffer local, right? When that is the case, we need to treat Elisp variable references differently from Scheme variable references. In Scheme, we only look up the storage location of a variable once and then each reference is only a simple memory access. However, we are also considering an automatic re-lookup machine that would update the old lookups whenever the state of the module system changes in such a way that these old lookups become outdated. (That is, when some code refers to a variable with the name "foo" and that name is at first provided by the module mod1, and then mod1 is changed to no longer export "foo" but mod2 now does, we will automatically modify the code to refer to the new variable.) We could use this (as of now non-existing) machinery to also modify code that has been translated from Elisp. I'm not sure that I like this approach, tho. Right now, I'd say that requiring the user to simply reload his files when he wants a new name->variable mapping to take effect is good enough or maybe even better. That said, I think we should have a new primitive procedure, say @elisp-ref, that does the right thing for Elisp variables. -- GPG: 7CB2 927E F53F BD3C 5DC4 CD06 CF32 AB3E 1FC6 BAE7