GNU bug report logs -
#63586
29.x: dotimes (possible) problem
Previous Next
Reported by: balducci <at> units.it
Date: Fri, 19 May 2023 15:12:02 UTC
Severity: normal
Merged with 63588
Fixed in version 29.1
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
hello
the dotimes macro behaves differently in 29.x with respect to previous
versions
Basically: changing the value of the loop variable in the body of
dotimes does not seem to have any effect, where for versions <29.x it
used to.
Here is a minimal stretch of dummy code clarifying the problem I'm
reporting.
emacs-29.0.91 (or 29.0.90)
==========================
(dotimes (ii 10)
(insert (format "%2d " ii))
(when (= ii 4)(setq ii 11))
)
==> 0 1 2 3 4 5 6 7 8 9
emacs-28.2 (or any version <29.x)
=================================
(dotimes (ii 10)
(insert (format "%2d " ii))
(when (= ii 4)(setq ii 11))
)
==> 0 1 2 3 4
The ability to jump out of the loop by pushing the loop variable over
the upper limit is something that I happen to use in my scripts, so
29.x breaks them somehow
Of course, there are very many other equivalent ways to
accomplish the same result, but I don't see why this one
shouldn't be supported (any longer)
Is the changed behavior intentional? Am I missing some blatant point here?
AFAICS, changing the value of the loop variable from inside the loop
body is supported by any other language which I know about
thank you very much in advance for any hint/feedback
ciao
-gabriele
This bug report was last modified 1 year and 253 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.