diff options
author | Robin Templeton <robin@terpri.org> | 2014-08-04 23:11:43 -0400 |
---|---|---|
committer | Christine Lemmer-Webber <cwebber@dustycloud.org> | 2021-10-19 18:10:04 -0400 |
commit | cfbf37d917c342e3f659f93e7a39ca28e8a0d551 (patch) | |
tree | 08bb42518138899e6e0ac5b57bd2697d96ee8057 /module/language/elisp | |
parent | 8dcb633909b5b5c36819bb297af216f18b3de769 (diff) | |
download | guile-cfbf37d917c342e3f659f93e7a39ca28e8a0d551.tar.gz |
defsubst
(Best-ability ChangeLog annotation added by Christine Lemmer-Webber.)
* module/language/elisp/boot.el (defsubst): New macro.
Diffstat (limited to 'module/language/elisp')
-rw-r--r-- | module/language/elisp/boot.el | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/module/language/elisp/boot.el b/module/language/elisp/boot.el index fe9af290f..fae86a2bd 100644 --- a/module/language/elisp/boot.el +++ b/module/language/elisp/boot.el @@ -53,6 +53,19 @@ (%funcall (@ (language elisp runtime) symbol-plist) ',name))) ',name)) +(defmacro defsubst (name args &rest body) + `(progn + (defun ,name ,args ,@body) + (eval-and-compile + (%define-compiler-macro ,name (form) + (%funcall (@ (guile) cons*) + '%funcall + (%funcall + (@ (guile) list) + 'function + (%funcall (@ (guile) cons*) 'lambda ',args ',body)) + (%funcall (@ (guile) cdr) form)))))) + (eval-and-compile (defun eval (form) (%funcall (@ (language elisp runtime) eval-elisp) form))) |