From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: Emacs Lisp and Guile Date: Wed, 7 Aug 2002 08:24:00 -0600 (MDT) Sender: emacs-devel-admin@gnu.org Message-ID: <200208071424.g77EO0k03146@wijiji.santafe.edu> References: <200207200035.g6K0ZAb27891@aztec.santafe.edu> <200207212015.g6LKF4c00874@aztec.santafe.edu> <200207251807.g6PI75d07615@aztec.santafe.edu> <874renlito.fsf@zagadka.ping.de> <200207271853.g6RIre710837@aztec.santafe.edu> <200207310554.g6V5ssc16508@aztec.santafe.edu> <200208021743.g72HhkX01596@aztec.santafe.edu> Reply-To: rms@gnu.org NNTP-Posting-Host: localhost.gmane.org X-Trace: main.gmane.org 1028730326 22955 127.0.0.1 (7 Aug 2002 14:25:26 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 7 Aug 2002 14:25:26 +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.35 #1 (Debian)) id 17cRka-0005xx-00 for ; Wed, 07 Aug 2002 16:25:24 +0200 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17cS6D-000090-00 for ; Wed, 07 Aug 2002 16:47:46 +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 17cRlF-00007q-00; Wed, 07 Aug 2002 10:26:05 -0400 Original-Received: from pele.santafe.edu ([192.12.12.119]) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17cRjV-0007yg-00; Wed, 07 Aug 2002 10:24:17 -0400 Original-Received: from wijiji.santafe.edu (wijiji [192.12.12.5]) by pele.santafe.edu (8.11.6+Sun/8.11.6) with ESMTP id g77EOG518294; Wed, 7 Aug 2002 08:24:16 -0600 (MDT) Original-Received: (from rms@localhost) by wijiji.santafe.edu (8.11.6+Sun/8.9.3) id g77EO0k03146; Wed, 7 Aug 2002 08:24:00 -0600 (MDT) X-Authentication-Warning: wijiji.santafe.edu: rms set sender to rms@wijiji using -f Original-To: marius.vollmer@uni-dortmund.de In-Reply-To: (message from Marius Vollmer on 05 Aug 2002 18:08:24 +0200) 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:6335 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:6335 Right now, a variable is a strictly passive data container. You can't intercept accesses to it. A variable reference is a direct reference to memory, not a function call. We would have to change this model to also allow 'active' variables that can run arbitrary code when they are accessed. That is not what I am suggesting. Variables in Emacs do not run arbitrary code when accessed; I think that would be a misguided feature. However, Emacs enables the value to reside in various places besides the symbol itself. For instance, a variable can be forwarded to a C variable. There are three ways of doing this: the C variable holds an integer, the C variable holds a Lisp object, or the C variable holds a boolean value (0 means nil, non-0 means t). A similar feature in Guile would be useful for many sorts of application programs. This is independent of the feature of buffer-local and frame-local variable bindings. Their implementations in Emacs are not totally independent, but perhaps they could be implemented independently in Guile.