X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=0b553f5d40016482f4185f9ff323662a051c2e44;hb=d25e3478acccec70402ff32554669a982be8e281;hp=e6390c4bd382f7edfc7c941c4e609652976340a2;hpb=9614655fcb31923424174c4f7a43d5affc8019ad;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index e6390c4..0b553f5 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -485,13 +485,15 @@ (:start index) (:end sequence-end)) sequence (unsafe) :derive-type #'result-type-first-arg - :destroyed-constant-args (nth-constant-nonempty-sequence-args 1)) + :destroyed-constant-args (nth-constant-nonempty-sequence-args 1) + :result-arg 0) (defknown replace (sequence sequence &rest t &key (:start1 index) (:end1 sequence-end) (:start2 index) (:end2 sequence-end)) sequence () :derive-type #'result-type-first-arg - :destroyed-constant-args (nth-constant-nonempty-sequence-args 1)) + :destroyed-constant-args (nth-constant-nonempty-sequence-args 1) + :result-arg 0) (defknown remove (t sequence &rest t &key (:from-end t) (:test callable) @@ -788,6 +790,7 @@ (&key (:test callable) (:size unsigned-byte) (:rehash-size (or (integer 1) (float (1.0)))) (:rehash-threshold (real 0 1)) + (:hash-function (or null callable)) (:weakness (member nil :key :value :key-and-value :key-or-value)) (:synchronized t)) hash-table @@ -813,10 +816,8 @@ (foldable flushable)) (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) - (#-sb-xc-host foldable flushable)) -(defknown psxhash (t &optional t) (integer 0 #.sb!xc:most-positive-fixnum) - (#-sb-xc-host foldable flushable)) +(defknown sxhash (t) hash (#-sb-xc-host foldable flushable)) +(defknown psxhash (t &optional t) hash (#-sb-xc-host foldable flushable)) ;;;; from the "Arrays" chapter @@ -873,7 +874,8 @@ (defknown fill-pointer (vector) index (foldable unsafely-flushable)) (defknown vector-push (t vector) (or index null) () :destroyed-constant-args (nth-constant-args 2)) -(defknown vector-push-extend (t vector &optional index) index () +(defknown vector-push-extend (t vector &optional (and index (integer 1))) + index () :destroyed-constant-args (nth-constant-args 2)) (defknown vector-pop (vector) t () :destroyed-constant-args (nth-constant-args 1)) @@ -1256,7 +1258,7 @@ (:external-format keyword)) t) -(defknown directory (pathname-designator &key) +(defknown directory (pathname-designator &key (:resolve-symlinks t)) list ()) ;;;; from the "Conditions" chapter: @@ -1380,6 +1382,9 @@ ;;;; miscellaneous extensions +(defknown symbol-global-value (symbol) t ()) +(defknown set-symbol-global-value (symbol t) t ()) + (defknown get-bytes-consed () unsigned-byte (flushable)) (defknown mask-signed-field ((integer 0 *) integer) integer (movable flushable foldable)) @@ -1455,7 +1460,8 @@ (defknown hairy-data-vector-set/check-bounds (array index t) t (unsafe explicit-check)) -(defknown %caller-frame-and-pc () (values t t) (flushable)) +(defknown %caller-frame () t (flushable)) +(defknown %caller-pc () system-area-pointer (flushable)) (defknown %with-array-data (array index (or index null)) (values (simple-array * (*)) index index index) (foldable flushable))