0.7.4.30:
[sbcl.git] / base-target-features.lisp-expr
index 671f0fb..519c506 100644 (file)
@@ -1,3 +1,5 @@
+;;;; -*- 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