-(eval-when (:compile-toplevel :load-toplevel :execute)
-
-(defconstant word-bits 32
- #!+sb-doc
- "Number of bits per word where a word holds one lisp descriptor.")
-
-(defconstant byte-bits 8
- #!+sb-doc
- "Number of bits per byte where a byte is the smallest addressable object.")
-
-(defconstant word-shift (1- (integer-length (/ word-bits byte-bits)))
- #!+sb-doc
- "Number of bits to shift between word addresses and byte addresses.")
-
-(defconstant word-bytes (/ word-bits byte-bits)
- #!+sb-doc
- "Number of bytes in a word.")
-
-) ; EVAL-WHEN
-
-(eval-when (:compile-toplevel :load-toplevel :execute)
-(defconstant float-sign-shift 31)
-
-;; These values were taken from the alpha code. The values for
-;; bias and exponent min/max are not the same as shown in the 486 book.
-;; They may be correct for how Python uses them.
-(defconstant single-float-bias 126) ; Intel says 127
-(defconstant single-float-exponent-byte (byte 8 23))
-(defconstant single-float-significand-byte (byte 23 0))
-;; The 486 book shows the exponent range -126 to +127. The Lisp
-;; code that uses these values seems to want already biased numbers.
-(defconstant single-float-normal-exponent-min 1)
-(defconstant single-float-normal-exponent-max 254)
-(defconstant single-float-hidden-bit (ash 1 23))
-(defconstant single-float-trapping-nan-bit (ash 1 22))
-
-(defconstant double-float-bias 1022)
-(defconstant double-float-exponent-byte (byte 11 20))
-(defconstant double-float-significand-byte (byte 20 0))
-(defconstant double-float-normal-exponent-min 1)
-(defconstant double-float-normal-exponent-max #x7FE)
-(defconstant double-float-hidden-bit (ash 1 20))
-(defconstant double-float-trapping-nan-bit (ash 1 19))
-
-(defconstant long-float-bias 16382)
-(defconstant long-float-exponent-byte (byte 15 0))
-(defconstant long-float-significand-byte (byte 31 0))
-(defconstant long-float-normal-exponent-min 1)
-(defconstant long-float-normal-exponent-max #x7FFE)
-(defconstant long-float-hidden-bit (ash 1 31)) ; Actually not hidden
-(defconstant long-float-trapping-nan-bit (ash 1 30))
-
-(defconstant single-float-digits
+;;; the number of bits per word, where a word holds one lisp descriptor
+(def!constant n-word-bits 32)
+
+;;; the natural width of a machine word (as seen in e.g. register width,
+;;; address space)
+(def!constant n-machine-word-bits 32)
+
+;;; the number of bits per byte, where a byte is the smallest
+;;; addressable object
+(def!constant n-byte-bits 8)
+
+;;; the number of bits to shift between word addresses and byte addresses
+(def!constant word-shift (1- (integer-length (/ n-word-bits n-byte-bits))))
+
+;;; the number of bytes in a word
+(def!constant n-word-bytes (/ n-word-bits n-byte-bits))
+
+(def!constant float-sign-shift 31)
+
+;;; comment from CMU CL:
+;;; These values were taken from the alpha code. The values for
+;;; bias and exponent min/max are not the same as shown in the 486 book.
+;;; They may be correct for how Python uses them.
+(def!constant single-float-bias 126) ; Intel says 127.
+(defconstant-eqx single-float-exponent-byte (byte 8 23) #'equalp)
+(defconstant-eqx single-float-significand-byte (byte 23 0) #'equalp)
+;;; comment from CMU CL:
+;;; The 486 book shows the exponent range -126 to +127. The Lisp
+;;; code that uses these values seems to want already biased numbers.
+(def!constant single-float-normal-exponent-min 1)
+(def!constant single-float-normal-exponent-max 254)
+(def!constant single-float-hidden-bit (ash 1 23))
+(def!constant single-float-trapping-nan-bit (ash 1 22))
+
+(def!constant double-float-bias 1022)
+(defconstant-eqx double-float-exponent-byte (byte 11 20) #'equalp)
+(defconstant-eqx double-float-significand-byte (byte 20 0) #'equalp)
+(def!constant double-float-normal-exponent-min 1)
+(def!constant double-float-normal-exponent-max #x7FE)
+(def!constant double-float-hidden-bit (ash 1 20))
+(def!constant double-float-trapping-nan-bit (ash 1 19))
+
+(def!constant long-float-bias 16382)
+(defconstant-eqx long-float-exponent-byte (byte 15 0) #'equalp)
+(defconstant-eqx long-float-significand-byte (byte 31 0) #'equalp)
+(def!constant long-float-normal-exponent-min 1)
+(def!constant long-float-normal-exponent-max #x7FFE)
+(def!constant long-float-hidden-bit (ash 1 31)) ; actually not hidden
+(def!constant long-float-trapping-nan-bit (ash 1 30))
+
+(def!constant single-float-digits