X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fdeftypes-for-target.lisp;h=8a066f54ff084b58fd015dc9d8ebb26e1f32cbda;hb=970dd272dc84f7420252eadb4829cc193f795716;hp=14614cca7368b4e2febd64c72248d5044578227a;hpb=63817d29028c8551cda23f432a3328acd7fdd62f;p=sbcl.git diff --git a/src/code/deftypes-for-target.lisp b/src/code/deftypes-for-target.lisp index 14614cc..8a066f5 100644 --- a/src/code/deftypes-for-target.lisp +++ b/src/code/deftypes-for-target.lisp @@ -33,18 +33,18 @@ (sb!xc:deftype signed-byte (&optional s) (cond ((eq s '*) 'integer) - ((and (integerp s) (> s 0)) - (let ((bound (ash 1 (1- s)))) - `(integer ,(- bound) ,(1- bound)))) - (t - (error "bad size specified for SIGNED-BYTE type specifier: ~S" s)))) + ((and (integerp s) (> s 0)) + (let ((bound (ash 1 (1- s)))) + `(integer ,(- bound) ,(1- bound)))) + (t + (error "bad size specified for SIGNED-BYTE type specifier: ~S" s)))) (sb!xc:deftype unsigned-byte (&optional s) (cond ((eq s '*) '(integer 0)) - ((and (integerp s) (> s 0)) - `(integer 0 ,(1- (ash 1 s)))) - (t - (error "bad size specified for UNSIGNED-BYTE type specifier: ~S" s)))) + ((and (integerp s) (> s 0)) + `(integer 0 ,(1- (ash 1 s)))) + (t + (error "bad size specified for UNSIGNED-BYTE type specifier: ~S" s)))) ;;; ANSI got UNSIGNED-BYTE wrong, prohibiting (UNSIGNED-BYTE 0). ;;; Since this is actually a substantial impediment to clarity... @@ -56,11 +56,13 @@ (sb!xc:deftype bit () '(integer 0 1)) -(sb!xc:deftype compiled-function () 'function) +(sb!xc:deftype compiled-function () + '(and function #!+sb-eval (not sb!eval:interpreted-function))) (sb!xc:deftype atom () '(not cons)) -(sb!xc:deftype base-char () 'character) +(sb!xc:deftype base-char () + '(character-set ((0 . #.(1- base-char-code-limit))))) (sb!xc:deftype extended-char () #!+sb-doc @@ -179,28 +181,28 @@ ;;; decomposing floats into integers (sb!xc:deftype single-float-exponent () `(integer ,(- sb!vm:single-float-normal-exponent-min - sb!vm:single-float-bias - sb!vm:single-float-digits) - ,(- sb!vm:single-float-normal-exponent-max - sb!vm:single-float-bias))) + sb!vm:single-float-bias + sb!vm:single-float-digits) + ,(- sb!vm:single-float-normal-exponent-max + sb!vm:single-float-bias))) (sb!xc:deftype double-float-exponent () `(integer ,(- sb!vm:double-float-normal-exponent-min - sb!vm:double-float-bias - sb!vm:double-float-digits) - ,(- sb!vm:double-float-normal-exponent-max - sb!vm:double-float-bias))) + sb!vm:double-float-bias + sb!vm:double-float-digits) + ,(- sb!vm:double-float-normal-exponent-max + sb!vm:double-float-bias))) (sb!xc:deftype single-float-int-exponent () `(integer ,(- sb!vm:single-float-normal-exponent-min - sb!vm:single-float-bias - (* sb!vm:single-float-digits 2)) - ,(- sb!vm:single-float-normal-exponent-max - sb!vm:single-float-bias - sb!vm:single-float-digits))) + sb!vm:single-float-bias + (* sb!vm:single-float-digits 2)) + ,(- sb!vm:single-float-normal-exponent-max + sb!vm:single-float-bias + sb!vm:single-float-digits))) (sb!xc:deftype double-float-int-exponent () `(integer ,(- sb!vm:double-float-normal-exponent-min sb!vm:double-float-bias - (* sb!vm:double-float-digits 2)) - ,(- sb!vm:double-float-normal-exponent-max sb!vm:double-float-bias - sb!vm:double-float-digits))) + (* sb!vm:double-float-digits 2)) + ,(- sb!vm:double-float-normal-exponent-max sb!vm:double-float-bias + sb!vm:double-float-digits))) (sb!xc:deftype single-float-significand () `(integer 0 (,(ash 1 sb!vm:single-float-digits)))) (sb!xc:deftype double-float-significand ()