0.7.10.6:
[sbcl.git] / src / compiler / main.lisp
index fd27819..a99e5ba 100644 (file)
          (debug-namify "~S initial component" name))
     (setf (component-kind component) :initial)
     (let* ((locall-fun (ir1-convert-lambda
-                       definition
-                       :debug-name (debug-namify "top level local call ~S"
-                                                 name)))
+                        definition
+                        :debug-name (debug-namify "top level local call ~S"
+                                                  name)))
            (fun (ir1-convert-lambda (make-xep-lambda-expression locall-fun)
                                    :source-name (or name '.anonymous.)
                                    :debug-name (unless name
                                                  "top level form"))))
+      (when name
+        (assert-global-function-definition-type name locall-fun))
       (setf (functional-entry-fun fun) locall-fun
             (functional-kind fun) :external
             (functional-has-external-references-p fun) t)
                                               compile-time-too))))))
         (if (atom form)
             #+sb-xc-host
-            ;; (There are no EVAL-WHEN issues in the ATOM case until
-            ;; SBCL gets smart enough to handle global
-            ;; DEFINE-SYMBOL-MACRO or SYMBOL-MACROLET.)
+            ;; (There are no xc EVAL-WHEN issues in the ATOM case until
+            ;; (1) SBCL gets smart enough to handle global
+            ;; DEFINE-SYMBOL-MACRO or SYMBOL-MACROLET and (2) SBCL
+           ;; implementors start using symbol macros in a way which
+           ;; interacts with SB-XC/CL distinction.)
             (convert-and-maybe-compile form path)
             #-sb-xc-host
             (default-processor form)