|
| 1 | +v5.0.0 2019-04-19 |
| 2 | +----------------- |
| 3 | + |
| 4 | +**Security**: This release tightens bounds checks to ensure |
| 5 | +that data outside a given view (but still inside the underlying |
| 6 | +buffer) cannot be accessed. |
| 7 | + |
| 8 | +- `sub` does more checks (#244 #245 @hannesm @talex5 review by @dinosaure) |
| 9 | +- `add_len` and `set_len` are now deprecated and will be removed |
| 10 | + in a future release. (#251 @hannesm) |
| 11 | +- do not add user-provided data for bounds checks |
| 12 | + (#253 @hannesm, report and review by @talex5) |
| 13 | +- improve CI to add fuzzing (#255 #252 @avsm @yomimono @talex5) |
| 14 | + |
| 15 | +**Remove Unix dependency**: cstruct now uses the new `bigarray-compat` |
| 16 | +library instead of Bigarray directly, to avoid a dependency on Unix |
| 17 | +when using OCaml compilers less than 4.06.0. This will break downstream |
| 18 | +libraries that do not have a direct dependency on `Bigarray`. Simply |
| 19 | +fix it in your library by adding a `bigarray` dependency in your dune |
| 20 | +file. (#247 @TheLortex) |
| 21 | + |
| 22 | +**Capability module**: To improve the safety of future code with stronger type |
| 23 | +checking, this release introduces a new `Cstruct_cap` module which makes the |
| 24 | +underlying Cstruct an abstract type instead of a record. In return for this |
| 25 | +extra abstraction, the module can enforce read-only, write only, and read/write |
| 26 | +buffers by tracking them as phantom type variables. Although this library |
| 27 | +shares an implementation internally with classic `Cstruct`, it is a significant |
| 28 | +revision and so we will be gradually migrating to it. Feedback on it is |
| 29 | +welcome! (#237 @dinosaure and many excited reviewers) |
| 30 | + |
| 31 | +**Ppx compare functions**: A new `compare_X` function is generated for |
| 32 | +`cenum` declarations. This respects custom ids supplied in the cenum |
| 33 | +declaration and so is more robust than polymorphic compare (#248 @emillon) |
| 34 | + |
| 35 | +The CI has also been switched over to both Azure Pipelines and Drone in |
| 36 | +addition to Travis, and as a result the tests all run on Windows, macOS, |
| 37 | +various Linux distributions, on x86 and arm64 machines, and runs AFL |
| 38 | +fuzz tests on the Drone cloud (#255 @avsm). |
| 39 | + |
1 | 40 | v4.0.0 2019-03-25
|
2 | 41 | -----------------
|
3 | 42 |
|
|
0 commit comments