From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Stefan-W. Hahn" Subject: Re: Bug: buffer local variables handled wrong [9.0.5 (release_9.0.5-497-g5bc540 @ /home/hs/.emacs.d/lib/org-mode/lisp/)] Date: Sun, 4 Jun 2017 11:52:03 +0200 Message-ID: <20170604095203.GJ7145@seven> References: <20170603114859.GE7145@seven> <87a85olrzq.fsf@nicolasgoaziou.fr> <20170604065733.GG7145@seven> <87o9u4nrte.fsf@nicolasgoaziou.fr> <20170604080822.GH7145@seven> <877f0snorq.fsf@nicolasgoaziou.fr> <20170604091819.GI7145@seven> <87wp8sw0wp.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:53411) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dHSD2-0001vG-MN for emacs-orgmode@gnu.org; Sun, 04 Jun 2017 05:52:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dHSCz-0006iZ-J7 for emacs-orgmode@gnu.org; Sun, 04 Jun 2017 05:52:32 -0400 Received: from mout.kundenserver.de ([217.72.192.73]:56566) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dHSCz-0006ga-8N for emacs-orgmode@gnu.org; Sun, 04 Jun 2017 05:52:29 -0400 Content-Disposition: inline In-Reply-To: <87wp8sw0wp.fsf@nicolasgoaziou.fr> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Nicolas Goaziou Cc: emacs-orgmode@gnu.org Mail von Nicolas Goaziou, Sun, 04 Jun 2017 at 11:35:34 +0200: Hello, > "Stefan-W. Hahn" writes: > > > What I don't understand is, if I expand the pcase with (macrostep-expand) I > > get the following: > > > > ,---- > > | (let (res) > > | (dolist (pair (buffer-local-variables)) > > | (if > > | (consp pair) > > | (let* > > | ((x > > | (car pair)) > > | (x > > | (cdr pair))) > > | (let > > | ((val x) > > | (var x)) > > | (push > > | (list 'set var val) > > | res))) > > | nil)) > > | res) > > `---- > > > > And this is obviously wrong. > > This is not obviously wrong. You may be thinking that both `x' symbols > are the same, but they are not. E.g., > > (let ((s1 (make-symbol "x")) > (s2 (make-symbol "x"))) > (list (list s1 s2) (eq s1 s2))) > > => > > ((x x) nil) This I understand, but cannot see it in the macrostep-expanded code. I will try learn more to understand this. So it is obvoius now that you are a lisp magician of 8th grade. :-) Thanks and kind regards, Stefan -- Stefan-W. Hahn It is easy to make things. It is hard to make things simple.