GNU bug report logs - #38206
26.1; cl-prettyexpand incorrectly expands pushing to structures

Previous Next

Package: emacs;

Reported by: Braun Gábor <braungb88 <at> gmail.com>

Date: Thu, 14 Nov 2019 08:21:02 UTC

Severity: normal

Tags: fixed

Found in version 26.1

Fixed in version 27.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 38206 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Lars Ingebrigtsen <larsi <at> gnus.org>
Cc: 38206 <at> debbugs.gnu.org,
 Braun Gábor <braungb88 <at> gmail.com>
Subject: Re: bug#38206: 26.1; cl-prettyexpand incorrectly expands pushing to
 structures
Date: Sun, 17 Nov 2019 15:13:56 -0500
> The bug was introduced by a rewrite in 2012, I think, which changed the
> implementation radically, which made it pass in that list as a totally
> bogus ENVIRONMENT to macroexpand-all.

Not sure why you see it that way.  `C-x v h` tells me:

    commit 6fa6c4aedbc9f33cf8ed67fdb7794c3b4ff6660a
    Author: Stefan Monnier <monnier <at> iro.umontreal.ca>
    Date:   Thu Jun 7 15:48:22 2012 -0400
    
        Move old compatiblity to cl.el.  Remove cl-macroexpand-all.
        [...]
    
    diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
    --- a/lisp/emacs-lisp/cl-extra.el
    +++ b/lisp/emacs-lisp/cl-extra.el
    @@ -798,2 +681,2 @@
    -    (setq form (cl-macroexpand-all form
    -				   (and (not full) '((cl-block) (cl-eval-when)))))
    +    (setq form (macroexpand-all form
    +                                (and (not full) '((cl-block) (cl-eval-when)))))
    
    commit 7c1898a7b93053cd0431f46f02d82c0a31bfb8bf
    Author: Stefan Monnier <monnier <at> iro.umontreal.ca>
    Date:   Sun Jun 3 21:05:17 2012 -0400
    
        * lisp/emacs-lisp/cl-lib.el: Rename from cl.el.
        * lisp/emacs-lisp/cl.el: New compatibility file.
        * emacs-lisp/cl-lib.el, lisp/emacs-lisp/cl-seq.el, lisp/emacs-lisp/cl-macs.el:
        * lisp/emacs-lisp/cl-extra.el: Rename all top-level functions and variables
        to obey the "cl-" prefix.
        * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Adjust to new name.
    
    diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
    --- a/lisp/emacs-lisp/cl-extra.el
    +++ b/lisp/emacs-lisp/cl-extra.el
    @@ -802,2 +798,2 @@
         (setq form (cl-macroexpand-all form
    -				   (and (not full) '((block) (eval-when)))))
    +				   (and (not full) '((cl-block) (cl-eval-when)))))
    
    commit fcd737693e8e320acd70f91ec8e0728563244805
    Author: Richard M. Stallman <rms <at> gnu.org>
    Date:   Fri Jul 30 20:15:09 1993 +0000
    
        entered into RCS
    
    diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el
    --- /dev/null
    +++ b/lisp/emacs-lisp/cl-extra.el
    @@ -0,0 +920,2 @@
    +    (setq form (cl-macroexpand-all form
    +				   (and (not full) '((block) (eval-when)))))

so it seems that it's been with us since at least 1993.

> I think the right change here is to just deprecate the FULL parameter
> and remove the
>
>                                 (and (not full) '((cl-block) (cl-eval-when)))))
>
> bit.  Stefan?

100% agreement.


        Stefan





This bug report was last modified 5 years and 181 days ago.

Previous Next


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