Pregunta:
En dos de mis paquetes tengo una macro donde el cuerpo depende de una variable definida en un formulario defcustom
.
Al instalar los paquetes de Melpa, la compilación de bytes termina con:
Error: el valor del símbolo como variable es nulo: my-defcustom-variable
Luego, la compilación manual de bytes del archivo abriéndolo en un búfer funciona.
Intenté con una cookie de autoload
pero sigo teniendo el mismo comportamiento.
Me estoy perdiendo algo importante aquí.
Respuesta:
La expresión defcustom
no se evalúa durante la compilación de bytes, por lo que cuando se expande su macro, la variable aún no existe porque ese defcustom se compiló pero no se ejecutó. Puede mover defcustom a otro archivo (que luego require
al principio de su archivo), o puede envolver el defcustom dentro de eval-and-compile
.