[Openmcl-devel] Fwd: [Bug 636506] Re: (truename #P"ccl:") fails when *default-pathname-defaults* is not empty
Gary Byers
gb at clozure.com
Mon Sep 13 04:40:24 PDT 2010
On Sun, 12 Sep 2010, Ron Garret wrote:
>
> On Sep 12, 2010, at 7:21 PM, Gary Byers wrote:
>
>>
>>
>> On Sun, 12 Sep 2010, Ron Garret wrote:
>>> From: Faré <636506 at bugs.launchpad.net>
>>> Date: September 12, 2010 12:54:41 PM PDT
>>> To: ron at flownet.com
>>> Subject: [Bug 636506] Re: (truename #P"ccl:") fails when *default-pathname-defaults* is not empty
>>> Reply-To: Bug 636506 <636506 at bugs.launchpad.net>
>>> Ouch. Committed 2.129 as a fix. I hope I won't be the one to release
>>> 2.009, though. I don't know what CCL does, but it's probably a CCL bug,
>>> too.
>>>
>>
>> I think that the bug is that (PATHNAME-DIRECTORY "ccl:") returns NIL
>> (rather than (:ABSOLUTE)), and this in turn leads to the unfortunate
>> MERGE-PATHNAMES result. The bug's in the namestring parsing code,
>> so another workaround would be
>>
>> (truename (make-pathname :defaults #p"ccl:"))
>>
>
> I think this may be the problem:
>
> (defun pathname-directory-sstr (sstr start end host)
> (if (and (eq host :unspecific)
> (> end start)
> (eql (schar sstr start) #\~))
> (setq sstr (tilde-expand (subseq sstr start end))
> start 0
> end (length sstr)))
> (let ((pos (%path-mem-last (if (eq host :unspecific) "/" ";") sstr start end)))
> (if pos
> (values
> (%directory-string-list sstr start (setq pos (%i+ pos 1)) host)
> pos)
> (values (and (neq host :unspecific)
> =======> (neq start end)
> '(:absolute))
> start))))
>
> Commenting out the indicated line seems to fix the problem, though I have not tested it thoroughly.
>
> rg
>
That's what I think, too. Thanks; will try to test and fix sometime today.
More information about the Openmcl-devel
mailing list