>>>>> "Gareth" == Gareth McCaughan <[EMAIL PROTECTED]> writes:

    Gareth> Hmm.

    Gareth>     * (describe (make-pathname :host nil :name "libsleepycat" :type
    Gareth> "so"))
    
    Gareth>     #p"libsleepycat.so" is a structure of type PATHNAME.
    Gareth>     HOST: #<LISP::UNIX-HOST>.
    Gareth>     DEVICE: NIL.
    Gareth>     DIRECTORY: NIL.
    Gareth>     NAME: "libsleepycat".
    Gareth>     TYPE: "so".
    Gareth>     VERSION: NIL.

Oops.  That was something that was changed in after 19a.  Previously,
if :host were not given or given as nil, the host from
*default-pathname-defaults* was used.  It was changed so explicitly
giving :host nil would produce an empty host slot so you could merge
the host from another pathname.

    Gareth>     * (merge-pathnames 
    Gareth>             (make-pathname :host :unspecific :name "libsleepycat" 
:type
    Gareth> "so")
    Gareth>             ;#p"libsleepycat.so"
    Gareth>             (asdf:component-pathname (asdf:find-system 'elephant)))
    
    Gareth>     Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER:
    Gareth>        :UNSPECIFIC is not of type (OR BASE-STRING LISP::HOST NULL)
    Gareth>        [Condition of type TYPE-ERROR]

There are some restrictions on use :unspecific as the value of a
pathname component and it's implementation-defined if :unspecific is
valid.  (See CLHS 19.2.2.2.3.) I guess CMUCL's make-pathname doesn't
like :unspecific hosts.

    Gareth> Yay. Oh, but for some reason UFFI doesn't like that.
    Gareth> It doesn't like #p"cl-library:elephant;libsleepycat.so" either,
    Gareth> though. So:

    Gareth>            (probe-file (make-pathname :name "libsleepycat" :type 
"so"
    Gareth>                                       :defaults 
(asdf:component-pathname

    Gareth> (asdf:find-system 'elephant))))

Wouldn't translate-logical-pathname also work here?  Unless you really
wanted to know if the file existed.

Ray


Reply via email to