+;;;; -*- Lisp -*-
+
;;;; tags which are set during the build process and which end up in
;;;; CL:*FEATURES* in the target SBCL, plus some comments about other
;;;; CL:*FEATURES* tags which have special meaning to SBCL or which
;; our standard
:ansi-cl :common-lisp
;; FIXME: Isn't there a :x3jsomething feature which we should set too?
+ ;; No. CLHS says ":x3j13 [...] A conforming implementation might or
+ ;; might not contain such a feature." -- CSR, 2002-02-21
;; our dialect
:sbcl
;; Douglas Thomas Crosher's conservative generational GC (the only one
- ;; we currently support for X86)
- :gencgc
+ ;; we currently support for X86).
+ ;; :gencgc used to be here; CSR moved it into
+ ;; local-target-features.lisp-expr via make-config.sh, as alpha,
+ ;; sparc and ppc ports don't currently support it. -- CSR, 2002-02-21
;; We're running under a UNIX. This is sort of redundant, and it was also
;; sort of redundant under CMU CL, which we inherited it from: neither SBCL
;; documented in the CMU CL code that SBCL is derived from, and is
;; present but stale in SBCL as of 0.6.12.)
;;
+ ;; properties derived from the machine architecture
+ ;; :control-stack-grows-downward-not-upward
+ ;; On the X86, the Lisp control stack grows downward. On the
+ ;; other supported CPU architectures as of sbcl-0.7.1.40, the
+ ;; system stack grows upward.
+ ;; Note that there are other stack-related differences between the
+ ;; X86 port and the other ports. E.g. on the X86, the Lisp control
+ ;; stack coincides with the C stack, meaning that on the X86 there's
+ ;; stuff on the control stack that the Lisp-level debugger doesn't
+ ;; understand very well. As of sbcl-0.7.1.40 things like that are
+ ;; just parameterized by #!+X86, but it'd probably be better to
+ ;; use new flags like :CONTROL-STACK-CONTAINS-C-STACK.
+ ;;
;; operating system features:
;; :linux = We're intended to run under some version of Linux.
;; :bsd = We're intended to run under some version of BSD Unix. (This