@hackage language-c-inline0.6.0.0

Inline C & Objective-C code in Haskell for language interoperability

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.6.0.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.0: Marshalling of numeric types

  • New in 0.4.0.0: Maybe types are marshalled as pointers that may be nil & bug fixes.

  • New in 0.3.0.0: Boxed Haskell types without a dedicated type mapping are marshalled using stable pointers.

  • New in 0.2.0.0: Support for multiple free variables in one inline expression as well as for inline code returning void.

  • New in 0.1.0.0: We are just getting started! This is just a ROUGH AND HIGHLY EXPERIMENTAL PROTOTYPE.