From 1d1de5b186f3707b904298fa12603cbec91fa5d9 Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Thu, 2 Aug 1990 15:14:42 +0000 Subject: [PATCH] Changed %THROW definition to not use DEFUN so that the compiler doesn't get confused. --- compiler/eval-comp.lisp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/compiler/eval-comp.lisp b/compiler/eval-comp.lisp index 75b07adff..a12f40fff 100644 --- a/compiler/eval-comp.lisp +++ b/compiler/eval-comp.lisp @@ -273,8 +273,13 @@ (error "Wrong argument count, wanted ~D and got ~D." defined-args supplied-args))) -(defun %throw (tag &rest args) - (throw tag (values-list args))) +;;; Use (SETF SYMBOL-FUNCTION) insetad of DEFUN so that the compiler +;;; doesn't try to compile the hidden %THROW MV-CALL in the throw below as +;;; a local recursive call. +;;; +(setf (symbol-function '%throw) + #'(lambda (tag &rest args) + (throw tag (values-list args)))) (defun %more-arg (args index) (nth index args)) -- GitLab