0.6.9.11:
[sbcl.git] / src / compiler / fndb.lisp
index c3251fd..4051d4d 100644 (file)
@@ -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)
   (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))
 \f
 ;;;; 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
   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)