Учитывая такую ситуацию:перекомпиляция в автоматизации Emacs/слизью живой среде
(defmacro mac1 ...)
(defun func1()
(mac1 ...))
Переопределение mac1
в живой среде не будет влиять на func1
, пока он сам перекомпилировать.
Есть ли способ получить emacs или lisp для автоматической перекомпиляции func1
всякий раз, когда mac1
перекомпилирован?
Нечто подобное в источнике было бы приемлемо:
(watch
(defmacro mac1 ...))
(on-signal (mac1)
(defun func1 ...))
Не так сложно реализовать, но я предпочел бы избежать колес переосмысления.
Не настоящий ответ, но если вы готовы вступить в пакет 'cl', вы можете закрепить источник функции как свойство своего имени символа в обертке вокруг' defun' и иметь вторую оболочку вокруг 'defmacro', чтобы посмотреть' who-macroexpands' и перебрать эти скрытые источники. Или просто 'slime-compile-and-load-file', когда вы теряете информацию о том, что могли сделать ваши макрокоманды. – BRFennPocock