How can eval-when-compile
and eval-and-compile
have different behavior if their definitions are identical?
From byte-run.el:
(defmacro eval-when-compile (&rest body)
;; ... documentation string omitted ...
(declare (debug (&rest def-form)) (indent 0))
(list 'quote (eval (cons 'progn body) lexical-binding)))
(defmacro eval-and-compile (&rest body)
;; ... documentation string omitted ...
(declare (debug (&rest def-form)) (indent 0))
(list 'quote (eval (cons 'progn body) lexical-binding)))
(defmacro eval-when-compile (&rest body)
;; ... documentation string omitted ...
(declare (debug (&rest def-form)) (indent 0))
(list 'quote (eval (cons 'progn body) lexical-binding)))
(defmacro eval-and-compile (&rest body)
;; ... documentation string omitted ...
(declare (debug (&rest def-form)) (indent 0))
(list 'quote (eval (cons 'progn body) lexical-binding)))