[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#3467: 23.0.94; let + make-local-variable => let value made
From: |
Stefan Monnier |
Subject: |
bug#3467: 23.0.94; let + make-local-variable => let value made |
Date: |
Sat, 27 Jun 2009 02:24:00 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.94 (gnu/linux) |
> The first problem is that the semantics of let,
> make-variable-buffer-local etc are not clearly defined. I suggest the
> following semantics (instead of the one I proposed before):
That's the intuitive semantics, indeed.
> I have made a patch for this with some comments and questions. I have
> included this in my patched version of Emacs+EmacsW32 and have been
> using it myself for a couple of days without any problems.
- NULL is equal to 0 by definition.
- Why do you check
if (!NILP (Flocal_variable_p (symbol, where)) ||
!NILP (Flocal_variable_if_set_p (symbol, where)))
i.s.o.
if (!NILP (Flocal_variable_p (symbol, where)))
That looks wrong since it would undo a kill-local-variable that was
performed within the let.
- Regarding "Case 1 in specbind", I have (in my local changes)
completely rewritten the variable-binding code so as not to use
special MISCP values. I find it makes the code clearer, tho maybe
others will disagree. I intend to install it in the trunk for 23.2
and it of course conflicts completely with your patch ;-)
If you want, I can try and extract the corresponding patch and send it
to you.
Stefan
bug#3467: 23.0.94; let + make-local-variable => let value made global, Richard Stallman, 2009/06/06