Tome el siguiente ejemplo de macro, definido en macro.el
.
(defmacro some-macro (&rest body)
`(let ((some-variable 1))
,@body))
Y tomar la siguiente función, definida en un archivo diferente , function.el
.
(defun some-function ()
(some-macro (do-something)))
Cuando function.el
se compila byte, ¿ some-variable
se vinculará bajo enlace léxico o dinámico?
Entiendo que esto depende de si el archivo se usa -*- lexical-binding: t; -*-
, por lo que mi pregunta se refiere específicamente a las siguientes situaciones:
- Si
function.el
usa enlace léxico, peromacro.el
no lo hace. - Si
macro.el
usa enlace léxico, perofunction.el
no lo hace.
¿Hace alguna diferencia si some-var
se ha declarado global (con un defvar) dentro function.el
? Si lo hace, estoy específicamente interesado en el caso donde no lo ha hecho .