What is it? ======== A preprocessor and library which allow you to create dynamic libs from arbitrary annotated Haskell programs with one click. It also allows you to use the generated lib in C, C++ and C# just by including the generated header files. At a minimum it can be considered the inverse of c2hs. Where to get it? ============ You can get it from Hackage (http://hackage.haskell.org/package/Hs2lib) or by using cabal (cabal install Hs2lib). Documentation, Mailing List, Source, etc ======================= Go to http://mistuke.wordpress.com/category/hs2lib/ for information. Or for a tutorial http://www.scribd.com/doc/63918055/Hs2lib-Tutorial What's New? ========= - Currently Supported: * Autogerates free functions for any StablePtr used. * Added support for memory leak tracing with the --debug flag http://mistuke.wordpress.com/2011/08/09/tracing-lexer-memory-leaks/ * Fixed a bug in the library that caused an error in marshalling * No longer frees strings, in order to prevent heap corruptions on calls from c# * Fixed an issue with lists and type synonyms * Fixed an alignment issue with stdcall * Renamed the hs2c# pragma to hs2cs * Fixed an error in parsing pragmas * Fixed a majot marshalling bug having to do with lists of pointer types * Started on an implementation of an automatic test generator to test exported functions. * Re-arranged the namespaces generated in C#. Now Functions and types are put in different namespaces. - Not Currently supported: * Infix constructors * Control over the autogenerated free functions for StablePtr * Exporting of type/functions with the same name in different modules * Exporting polymorphic functions Details ===== A more detailed documentation will follow in the next few weeks. Why is the first version 0.4.8? -------------- This project has been in development for a very long time. Nearly two years on and off. It was developed mainly to facilitate the creation of Visual Haskell 2010. This is just the first public release of this tool.