X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=25a45dc25c67f8a3608749b2ae1d7cdf8e367674;hb=b3c5951a9d24468a2a471fd6769d0e6b687c08f3;hp=e666a3d0f8d3e3a7559331fdabb5c6773413a160;hpb=30d61cc04481c081fd97c42561475bfe11209b59;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index e666a3d..25a45dc 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 @@ -871,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)) @@ -1254,7 +1258,7 @@ (:external-format keyword)) t) -(defknown directory (pathname-designator &key (resolve-symlinks t)) +(defknown directory (pathname-designator &key (:resolve-symlinks t)) list ()) ;;;; from the "Conditions" chapter: @@ -1316,10 +1320,6 @@ (:stream stream) (:use-labels t)) null) -(defknown fdocumentation (t symbol) - (or string null) - (flushable)) - (defknown describe (t &optional (or stream (member t nil))) (values)) (defknown inspect (t) (values)) (defknown room (&optional (member t nil :default)) (values)) @@ -1378,16 +1378,12 @@ ;;;; 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)) - -;;; PCOUNTERs -(defknown incf-pcounter (pcounter unsigned-byte) pcounter) -(defknown pcounter->integer (pcounter) unsigned-byte) -(defknown %incf-pcounter-or-fixnum ((or pcounter fixnum) unsigned-byte) - (or pcounter fixnum)) -(defknown pcounter-or-fixnum->integer ((or pcounter fixnum)) unsigned-byte) ;;;; magical compiler frobs @@ -1453,7 +1449,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)) @@ -1527,9 +1524,6 @@ (defknown %set-symbol-value (symbol t) t (unsafe)) (defknown (setf symbol-function) (function symbol) function (unsafe)) (defknown %set-symbol-plist (symbol list) list (unsafe)) -(defknown (setf fdocumentation) ((or string null) t symbol) - (or string null) - ()) (defknown %setnth (unsigned-byte list t) t (unsafe) :destroyed-constant-args (nth-constant-args 2)) (defknown %set-fill-pointer (vector index) index (unsafe)