X-Git-Url: http://git.hcoop.net/bpt/guile.git/blobdiff_plain/b094d98bbaf9e87f5d0ddba1956a0f668a52a564..a92f076cf8279284b7e10d3b38aa5389cd395e1a:/module/language/elisp/boot.el diff --git a/module/language/elisp/boot.el b/module/language/elisp/boot.el index bef4c1d7c..fe9af290f 100644 --- a/module/language/elisp/boot.el +++ b/module/language/elisp/boot.el @@ -41,6 +41,18 @@ (eval-when-compile ,@body) (progn ,@body))) +(defmacro %define-compiler-macro (name args &rest body) + `(eval-and-compile + (%funcall + (@ (language elisp runtime) set-symbol-plist!) + ',name + (%funcall + (@ (guile) cons*) + '%compiler-macro + #'(lambda ,args ,@body) + (%funcall (@ (language elisp runtime) symbol-plist) ',name))) + ',name)) + (eval-and-compile (defun eval (form) (%funcall (@ (language elisp runtime) eval-elisp) form)))