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: Tue, 30 Jul 2002 23:54:54 -0600 (MDT) Sender: emacs-devel-admin@gnu.org Message-ID: <200207310554.g6V5ssc16508@aztec.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> Reply-To: rms@gnu.org NNTP-Posting-Host: localhost.gmane.org X-Trace: main.gmane.org 1028094952 17261 127.0.0.1 (31 Jul 2002 05:55:52 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Wed, 31 Jul 2002 05:55:52 +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 17ZmSc-0004UI-00 for ; Wed, 31 Jul 2002 07:55:50 +0200 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17Zmkg-0004Jf-00 for ; Wed, 31 Jul 2002 08:14:31 +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 17ZmT4-0004At-00; Wed, 31 Jul 2002 01:56:18 -0400 Original-Received: from pele.santafe.edu ([192.12.12.119]) by fencepost.gnu.org with esmtp (Exim 3.35 #1 (Debian)) id 17ZmRr-0003zP-00; Wed, 31 Jul 2002 01:55:03 -0400 Original-Received: from aztec.santafe.edu (aztec [192.12.12.49]) by pele.santafe.edu (8.11.6+Sun/8.11.6) with ESMTP id g6V5t5B10387; Tue, 30 Jul 2002 23:55:05 -0600 (MDT) Original-Received: (from rms@localhost) by aztec.santafe.edu (8.10.2+Sun/8.9.3) id g6V5ssc16508; Tue, 30 Jul 2002 23:54:54 -0600 (MDT) X-Authentication-Warning: aztec.santafe.edu: rms set sender to rms@aztec using -f Original-To: marius.vollmer@uni-dortmund.de In-Reply-To: (message from Marius Vollmer on 30 Jul 2002 14:20:30 +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:6193 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:6193 > Scheme variables are normally lexical. What do people normally do in > Scheme when you want a dynamically scoped value? In plain Scheme, you use 'dynamic-wind' to establish a dynamic context. Entering and leaving that context will run specified procedures that can swap values in and out of variables that should have dynamically scoped values. It is very undesirable for Lisp dynamic variables to be different from Scheme dynamic variables. It makes the system specs incoherent. Is it possible to extend dynamic-wind so that it can handle buffer-local, frame-local, etc. contexts? Then a Lisp variable could be handled with dynamic-wind as usual, and there would be no divergence between Scheme variables and Lisp variables. In Guile, we also have 'fluids'. A fluid is a normal object like a cons pair that holds one object per thread. That is, fluids are our mechanism for thread local variables. Could this be unified with dynamic-wind also?