language-c-inline
Version 0.7.6.0 revision 0 uploaded by ManuelChakravarty.
Package meta
- Synopsis
- Inline C & Objective-C code in Haskell for language interoperability
- Description
This library provides inline C & Objective-C code using GHC's support for quasi-quotation. In particular, it enables the use of foreign libraries without a dedicated bridge or binding. Here is a tiny example:
nslog :: String -> IO () nslog msg = $(objc ['msg :> ''String] (void [cexp| NSLog(@"Here is a message from Haskell: %@", msg) |]))
For more information, see https://github.com/mchakravarty/language-c-inline/wiki.
Known bugs: https://github.com/mchakravarty/language-c-inline/issues
New in 0.7.6: (1) Record marshalling; (2) foreign pointer-class marshalling; (3) custom type marshallers. Generated _objc.m files now always include "HsFFI.h" (as the tool can generate type names declared in that header). Marshals Bool as BOOL. Marshal Int and Word to NSInteger and NSUInteger, respectively.
New in 0.6.0: Introduction of explicit marshalling hints (for more flexibility and support of GHC 7.8's untyped Template Haskell quotations)
New in 0.5.0: Marshalling of numeric types
New in 0.4.0: Maybe types are marshalled as pointers that may be nil & bug fixes.
New in 0.3.0: Boxed Haskell types without a dedicated type mapping are marshalled using stable pointers.
New in 0.2.0: Support for multiple free variables in one inline expression as well as for inline code returning void.
New in 0.1.0: We are just getting started! This is just a ROUGH AND HIGHLY EXPERIMENTAL PROTOTYPE.
- Author
- Manuel M T Chakravarty
- Bug reports
- https://github.com/mchakravarty/language-c-inline/issues
- Category
- Language, Foreign
- Copyright
- n/a
- Homepage
- https://github.com/mchakravarty/language-c-inline/
- Maintainer
- Manuel M T Chakravarty <chak@justtesting.org>
- Package URL
- n/a
- Stability
- Experimental