+;;; Handle the evaluation the a :COMPILE-TOPLEVEL body during
+;;; compilation. Normally just evaluate in the appropriate
+;;; environment, but also compile if outputting a CFASL.
+(defun eval-compile-toplevel (body path)
+ (handler-case (eval-in-lexenv `(progn ,@body) *lexenv*)
+ (error (condition)
+ (compiler-error "(during compile-time-too processing)~%~A"
+ condition)))
+ (when *compile-toplevel-object*
+ (let ((*compile-object* *compile-toplevel-object*))
+ (convert-and-maybe-compile `(progn ,@body) path))))
+