X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Ffndb.lisp;h=b6cdfcbbe9b6b05d807b2305b7ea5045c4ba9b55;hb=b7eed59f1877263e1af5ad80299e641e8276f77d;hp=30439400a81a4ff126f41a9f8fb7d12caaa93dae;hpb=acb7e69e6029efd8127b3c4288f750c2d0cb7a42;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 3043940..b6cdfcb 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 @@ -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)) @@ -1419,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 + +;;; 'call' 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) (call)) +(defknown sb!vm::pop-words-from-c-stack (index) (values) (call)) + ;;;; miscellaneous internal utilities (defknown %fun-name (function) t (flushable)) @@ -1426,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 ())