Ralph,<div><br></div><div>what you observe is not a bug in CFFI, but a feature of the Common Lisp pathname system.   The *FOREIGN-LIBRARY-DIRECTORIES* contains a list of pathname designators. When a string is used as a pathname designator (either by putting a string onto that list or by using the #P reader macro to parse it into a pathname object), the last component of the string is considered to be a file name, not a directory component.  It is possible to specify an empty file name in a string used as pathname, though.</div>

<div><br></div><div>To wit:</div><div><br></div><div><div>CL-USER> (describe #P"foo")</div><div>#P"foo"</div><div>Type: PATHNAME</div><div>Class: #<BUILT-IN-CLASS PATHNAME></div><div>TYPE: (PATHNAME . #<CCL::CLASS-WRAPPER PATHNAME #x300040039D2D>)</div>

<div>%PATHNAME-DIRECTORY: NIL</div><div>%PATHNAME-NAME: "foo"</div><div>%PATHNAME-TYPE: NIL</div><div>[...]</div><div>CL-USER> (describe #P"foo/")<br></div><div>#P"foo/"</div><div>Type: PATHNAME</div>

<div>Class: #<BUILT-IN-CLASS PATHNAME></div><div>TYPE: (PATHNAME . #<CCL::CLASS-WRAPPER PATHNAME #x300040039D2D>)</div><div>%PATHNAME-DIRECTORY: (:RELATIVE "foo")</div><div>%PATHNAME-NAME: NIL</div>
<div>
%PATHNAME-TYPE: NIL</div><div>[...]</div><div><br></div></div><div>The CL-FAD library is useful if you need to deal with directory specifications that do not conform to CL's pathname string parsing rules:</div><div><br>

</div><div><div>CL-USER> (describe (cl-fad:pathname-as-directory #P"foo"))</div><div>#P"foo/"</div><div>Type: PATHNAME</div><div>Class: #<BUILT-IN-CLASS PATHNAME></div><div>TYPE: (PATHNAME . #<CCL::CLASS-WRAPPER PATHNAME #x300040039D2D>)</div>

<div>%PATHNAME-DIRECTORY: (:RELATIVE "foo")</div><div>%PATHNAME-NAME: NIL</div><div>%PATHNAME-TYPE: NIL</div><div>[...]</div><div><br></div></div><div>-Hans</div><div class="gmail_extra"><br><br><div class="gmail_quote">

On Fri, Nov 9, 2012 at 4:40 AM, Ralph Möritz <span dir="ltr"><<a href="mailto:ralph.moeritz@outlook.com" target="_blank">ralph.moeritz@outlook.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

I've observed what appears to be a bug on Windows using CCL 1.8 & the<br>
latest CFFI version from Quicklisp (0.10.7.1).<br>
<br>
It seems *FOREIGN-LIBRARY-DIRECTORIES* is not being read<br>
correctly. I've placed `sqlite3.dll` in<br>
`C:\users\ralphm\temp\lib`. Below are the results of evaluating<br>
`(cffi:load-foreign-library '(:default "sqlite3"))` for different<br>
values of *FOREIGN-LIBRARY-DIRECTORIES*. It appears the trailing `/`<br>
is required but I haven't seen this documented in the manual - is this<br>
intended behaviour?<br>
<br>
'("c:/users/ralphm/temp/lib/") <br>
==> #<FOREIGN-LIBRARY DEFAULT-3009 "sqlite3.dll"><br>
<br>
'(#p"c:/users/ralphm/temp/lib/") <br>
==> #<FOREIGN-LIBRARY DEFAULT-3009 "sqlite3.dll"><br>
<br>
'("c:/users/ralphm/temp/lib") <br>
==> Unable to load foreign library (DEFAULT-3009).  <br>
    Error opening shared library sqlite3.dll : The specified module <br>
    could not be found. .<br>
<br>
'(#p"c:/users/ralphm/temp/lib") <br>
==> Unable to load foreign library (DEFAULT-3009).<br>
    Error opening shared library sqlite3.dll : The specified module <br>
    could not be found. .<br>
<br>
Cheers,<br>
Ralph<br>
_______________________________________________<br>
cffi-devel mailing list<br>
<a href="mailto:cffi-devel@common-lisp.net">cffi-devel@common-lisp.net</a><br>
<a href="http://lists.common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel" target="_blank">http://lists.common-lisp.net/cgi-bin/mailman/listinfo/cffi-devel</a><br>
</blockquote></div><br></div>