diff --git a/code/benchmark/float-triple.lisp b/code/benchmark/float-triple.lisp index c20bfa10..2b5f1f1f 100644 --- a/code/benchmark/float-triple.lisp +++ b/code/benchmark/float-triple.lisp @@ -26,6 +26,7 @@ (defun float-triple (&key (base 10) (name (uiop:implementation-identifier))) (let ((results (bench (lambda (client &key type limit) + (declare (ignore type)) (quaviver:float-triple client base (* (1- (ash (random 2) 1)) diff --git a/code/blub/implementation.lisp b/code/blub/implementation.lisp index a3f387c4..0d94ceee 100644 --- a/code/blub/implementation.lisp +++ b/code/blub/implementation.lisp @@ -34,7 +34,7 @@ (multiple-value-bind (significand exponent sign) (quaviver:float-triple client base value) (when (keywordp exponent) - (error "Unable to represent ~a in ~a." exponent (client-standard client))) + (error "Unable to represent ~a." exponent)) (when (minusp sign) (write-char #\- stream)) (let ((len (quaviver.math:ceiling-log-expt 10 2 (integer-length significand)))) diff --git a/code/common-lisp/implementation.lisp b/code/common-lisp/implementation.lisp index 0840a723..e7f04c18 100644 --- a/code/common-lisp/implementation.lisp +++ b/code/common-lisp/implementation.lisp @@ -7,9 +7,11 @@ (if (typep value *read-default-float-format*) #+(or ccl lispworks) #\E #-(or ccl lispworks) #\e (etypecase value + #+quaviver/short-float (short-float #+(or ccl lispworks) #\S #-(or ccl lispworks) #\s) (single-float #+(or ccl lispworks) #\F #-(or ccl lispworks) #\f) (double-float #+(or ccl lispworks) #\D #-(or ccl lispworks) #\d) + #+quaviver/long-float (long-float #+(or ccl lispworks) #\L #-(or ccl lispworks) #\l)))) (defclass client () diff --git a/code/fortran/implementation.lisp b/code/fortran/implementation.lisp index 6650fe6c..a06726dc 100644 --- a/code/fortran/implementation.lisp +++ b/code/fortran/implementation.lisp @@ -37,7 +37,7 @@ (multiple-value-bind (significand exponent sign) (quaviver:float-triple client base value) (when (keywordp exponent) - (error "Unable to represent ~a in ~a." exponent (client-standard client))) + (error "Unable to represent ~a." exponent)) (when (minusp sign) (write-char #\- stream)) (quaviver:write-digits base significand stream) @@ -55,7 +55,7 @@ (multiple-value-bind (significand exponent sign) (quaviver:float-triple client base value) (when (keywordp exponent) - (error "Unable to represent ~a in ~a." exponent (client-standard client))) + (error "Unable to represent ~a." exponent)) (when (minusp sign) (write-char #\- stream)) (quaviver:write-digits base significand stream) @@ -70,7 +70,7 @@ (multiple-value-bind (significand exponent sign) (quaviver:float-triple client base value) (when (keywordp exponent) - (error "Unable to represent ~a in ~a." exponent (client-standard client))) + (error "Unable to represent ~a." exponent)) (when (minusp sign) (write-char #\- stream)) (quaviver:write-digits base significand stream) diff --git a/code/liebler/implementation.lisp b/code/liebler/implementation.lisp index 33be1c8c..416abd55 100644 --- a/code/liebler/implementation.lisp +++ b/code/liebler/implementation.lisp @@ -10,7 +10,7 @@ (max-exponent quaviver:max-exponent)) float-type (let* ((extra 6) - (word-size (+ extra significand-size))) + #+(or)(word-size (+ extra significand-size))) `(locally (declare #+(or)(type (unsigned-byte ,word-size) ,significand-var) diff --git a/code/number-parser.lisp b/code/number-parser.lisp index 5ade51b6..6d921361 100644 --- a/code/number-parser.lisp +++ b/code/number-parser.lisp @@ -442,6 +442,7 @@ ,fractional ,fractional-count ,fractional-leading-zero ,fractional-base ,divisor ,divisor-count, divisor-leading-zero ,divisor-base ,exponent-sign ,exponent ,exponent-count ,exponent-leading-zero ,exponent-base + ,payload-count ,payload-leading-zero ,payload-base ,sign ,character)) ,@expanded-clauses ,*next-tag* diff --git a/code/write-digits.lisp b/code/write-digits.lisp index f53d648b..bb5f5b15 100644 --- a/code/write-digits.lisp +++ b/code/write-digits.lisp @@ -90,7 +90,6 @@ (fractional-position (or fractional-position power)) (pos (- (min fractional-position 0) leading-zeros)) - digit digits-written-p (zero-char (funcall digit-char 0 base))) (labels ((write-digit (ch)