libffi-0.2: CHANGELOG.md
## 0.2 [2022.08.11]
* The `libffi` library now uses `bracket` internally and should now be
exception-safe.
* There is a now a `ghc-bundled-libffi` `cabal` flag that makes this library
statically link against GHC's bundled copy of `libffi` rather than attempt to
link against the system `libffi`. On the vast majority of GHCs, this is the
most reasonable option, as linking against the system `libffi` is inherently
fragile. As a result, `+ghc-bundled-libffi` is now the defalut setting. See
the [`README`](https://github.com/remiturk/libffi/blob/master/README.md#notes-on-ghcs-bundling-of-libffi)
for more discussion on this point.
* The definition of `Arg` has changed:
```diff
-newtype Arg = Arg { unArg :: IO (Ptr CType, Ptr CValue, IO ()) }
+newtype Arg = Arg { unArg :: forall a. (Ptr CType -> Ptr CValue -> IO a) -> IO a }
```
* The definition of `RetType` has changed:
```diff
-data RetType a = RetType (Ptr CType) ((Ptr CValue -> IO ()) -> IO a)
+newtype RetType a = RetType { unRetType :: (Ptr CType -> Ptr CValue -> IO ()) -> IO a }
```
## 0.1 [2009.03.17]
* Initial release.