0.pre7.31:
[sbcl.git] / src / compiler / generic / genesis.lisp
index 1e4c5dc..ce9e73f 100644 (file)
   ;; writing beginning boilerplate
   (format t "/*~%")
   (dolist (line
-          '("This is a machine-generated file. Do not edit it by hand."
+          '("This is a machine-generated file. Please do not edit it by hand."
             ""
             "This file contains low-level information about the"
             "internals of a particular version and configuration"
   (format t "#ifndef _SBCL_H_~%#define _SBCL_H_~%")
   (terpri)
 
+  ;; propagating *SHEBANG-FEATURES* into C-level #define's
+  (dolist (shebang-feature-name (sort (mapcar #'symbol-name
+                                             sb-cold:*shebang-features*)
+                                     #'string<))
+    (format t
+           "#define LISP_FEATURE_~A~%"
+           (substitute #\_ #\- shebang-feature-name)))
+  (terpri)
+
   ;; writing miscellaneous constants
   (format t "#define SBCL_CORE_VERSION_INTEGER ~D~%" sbcl-core-version-integer)
   (format t
 
   ;; writing codes/strings for internal errors
   (format t "#define ERRORS { \\~%")
-  ;; FIXME: Is this just DO-VECTOR?
+  ;; FIXME: Is this just DOVECTOR?
   (let ((internal-errors sb!c:*backend-internal-errors*))
     (dotimes (i (length internal-errors))
       (format t "    ~S, /*~D*/ \\~%" (cdr (aref internal-errors i)) i)))