#391: "bad place for a wild pathname" on EXT:PROBE-DIRECTORY for NAME containing #* ---------------------------+----------------------------------------------- Reporter: mevenson | Owner: Type: defect | Status: new Priority: major | Milestone: 1.5.0 Component: | Version: interpreter | Resolution: | Keywords: cl:probe-file ext:probe-directory Parent Tickets: | ---------------------------+-----------------------------------------------
Comment (by mevenson):
Replying to [comment:1 mevenson]:
From discussion in #lisp, it seems that PROBE-FILE cannot accept
pathname designators which contain wildcards, so the #* character should be treated as a literal #* in our PROBE-{FILE,DIRECTORY} implementations.
The problem lies in that ABCL "overloads" the meaning of #* characters in PATHNAME objects as both designating a wildcard for a string of zero or more characters, as well as a literal #* object.
Surveying alisp, sbcl, and ccl reveal different strategies for dealing with this.
For alisp, #p"foo*" is not WILD-PATHNAME-P true.
sbcl replaces pathnames with wildcards with explicit objects
{{{ CL-USER> (describe #p"/tmp/foo*") #P"/tmp/foo*" [structure-object]
Slots with :INSTANCE allocation: HOST = #<SB-IMPL::UNIX-HOST {1000FDEC23}> DEVICE = NIL DIRECTORY = (:ABSOLUTE "tmp") NAME = #<SB-IMPL::PATTERN "foo" :MULTI-CHAR-WILD> TYPE = NIL VERSION = :NEWEST ; No value }}}
Lots of factors to consider here. Need to summarize issues more succinctly.
-- Ticket URL: http://abcl.org/trac/ticket/391#comment:4 armedbear http://abcl.org armedbear