I've looked around at what my options are for writing C wrappers. I made a first attempt using hsc2hs, based mostly off of the examples given in "Real World Haskell."
After running into difficulty there, I thought I might try using c2hs, following this series of blog posts: http://blog.ezyang.com/2010/06/the-haskell-preprocessor-hierarchy/ ... and also modeled after Nick Ingolia's samtools wrapper: https://github.com/ingolia/SamTools/tree/master/samtools I have taken a brief look at gtk2hs, but that is a fairly large project in comparison to what I'd like to do, and I had trouble boiling it down into a useful 'template' to base my work off of. But I think that I might be relying a bit too heavily on examples and tutorials without fully understanding how I want the overall design of my wrapper to work. I have found it fairly difficult to find good tutorials on the subject, so I'd be interested in anything you've written that you could provide a link to. One seemingly simple concept that I can't seem to find an answer to is how one determines the output type of an 'effectful' C function by looking at the header. In the library that I'm working on, there are several functions that take pointers to structs as input, perform side-effects on those structs, and return 'void' as output. So if there is a haskell function that makes a foreign call to one of those functions, does it simply return IO ()? Maybe that's a bit of a vague question, so don't worry about detailed answers, but that is they type of thing that I've been struggling with. Dan Christian Höner zu Siederdissen: > Hi Dan, > > part of the fault is indeed to be found with the summer. There has been > an important RNA meeting a couple of weeks ago, and ICFP is only three > weeks away ;-) > > That being said, a new version of ADPfusion should be ready this week, > making it significantly easier to write grammars and algebras for CFGs > and similar things. > > Instead of having to write > f <<< base -~+ table +~- base > you now just write > f <<< base % table % base > meaning the width of each (non-) terminal is now encoded in the (non-) > terminals and not the combinators anymore. > > With some additional improvements and the extreme goodness of constraint > kinds, I believe the library closes to ADP usability and should have > surpassed it in some instances, now. > > I have some major changes planned for ``my'' libraries during the fall, > to expend general usability, and have many ideas from the Benasque RNA > meeting to be implemented. During ICFP I hope to do some hands-on stuff > with SIMD for ADPfusion. > > ADPfusion my highest-priority project right now, as I want to base all > my existing tools on it to improve performance -- by a lot in some > cases. > > == > > Regarding you wrapper project, do you want to write them yourself? I > wrote a tutorial some years ago on how to do that stuff. For more > automated work, look toward gtkhs. > > Gruss, > Christian > > * Dan Fornika <dforn...@gmail.com> [20.08.2012 21:10]: >> Hello Biohaskellers, >> >> There hasn't been much action on the mailing list lately. I'm curious >> what people are working on. >> >> It seems like there is a lot of work to be done on splitting the >> monolithic biolib down into smaller libraries, but there doesn't seem to >> be much progress lately. >> >> So what's going on? Is everyone out enjoying the sunshine? Have people >> receded back into the swamp of BioPerl? >> >> Lately I've been trying to learn how to wrap a C library with the FFI. >> I'd like to wrap Dr. Jason Moore's Multifactor Dimensionality Reduction >> library (libmdr), but I've found it really very difficult to manage the >> conversion between C types and structs, and haskell types. >> >> But I'm not asking for advice here, I'm just curious what people are up >> to, and what you see as high priority tasks to improve the biohaskell >> libraries. >> >> Dan >> _______________________________________________ >> Biohaskell mailing list >> Biohaskell@biohaskell.org >> http://malde.org/cgi-bin/mailman/listinfo/biohaskell _______________________________________________ Biohaskell mailing list Biohaskell@biohaskell.org http://malde.org/cgi-bin/mailman/listinfo/biohaskell