FFI with ABI instead of C declaration
Tyson Whitehead
twhitehead at gmail.com
Fri Mar 11 17:08:51 CET 2011
On March 11, 2011 09:17:54 Maurício CA wrote:
> I wonder: why, in Haskell and also in other languages like ML, FFI is
> done with C type and code as references? Since, ultimately, compiled
> code goes to, say, ELF files or (in Windows) DLLs, shouldn't foreign
> interfaces be consistent with those?
Having an ELF file, a function name, and knowledge about the parameters for the
function, is still not sufficient information to invoke it. I still need to
know what calling convention is being used.
That is, how to build the stack (which arguments to put on the stack and how
to put them on), what to do with the registers (which arguments to put in
them, which ones I can expect to be saved, any ones that are expected to be
global pointers), how to receive results back (registers, on the stack,
through a pointer), and, if I am expected to cleanup the stack afterwards.
http://en.wikipedia.org/wiki/X86_calling_conventions
Cheers! -Tyson
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: This is a digitally signed message part.
URL: <http://www.haskell.org/pipermail/libraries/attachments/20110311/f1f65806/attachment.pgp>
More information about the Libraries
mailing list