[MLton-user] Feature request: MLton.Pointer

Matthew Fluet fluet at tti-c.org
Thu Jun 5 10:43:46 PDT 2008


On Thu, 5 Jun 2008, John Reppy wrote:
> Is the C_Size structure documented?  A search on mlton.org did not turn
> up any information.

Not at the present time.  But, it is in the 20070826 release, and I expect 
it to remain.

The .mlb file should be pretty self-explanatory:
http://mlton.org/cgi-bin/viewsvn.cgi/mlton/trunk/basis-library/c-types.mlb?view=auto

structure C_Size is bound to some structure Word<N> such that 
sizeof(size_t) * 8 = N.


> On Jun 5, 2008, at 12:29 PM, Matthew Fluet wrote:
>
>> On Mon, 2 Jun 2008, John Reppy wrote:
>> > The MLton.Pointer structure should have
>> > 
>> >  val sizeofPtr : word
>> > 
>> > so that one can allocate arrays of pointers in the C heap.
>> 
>> Sounds reasonable.
>> 
>> BTW, for importing "malloc", you should use
>> _import "malloc": C_Size.word -> MLton.Pointer.t;
>> rather than
>> _import "malloc": Word32.word -> MLton.Pointer.t;
>> to pass the appropriately sized 'size_t' object on 32-bit and 64-bit 
>> platforms.
>> 
>> The "structure C_Size : WORD" is available from 
>> "$(SML_LIB)/basis/c-types.mlb".
>> 
>> You could also use C_Size.wordSize to compute the sizeof a pointer (MLton 
>> asserts that sizeof(void*) == sizeof(size_t) and CHAR_BIT == 8).
>> 
>
>
> _______________________________________________
> MLton-user mailing list
> MLton-user at mlton.org
> http://mlton.org/mailman/listinfo/mlton-user
>



More information about the MLton-user mailing list