diff --git a/module/language/elisp/boot.el b/module/language/elisp/boot.el index 778cfcd04..351765e2e 100644 --- a/module/language/elisp/boot.el +++ b/module/language/elisp/boot.el @@ -122,10 +122,12 @@ (fset 'fmakunbound (@ (language elisp runtime subrs) fmakunbound)) (fset 'boundp (@ (language elisp runtime subrs) boundp)) (fset 'fboundp (@ (language elisp runtime subrs) fboundp)) -(fset 'throw (@ (language elisp runtime subrs) throw)) (fset 'eval (@ (language elisp runtime subrs) eval)) (fset' load (@ (language elisp runtime subrs) load)) +(defun throw (tag value) + (funcall (@ (guile) throw) 'elisp-exception tag value)) + ;;; Equality predicates (fset 'eq (@ (guile) eq?)) diff --git a/module/language/elisp/runtime/subrs.scm b/module/language/elisp/runtime/subrs.scm index cc42374a4..8d6e42531 100644 --- a/module/language/elisp/runtime/subrs.scm +++ b/module/language/elisp/runtime/subrs.scm @@ -31,7 +31,6 @@ boundp fboundp apply - throw eval load)) @@ -106,11 +105,6 @@ (else func)))) (prim apply (@ (guile) apply) real-func args))) -;;; Throw can be implemented as built-in function. - -(define (throw tag value) - (prim throw 'elisp-exception tag value)) - ;;; Miscellaneous. (define (eval form)