1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00
No description
Find a file
Noam Postavsky 29abf59bad macroexpand not needed
Since lambda thunking replaced quoting in a76d167.

To see why, observe that cases 3 and 4 disassemble to identical code.
The difference between cases 1 and 2 shows why the macroexpand was
needed originally.

(defmacro test-quote (name-string)
  `(eval-after-load "foo"
     `(with-elapsed-timer ,(format "Configuring package %s" name-string)
        (message "test-quote"))))

(defmacro test-expand-quote (name-string)
  `(eval-after-load "foo"
     ,(macroexpand-all
       `(with-elapsed-timer ,(format "Configuring package %s" name-string)
          (message "test-expand-quote")))))

(defmacro test-lambda (name-string)
  `(eval-after-load "foo"
     `(,(lambda ()
          (with-elapsed-timer ,(format "Configuring package %s" name-string)
            (message "test-lambda"))))))

(defmacro test-expand-lambda (name-string)
  `(eval-after-load "foo"
     `(,(lambda ()
          ,(macroexpand-all
            `(with-elapsed-timer ,(format "Configuring package %s" name-string)
               (message "test-lambda")))))))

(disassemble (lambda () (test-quote "testing...")))
(disassemble (lambda () (test-expand-quote "testing...")))
(disassemble (lambda () (test-lambda "testing...")))
(disassemble (lambda () (test-expand-lambda "testing...")))
2013-10-12 14:25:38 -04:00
lisp/use-package macroexpand not needed 2013-10-12 14:25:38 -04:00