the right fix is to remove the abstraction violation in the
compiler's type deriver.
-390:
- reported on sbcl-help by Tim Daly Jr.
-
- (DIRECTORY "/tmp/[P]*.*")
- gives a type error:
- The value "P" is not of type CHARACTER.
-
391:
(fixed in sbcl-0.9.7.1)
;;;; -*- coding: utf-8; -*-
changes in sbcl-0.9.8 relative to sbcl-0.9.7:
+ * fixed bug #390: :CHARACTER-SET pathname components now work as
+ expected. (reported by Tim Daly Jr)
* fixed bug #391: complicated :TYPE intersections in slot
definitions no longer cause an error in PCL internals.
* bug fix: FILE-STRING-LENGTH is now external-format sensitive,
:complaint "#\\[ with no corresponding #\\]"
:namestring namestr
:offset index))
- (pattern (list :character-set
+ (pattern (cons :character-set
(subseq namestr
(1+ index)
close-bracket)))
(search "tests/filesys.pure.lisp"
(namestring pathname)))
dir)))
+;;; In sbcl-0.9.7 DIRECTORY failed on pathnames with character-set
+;;; components.
+(let ((dir (directory "[f]*.*")))
+ ;; We know a little bit about the structure of this result;
+ ;; let's test to make sure that this test file is in it.
+ (assert (find-if (lambda (pathname)
+ (search "filesys.pure.lisp"
+ (namestring pathname)))
+ dir)))
;;; Set *default-pathname-defaults* to something other than the unix
;;; cwd, to catch functions which access the filesystem without
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.7.2"
+"0.9.7.3"