On Tuesday 29 March 2005 23:23, Raymond Toy wrote:

> To get what you want, I think you need
>
>         (merge-pathnames (make-pathname :host nil :name "foo" :type "lisp")
>            #p"cl-library:zog;")

Hmm.

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

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

Ugh.

    * (make-pathname :name "libsleepycat" :type "so"
        :defaults (asdf:component-pathname (asdf:find-system 'elephant)))
    
    #.(logical-pathname "CL-LIBRARY:ELEPHANT;LIBSLEEPYCAT.SO")

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

           (probe-file (make-pathname :name "libsleepycat" :type "so"
                                      :defaults (asdf:component-pathname 
(asdf:find-system 'elephant))))

... and it all works. Now, where did I put that chicken?

-- 
g


Reply via email to