Changelog for capnp-0.4.0.0
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).
- The
set_* functions now check if the arguments are in the same
message, and copy if need be (#34).
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.