defcustomを使用したマクロは、バイトコンパイル時に「変数としてのシンボルの値は無効です」というエラーにつながる


13

私のパッケージの2つには、defcustomフォームで定義された変数に本体が依存するマクロがあります。

Melpaからパッケージをインストールすると、バイトコンパイルは次のように終了します。

エラー:変数としてのシンボルの値は無効です:my-defcustom-variable

次に、ファイルをバッファで開いて手動でバイトコンパイルします。

autoloadクッキーを試してみましたが、それでも同じ動作をします。

ここに重要なものがありません。


1
defcustomマクロボディのa に依存することは、奇妙なことです。これは、defcustomバイトコンパイル(マクロが展開される)中にのみ有効になるからです。これは私にはあまり意味がないようです。
lunaryorn

セバスチャンに感謝します、あなたは正しいです、そしてそれは多くのことを説明します。
syl20bnr 14年

回答:


15

defcustom式はバイトコンパイル時に評価されていないので、あなたのマクロが展開されたときにdefcustomをコンパイルが、実行されなかったため、変数がまだ存在していません。defcustomを別のファイルに移動する(ファイルrequireの先頭で)か、defcustomを中にラップすることができますeval-and-compile

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.