X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=a7d9537cd9af5223beb714c2f489b751f2bfa3af;hb=b9519773faa7b3c98915eccb9cb1fd8a8270ee56;hp=3c131b9194b282c320104db415225cdc0a9f8979;hpb=d01a6883a21ee073c1a00c401c12185dbd2a8133;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 3c131b9..a7d9537 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -81,7 +81,7 @@ (sb!xc:deftype name-for-class () t) (defknown classoid-name (classoid) name-for-class (flushable)) -(defknown find-classoid (name-for-class &optional t lexenv-designator) +(defknown find-classoid (name-for-class &optional t) (or classoid null) ()) (defknown classoid-of (t) classoid (flushable)) (defknown layout-of (t) layout (flushable)) @@ -678,8 +678,13 @@ (defknown list-length (list) (or index null) (foldable unsafely-flushable)) (defknown nth (unsigned-byte list) t (foldable flushable)) (defknown nthcdr (unsigned-byte list) t (foldable unsafely-flushable)) + (defknown last (list &optional unsigned-byte) t (foldable flushable)) -(defknown sb!impl::last1 (list) t (foldable flushable)) +(defknown %last0 (list) t (foldable flushable)) +(defknown %last1 (list) t (foldable flushable)) +(defknown %lastn/fixnum (list (and unsigned-byte fixnum)) t (foldable flushable)) +(defknown %lastn/bignum (list (and unsigned-byte bignum)) t (foldable flushable)) + (defknown list (&rest t) list (movable flushable unsafe)) (defknown list* (t &rest t) t (movable flushable unsafe)) (defknown make-list (index &key (:initial-element t)) list @@ -783,7 +788,8 @@ (&key (:test callable) (:size unsigned-byte) (:rehash-size (or (integer 1) (float (1.0)))) (:rehash-threshold (real 0 1)) - (:weakness (member nil :key :value :key-and-value :key-or-value))) + (:weakness (member nil :key :value :key-and-value :key-or-value)) + (:synchronized t)) hash-table (flushable unsafe)) (defknown hash-table-p (t) boolean (movable foldable flushable)) @@ -801,9 +807,9 @@ (defknown clrhash (hash-table) hash-table () :destroyed-constant-args (nth-constant-args 2)) (defknown hash-table-count (hash-table) index (flushable)) -(defknown hash-table-rehash-size (hash-table) (or (integer 1) (float (1.0))) +(defknown hash-table-rehash-size (hash-table) (or index (single-float (1.0))) (foldable flushable)) -(defknown hash-table-rehash-threshold (hash-table) (real 0 1) +(defknown hash-table-rehash-threshold (hash-table) (single-float (0.0) 1.0) (foldable flushable)) (defknown hash-table-size (hash-table) index (flushable)) (defknown hash-table-test (hash-table) symbol (foldable flushable)) @@ -907,7 +913,7 @@ simple-string (flushable)) (defknown (string-trim string-left-trim string-right-trim) - (sequence string-designator) simple-string (flushable)) + (sequence string-designator) string (flushable)) (defknown (string-upcase string-downcase string-capitalize) (string-designator &key (:start index) (:end sequence-end)) @@ -1246,7 +1252,7 @@ &key (:verbose t) (:print t) - (:if-does-not-exist (member :error :create nil)) + (:if-does-not-exist t) (:external-format keyword)) t) @@ -1453,10 +1459,14 @@ (defknown %with-array-data (array index (or index null)) (values (simple-array * (*)) index index index) (foldable flushable)) +(defknown %with-array-data/fp (array index (or index null)) + (values (simple-array * (*)) index index index) + (foldable flushable)) (defknown %set-symbol-package (symbol t) t (unsafe)) (defknown %coerce-name-to-fun ((or symbol cons)) function (flushable)) (defknown %coerce-callable-to-fun (callable) function (flushable)) -(defknown failed-%with-array-data (t t t) nil) +(defknown array-bounding-indices-bad-error (t t t) nil) +(defknown sequence-bounding-indices-bad-error (t t t) nil) (defknown %find-position (t sequence t index sequence-end function function) (values t (or index null)) @@ -1472,6 +1482,15 @@ function (flushable foldable)) +(defknown %adjoin (t list) list (explicit-check foldable flushable)) +(defknown %adjoin-key (t list function) list (explicit-check foldable flushable call)) +(defknown %assoc (t list) list (explicit-check foldable flushable)) +(defknown %assoc-key (t list function) list (explicit-check foldable flushable call)) +(defknown %member (t list) list (explicit-check foldable flushable)) +(defknown %member-key (t list function) list (explicit-check foldable flushable call)) +(defknown %rassoc (t list) list (explicit-check foldable flushable)) +(defknown %rassoc-key (t list function) list (explicit-check foldable flushable call)) + (defknown %check-vector-sequence-bounds (vector index sequence-end) index (unwind)) @@ -1547,11 +1566,11 @@ (flushable)) (defknown compiler-error (t &rest t) nil ()) -(defknown (compiler-warn compiler-style-warn) (string &rest t) (values) ()) +(defknown (compiler-warn compiler-style-warn) (t &rest t) (values) ()) (defknown (compiler-notify maybe-compiler-notify) ((or string symbol) &rest t) (values) ()) -(defknown style-warn (string &rest t) null ()) +(defknown style-warn (t &rest t) null ()) ;;;; atomic ops (defknown %compare-and-swap-svref (simple-vector index t t) t