X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=bd000becb19122696d776424a389ec2dbd0d4604;hb=f73c1f391342c797b8daebe4e8c27e5923341b6d;hp=6b80f4ded157230c7239d0cdb3ca294051ccbc5d;hpb=403bacffd903f8c5787a182f4133cffc69b55dc0;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 6b80f4d..bd000be 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -336,21 +336,21 @@ (movable foldable flushable explicit-check)) (defknown (ffloor fceiling fround ftruncate) - (real &optional real) (values float float) + (real &optional real) (values float real) (movable foldable flushable explicit-check)) (defknown decode-float (float) (values float float-exponent float) (movable foldable flushable explicit-check)) (defknown scale-float (float float-exponent) float - (movable foldable flushable explicit-check)) + (movable foldable unsafely-flushable explicit-check)) (defknown float-radix (float) float-radix - (movable foldable flushable explicit-check)) + (movable foldable flushable)) (defknown float-sign (float &optional float) float (movable foldable flushable explicit-check)) (defknown (float-digits float-precision) (float) float-digits (movable foldable flushable explicit-check)) (defknown integer-decode-float (float) - (values integer float-exponent (member -1 1)) + (values integer float-int-exponent (member -1 1)) (movable foldable flushable explicit-check)) (defknown complex (real &optional real) number @@ -370,7 +370,7 @@ (defknown lognot (integer) integer (movable foldable flushable explicit-check)) (defknown logtest (integer integer) boolean (movable foldable flushable)) -(defknown logbitp (bit-index integer) boolean (movable foldable flushable)) +(defknown logbitp (unsigned-byte integer) boolean (movable foldable flushable)) (defknown ash (integer integer) integer (movable foldable flushable explicit-check)) (defknown (logcount integer-length) (integer) bit-index @@ -393,7 +393,8 @@ (movable foldable flushable)) (defknown deposit-field (integer byte-specifier integer) integer (movable foldable flushable)) -(defknown random ((real (0)) &optional random-state) (real 0) ()) +(defknown random ((or (float (0.0)) (integer 1)) &optional random-state) + (or (float 0.0) (integer 0)) ()) (defknown make-random-state (&optional (or (member nil t) random-state)) random-state (flushable)) (defknown random-state-p (t) boolean (movable foldable flushable)) @@ -919,7 +920,10 @@ (defknown make-echo-stream (stream stream) stream (flushable)) (defknown make-string-input-stream (string &optional index index) stream (flushable unsafe)) -(defknown make-string-output-stream () stream (flushable)) +(defknown make-string-output-stream + (&key (:element-type type-specifier)) + stream + (flushable)) (defknown get-output-stream-string (stream) simple-string ()) (defknown streamp (t) boolean (movable foldable flushable)) (defknown stream-element-type (stream) type-specifier @@ -1340,7 +1344,7 @@ (defknown %type-check-error (t t) nil) ;; FIXME: This function does not return, but due to the implementation -;; of FILTER-CONTINUATION we cannot write it here. +;; of FILTER-LVAR we cannot write it here. (defknown %compile-time-type-error (t t t) *) (defknown %odd-key-args-error () nil) @@ -1416,6 +1420,13 @@ (defknown %setnth (unsigned-byte list t) t (unsafe)) (defknown %set-fill-pointer (vector index) index (unsafe)) +;;;; ALIEN and call-out-to-C stuff + +;;; 'unsafe' attribute because we store the arg on the stack, which is in +;;; some sense 'passing it upwards' +(defknown sb!vm::push-word-on-c-stack (system-area-pointer) (values) (unsafe)) +(defknown sb!vm::pop-words-from-c-stack (index) (values) ()) + ;;;; miscellaneous internal utilities (defknown %fun-name (function) t (flushable)) @@ -1423,3 +1434,10 @@ (defknown policy-quality (policy symbol) policy-quality (flushable)) + +(defknown (compiler-abort compiler-error) (string &rest t) nil ()) +(defknown (compiler-warn compiler-style-warn) (string &rest t) (values) ()) +(defknown (compiler-notify maybe-compiler-notify) ((or string symbol) &rest t) + (values) + ()) +(defknown style-warn (string &rest t) null ())