[C2hs] Re: [Gtk2hs-users] question on structs with compound
A.Simon at kent.ac.uk
Thu Oct 23 10:13:59 EDT 2003
On Thu, Oct 23, 2003 at 12:20:01PM +1000, Manuel M. T. Chakravarty wrote:
> > I kinda object to use c2hs for marshalling structures. When I wrote the
> > marshalling code for graphics contexts for gtk+hs, I used c2hs only to
> > find out that it calculates the wrong offsets.
> That was a bug in c2hs, which has been fixed since then.
Oh, sorry. I thought I'd seen it in the TODO list of c2hs recently - it's
not there anymore though.
> > Moreover, it is doomed to
> > produce the wrong offsets in some circumstances with bitfields. Windows
> > uses a different layout than Unix, even if you use gcc on both platforms.
> > (gcc behaves differently so that you can use the precompiled Microsoft
> > libraries).
> Why do you think that c2hs cannot handle this? If you look
> at the files "c2hs/toplevel/C2HSConfig.hs.in" and
> "c2hs/toplevel/c2hs_config.c" in the c2hs source tree, you
> will see that c2hs actually goes to quite some trouble to
> find out how to properly access bitfields on the particular
> OS and architecture it is running on. If you have got any
> example, where this does not work properly, please submit it
> as a c2hs bug report.
Ok, I'm wrong there.
BTW, would it be possible that c2hs spits out the platform specific
versions of types (i.e. Int32 instead of CInt). I think CInt is rather for
hand-written marshalling code whereas Int32 is more accurate for a
specific platform. At the moment it's very annoying that hsc2hs and c2hs
have different opinions as to what C's basic data types map to.
More information about the C2hs