;; the function values for these things?? I.e. why do we need this
;; section at all? Is it because all the FDEFINITION stuff gets in
;; the way of reading function values and is too hairy to rely on at
- ;; cold boot? FIXME: 5/6 of these are in *STATIC-SYMBOLS* in
+ ;; cold boot? FIXME: Most of these are in *STATIC-SYMBOLS* in
;; parms.lisp, but %HANDLE-FUNCTION-END-BREAKPOINT is not. Why?
;; Explain.
(macrolet ((frob (symbol)
`(cold-set ',symbol
(cold-fdefinition-object (cold-intern ',symbol)))))
- (frob !cold-init)
(frob maybe-gc)
(frob internal-error)
(frob sb!di::handle-breakpoint)
- (frob sb!di::handle-function-end-breakpoint)
- (frob fdefinition-object))
+ (frob sb!di::handle-function-end-breakpoint))
(cold-set '*current-catch-block* (make-fixnum-descriptor 0))
(cold-set '*current-unwind-protect-block* (make-fixnum-descriptor 0))
;; 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)))