Major changes
This is a major change to the internal functionality of autocxx. Previously, we significantly edited the bindgen output. Instead, now, we just augment stuff alongside it (along with lots of use
statements to get the right bits out). (This was #1456).
Philosophically, this means autocxx is now a tool to augment bindgen's output. We will get the benefit of bindgen improvements, and benefit from its ever-better understanding of C++ templates. We don't try to be smarter than bindgen in editing its output - we just pass it on as-is, and wherever we can, try to build more ergonomic cxx bindings alongside that bindgen output. (This journey will be completed if we manage to move to a completely standard upstream bindgen as described in #124).
Compatibility implications:
- The major compatibility implication is that we're now reliant on bindgen doing the right thing in more circumstances. In rare circumstances, it doesn't. For instance, these four bindgen bugs previously did not affect autocxx users, because we would coincidentally have edited out bindgen's erroneous output. We would no longer do so, and now they would prevent use of autocxx: rust-lang/rust-bindgen#3159, rust-lang/rust-bindgen#3161, rust-lang/rust-bindgen#3158, rust-lang/rust-bindgen#3160. This will be a regression in autocxx functionality for some people - let's all work together to make bindgen as good as possible.
- If you previously wished to generate a function called the same as a Rust keyword (e.g.
move
,async
) you previously needed to givegenerate!("async_")
(note the underscore). As far as I know this wasn't documented anywhere. This quirk has been removed.
Beyond these implications, this major internal change has no intentional changes in how autocxx behaves for users.
What's Changed
- Remove code for unused template param detection. by @adetaylor in #1446
- Cleanups to parsing by @adetaylor in #1451
- Add a test case for #1371 by @adetaylor in #1453
- test: add test case for #1371 by @b0o in #1430
- Remove O(n^2) lookup in parse callback results. by @adetaylor in #1454
- Add a comment to generated code by @adetaylor in #964
- Add test for #1141: wchar_t -> uint32_t by @jjacobson93 in #1142
- Cargo update by @adetaylor in #1455
- Cease to modify bindgen output. by @adetaylor in #1456
- Roll to 0.29.0 by @adetaylor in #1457
New Contributors
- @b0o made their first contribution in #1430
- @jjacobson93 made their first contribution in #1142
Full Changelog: v0.28.0...v0.29.0