This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
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) |]))
New in 0.7.10: Distinction between Class (NSObject pointers) and Struct (C pointers) in both hints and marhsallers.
New in 0.7.9: C wrapper names include the filename to disambiguate linker symbols.
New in 0.7.8: (1) Record marshalling; (2) foreign pointer-class marshalling; (3) custom type
marshallers; (4) marshall raw pointer types. 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.