[cffi-devel] New foreign library interface

Luís Oliveira luismbo at gmail.com
Sat Jan 7 01:20:49 UTC 2006


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.

-- 
Luís Oliveira
http://student.dei.uc.pt/~lmoliv/
Equipa Portuguesa do Translation Project
http://www.iro.umontreal.ca/translation/registry.cgi?team=pt




More information about the cffi-devel mailing list