Veja o exemplo de macro a seguir, definido em macro.el.
(defmacro some-macro (&rest body)
`(let ((some-variable 1))
,@body))
E tomar a seguinte função, definida em um arquivo diferente , function.el.
(defun some-function ()
(some-macro (do-something)))
Quando function.elé compilado por byte, será some-variablevinculado sob ligação lexical ou dinâmica?
Entendo que isso depende de o arquivo ser usado -*- lexical-binding: t; -*-, portanto, minha pergunta diz respeito especificamente às seguintes situações:
- Se
function.elusa ligação lexical, masmacro.elnão. - Se
macro.elusa ligação lexical, masfunction.elnão.
Faz diferença se some-varfoi declarado global (com um defvar) por dentro function.el? Se isso acontecer, estou especificamente interessado no caso em que não ocorreu .