Skip to content

Commit 8d7ab7c

Browse files
committed
release v5.0.0
1 parent 0736e07 commit 8d7ab7c

File tree

1 file changed

+39
-0
lines changed

1 file changed

+39
-0
lines changed

CHANGES.md

+39
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,42 @@
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+
140
v4.0.0 2019-03-25
241
-----------------
342

0 commit comments

Comments
 (0)