X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=8a2aed78df5d3a60eef5729d61d921d2b66f36ea;hb=380ea897e2c12a01547f918f73e8a1db0a3a0373;hp=49c58a3948742631722aa2c892e63df6bb1fd240;hpb=59ac7389b0bead82dfe2c94a5edab79dc9569c61;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index 49c58a3..8a2aed7 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -44,7 +44,7 @@ (defknown type-of (t) t (foldable flushable)) ;;; These can be affected by type definitions, so they're not FOLDABLE. -(defknown (upgraded-complex-part-type sb!xc:upgraded-array-element-type) +(defknown (sb!xc:upgraded-complex-part-type sb!xc:upgraded-array-element-type) (type-specifier &optional lexenv-designator) type-specifier (unsafely-flushable)) @@ -421,7 +421,7 @@ (movable foldable flushable)) (defknown name-char (string-designator) (or character null) (movable foldable flushable)) -(defknown code-char (char-code) base-char +(defknown code-char (char-code) character ;; By suppressing constant folding on CODE-CHAR when the ;; cross-compiler is running in the cross-compilation host vanilla ;; ANSI Common Lisp, we can use CODE-CHAR expressions to delay until @@ -1192,7 +1192,7 @@ :rename-and-delete :overwrite :append :supersede nil)) (:if-does-not-exist (member :error :create nil)) - (:external-format (member :default))) + (:external-format keyword)) (or stream null)) (defknown rename-file (pathname-designator filename) @@ -1215,7 +1215,7 @@ (:verbose t) (:print t) (:if-does-not-exist (member :error :create nil)) - (:external-format (member :default))) + (:external-format keyword)) t) (defknown directory (pathname-designator &key) @@ -1267,7 +1267,7 @@ (member t))) (:verbose t) (:print t) - (:external-format t) + (:external-format keyword) ;; extensions (:trace-file t) @@ -1343,6 +1343,8 @@ ;;;; miscellaneous extensions (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) @@ -1363,9 +1365,7 @@ (defknown %cleanup-point () t) (defknown %special-bind (t t) t) (defknown %special-unbind (t) t) -(defknown %dynamic-extent-start () t) -(defknown %dynamic-extent-end () t) -(defknown %listify-rest-args (t index t) list (flushable)) +(defknown %listify-rest-args (t index) 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)) @@ -1382,6 +1382,7 @@ (defknown %%primitive (t t &rest t) *) (defknown %pop-values (t) t) (defknown %nip-values (t t &rest t) (values)) +(defknown %allocate-closures (t) *) (defknown %type-check-error (t t) nil) ;; FIXME: This function does not return, but due to the implementation @@ -1468,6 +1469,19 @@ (defknown sb!vm::push-word-on-c-stack (system-area-pointer) (values) (unsafe)) (defknown sb!vm::pop-words-from-c-stack (index) (values) ()) +#!+linkage-table +(defknown foreign-symbol-dataref-address (simple-string) + system-area-pointer + (movable flushable)) + +(defknown foreign-symbol-address (simple-string &optional boolean) + system-area-pointer + (movable flushable)) + +(defknown foreign-symbol-address-as-integer (simple-string &optional boolean) + integer + (movable flushable)) + ;;;; miscellaneous internal utilities (defknown %fun-name (function) t (flushable))