# 0.4.0.0 * RPC support! This should be considered alpha quality for now. The API will likely change substantially. * Many bug fixes; users are strongly encouraged to upgrade. * Reorganization of the module hierarchy: * Generated code is now placed under `Capnp.Gen`, rather than `Capnp`. * The `Data` prefix has been removed from the `Data.Capnp` hierarchy. * The included generated modules for the core schema have been updated to those shipped with version 0.7 of the reference implementation. * Other miscellaneous API Changes: * `createPure` can now be used with any instance of `MonadThrow`, not just `Either SomeException`. * `LimitT m` is now an instance of `MonadIO`, provided that `m` is an instance. * More type class instances from elsewhere in the library are re-exported via the `Capnp` module. * The `IsPtr` type class has been split into `FromPtr` and `ToPtr`. Most user code should not care about this. * Generated high-level types no longer have Read instances; interfaces make this problematic. * Getters for anonymous unions are now `get_Foo'` instead of `get_Foo'union'`. * `newMessage` now accepts an optional size hint. * Instances of `Cerialize` now exist/are generated for `(Vector (Vector (Vector ...)))` up to a reasonable depth. * Other improvements not directly reflected in the API: * The allocation strategy has changed to reduce unnecessary copying. * It is now possible to create messages with a size > 2GiB. Note that individual segments are still limited. # 0.3.0.0 * Instances of some type classes are no longer generated for "second class" types (i.e. types which cannot appear as stand-alone definitions in schema files -- groups and unions). * `has_*` functions are now only generated for pointer fields. * Various non-functional changes in the output of the code generator. * We now generate constants for (most) pointer types; previously constants defined in a schema would not result in any generated code ([#41][issue41]). * The `set_*` functions now check if the arguments are in the same message, and copy if need be ([#34][issue34]). * `MutMsg` is now an instance of `Eq`. * The `HasMessage` class from `Data.Capnp.Untyped` is now a type family, rather than a multi-parameter type class. This improves inference and removes some superfluous generalization. * The module `Data.Capnp.Pure` has been folded into `Data.Capnp`. If you were previously using the `Text` and `Data` type aliases it exported, you should instead use `Text` from `Data.Text` and `ByteString` from `Data.ByteString`; the `Text` and `Data` exported by `Data.Capnp` are types from the low-level API. # 0.2.0.0 * Redesign the 'Mutable' type class's API. * Provide helpers for doing zero-copy message creation in pure code. * General improvements to the documentation. # 0.1.0.0 * First release; basic read & write support, serialization only. [issue41]: https://github.com/zenhack/haskell-capnp/issues/41 [issue34]: https://github.com/zenhack/haskell-capnp/issues/34