[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8711: 24.0.50; binding _ to unused values with lexical-binding
From: |
Juanma Barranquero |
Subject: |
bug#8711: 24.0.50; binding _ to unused values with lexical-binding |
Date: |
Thu, 2 Jun 2011 15:41:32 +0200 |
On Thu, Jun 2, 2011 at 14:45, Stefan Monnier <monnier@iro.umontreal.ca> wrote:
> That's how dolist/dotimes are defined in Common-Lisp, hence that's
> how it works in cl-macs. The subr versions also do it because when we
> introduced them, some people brought up the issue and it seemed there
> was no point in being incompatible.
I wonder what kind of code (other than a specific test) makes this
incompatibility noticeable in the first place... but I digress ;-)
> Yes, I do find it very odd as well, but CLHS says clearly "At the time
> result-form is processed, var is bound to nil".
Silly me, I should've checked the CLHS. I would still be puzzled, but
at least not by Emacs.
> Or she can just use different names rather than reusing the same
> variable name.
Yeah, that too.
>> so setting it to nil in the (dolist (VAR LIST RESULT) ...) case does
>> not bring any clear benefit, even in the non-lexical case.
>
> Agreed.
Well, at the very least that's something that could/should be
optimized away (at some point in the future, I mean) in the
lexical-binding case (I think we already have some macros that expand
to different code for lexical and non-lexical compilations?).
Meanwhile, will you complain if I change that particular case (in
doc-view.el) to be like
(let (...)
(dolist (var list)
...)
result)
to avoid the warning?
Juanma