1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
## 0.2.1 [2022.09.24]
* Add `sizeAndAlignmentOfCType` to `Foreign.LibFFI.Base`, which can be used to
retrieve the size and alignment of a `CType`.
## 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.
|