[MLton] Representation of strings in the FFI
Stephen Weeks
MLton@mlton.org
Wed, 27 Apr 2005 16:06:21 -0700
> Suppose I at the C level want to produce an MLton array and then
> call bar with it. Is GC_arrayAllocate the best way of allocating the
> array?
No. If you want to allocate an array from the C side, the easiest and
safest way is to export a function from the ML side that does the
allocation you want. For example, the following will export a
function that creates an int array with elements initialized to the
specified value.
val _ = _export "alloc": int * int -> int array;
Array.array
Matthew's provisos about the GC moving stuff behind your back still
apply, but at least you don't need any special understanding of GC
routines or object layout.