[Haskell-cafe] Suggestion: "Sizable" super class for Storable
Elliot Cameron
elliot.cameron at covenanteyes.com
Thu May 14 12:37:42 UTC 2015
More specificity might be appropriate since there are many ways to "size" things: perhaps "ByteSized" in this context.
Let the puns begin.
-----Original Message-----
From: Haskell-Cafe [mailto:haskell-cafe-bounces at haskell.org] On Behalf Of Roman Cheplyaka
Sent: Thursday, May 14, 2015 8:13 AM
To: jones.noamle at gmail.com; haskell-cafe at haskell.org
Subject: Re: [Haskell-cafe] Suggestion: "Sizable" super class for Storable
On 14/05/15 11:50, jones.noamle at gmail.com wrote:
> Storable instances have a size, given by sizeOf.
>
> In many cases, we're not interested in peeking/poking data but only
> passing it opaquely via the FFI. A common use case is when the C API
> offers an "init" function such as:
>
> void mycontext_init(mycontext *context);
>
> For these cases it would be useful to know the size of "mycontext", so
> we could malloc it and pass a pointer to mycontext_init.
>
> Also, it allows Haskell-side code to decide how it wants to allocate
> the data, perhaps using some other (external) mechanism not related to
> the specific API that the FFI bindings are wrapping.
>
> c2hs would benefit by allowing users to use the '+' notation in
> function parameters (which generate malloc-and-pass style code),
> without having to guess the size of the structure. Instead, it could
> simply use the Sizable (TM) instance to get the size, and the user
> will define Sizable in any way they want (for example, using the
> {#sizeof#} macro, which is somewhat unreliable, or by hard-coding or
> manually entering the size or by some other method).
>
>
> Your thoughts are much appreciated!
+1, I've needed this in the past. How about 'Sized' instead of 'Sizable'?
More information about the Haskell-Cafe
mailing list