- ;; This is mentioned in cmu-user.tex, which says that it enables
- ;; the compiler to reason about integer arithmetic. It also seems to
- ;; control other fancy numeric reasoning, e.g. knowing the result type of
- ;; a remainder calculation given the type of its inputs.
- ;;
- ;; CROSS-FLOAT-INFINITY-KLUDGE: The :PROPAGATE-FLOAT-TYPE and
- ;; :PROPAGATE-FUN-TYPE features are problematic when building
- ;; the cross-compiler itself. Their implementation depends on
- ;; floating point infinities, which might not be supported in the
- ;; cross-compilation host. In order to avoid this problem, while
- ;; still supporting these features in the target Lisp compiler,
- ;; we use the :WILL-PROPAGATE-FLOAT-TYPE feature when building
- ;; the cross-compiler, and munge it into :PROPAGATE-FLOAT-TYPE
- ;; only when building the target compiler; and similarly for
- ;; :WILL-PROPAGATE-FUN-TYPE.
- ;:will-propagate-float-type ; (becomes :PROPAGATE-FLOAT-TYPE)
-
- ;; According to cmu-user.tex, this enables the compiler to infer result
- ;; types for mathematical functions like SQRT, EXPT, and LOG, allowing
- ;; it to e.g. eliminate the possibility that a complex result will be
- ;; generated. This applies only to the target compiler, not the
- ;; cross-compiler: see CROSS-FLOAT-INFINITY-KLUDGE.
- ;:will-propagate-fun-type ; (becomes :PROPAGATE-FUN-TYPE)
-
- ;; It's unclear to me what this does (but it was enabled in the code that I
- ;; picked up from Peter Van Eynde). -- WHN 19990224
- :constrain-float-type
+ ;; Support for detection of unportable code (when applied to the
+ ;; COMMON-LISP package, or SBCL-internal pacakges) or bad-neighbourly
+ ;; code (when applied to user-level packages), relating to material
+ ;; alteration to packages or to bindings in symbols in packages.
+ :sb-package-locks
+
+ ;; Support for the entirety of the 21-bit character space defined by
+ ;; the Unicode consortium, rather than the classical 8-bit ISO-8859-1
+ ;; character set.
+ :sb-unicode
+
+ ;; Support for a full evaluator that can execute all the CL special
+ ;; forms, as opposed to the traditional SBCL evaluator which called
+ ;; COMPILE for everything complicated.
+ :sb-eval
+
+ ;; Record source location information for variables, classes, conditions,
+ ;; packages, etc. Gives much better information on M-. in Slime, but
+ ;; increases core size by about 100kB.
+ :sb-source-locations
+
+ ;; This affects the definition of a lot of things in bignum.lisp. It
+ ;; doesn't seem to be documented anywhere what systems it might apply
+ ;; to. It doesn't seem to be needed for X86 systems anyway.
+ ; :32x16-divide