1.4.0 (2014-08-10):
Comprehensive addition of bounds checking to all cstruct operations
(from @pqwy in #33).  The major changes are:
* Disallow negative indexing with all cstruct accessors.
* Disallow negative `sub` and `shift` operations.
* Make sure `of_bigarray` cannot create invalid `cstruct` values.

1.3.1 (2014-07-10):
* Also bounds test single-byte operations on views (#31 via @pqwy).

1.3.0 (2014-07-04):
* Add bounds checks for `Cstruct.BE/LE` functions that violate a view.
  Previously, only bounds errors on the underlying buffers would raise.
  Bug #25, reported by Mindy Preston in mirage/mirage-tcpip#56.
* Add 'Lwt_cstruct.complete' to ensure that `read`/`write` operatiosn
  run to completion.
* Add `Sexplib` conversion functions to `Cstruct.t` values (#27 #22).

1.2.0 (2014-06-06):

Add a `sexp` optional decorator to `cenum` to output the values as s-expressions.
This is compatible with the `sexplib` convention.  The syntax is;

```
cenum foo64 {
  ONE64;
  TWO64;
  THREE64
} as uint64_t(sexp)
```

And `sexp_of_foo64` and `foo64_of_sexp` functions will also be available.
The representation of the Sexp is the string representation of the enum.

1.1.0 (2014-02-19):
* Improve bounds checks on sub, shift, set_len, add_len.
* Add `to_bigarray` to convert back into a Bigarray slice.

1.0.1 (2013-12-09):
* Fix Cstruct.shift function

1.0.0 (2013-12-05):
* Remove IPv4/IPv6 types (now moved to `ocaml-ipaddr`).
* Improved ocamldoc for the interface.
* More conservative bounds checking in the length manipulation functions.
* Build C stubs with `-Wall`.

0.8.1 (2013-11-06):
* Trailing semicolons are allowed in cstruct field definitions.
* Buffer elements can be any primitive integer, not just `uint8`.

0.8.0 (2013-10-13):
* Improved ocamldoc for BE/LE modules.
* Add Travis-CI test scripts and fix `test.sh` script compilation.
* Support int32/int64 constant values in cenum like `VAL = 0xffffffffl`, useful for 32-bit hosts.
* Check and raise error in case of negative offsets for blits (#4).
* Correctly preserve the sequence after a constant constructor is set during a `cenum` definition.
* Do not repeat the `sizeof_<field>` binding for every get/set field (should be no externally observable change).
* Add `Cstruct.hexdump_to_buffer` to make spooling hexdump output easier.
* Generate `hexdump_foo` and `hexdump_foo_to_buffer` prettyprinting functions for a `cstruct foo`.

0.7.1 (2013-03-06):
* Add `Async_cstruct.Pipe` to map pipes of `Cstruct` buffers to strings or `Bigsubstring`.

0.7.0 (2013-02-25):
* Add zero-copy conversion functions to/from the Core `Bigsubstring`.
* Add an `of_string` function to simplify the construction from OCaml values.
* Add Async interface to interoperate with Jane Street Core code.

0.6.2 (2013-02-08):
* Add experimental `cstruct.obuild` for the `obuild` build tool.
* Use bounds checked version of all functions in the external interface.
* Expose the `Cstruct.debug` to dump internal state of a buffer to a string.
* Add `set_len` and `add_len` to manipulate the total-length field directly.

0.6.1 (2012-12-20):
* Add `sendto`, `read` and `recvfrom` functions to the Lwt subpackage.

0.6.0 (2012-12-20):
* Add fast bigarray<->string functions to replace byte-by-byte copies.
* Add an Lwt sub-package to expose a write call.
* Depend on ocplib-endian for fast low-level parsing of integers.
* Make `Cstruct.t` a record type that doesn't use Bigarray slicing
  to provide views onto buffers. This lets views be allocated directly
  on the minor heap rather than forcing a major heap allocation. It
  does alter the external API, so previous users of cstruct wont work.

0.5.3 (2012-12-16):
* No functional changes, just OASIS packaging fix to right version.

0.5.2 (2012-12-11):
* Remove the separate `xen` and `unix` subdirectories, as the
  portable `Bigarray` is now provided by the `xenbigarray` package.

0.5.1 (2012-09-28):
* Add `string_to_<cenum>` function to match the `<cenum>_to_string`,
  primarily to help with command-line parsing of enum arguments.

0.5.0 (2012-09-20):
* Add a signature generator for cstruct and cenum to permit their use in `.mli` files.
* Use the more reliable revised syntax camlp4 quotation expander, to avoid 
  broken AST output from antiquotations.
* Switch the `xen/` version over to using OASIS also.

0.4.0 (2012-09-02):
* Fix META file for use with Xen

0.3 (2012-08-25):
* Initial public release
