From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: sperber@informatik.uni-tuebingen.de (Michael Sperber [Mr. Preprocessor]) Newsgroups: gmane.emacs.devel Subject: Re: Emacs Lisp and Guile Date: Tue, 13 Aug 2002 08:58:32 +0200 Sender: emacs-devel-admin@gnu.org Message-ID: 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> <200208110355.g7B3tk306295@wijiji.santafe.edu> <200208121705.g7CH5rI06514@wijiji.santafe.edu> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: main.gmane.org 1029221897 24302 127.0.0.1 (13 Aug 2002 06:58:17 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Tue, 13 Aug 2002 06:58:17 +0000 (UTC) Cc: marius.vollmer@uni-dortmund.de, 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 17eVd9-0006Jr-00 for ; Tue, 13 Aug 2002 08:58:15 +0200 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 17eW1Y-0004bi-00 for ; Tue, 13 Aug 2002 09:23:28 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.10) id 17eVe3-0006s1-00; Tue, 13 Aug 2002 02:59:11 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10) id 17eVdZ-0006rS-00 for emacs-devel@gnu.org; Tue, 13 Aug 2002 02:58:41 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10) id 17eVdU-0006rA-00 for emacs-devel@gnu.org; Tue, 13 Aug 2002 02:58:41 -0400 Original-Received: from mx2.informatik.uni-tuebingen.de ([134.2.12.9]) by monty-python.gnu.org with esmtp (Exim 4.10) id 17eVdU-0006qw-00; Tue, 13 Aug 2002 02:58:36 -0400 Original-Received: from sams.informatik.uni-tuebingen.de (sams [134.2.12.50]) by mx2.informatik.uni-tuebingen.de (Postfix) with ESMTP id B38EB106E; Tue, 13 Aug 2002 08:58:32 +0200 (MST) Original-Received: from sams.informatik.uni-tuebingen.de (localhost [127.0.0.1]) by sams.informatik.uni-tuebingen.de (8.12.3/8.12.3) with ESMTP id g7D6wXxs071064; Tue, 13 Aug 2002 08:58:33 +0200 (CEST) (envelope-from sperber@sams.informatik.uni-tuebingen.de) Original-Received: (from sperber@localhost) by sams.informatik.uni-tuebingen.de (8.12.3/8.12.3/Submit) id g7D6wXKl071061; Tue, 13 Aug 2002 08:58:33 +0200 (CEST) (envelope-from sperber) Original-To: rms@gnu.org In-Reply-To: <200208121705.g7CH5rI06514@wijiji.santafe.edu> (Richard Stallman's message of "Mon, 12 Aug 2002 11:05:53 -0600 (MDT)") Original-Lines: 91 User-Agent: Gnus/5.090006 (Oort Gnus v0.06) XEmacs/21.5 (broccoli, i386-unknown-freebsd4.6) 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:6499 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:6499 --=-=-= >>>>> "RMS" == Richard Stallman writes: RMS> How and why? Things like buffer-local variables are concepts broken RMS> in principle in Emacs Lisp. Moving to Scheme is a chance to correct RMS> these historic mistakes. RMS> We seem to have very basic disagreements. It is not likely I would RMS> agree with recommendations that you make on this issue. Is it possible to have a discussion on this? RMS> Check out R5RS. For example, at: RMS> http://www.schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_idx_576 RMS> I will try to send email to fetch this. I've included the text verbatim. --=-=-= Content-Disposition: inline procedure: (dynamic-wind before thunk after) Calls thunk without arguments, returning the result(s) of this call. Before and after are called, also without arguments, as required by the following rules (note that in the absence of calls to continuations captured using call-with-current-continuation the three arguments are called once each, in order). Before is called whenever execution enters the dynamic extent of the call to thunk and after is called whenever it exits that dynamic extent. The dynamic extent of a procedure call is the period between when the call is initiated and when it returns. In Scheme, because of call-with-current-continuation, the dynamic extent of a call may not be a single, connected time period. It is defined as follows: * The dynamic extent is entered when execution of the body of the called procedure begins. * The dynamic extent is also entered when execution is not within the dynamic extent and a continuation is invoked that was captured (using call-with-current-continuation) during the dynamic extent. * It is exited when the called procedure returns. * It is also exited when execution is within the dynamic extent and a continuation is invoked that was captured while not within the dynamic extent. If a second call to dynamic-wind occurs within the dynamic extent of the call to thunk and then a continuation is invoked in such a way that the afters from these two invocations of dynamic-wind are both to be called, then the after associated with the second (inner) call to dynamic-wind is called first. If a second call to dynamic-wind occurs within the dynamic extent of the call to thunk and then a continuation is invoked in such a way that the befores from these two invocations of dynamic-wind are both to be called, then the before associated with the first (outer) call to dynamic-wind is called first. If invoking a continuation requires calling the before from one call to dynamic-wind and the after from another, then the after is called first. The effect of using a captured continuation to enter or exit the dynamic extent of a call to before or after is undefined. (let ((path '()) (c #f)) (let ((add (lambda (s) (set! path (cons s path))))) (dynamic-wind (lambda () (add 'connect)) (lambda () (add (call-with-current-continuation (lambda (c0) (set! c c0) 'talk1)))) (lambda () (add 'disconnect))) (if (< (length path) 4) (c 'talk2) (reverse path)))) ===> (connect talk1 disconnect connect talk2 disconnect) --=-=-= Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit -- Cheers =8-} Mike Friede, Völkerverständigung und überhaupt blabla --=-=-=--