0.8.17.8: x86 backtraces
[sbcl.git] / src / cold / shebang.lisp
index 95b4480..6d6a2cb 100644 (file)
 
 (set-dispatch-macro-character #\# #\! #'shebang-reader)
 \f
+;;;; variables like *SHEBANG-FEATURES* but different
+
+;;; This variable is declared here (like *SHEBANG-FEATURES*) so that
+;;; things like chill.lisp work (because the variable has properties
+;;; similar to *SHEBANG-FEATURES*, and chill.lisp was set up to work
+;;; for that). For an explanation of what it really does, look
+;;; elsewhere.
+(export '*shebang-backend-subfeatures*)
+(declaim (type list *shebang-features*))
+(defvar *shebang-backend-subfeatures*)
+\f
+;;;; string checker, for catching non-portability early
+(defun make-quote-reader (standard-quote-reader)
+  (lambda (stream char)
+    (let ((result (funcall standard-quote-reader stream char)))
+      (unless (every (lambda (x) (typep x 'standard-char)) result)
+        (warn "Found non-STANDARD-CHAR in ~S" result))
+      result)))
+(compile 'make-quote-reader)
+
+(set-macro-character #\" (make-quote-reader (get-macro-character #\" nil)))
+\f
 ;;;; FIXME: Would it be worth implementing this?
 #|
 ;;;; readmacro syntax to remove spaces from FORMAT strings at compile time