(etypecase key
(integer (sxhash key))
(float (macrolet ((frob (type)
- (let ((lo (coerce most-negative-fixnum type))
- (hi (coerce most-positive-fixnum type)))
+ (let ((lo (coerce sb!xc:most-negative-fixnum type))
+ (hi (coerce sb!xc:most-positive-fixnum type)))
`(cond (;; This clause allows FIXNUM-sized integer
;; values to be handled without consing.
(<= ,lo key ,hi)
;;;; Lisp types used by syscalls
(deftype unix-pathname () 'simple-string)
-(deftype unix-fd () `(integer 0 ,most-positive-fixnum))
+(deftype unix-fd () `(integer 0 ,sb!xc:most-positive-fixnum))
(deftype unix-file-mode () '(unsigned-byte 32))
(deftype unix-pid () '(unsigned-byte 32))
form)))
(typecase form
(symbol
- (symbol-value form))
+ ;; KLUDGE: superficially, this might look good enough: we grab
+ ;; the value from the info database, and if it isn't there (or
+ ;; is NIL, but hey) we use the host's value. This works for
+ ;; MOST-POSITIVE-FIXNUM and friends, but still fails for
+ ;; float-related constants, where there is in fact no guarantee
+ ;; that we can represent our target value at all in the host,
+ ;; so we don't try. We should rework all uses of floating
+ ;; point so that we never try to use a host's value, and then
+ ;; make some kind of assertion that we never attempt to take
+ ;; a host value of a constant in the CL package.
+ #+sb-xc-host (or (info :variable :xc-constant-value form)
+ (symbol-value form))
+ #-sb-xc-host (symbol-value form))
(list
(if (special-operator-p (car form))
(constant-special-form-value form environment envp)
"the fixnum closest in value to negative infinity")
(def!constant most-positive-exactly-single-float-fixnum
- (min #xffffff most-positive-fixnum))
+ (min #xffffff sb!xc:most-positive-fixnum))
(def!constant most-negative-exactly-single-float-fixnum
- (max #x-ffffff most-negative-fixnum))
+ (max #x-ffffff sb!xc:most-negative-fixnum))
(def!constant most-positive-exactly-double-float-fixnum
- (min #x1fffffffffffff most-positive-fixnum))
+ (min #x1fffffffffffff sb!xc:most-positive-fixnum))
(def!constant most-negative-exactly-double-float-fixnum
- (max #x-1fffffffffffff most-negative-fixnum))
+ (max #x-1fffffffffffff sb!xc:most-negative-fixnum))
;;;; Point where continuous area starting at dynamic-space-start bumps into
;;;; next space.
(start-1 (1- ,',start))
(current-heap-size (- ,',end ,',start))
(keyfun ,keyfun))
- (declare (type (integer -1 #.(1- most-positive-fixnum))
+ (declare (type (integer -1 #.(1- sb!xc:most-positive-fixnum))
start-1))
(declare (type index current-heap-size))
(declare (type function keyfun))
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"1.0.27.36"
+"1.0.27.37"