Emacs 以自动加载形式扩展宏

Emacs 以自动加载形式扩展宏,emacs,macros,autoload,Emacs,Macros,Autoload,如何让autoload.el在;;中展开宏###自动加载表单?正常的make autoload功能似乎仅对选定的已识别表单执行此操作,但表示我希望正确展开以下my def (defmacro my-def (name args &rest body) `(progn (defalias ',name ,args ,@body) #',name)) ;;;###autoload (add-hook 'some-hook (my-def my-hook () ())

如何让autoload.el在
;;中展开宏###自动加载
表单?正常的
make autoload
功能似乎仅对选定的已识别表单执行此操作,但表示我希望正确展开以下
my def

(defmacro my-def (name args &rest body)
  `(progn
     (defalias ',name ,args ,@body)
     #',name))

;;;###autoload
(add-hook 'some-hook (my-def my-hook () ()))
告诉自动加载在此展开的适当方式是什么?不是所有表单都用
macroexpand
展开的原因是什么,例如性能命中之类的

更新:我似乎可以建议
自动加载
,但我不知道这是否会导致一般问题,例如

(advice-add 'make-autoload :around
            (lambda (orig-fn form file &optional exp)
              (let ((new-form (macroexpand-all form)))
                (apply orig-fn
                       (list new-form file
                             (not (equal new-form form)))))))