Skip to content

Releases: mirage/ocaml-cstruct

v3.7.0

11 Mar 16:58
Compare
Choose a tag to compare

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

02 Mar 11:40
Compare
Choose a tag to compare

CHANGES:

  • A [%%cstruct type ...] declaration generates many values that
    are potentially unused. The code generator in ppx_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

26 Feb 16:26
b30ec69
Compare
Choose a tag to compare

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.06 Unix.map_file
    instead of the deprecated Bigarray map_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

03 Feb 11:00
dd1b933
Compare
Choose a tag to compare

CHANGES:

  • Remove old compatibility packages for cstruct.lwt, cstruct.async,
    cstruct.ppx and cstruct.unix. These were deprecated in
    cstruct.3.0.0 in favour of counter part libraries with a dash
    in the name (cstruct-lwt, cstruct-async, cstruct.unix)
    or ppx_cstruct for the PPX extension. (@avsm)

v3.3.0

23 Jan 11:08
Compare
Choose a tag to compare

CHANGES:

  • Support for bi-endian cstructs that generate both sets of accessor
    functions (#212 by @XVilka). This generates both BE and LE
    modules to use as needed.

  • Modify of_string and of_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 around ppxlib. (#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

13 Dec 23:09
Compare
Choose a tag to compare

v3.2.1 2017-12-13

  • improve performance by using primitives instead of C stubs. the performance
    regression was introduced in #177 in 3.2.0 (#195 by @pqwy)

Fixes and additional APIs

17 Nov 16:21
49a52f2
Compare
Choose a tag to compare

Improve Windows support

13 Jul 22:14
Compare
Choose a tag to compare
  • check_alignment now treats a large alignment as an unsigned value
    and so doesnt raise a signal (#171 by @yallop)
  • Improve Windows support by avoiding void * pointer arithmetic and
    have more portable headers in the C stubs (#170 by @fdopen)

More bounds checking against integer overflows

12 Jul 14:35
Compare
Choose a tag to compare
  • Fix arithmetic overflow in Cstruct.lenv and copyv (#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 in of_bigarray and sub, 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).

fix the cstruct-async package build

14 Jun 16:11
Compare
Choose a tag to compare
  • fix the cstruct-async package build, and depend on the latest
    Async packages (>="v0.9.0") as part of this. (#152 @jnfoster)