From b473eddf04fb46fc5de5d06d8e5de3d1e9823151 Mon Sep 17 00:00:00 2001 From: Robin Templeton Date: Mon, 4 Aug 2014 23:11:43 -0400 Subject: [PATCH 1/1] defsubst --- module/language/elisp/boot.el | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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))) -- 2.20.1