En dos de mis paquetes tengo una macro donde el cuerpo depende de una variable definida en un defcustomformulario.
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, manualmente compila byte el archivo abriéndolo en un búfer funciona.
Intenté con una autoloadcookie pero todavía tengo el mismo comportamiento.
Me estoy perdiendo algo importante aquí.
byte-compilation
elisp-macros
syl20bnr
fuente
fuente

defcustomcuerpo en una macro es algo extraño, yadefcustomque solo entrará en vigor durante la compilación de bytes (donde la macro se expande). Esto no parece tener mucho sentido para mí.Respuestas:
Las
defcustomexpresiones no se evalúan durante la compilación de bytes, por lo que cuando la macro se expande, la variable aún no existe porque esa definición se compiló pero no se ejecutó. Puede mover el defcustom a otro archivo (que luegorequireal principio de su archivo), o puede envolver el defcustom dentroeval-and-compile.fuente