From 97d9da9a87aa5865713994be214ff1adbc8866f3 Mon Sep 17 00:00:00 2001 From: BT Templeton Date: Thu, 7 Jul 2011 23:20:19 -0400 Subject: [PATCH] implement `throw' in elisp * module/language/elisp/runtime/subrs.scm (throw): Rewrite in Elisp and move to... * module/language/elisp/boot.el (throw): ...here. --- module/language/elisp/boot.el | 4 +++- module/language/elisp/runtime/subrs.scm | 6 ------ 2 files changed, 3 insertions(+), 7 deletions(-) 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)