On 2006-jan-06, at 20:13, Frank Goenninger - PRION Consulting wrote:
(define-foreign-library opengl
Is opengl then interned as a symbol (in which package) ? Or a keyword ?
Yes, the current package. You can use a keyword if you prefer. Probably better to use a normal symbol though.
This is completely platform dependant (as you probably know ;-) So, if you want to handle all the cases in CFFI then there are at least the following cases in addition:
HP-UX:
- SHLIB_PATH env var
[etc..]
We don't really search for the library ourselves. dlopen() takes care of that for us. It was just an example.
What I am missing is the support for handling multiple versions of foreign libs. It should be possible to state which version to load if more than one version is installed or if a certain version is required. I know this no trivial task as the version naming of libs is not unified. Also, there has to some means of specifying what to do if the requested lib version is not available. Some fallback behaviour like :load-newest or :signal-error or :load-newest-if- higher-version ...
Would using :OR be enough? (:or "libFoo.so.2.2" "libFoo.so.2.1" "libFoo.so.2" "libFoo.so") or something like that?
Also, in that private e-mail you sent me you mention that USE-FOREIGN- LIBRARY should evaluate its argument. But, the purpose of this macro is to wrap LOAD-FOREIGN-LIBRARY in an EVAL-WHEN basically because of CMUCL which needs the libraries loaded at compile-time.