[plt-scheme] v299 FFI - callbacks, __stdcall?
[Replying to the list...]
On Oct 1, Sergey Shishmintzev wrote:
> please see ffitarget.h:
> typedef enum ffi_abi {
> FFI_FIRST_ABI = 0,
>
> /* ---- Intel x86 Win32 ---------- */
> #if defined(X86_WIN32) || defined(_MSC_VER)
> FFI_SYSV, // !!!use this
> FFI_STDCALL, // !!!or this
> /* TODO: Add fastcall support for the sake of completeness */
> FFI_DEFAULT_ABI = FFI_SYSV, // !!!instead of ... (?)
> #endif
Duh! I could have searched my own source for ABI... Anyway, thanks
for opening my closed eyes.
The only problem is how to get it in sanely, so that I don't end up
with an exponential number of functions... The best way I can think
of currently is an optional argument to `ffi-call' and `ffi-callback',
then make the _fun macro have these variants:
(_fun itype ... -> otype)
(_fun itype ... -sysv-> otype)
(_fun itype ... -stdcall-> otype)
It seems to make sense, but I don't know how to deal with the fact
that not all ABIs are available on all platforms.
Any ideas and/or comments will be appreciated.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://www.barzilay.org/ Maze is Life!