On 19/09/2010 16:09, Phil Clayton wrote:
I'm about to start generating code that makes calls to C via the
low-level FFI. I was planning to use a form where parameters that
provide return values are temporary vols created by alloc, as shown in
the example SML code below (as suggested in the C interface
documentation). However, it appears that the high-level FFI
implementation doesn't do things this way - it uses
call_sym_and_convert. Is that more efficient and should I be looking at
that?

Hi Phil,
It's some time since I looked at this so it would take me a while to re-familiarise with it. I seem to recall, though, that call_sym_and_convert is more efficient since it does all the argument and result conversion in with the foreign function call as a single RTS call. I think with call_sym the arguments need to be converted to vols as separate calls. I wasn't involved in writing this code; it was done by AHL but my impression is that call_sym is only there for backwards compatibility.
Regards,
David
_______________________________________________
polyml mailing list
polyml@inf.ed.ac.uk
http://lists.inf.ed.ac.uk/mailman/listinfo/polyml

Reply via email to