;; 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)