X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=49c58a3948742631722aa2c892e63df6bb1fd240;hb=80f222325e1f677e5cf8de01c6990906fa47f65d;hp=2c653e499b5d78e462e363ca05ae3318ad799851;hpb=1d46d379bb7a6424524b978f213ef69be5f1ad69;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 2c653e4..49c58a3 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -340,7 +340,7 @@ (defknown decode-float (float) (values float float-exponent float) (movable foldable flushable explicit-check)) -(defknown scale-float (float float-exponent) float +(defknown scale-float (float integer) float (movable foldable unsafely-flushable explicit-check)) (defknown float-radix (float) float-radix (movable foldable flushable)) @@ -787,7 +787,7 @@ (defknown hash-table-size (hash-table) index (flushable)) (defknown hash-table-test (hash-table) symbol (foldable flushable)) (defknown sxhash (t) (integer 0 #.sb!xc:most-positive-fixnum) - (foldable flushable)) + (#-sb-xc-host foldable flushable)) ;;;; from the "Arrays" chapter @@ -1058,7 +1058,8 @@ :derive-type #'result-type-first-arg) ;;; xxx-TO-STRING functions are not foldable because they depend on -;;; the dynamic environment. +;;; the dynamic environment, the state of the pretty printer dispatch +;;; table, and probably other run-time factors. (defknown write-to-string (t &key (:escape t) (:radix t) (:base (integer 2 36)) (:readably t) (:circle t) (:pretty t) (:level (or unsigned-byte null)) @@ -1066,7 +1067,7 @@ (:lines (or unsigned-byte null)) (:right-margin (or unsigned-byte null)) (:miser-width (or unsigned-byte null)) (:pprint-dispatch t)) simple-string - (foldable flushable explicit-check)) + (flushable explicit-check)) (defknown (prin1-to-string princ-to-string) (t) simple-string (flushable)) @@ -1286,7 +1287,7 @@ (defknown describe (t &optional (or stream (member t nil))) (values)) (defknown inspect (t) (values)) (defknown room (&optional (member t nil :default)) (values)) -(defknown ed (&optional (or symbol cons filename) &key (:init t) (:display t)) +(defknown ed (&optional (or symbol cons filename)) t) (defknown dribble (&optional filename &key (:if-exists t)) (values)) @@ -1362,7 +1363,9 @@ (defknown %cleanup-point () t) (defknown %special-bind (t t) t) (defknown %special-unbind (t) t) -(defknown %listify-rest-args (t index) list (flushable)) +(defknown %dynamic-extent-start () t) +(defknown %dynamic-extent-end () t) +(defknown %listify-rest-args (t index t) list (flushable)) (defknown %more-arg-context (t t) (values t index) (flushable)) (defknown %more-arg (t index) t) (defknown %more-arg-values (t index index) * (flushable)) @@ -1378,6 +1381,7 @@ (defknown %nlx-entry (t) *) (defknown %%primitive (t t &rest t) *) (defknown %pop-values (t) t) +(defknown %nip-values (t t &rest t) (values)) (defknown %type-check-error (t t) nil) ;; FIXME: This function does not return, but due to the implementation @@ -1478,3 +1482,4 @@ (values) ()) (defknown style-warn (string &rest t) null ()) +