On Mon, Mar 07, 2011 at 09:41:27AM +0000, Max Bolingbroke wrote: > Hi Remi, > > On 6 March 2011 13:38, Remi Turk <rt...@science.uva.nl> wrote: > > I am happy to finally announce cinvoke 0.1, a binding to the > > C library cinvoke[1], allowing functions to be loaded and called > > whose names and types are not known before run-time. > > As the author of the libffi package > (http://hackage.haskell.org/package/libffi-0.1) which does a similar > thing, could you say when it would be appropriate to use one or the > other package? > > Cheers, > Max
Of course: - libffi doesn't do library/function loading; you'll need to use System.Posix.DynamicLinker or System.Win32.DLL for that. cinvoke will not only load your libraries and functions, but even collect the garbage afterwards. - Things seem to have changed, but back when I first looked at cinvoke, getting libffi to run under windows didn't seem too realistic. - If you need to pass C structs (by value), you'll have to use libffi: cinvoke doesn't support them at all. - The current version of libffi is not exception safe (I do have some code lying around here though...) - cinvoke is actually haddockized (although hackage still hasn't generated the docs, apparently). Groeten, Remi _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe