unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#19734: 25.0.50; nested backquotes: recent changes not backward compatible
@ 2015-01-30 17:49 Michael Heerdegen
  2015-01-30 21:01 ` Stefan Monnier
  0 siblings, 1 reply; 2+ messages in thread
From: Michael Heerdegen @ 2015-01-30 17:49 UTC (permalink / raw)
  To: 19734


Hello,

Recent changes in backquote.el, I guess especially in this commit:

86009dd5d886f1101358990e4f8f69a5d1467eb8
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Date:   Sat Nov 15 23:59:50 2014 -0500

    * lisp/emacs-lisp/backquote.el (backquote-process): Optimize away
      the ,' case.

were not backwards compatible.  If this was intended (?), it should be
mentioned in the news I think.

Here is an example.  In Emacs 24, I had something like this in my config
(massively shortened):


--8<---------------cut here---------------start------------->8---
(defun my-make-feh-cmd ()
  "Return a feh command line suitble for dired.
Take the current screen resolution at account."
  (if (not window-system)
      "feh"
    (let* ((display-pixel-width (display-pixel-width))
           (width (- display-pixel-width (frame-pixel-width))))
      (format "feh -Z -g %sx%s+%s *"
              width
              (- (x-display-pixel-height) 30)
              (min (+ (frame-pixel-width) 2) (- display-pixel-width width))))))

(require 'dired-x)

(let ((programs '("vlc *" "smplayer *")))
  (setq-default
   dired-guess-shell-alist-user
   `((".*" (if (file-directory-p file)
               `(,,'(my-make-feh-cmd) ;compute at runtime!
                 ,@',programs)
             ',programs)))))
--8<---------------cut here---------------end--------------->8---


In trunk, the backquote expression evals to something different now, and
AFAICT

    ,,'(my-make-feh-cmd)

from above must now be

      ,(my-make-feh-cmd)

That looks less frightening, but I had to find this out myself because
my code was broken and there was no news entry.


Thanks,

Michael.




In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 3.14.5)
 of 2015-01-29 on drachen
Repository revision: 1dc1959ebf50401c69adeb6d182950b59835f94d
Windowing system distributor `The X.Org Foundation', version 11.0.11602901
System Description:	Debian GNU/Linux 8.0 (jessie)

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY
LIBXML2 FREETYPE XFT ZLIB






^ permalink raw reply	[flat|nested] 2+ messages in thread

* bug#19734: 25.0.50; nested backquotes: recent changes not backward compatible
  2015-01-30 17:49 bug#19734: 25.0.50; nested backquotes: recent changes not backward compatible Michael Heerdegen
@ 2015-01-30 21:01 ` Stefan Monnier
  0 siblings, 0 replies; 2+ messages in thread
From: Stefan Monnier @ 2015-01-30 21:01 UTC (permalink / raw)
  To: Michael Heerdegen; +Cc: 19734-done

>     * lisp/emacs-lisp/backquote.el (backquote-process): Optimize away
>       the ,' case.
> were not backwards compatible.  If this was intended (?), it should be
> mentioned in the news I think.

As the commit message indicates, this was supposed to be an
optimization, i.e. no change in observable behavior.

> In trunk, the backquote expression evals to something different now, and
>     ,,'(my-make-feh-cmd)
> from above must now be
>       ,(my-make-feh-cmd)

Yes, your rewrite is correct and desirable, but indeed we had a bug
which I've just fixed in master.  Thanks.


        Stefan





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-01-30 21:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-30 17:49 bug#19734: 25.0.50; nested backquotes: recent changes not backward compatible Michael Heerdegen
2015-01-30 21:01 ` Stefan Monnier

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).