9
9
- [ Removed] ( #removed )
10
10
- [ Fixed] ( #fixed )
11
11
- [ Security] ( #security )
12
- - [ 0.31 .0] ( #0310 )
12
+ - [ 0.32 .0] ( #0320 )
13
13
- [ Added] ( #added-1 )
14
14
- [ Changed] ( #changed-1 )
15
- - [ Deprecated] ( #deprecated-1 )
16
- - [ Removed] ( #removed-1 )
17
15
- [ Fixed] ( #fixed-1 )
18
- - [ 0.30 .0] ( #0300 )
16
+ - [ 0.31 .0] ( #0310 )
19
17
- [ Added] ( #added-2 )
20
18
- [ Changed] ( #changed-2 )
21
- - [ Deprecated] ( #deprecated-2 )
19
+ - [ Deprecated] ( #deprecated-1 )
20
+ - [ Removed] ( #removed-1 )
22
21
- [ Fixed] ( #fixed-2 )
23
- - [ 0.29 .0] ( #0290 )
22
+ - [ 0.30 .0] ( #0300 )
24
23
- [ Added] ( #added-3 )
25
24
- [ Changed] ( #changed-3 )
25
+ - [ Deprecated] ( #deprecated-2 )
26
26
- [ Fixed] ( #fixed-3 )
27
+ - [ 0.29.0] ( #0290 )
28
+ - [ Added] ( #added-4 )
29
+ - [ Changed] ( #changed-4 )
30
+ - [ Fixed] ( #fixed-4 )
27
31
28
32
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
29
33
@@ -39,13 +43,7 @@ Released YYYY/MM/DD
39
43
40
44
## Changed
41
45
42
- * The ` bindgen::Builder::{constified_enum_module,{bitfield,rustified}_enum} `
43
- builder methods and their corresponding CLI flags now compare their argument
44
- to the C/C++ ` enum ` 's "canonical path", which includes leading namespaces,
45
- rather than its "canonical name", which does not. This is a breaking change
46
- that requires callers which target a namespaced C++ enum to call e.g.
47
- ` bitfield_enum("<namespace>::<enum_name>") ` rather than e.g.
48
- ` bitfield_enum("<enum_name>") ` . [ #1162 ] [ ]
46
+ * TODO (or remove section if none)
49
47
50
48
## Deprecated
51
49
@@ -65,6 +63,92 @@ Released YYYY/MM/DD
65
63
66
64
--------------------------------------------------------------------------------
67
65
66
+ # 0.32.0
67
+
68
+ Released 2017/12/08
69
+
70
+ ## Added
71
+
72
+ * Added support for bit-field allocation units that are larger than 64 bits
73
+ wide. Note that individual bit-fields within such units are still restricted
74
+ to being no wider than 64 bits. [ #1158 ] [ ]
75
+
76
+ * We can now generate random C header files and test that ` bindgen ` can process
77
+ them with the ` quickcheck ` crate. Initial support landed in [ #1159 ] [ ] with a
78
+ few more additions in follow up pull requests.
79
+
80
+ ## Changed
81
+
82
+ * The ` bindgen::Builder::{constified_enum_module,{bitfield,rustified}_enum} `
83
+ builder methods and their corresponding CLI flags now compare their argument
84
+ to the C/C++ ` enum ` 's "canonical path", which includes leading namespaces,
85
+ rather than its "canonical name", which does not. This is a breaking change
86
+ that requires callers which target a namespaced C++ enum to call e.g.
87
+ ` bitfield_enum("<namespace>::<enum_name>") ` rather than e.g.
88
+ ` bitfield_enum("<enum_name>") ` . [ #1162 ] [ ]
89
+
90
+ * When a struct is packed to a smaller alignment that is still greater than one,
91
+ ` bindgen ` cannot emit Rust bindings that match the input source. Before, it
92
+ would emit ` #[repr(packed)] ` anyways, which packs to an alignment of one, but
93
+ this can lead to misalignment and UB. Now, ` bindgen ` will detect these
94
+ situations and convert the struct into an opaque blob of bytes with the proper
95
+ alignment. We are eagerly awaiting support for ` #[repr(packed(N))] ` in
96
+ Rust. [ #1136 ] [ ]
97
+
98
+ ## Fixed
99
+
100
+ * There was a perfect storm of conditions that could cause ` bindgen ` not to emit
101
+ any bindings if spawning ` rustfmt ` to format the bindings failed. This is now
102
+ fixed. [ #1112 ] [ ]
103
+
104
+ * In some circumstances, ` bindgen ` would emit type parameters twice for
105
+ references to template instantiations. This is now fixed. [ #1113 ] [ ]
106
+
107
+ * When a C/C++ struct had a field named with a Rust keyword, and ` impl_debug `
108
+ was enabled, the generated ` impl Debug for ... ` blocks could reference the
109
+ field by the Rust keyword name, rather than the non-keyword field name we
110
+ actually end up generating. This is now fixed. [ #1123 ] [ ]
111
+
112
+ * There was a regression in 0.31.0 where C++ template aliases to opaque types
113
+ would sometimes not treat the aliased type as opaque. This is now
114
+ fixed. [ #1118 ] [ ]
115
+
116
+ * There was a regression in 0.31.0 that could cause ` bindgen ` to panic when
117
+ parsing nested template classes. This is now fixed. [ #1127 ] [ ]
118
+
119
+ * Unnamed bit-fields do not affect alignment of their struct or class in C/C++,
120
+ however ` bindgen ` interpreted them as doing so, which could generate
121
+ ` #[repr(C)] ` structs expecting to have an incorrect alignment. This is now
122
+ fixed. [ #1076 ] [ ]
123
+
124
+ * When a zero-sized type was used in a bit-field, ` bindgen ` could
125
+ divide-by-zero. This is now fixed. [ #1137 ] [ ]
126
+
127
+ * When a template parameter is used in a bit-field, ` bindgen ` would panic. This
128
+ is now fixed. [ #1140 ] [ ]
129
+
130
+ * There was a regression in 0.31.0 where if ` bindgen ` was given a header file
131
+ that did not exist, it would panic. This is now fixed, and it will instead
132
+ properly report the error. [ #1146 ] [ ]
133
+
134
+ * In some cases, generated bit-field getters and setters could access memory
135
+ beyond ` self ` . This is now fixed. [ #954 ] [ ]
136
+
137
+ [ #1162 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1162
138
+ [ #1113 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1113
139
+ [ #1112 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1112
140
+ [ #1123 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1123
141
+ [ #1127 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1127
142
+ [ #1136 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1136
143
+ [ #1137 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1137
144
+ [ #1140 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1140
145
+ [ #1146 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1146
146
+ [ #1118 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1118
147
+ [ #1076 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1076
148
+ [ #1158 ] : https://github.com/rust-lang-nursery/rust-bindgen/issues/1158
149
+
150
+ --------------------------------------------------------------------------------
151
+
68
152
# 0.31.0
69
153
70
154
Released 2017/10/27
0 commit comments