鑑於這種情況重新編譯自動化:的mac1
環境中生活在Emacs /煤泥現場環境
(defmacro mac1 ...)
(defun func1()
(mac1 ...))
重新定義不會影響func1
,直到它本身就是重新編譯。
只要mac1
重新編譯,有沒有辦法讓emacs或lisp自動重新編譯func1
?
像這樣的事情在源是可以接受的:
(watch
(defmacro mac1 ...))
(on-signal (mac1)
(defun func1 ...))
並不難實現,但我寧願避免車輪再造。
不是一個真正的答案,但是如果你願意闖入'cl'包,你可以將函數的源代碼作爲其符號名稱的屬性放在'defun'周圍的包裝中,並且有第二個包裝器'defmacro'來查看'who-macroexpands'並且遍歷那些存儲的資源。或者當你忘記你的宏編輯可能完成的時候,你只需要'slime-compile-and-load-file'。 – BRFennPocock