Hacker News new | ask | show | jobs
by cannam 1355 days ago
> What's the FFI overhead like?

I don't have measurements to hand, but vaguely speaking, low. Low enough to be worth using for even quite modest calls into vector functions or optimised libraries.

> And can you pass SML function pointers into C code as callbacks?

Yes. At least, you can declare a function statically for export as a callback. You can't pass arbitrary function values.

You can call C/C++ from SML, and call SML from C/C++ from SML - though some neat potential uses are ruled out as MLton (unlike Poly/ML) doesn't support native threads and you can't call back from a different thread from the caller.

You can also compile to a library using MLton and use that from a C/C++ program - again only from a single thread, but it doesn't have to be the program's main thread.