GNU bug report logs - #7408
23.2.1 dolist -- subr.el and cl-macs differ with nil-block return

Previous Next

Package: emacs;

Reported by: Jari Aalto <jari.aalto <at> cante.net>

Date: Mon, 15 Nov 2010 10:47:02 UTC

Severity: normal

Found in version 23.2+1-4

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: jari <jari.aalto <at> cante.net>
Cc: 7408 <at> debbugs.gnu.org
Subject: bug#7408: 23.2.1 dolist -- subr.el and cl-macs differ with nil-block return
Date: Sun, 21 Nov 2010 13:51:58 -0500
> | >     $ emacs -Q
> | >     (progn
> | >       (autoload 'return "cl-macs" nil nil 'macro)
> | >       (dolist (elt '(1 2))
> | >         (return elt)))
> | This causes cl-macs to be run at an unexpected time.  I.e. it's ruled
> | out for being a contrived example. 
> Is the above code not valid?

Doesn't matter: lots of vlid Elisp code doesn't do what you'd expect.

> Does it not do what it is supposed to do;

Apparently it doesn't for you.

> to define `return' when it will be used for the first time?

The normal way to use CL features like `return' is with (require 'cl)
somewhere at the top-level.  Anything else is poor code that needs to
be improved.

> | E.g. I'd be *really* surprised if it were an example you bumped into
> | before this discussion.
> Surprise or not, it demonstrates the defiency of claimed:
>     - "dolist and dotimes are 100% compatible with CL's definition."

You don't need to teach me this.  I know full well that 100%
compatibility between two pieces of code in Elisp is *never* true,
unless the two are `eq'.


        Stefan




This bug report was last modified 14 years and 185 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.