¿Cómo puedo suprimir la advertencia de "asignación a variable libre" cuando byte compila un archivo emacs lisp?
En realidad, estoy principalmente interesado en suprimirlo para un búfer específico cuando utilizo flycheck, pero entiendo que esto solo está pasando al compilador de bytes.
También sería bueno obtener una lista de todas las advertencias / errores que se pueden suprimir.
ACTUALIZACIÓN :
En aras de la exhaustividad, permítanme aclarar que hay muchas razones (independientes del lenguaje) para deshabilitar las advertencias del compilador. Algunos ejemplos: para facilitar la transición del código heredado a un marco forzado con pelusa, para que los archivos de rascado y las recetas se ejecuten dentro de un contexto en vivo, para eliminar el ruido mientras se solucionan los problemas de mayor prioridad, o porque el compilador está equivocado.
fuente
defvar
s o falta derequire
s.(defvar the-variable)
. Esto silencia la advertencia solo para esa variable, por lo que aún puede obtenerla para otras variables.Respuestas:
Para el beneficio de los lectores despistados que llegan aquí, permítanme una pequeña digresión para decir que estas advertencias generalmente apuntan a problemas de código reales (y cuando no lo hacen, puede suprimirlos en función de cada variable) para que la gente investigue qué significa antes de deshabilitarlos.
Por supuesto, no tengo dudas de que sabes por qué necesitas desactivarlo, por lo que la respuesta está a continuación.
La respuesta
Para deshabilitar esta (u otra) advertencia, deberá establecer el valor de
byte-compile-warnings
. Puede hacer esto como una variable local de archivo agregando el siguiente fragmento al final del archivo.También puede configurar esto globalmente.
Se puede reemplazar
(not free-vars)
con(not free-vars callargs unresolved)
y lo que otras advertencias desea suprimir. La lista completa de advertencias que se pueden incluir / suprimir se encuentra en la cadena de documentación de la variable (a continuación).fuente