Releases: mirage/ocaml-cstruct
Releases · mirage/ocaml-cstruct
v3.7.0
CHANGES:
- Improve performance by not doing redundant bounds checks
in both the Bigarray and Cstruct level (#236 @Reperator @chambart) - Ignore fields starting wih
_
by skipping code generation
but still respecting the space usage of that field. This was
a convention before but is now enforced by the code generator
to save space in the output (#233 @emillon) - More warnings suppression for sizeof and enums (#231 @emillon)
v3.6.0
CHANGES:
- A
[%%cstruct type ...]
declaration generates many values that
are potentially unused. The code generator inppx_cstruct
now
guarantees that there will be no more "unused value" (warning 32)
statements from use of the ppx form. (#228 @emillon) - Actually run the ppx tests instead of just building them.
(#227 @emillon to fix #226 from @XVilka)
v3.5.0
CHANGES:
- Remove trailing spaces in hexdump output (#219 @emillon)
- Add
Cstruct.rev
to allocate a reversed cstruct (#221 @emillon) Cstruct_unix
now uses the post-OCaml 4.06Unix.map_file
instead of the deprecated Bigarraymap_file
that was removed
in OCaml 4.08 (@avsm, see ocaml/ocaml#2263)- Remove unnecessary
(wrapped false)
in the build system (@avsm) - Correct ocamldoc to the right
cstruct-ppx
package pointer (@avsm)
v3.4.0
v3.3.0
CHANGES:
-
Support for bi-endian cstructs that generate both sets of accessor
functions (#212 by @XVilka). This generates bothBE
andLE
modules to use as needed. -
Modify
of_string
andof_bytes
to have an option?off
offset argument into the source bytes. (#208 by @XVilka) -
Improve tests to work on 32-bit architectures and handle
Gc better (@samoht) -
Do not depend explicitly on deprecated
ppx_driver
. This was
primarily there for older compilers, and new uses should be
based aroundppxlib
. (#201 by @edwintorok). -
Upgrade opam metadata to 2.0 format. (#217 by @XVilka @avsm)
-
Upgrade to dune from jbuilder and support dune-release instead
of topkg (@avsm)
v3.2.1
Fixes and additional APIs
- wrap
hexdump_pp
output in a box (#175 by @cfcs) - remove dependency on
ocplib-endian
(#177 by @hannesm) - add
of_hex: string -> t
(#179 by @hannesm and @pqwy) - add
to_bytes: t -> Bytes.t
(#183 by @hannesm) - add
empty: t
(#184 by @hannesm) - sub: check the bounds more carefully for overflow (#185 by @hannesm)
- cstruct-unix: fix the build on OCaml 4.06.0 (#187 by @djs55)
- travis: test OCaml 4.04.2 and 4.06.0 (#186 by @hannesm)
Improve Windows support
More bounds checking against integer overflows
- Fix arithmetic overflow in
Cstruct.lenv
andcopyv
(#159 by @yallop) - Reject negative destination offsets in
blit
(#160 by @yallop) - Add AFL fuzz tests using Crowbar, which independently discovered
#160 and also an overflow inof_bigarray
andsub
, now bith
fixed (#164 by @talex5) - Improve performance of several allocation functions by eliminating an
unnecessary buffer zero step (#158 by @hannesm) - Compile the source tree with stricter flags, including dead variable
detection and deprecation warnings (#157 by @samoht) - Bump the required minimum OCaml version up to 4.03.0 (due to #157).