Makro dengan defcustom mengarah ke kesalahan "Nilai simbol sebagai variabel tidak sah" ketika byte-dikompilasi


13

Dalam dua paket saya, saya memiliki makro di mana tubuh tergantung pada variabel yang didefinisikan dalam defcustomformulir.

Saat menginstal paket dari Melpa, byte-kompilasi berakhir dengan:

Kesalahan: Nilai simbol sebagai variabel tidak valid: variabel-saya-defcustom

Kemudian, kompilasi byte secara manual file dengan membukanya di buffer berfungsi.

Saya mencoba dengan autoloadcookie tetapi masih memiliki perilaku yang sama.

Saya melewatkan sesuatu yang penting di sini.


1
Bergantung pada defcustomdi dalam tubuh makro adalah hal yang aneh untuk dilakukan, karena defcustomkehendak hanya akan berlaku selama byte-kompilasi (di mana makro diperluas). Ini sepertinya tidak masuk akal bagi saya.
lunaryorn

Terima kasih Sebastian, Anda benar dan itu menjelaskan banyak hal.
syl20bnr

Jawaban:


15

The defcustomekspresi tidak dievaluasi selama byte-kompilasi, jadi ketika makro Anda diperluas, variabel belum ada karena defcustom yang disusun tetapi tidak dijalankan. Anda dapat memindahkan defcustom ke file lain (yang Anda kemudian requiredi awal file Anda), atau Anda dapat membungkus defcustom di dalam eval-and-compile.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.