* bug#25017: Fwd: Re: dotimes var comiler warning
[not found] <878ts957gj.fsf@web.de>
@ 2016-11-24 14:10 ` Andreas Röhler
2016-11-24 14:23 ` npostavs
2016-11-24 14:44 ` Michael Albinus
0 siblings, 2 replies; 12+ messages in thread
From: Andreas Röhler @ 2016-11-24 14:10 UTC (permalink / raw)
To: 25017
[-- Attachment #1: Type: text/plain, Size: 843 bytes --]
See text below, thanks!
-------- Forwarded Message --------
Subject: Re: dotimes var comiler warning
Date: Thu, 24 Nov 2016 14:32:44 +0100
From: Michael Heerdegen <michael_heerdegen@web.de>
To: Andreas Röhler <andreas.roehler@easy-emacs.de>
CC: Help Gnu Emacs mailing list <help-gnu-emacs@gnu.org>
Andreas Röhler <andreas.roehler@easy-emacs.de> writes:
> when employing a form
>
> (dotimes (i erg)
>
> ...do-something
>
>
> Compiler sends a warning "Unused lexical variable ‘i’ - whilst seems
> no way to leave out such a var.
>
> Worth a bug-report?
If none exists yet, I'm for it. FWIW, there is a FIXME comment in the
source code already.
Yes, you can probably use `_' to suppress the warning, but I always
wondered why something called like this requires a variable to be
specified (mandatorily) at all.
Michael.
[-- Attachment #2: Type: text/html, Size: 2271 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-24 14:10 ` bug#25017: Fwd: Re: dotimes var comiler warning Andreas Röhler
@ 2016-11-24 14:23 ` npostavs
2016-11-24 14:35 ` Michael Heerdegen
2016-11-24 14:44 ` Michael Albinus
1 sibling, 1 reply; 12+ messages in thread
From: npostavs @ 2016-11-24 14:23 UTC (permalink / raw)
To: Andreas Röhler; +Cc: Michael Heerdegen, 25017
severity 25017 wishlist
quit
>
> Subject: Re: dotimes var comiler warning
> Date: Thu, 24 Nov 2016 14:32:44 +0100
> From: Michael Heerdegen <michael_heerdegen@web.de>
> To: Andreas Röhler <andreas.roehler@easy-emacs.de>
> CC: Help Gnu Emacs mailing list <help-gnu-emacs@gnu.org>
>
> Andreas Röhler <andreas.roehler@easy-emacs.de> writes:
>
>> when employing a form
>>
>> (dotimes (i erg)
>>
>> ...do-something
>>
>>
>> Compiler sends a warning "Unused lexical variable ‘i’ - whilst seems
>> no way to leave out such a var.
So you want to do:
(dotimes (erg)
...)
Or perhaps even
(dotimes erg
...)
>>
>> Worth a bug-report?
>
> If none exists yet, I'm for it. FWIW, there is a FIXME comment in the
> source code already.
The FIXME comment is unrelated to this, as far as I can tell (it's
talking about binding the variable around the optional RESULT
expression).
>
> Yes, you can probably use `_' to suppress the warning, but I always
> wondered why something called like this requires a variable to be
> specified (mandatorily) at all.
Because it's a bit nonstandard to make the *first* arg &optional?
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-24 14:23 ` npostavs
@ 2016-11-24 14:35 ` Michael Heerdegen
0 siblings, 0 replies; 12+ messages in thread
From: Michael Heerdegen @ 2016-11-24 14:35 UTC (permalink / raw)
To: npostavs; +Cc: 25017
npostavs@users.sourceforge.net writes:
> So you want to do:
>
> (dotimes (erg)
> ...)
>
> Or perhaps even
>
> (dotimes erg
> ...)
>
Yes.
> The FIXME comment is unrelated to this, as far as I can tell (it's
> talking about binding the variable around the optional RESULT
> expression).
Oh, I think you're right.
> Because it's a bit nonstandard to make the *first* arg &optional?
It's not really an argument list we are talking about - but if it
matters, we could choose the second of the above alternatives.
Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-24 14:10 ` bug#25017: Fwd: Re: dotimes var comiler warning Andreas Röhler
2016-11-24 14:23 ` npostavs
@ 2016-11-24 14:44 ` Michael Albinus
2016-11-24 16:50 ` Michael Heerdegen
1 sibling, 1 reply; 12+ messages in thread
From: Michael Albinus @ 2016-11-24 14:44 UTC (permalink / raw)
To: Andreas Röhler; +Cc: 25017
Andreas Röhler <andreas.roehler@easy-emacs.de> writes:
>> (dotimes (i erg)
>>
>> ...do-something
>>
>> Compiler sends a warning "Unused lexical variable ‘i’ - whilst seems
>> no way to leave out such a var.
>
> Yes, you can probably use `_' to suppress the warning, but I always
> wondered why something called like this requires a variable to be
> specified (mandatorily) at all.
Why is this a problem? We have the same situation with function
arguments. If you have an unused argument, you do the same:
(defun my-fun (_unused used)
;; code w/o _unused
)
> Michael.
Best regards, Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-24 14:44 ` Michael Albinus
@ 2016-11-24 16:50 ` Michael Heerdegen
2016-11-24 17:01 ` Michael Heerdegen
0 siblings, 1 reply; 12+ messages in thread
From: Michael Heerdegen @ 2016-11-24 16:50 UTC (permalink / raw)
To: Michael Albinus; +Cc: 25017
Michael Albinus <michael.albinus@gmx.de> writes:
> > Yes, you can probably use `_' to suppress the warning, but I always
> > wondered why something called like this requires a variable to be
> > specified (mandatorily) at all.
>
> Why is this a problem? We have the same situation with function
> arguments. If you have an unused argument, you do the same:
>
> (defun my-fun (_unused used)
> ;; code w/o _unused
> )
It's not a problem. But it's counter-intuitive for something called
"dotimes", and it's inconvenient because not needing to bind the counter
to a variable is a very common use case, not an exception.
But yes, it's just a detail. If what I suggest is not consent, I would
not want endless debates on this topic.
Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-24 16:50 ` Michael Heerdegen
@ 2016-11-24 17:01 ` Michael Heerdegen
2016-11-25 6:03 ` Drew Adams
0 siblings, 1 reply; 12+ messages in thread
From: Michael Heerdegen @ 2016-11-24 17:01 UTC (permalink / raw)
To: Michael Albinus; +Cc: 25017
Michael Heerdegen <michael_heerdegen@web.de> writes:
> It's not a problem.
Though, with dynamical bindings, the expansion actually refers to the
specified variable, so if you compile e.g.
(defun f (x)
(dotimes (_ 10)
(cl-incf x)))
you get the warning "variable `_' not left unused".
Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-24 17:01 ` Michael Heerdegen
@ 2016-11-25 6:03 ` Drew Adams
2016-11-27 10:20 ` Michael Heerdegen
0 siblings, 1 reply; 12+ messages in thread
From: Drew Adams @ 2016-11-25 6:03 UTC (permalink / raw)
To: Michael Heerdegen, Michael Albinus; +Cc: 25017
FWIW, I think that if any changes are made to dotimes they
should be in the direction of Common Lisp dotimes.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-25 6:03 ` Drew Adams
@ 2016-11-27 10:20 ` Michael Heerdegen
2016-11-27 18:23 ` Drew Adams
0 siblings, 1 reply; 12+ messages in thread
From: Michael Heerdegen @ 2016-11-27 10:20 UTC (permalink / raw)
To: Drew Adams; +Cc: 25017
Drew Adams <drew.adams@oracle.com> writes:
> FWIW, I think that if any changes are made to dotimes they should be
> in the direction of Common Lisp dotimes.
How do Elisp's dotimes and Common Lisp's dotimes differ?
Thanks,
Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-27 10:20 ` Michael Heerdegen
@ 2016-11-27 18:23 ` Drew Adams
2016-11-27 20:11 ` Philipp Stephani
0 siblings, 1 reply; 12+ messages in thread
From: Drew Adams @ 2016-11-27 18:23 UTC (permalink / raw)
To: Michael Heerdegen; +Cc: 25017
> > FWIW, I think that if any changes are made to dotimes they
> > should be in the direction of Common Lisp dotimes.
>
> How do Elisp's dotimes and Common Lisp's dotimes differ?
http://clhs.lisp.se/Body/m_dotime.htm
It respects `return' and `return-from'. It allows tags
(for `go').
For purposes of this thread: As in Emacs Lisp, both VAR
and COUNT are required arguments. In general, I'd prefer
that Emacs Lisp not diverge from but converge toward
Common Lisp.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-27 18:23 ` Drew Adams
@ 2016-11-27 20:11 ` Philipp Stephani
2016-11-28 16:31 ` Michael Heerdegen
0 siblings, 1 reply; 12+ messages in thread
From: Philipp Stephani @ 2016-11-27 20:11 UTC (permalink / raw)
To: Drew Adams, Michael Heerdegen; +Cc: 25017
[-- Attachment #1: Type: text/plain, Size: 1148 bytes --]
Drew Adams <drew.adams@oracle.com> schrieb am So., 27. Nov. 2016 um
19:25 Uhr:
> > > FWIW, I think that if any changes are made to dotimes they
> > > should be in the direction of Common Lisp dotimes.
> >
> > How do Elisp's dotimes and Common Lisp's dotimes differ?
>
> http://clhs.lisp.se/Body/m_dotime.htm
>
> It respects `return' and `return-from'. It allows tags
> (for `go').
>
A variant of `dotimes' that supports such constructs (only the "return"
ones though) is available in cl-lib.el: `cl-dotimes'.
>
> For purposes of this thread: As in Emacs Lisp, both VAR
> and COUNT are required arguments. In general, I'd prefer
> that Emacs Lisp not diverge from but converge toward
> Common Lisp.
>
>
>
The (implicit) decision to diverge further from Common Lisp has been made a
while ago, by prefixing the CL functions with `cl' and importing the `seq'
and `map' libraries, which provide similar functionality, but with a
different interface. Regarding third-party package, the hugely popular
`dash' library advertises itself with "No CL required." Given these
indicators, I'd expect the divergence to increase further instead of
decrease.
[-- Attachment #2: Type: text/html, Size: 2103 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-27 20:11 ` Philipp Stephani
@ 2016-11-28 16:31 ` Michael Heerdegen
2016-11-28 16:54 ` Drew Adams
0 siblings, 1 reply; 12+ messages in thread
From: Michael Heerdegen @ 2016-11-28 16:31 UTC (permalink / raw)
To: Philipp Stephani; +Cc: 25017-done
Philipp Stephani <p.stephani2@gmail.com> writes:
> For purposes of this thread: As in Emacs Lisp, both VAR
> and COUNT are required arguments. In general, I'd prefer
> that Emacs Lisp not diverge from but converge toward
> Common Lisp.
>
> The (implicit) decision to diverge further from Common Lisp has been
> made a while ago, by prefixing the CL functions with `cl' and
> importing the `seq' and `map' libraries, which provide similar
> functionality, but with a different interface.
Maybe (though, I don't think there was such decision, implicit or not -
"seq" and "map" functions also have an according prefix - I wouldn't say
we are converging are diverging to/from Common Lisp at all, but give
developers a stylistic choice). But here were are talking about a
construct that exists in pure Elisp, and OTOH also in Common Lisp,
sharing the same name. If there is not really a need to make the
semantics differ, I prefer to leave things as they are, because
everything else would probably be more confusing than helpful.
Regards,
Michael.
^ permalink raw reply [flat|nested] 12+ messages in thread
* bug#25017: Fwd: Re: dotimes var comiler warning
2016-11-28 16:31 ` Michael Heerdegen
@ 2016-11-28 16:54 ` Drew Adams
0 siblings, 0 replies; 12+ messages in thread
From: Drew Adams @ 2016-11-28 16:54 UTC (permalink / raw)
To: Michael Heerdegen, Philipp Stephani; +Cc: 25017-done
> > The (implicit) decision to diverge further from Common Lisp has
> > been made a while ago, by prefixing the CL functions with `cl' and
> > importing the `seq' and `map' libraries, which provide similar
> > functionality, but with a different interface.
>
> Maybe (though, I don't think there was such decision, implicit or
> not - "seq" and "map" functions also have an according prefix - I
> wouldn't say we are converging are diverging to/from Common Lisp
> at all, but give developers a stylistic choice). But here were
> are talking about a construct that exists in pure Elisp, and OTOH
> also in Common Lisp, sharing the same name. If there is not
> really a need to make the semantics differ, I prefer to leave
> things as they are, because everything else would probably be
> more confusing than helpful.
+1. Well put.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2016-11-28 16:54 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <878ts957gj.fsf@web.de>
2016-11-24 14:10 ` bug#25017: Fwd: Re: dotimes var comiler warning Andreas Röhler
2016-11-24 14:23 ` npostavs
2016-11-24 14:35 ` Michael Heerdegen
2016-11-24 14:44 ` Michael Albinus
2016-11-24 16:50 ` Michael Heerdegen
2016-11-24 17:01 ` Michael Heerdegen
2016-11-25 6:03 ` Drew Adams
2016-11-27 10:20 ` Michael Heerdegen
2016-11-27 18:23 ` Drew Adams
2016-11-27 20:11 ` Philipp Stephani
2016-11-28 16:31 ` Michael Heerdegen
2016-11-28 16:54 ` Drew Adams
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).