From 1fdbd680fab60a260d66cc9dbe5d2a7748362953 Mon Sep 17 00:00:00 2001 From: ram <ram> Date: Tue, 5 Nov 1991 16:51:20 +0000 Subject: [PATCH] Added CHECKING-SYMBOL-FUNCTION to cause undefined errors to be signalled when compiled small. --- code/fdefinition.lisp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/code/fdefinition.lisp b/code/fdefinition.lisp index f15486ee9..84d3e59ef 100644 --- a/code/fdefinition.lisp +++ b/code/fdefinition.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/fdefinition.lisp,v 1.8 1991/11/01 11:37:00 chiles Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/code/fdefinition.lisp,v 1.9 1991/11/05 16:51:20 ram Exp $") ;;; ;;; ********************************************************************** ;;; @@ -58,8 +58,18 @@ ,setf-form) (t (error "Malformed function name: ~S." ,name)))) + ) ;EVAL-WHEN +;;; CHECKING-SYMBOL-FUNCTION -- Internal +;;; +;;; Do a safe SYMBOL-FUNCTION. The guts of functions in this file are +;;; normally compiled unsafe. +;;; +(declaim (inline checking-symbol-function)) +(defun checking-symbol-function (x) + (declare (optimize (safety 1))) + (symbol-function x)) ;;;; Definition Encapsulation. @@ -70,7 +80,7 @@ "Returns whatever definition is stored for name, regardless of whether it is encapsulated. This is SETF'able." (function-name-dispatch name - (symbol-function name) + (checking-symbol-function name) (gethash (cadr name) *setf-functions*))) ;;; (defun %set-encapsulated-definition (name value) @@ -207,7 +217,7 @@ (setf encap-info (encapsulation-info-next encap-info))) ,fetch)))) (function-name-dispatch name - (basic-def name (symbol-function name)) + (basic-def name (checking-symbol-function name)) (basic-def name (or (gethash (cadr name) *setf-functions*) (error "Undefined function: ~S." name)))))) @@ -217,7 +227,7 @@ (defun %set-fdefinition (name new-value) "Set name's global function definition." - (declare (type function new-value)) + (declare (type function new-value) (optimize (safety 1))) (macrolet ((set-basic-def (name new-value form) `(let ((encap-info (gethash ,name *encapsulation-info*))) (cond (encap-info -- GitLab