X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=edb99d4d585ffd1a977923eda4d3fcc54ff941cf;hb=96aa790ea1d70810e862665c3c8be4ce405a964c;hp=0c80ebf22a28aa72e70f2c5e50688a8cfd36f078;hpb=0c0d8909984b5b33bb6b59b350b2d5cee6dc1715;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 0c80ebf..edb99d4 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -80,7 +80,7 @@ ;;;; classes (sb!xc:deftype name-for-class () t) -(defknown classoid-name (classoid) name-for-class (flushable)) +(defknown classoid-name (classoid) symbol (flushable)) (defknown find-classoid (name-for-class &optional t) (or classoid null) ()) (defknown classoid-of (t) classoid (flushable)) @@ -142,7 +142,8 @@ (defknown macro-function (symbol &optional lexenv-designator) (or function null) (flushable)) -(defknown (macroexpand macroexpand-1) (t &optional lexenv-designator) +(defknown (macroexpand macroexpand-1 %macroexpand %macroexpand-1) + (t &optional lexenv-designator) (values form &optional boolean)) (defknown compiler-macro-function (t &optional lexenv-designator) @@ -318,6 +319,13 @@ (real &optional real) (values integer real) (movable foldable flushable explicit-check)) +(defknown %multiply-high (word word) word + (movable foldable flushable)) + +(defknown (%floor %ceiling) + (real real) (values integer real) + (movable foldable flushable explicit-check)) + (defknown (mod rem) (real real) real (movable foldable flushable explicit-check)) @@ -966,7 +974,7 @@ (flushable unsafe)) (defknown make-string-output-stream (&key (:element-type type-specifier)) - stream + string-output-stream (flushable)) (defknown get-output-stream-string (stream) simple-string ()) (defknown streamp (t) boolean (movable foldable flushable)) @@ -1270,16 +1278,11 @@ ;;;; from the "Conditions" chapter: -(defknown cell-error-name (cell-error) t) (defknown error (t &rest t) nil) (defknown cerror (format-control t &rest t) null) (defknown invalid-method-error (t format-control &rest t) *) ; FIXME: first arg is METHOD (defknown method-combination-error (format-control &rest t) *) (defknown signal (t &rest t) null) -(defknown simple-condition-format-control (condition) - format-control) -(defknown simple-condition-format-arguments (condition) - list) (defknown warn (t &rest t) null) (defknown invoke-debugger (condition) nil) (defknown break (&optional format-control &rest t) null) @@ -1400,6 +1403,8 @@ ;;;; magical compiler frobs +(defknown %values-list-or-context (t t t) * (always-translatable)) + (defknown %unary-truncate/single-float (single-float) integer (movable foldable flushable)) (defknown %unary-truncate/double-float (double-float) integer (movable foldable flushable)) @@ -1408,7 +1413,7 @@ (defknown %typep (t (or type-specifier ctype)) boolean (movable flushable explicit-check)) (defknown %instance-typep (t (or type-specifier ctype)) boolean - (movable flushable explicit-check)) + (movable flushable explicit-check always-translatable)) (defknown %cleanup-point () t) (defknown %special-bind (t t) t) @@ -1439,7 +1444,7 @@ ;; FIXME: This function does not return, but due to the implementation ;; of FILTER-LVAR we cannot write it here. -(defknown %compile-time-type-error (t t t) *) +(defknown %compile-time-type-error (t t t t) *) (defknown sb!kernel::case-failure (t t t) nil) (defknown %odd-key-args-error () nil) @@ -1599,3 +1604,5 @@ (unsafe)) (defknown %compare-and-swap-symbol-value (symbol t t) t (unsafe unwind)) +(defknown spin-loop-hint () (values) + (always-translatable))