[Openmcl-devel] Re: [cclan-list] ASDF MCL or OpenMCL bug?

John DeSoi desoi at icx.net
Fri Aug 30 18:23:29 UTC 2002


Thanks, Christophe.

I'm also posting this to openmcl-dev to see if Gary might have some 
insight. I share your confusion about logical pathnames.

Best,


John DeSoi, Ph.D.


On Fri, Aug 30, 2002 at 12:34:18PM -0400, John DeSoi wrote:
>  Under OpenMCL I'm getting a bad path returned from component-pathname
>  which merges the following:
>
>
>  component-parent-pathname - uffi:src;
>
>  component-relative-pathname - uffi:package.lisp
>
>
>  Under MCL the same code gives:
>
>
>  component-parent-pathname - uffi:src;
>
>  component-relative-pathname - package.lisp

Hmm. OpenMCL's misbehaviour probably isn't in the fact that it's
returned a pathname with a host, but rather that it has put (:ABSOLUTE)
in the directory slot. I wonder why...

>  The issue comes from make-pathname here:
>
>  (defmethod component-relative-pathname ((component source-file))
>    (let ((*default-pathname-defaults* (component-parent-pathname component)))
>      (or (slot-value component 'relative-pathname)
>  	(make-pathname :name (component-name component)
>  		       :type
>  		       (source-file-type component
>  					 (component-system component))))))
>
>
>  I had no problems with MCL, ACL, or LispWorks, but it seems that
>  OpenMCL might be doing the correct thing according to the specs:
>
>  defaults---a pathname designator. The default is a pathname whose
>  host component is the same as the host component of the value of
>  *default-pathname-defaults*, and whose other components are all nil.

I would expect this make-pathname command to return something such that
when merged against COMPONENT-PARENT-PATHNAME would give you back the
pathname. OpenMCL breaks that expectation by giving us an '(:ABSOLUTE)
pathname back. At first sight, I'd say that this was a bug in OpenMCL,
but to be honest at times I'm so utterly confused by logical pathnames
that I could be getting this wrong.

Cheers,

Christophe

? (let ((*default-pathname-defaults* #p"CCL:FOO;")) (make-pathname 
:name "BAR"))
#4P"CCL:BAR"
? (inspect *)
[0]     #4P"CCL:BAR"
[1]     Type: LOGICAL-PATHNAME
[2]     Class: #<BUILT-IN-CLASS LOGICAL-PATHNAME>
[3]     0: LOGICAL-PATHNAME
[4]     1: (:ABSOLUTE)
[5]     2: "BAR"
[6]     3: NIL
[7]     4: "CCL"
[8]     5: NIL
-- 
Jesus College, Cambridge, CB5 8BL                           +44 1223 510 299
http://www-jcsu.jesus.cam.ac.uk/~csr21/                  (defun pling-dollar
(str schar arg) (first (last +))) (make-dispatch-macro-character #\! t)
(set-dispatch-macro-character #\! #\$ #'pling-dollar)

_______________________________________________
Openmcl-devel mailing list
Openmcl-devel at clozure.com
http://clozure.com/cgi-bin/mailman/listinfo/openmcl-devel




More information about the Openmcl-devel mailing list