- ;; KLUDGE: Even when this is implemented for the target feature list,
- ;; the code to implement this feature will not generated in the
- ;; cross-compiler (i.e. will only be generated in the target compiler).
- ;; The reason for this is that the interval arithmetic routines used
- ;; to implement this feature are written under the assumption that
- ;; Lisp arithmetic supports plus and minus infinity, which isn't guaranteed by
- ;; ANSI Common Lisp. I've tried to mark the conditionals which implement
- ;; this kludge with the string CROSS-FLOAT-INFINITY-KLUDGE so that
- ;; sometime it might be possible to undo them (perhaps by using
- ;; nice portable :PLUS-INFINITY and :MINUS-INFINITY values instead of
- ;; implementation dependent floating infinity values, which would
- ;; admittedly involve extra consing; or perhaps by finding some cleaner
- ;; way of suppressing the construction of this code in the cross-compiler).
- ;;
- ;; KLUDGE: Even after doing the KLUDGE above, the cross-compiler doesn't work,
- ;; because some interval operations are conditional on PROPAGATE-FUN-TYPE
- ;; instead of PROPAGATE-FLOAT-TYPE. So for now, I've completely turned off
- ;; both PROPAGATE-FUN-TYPE and PROPAGATE-FLOAT-TYPE. (After I build
- ;; a compiler which works, then I can think about getting the optimization
- ;; to work.) -- WHN 19990702
- ; :propagate-float-type
+ ;; 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)