X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Ffndb.lisp;h=4051d4db2a544f3689a1d75ddf03b8c38d66a76a;hb=82e0a78df47685519b12683f495d7ae19e07d3cf;hp=c3251fd7feabdca16033dde2be0e26d7efbbe4ee;hpb=cea4896b2482b7b2b429c1631d774b4cfbc0efba;p=sbcl.git diff --git a/src/compiler/fndb.lisp b/src/compiler/fndb.lisp index c3251fd..4051d4d 100644 --- a/src/compiler/fndb.lisp +++ b/src/compiler/fndb.lisp @@ -32,6 +32,8 @@ ;; lets us preserve distinctions which might not even exist ;; on the cross-compilation host (because ANSI doesn't ;; guarantee that specialized array types exist there). + ;; FIXME: It's actually not clear that COERCE on non-NUMBER types + ;; is FOLDABLE at all. Check this. (movable #-sb-xc-host foldable) :derive-type (result-type-specifier-nth-arg 2)) (defknown list-to-simple-string* (list) simple-string) @@ -735,17 +737,17 @@ (flushable unsafe)) (defknown hash-table-p (t) boolean (movable foldable flushable)) (defknown gethash (t hash-table &optional t) (values t boolean) - (foldable flushable unsafe)) + (flushable unsafe)) ; not FOLDABLE, since hash table contents can change (defknown %puthash (t hash-table t) t (unsafe)) (defknown remhash (t hash-table) boolean ()) -(defknown maphash (callable hash-table) null (foldable flushable call)) +(defknown maphash (callable hash-table) null (flushable call)) (defknown clrhash (hash-table) hash-table ()) -(defknown hash-table-count (hash-table) index (foldable flushable)) +(defknown hash-table-count (hash-table) index (flushable)) (defknown hash-table-rehash-size (hash-table) (or (integer 1) (float (1.0))) (foldable flushable)) (defknown hash-table-rehash-threshold (hash-table) (real 0 1) (foldable flushable)) -(defknown hash-table-size (hash-table) index (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!vm:*target-most-positive-fixnum*) (foldable flushable)) @@ -1009,9 +1011,9 @@ ;;;; from the "File System Interface" chapter: -;;; No pathname functions are foldable because they all potentially +;;; (No pathname functions are FOLDABLE because they all potentially ;;; depend on *DEFAULT-PATHNAME-DEFAULTS*, e.g. to provide a default -;;; host when parsing a namestring. +;;; host when parsing a namestring.) (defknown wild-pathname-p (pathname-designator &optional @@ -1028,14 +1030,18 @@ pathname (flushable)) -;;; KLUDGE: There was a comment from CMU CL here, "We need to add the -;;; logical pathname stuff here." -- WHN 19991213 +(defknown logical-pathname (pathname-designator) logical-pathname ()) +(defknown translate-logical-pathname (pathname-designator &key) pathname ()) +(defknown load-logical-pathname-translations (string) t ()) +(defknown logical-pathname-translations (logical-host-designator) list ()) (defknown pathname (pathname-designator) pathname (flushable)) (defknown truename (pathname-designator) pathname ()) (defknown parse-namestring - (pathname-designator &optional pathname-host pathname-designator + (pathname-designator &optional + (or list host string (member :unspecific)) + pathname-designator &key (:start index) (:end sequence-end)