From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: storm@cua.dk (Kim F. Storm) Newsgroups: gmane.emacs.devel Subject: let vs. buffer local bindings Date: 10 May 2002 16:21:07 +0200 Sender: emacs-devel-admin@gnu.org Message-ID: <5xy9esxewc.fsf@kfs2.cua.dk> NNTP-Posting-Host: localhost.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1021036911 7774 127.0.0.1 (10 May 2002 13:21:51 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Fri, 10 May 2002 13:21:51 +0000 (UTC) Cc: Dave Pearson , Gareth Owen Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by main.gmane.org with esmtp (Exim 3.33 #1 (Debian)) id 176ALH-00021H-00 for ; Fri, 10 May 2002 15:21:51 +0200 Original-Received: from fencepost.gnu.org ([199.232.76.164]) by quimby.gnus.org with esmtp (Exim 3.12 #1 (Debian)) id 176AUO-0001sT-00 for ; Fri, 10 May 2002 15:31:16 +0200 Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 176AL3-00007R-00; Fri, 10 May 2002 09:21:37 -0400 Original-Received: from fepd.post.tele.dk ([195.41.46.149]) by fencepost.gnu.org with smtp (Exim 3.34 #1 (Debian)) id 176AJq-0008UF-00 for ; Fri, 10 May 2002 09:20:22 -0400 Original-Received: from kfs2.cua.dk.cua.dk ([194.239.225.46]) by fepD.post.tele.dk (InterMail vM.4.01.03.23 201-229-121-123-20010418) with SMTP id <20020510132021.UNQN7393.fepD.post.tele.dk@kfs2.cua.dk.cua.dk>; Fri, 10 May 2002 15:20:21 +0200 Original-To: emacs-devel@gnu.org Original-Lines: 43 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2.50 Errors-To: emacs-devel-admin@gnu.org X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.0.9 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.emacs.devel:3806 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:3806 Gareth Owen has found a peculiar interference between let and buffer local bindings. Does anyone care to comment on the following result: First try evalling: (progn (make-variable-buffer-local 'foo) (setq-default foo 1) (list foo (let ((foo 2) (buf (generate-new-buffer "baz"))) (set-buffer buf) foo) (let ((foo 3) (buf (generate-new-buffer "baz"))) (set-buffer buf) foo) (let ((foo 4) (buf (generate-new-buffer "baz"))) (set-buffer buf) foo))) which produces what seems to be correct: (1 2 3 4) But now eval this: (progn (setq foo 0) (list foo (let ((foo 2) (buf (generate-new-buffer "baz"))) (set-buffer buf) foo) (let ((foo 3) (buf (generate-new-buffer "baz"))) (set-buffer buf) foo) (let ((foo 4) (buf (generate-new-buffer "baz"))) (set-buffer buf) foo))) which produces what seems to be wrong: (0 1 3 4) -- Kim F. Storm http://www.cua.dk