Luís Oliveira <luismbo <at> gmail.com> writes:
On Tue, Dec 22, 2009 at 3:27 PM, Stelian Ionescu <sionescu <at> cddr.org>
wrote:
(cffi:define-foreign-library sdl-glue (:windows "lispbuilder-sdl-glue.dll"))
(use-foreign-library sdl-glue)
On Linux, this returns fine, although it doesn't load any library. I see code in lispbuilder-sdl that relies on it signaling an error. Is it a regression ?
No, this was the intended behaviour. I can see why making it work more like ECASE instead of CASE might be desirable, though I'm not sure it's worth breaking backwards compatibility. I'm all ears to compelling arguments, though.
lispbuilder-sdl and lispbuilder-sdl-ttf conditionally load different CFFI forms depending on the availability of a particular library.
For example, if the lispbuilder-sdl-ttf-glue.dll is available then the corresponding CFFI glue forms are conditionally loaded. If this library is unavailable, then different CFFI code will fake out passing the SDL_Color struct by value by passing a packed integer instead.
Similarly, if lispbuilder-sdl-glue.dll is available, then basic sound loading and mixing support is enabled directly from lispbuilder-sdl. If the library is not available, then this basic sound support is enabled only for Lispworks because Lispworks can handle 'unknown' threads.
Is there a mechanism in CFFI to enable this if define-foreign-library cannot be used?
- Luke