+(defparameter *eval-calls* 0)
+
+(defun !eval-cold-init ()
+ (setf *eval-calls* 0
+ *evaluator-mode* :compile)
+ #!+sb-eval
+ (setf sb!eval::*eval-level* -1
+ sb!eval::*eval-verbose* nil))
+
+(defvar *eval-source-context* nil)
+
+(defvar *eval-tlf-index* nil)
+(defvar *eval-source-info* nil)
+
+;;;; Turns EXPR into a lambda-form we can pass to COMPILE. Returns
+;;;; a secondary value of T if we must call the resulting function
+;;;; to evaluate EXPR -- if EXPR is already a lambda form, there's
+;;;; no need.
+(defun make-eval-lambda (expr)
+ (if (typep expr `(cons (member lambda named-lambda lambda-with-lexenv)))
+ (values expr nil)
+ (values `(lambda ()
+ ;; why PROGN? So that attempts to eval free declarations
+ ;; signal errors rather than return NIL. -- CSR, 2007-05-01
+ (progn ,expr))
+ t)))
+