มาโครที่มี defcustom ทำให้เกิดข้อผิดพลาด“ ค่าของสัญลักษณ์ในฐานะตัวแปรถือเป็นโมฆะ” เมื่อรวบรวมไบต์


13

ในสองแพคเกจของฉันฉันมีแมโครที่ร่างกายขึ้นอยู่กับตัวแปรที่กำหนดในdefcustomรูปแบบ

เมื่อติดตั้งแพ็คเกจจาก Melpa การรวบรวมไบต์จะสิ้นสุดด้วย:

ข้อผิดพลาด: ค่าของสัญลักษณ์ในฐานะตัวแปรถือเป็นโมฆะ: my-defcustom-variable

จากนั้นคอมไพล์ไฟล์ด้วยตนเองโดยการเปิดไฟล์ในบัฟเฟอร์ทำงาน

ฉันลองใช้autoloadคุกกี้ แต่ยังคงมีพฤติกรรมเหมือนเดิม

ฉันพลาดสิ่งสำคัญที่นี่


1
ทั้งนี้ขึ้นอยู่กับdefcustomในร่างกายของแมโครเป็นสิ่งที่น่าแปลกใจสำหรับสิ่งที่defcustomจะเกิดขึ้นในระหว่างการคอมไพล์ไบต์เท่านั้น (ที่มาโครขยาย) ดูเหมือนจะไม่สมเหตุสมผลสำหรับฉัน
Lunaryorn

ขอบคุณเซบาสเตียนคุณพูดถูกและอธิบายได้หลายอย่าง
syl20bnr

คำตอบ:


15

defcustomแสดงออกไม่ได้รับการประเมินในช่วงไบต์รวบรวมดังนั้นเมื่อแมโครของคุณมีการขยายตัวแปรยังไม่มีเพราะ defcustom ที่รวบรวม แต่ไม่ทำงาน คุณสามารถย้าย defcustom ไปยังไฟล์อื่น (ซึ่งคุณแล้วrequireในตอนต้นของไฟล์ของคุณ) eval-and-compileหรือคุณสามารถห่อภายใน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.