Skip to content

Releases: google/autocxx

v0.29.0

26 Feb 23:52
dd3e248
Compare
Choose a tag to compare

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 give generate!("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

New Contributors

Full Changelog: v0.28.0...v0.29.0

v0.28.0

24 Feb 12:14
a10cbda
Compare
Choose a tag to compare

Major changes

  • The previous version declared incorrectly that it supported older Rust versions when it didn't. The requirement for newer Rust versions has been removed (thanks to @tanadeau for spotting this in #1444).
  • This switches internally to a much-less-forked version of bindgen. This should have no user-visible effects but... it will. Everything about the relationship between autocxx and bindgen has changed, so some user-visible changes are bound to be seen. This is work towards #124.
  • There are some changes to the CppRef and related types, which most people don't use, so should not really impact anyone.

What's Changed

New Contributors

Full Changelog: v0.27.1...v0.28.0

0.27.1

08 Jan 23:19
Compare
Choose a tag to compare

The big change here is a roll to a more recent version of bindgen which understands inline namespaces, and thus resolves issues with the latest headers on OS X.

What's Changed

New Contributors

Full Changelog: v0.27.0...v0.27.1

0.27.0

25 Jun 19:49
6a54d7c
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.26.0...v0.27.0

v0.26.0

16 Jun 06:29
60230d2
Compare
Choose a tag to compare
v0.26.0 Pre-release
Pre-release

Compatibility breaks

** You may need to replace EmplaceUnpinned with Emplace.

Changes

New Contributors

Full Changelog: v0.25.0...v0.26.0

v0.25.0

09 Mar 19:05
ada1216
Compare
Choose a tag to compare
v0.25.0 Pre-release
Pre-release

What's Changed

Features

  • Allow constructing subclass of abstract class by @russelltg in #1206
  • Add an option to autocxx_gen to create cxx.h by @nak3 in #1253
  • Print the number of files generated in the error of --generate-exact by @nak3 in #1247

Bug fixes

Documentation and examples

  • Add some generic advice about linking. by @adetaylor in #1227
  • Make help message of gen-rs-include accurate by @nak3 in #1234
  • Fix comment about AUTOCXX_RS_JSON_ARCHIVE by @nak3 in #1232
  • Do not use deprecated macro is_subclass in examples by @nak3 in #1245
  • Add llvm example for CI by @nak3 in #1248
  • fix 404 in examples document by @htynkn in #1257

Miscellaneous

New Contributors (thanks all!)

Full Changelog: v0.24.0...v0.25.0

v0.24.0

31 Jan 11:08
6e1200d
Compare
Choose a tag to compare
v0.24.0 Pre-release
Pre-release

What's Changed: new minor features

What's Changed: useful bugfixes

What's changed: other stuff

New Contributors

  • @nak3 made their first contribution in #1213 (thanks!)
  • @aaronrsiphone made their first contribution in #1203 (thanks!)
  • Thanks also to those who raised bug reports

Full Changelog: v0.23.1...v0.24.0

v0.23.1

08 Nov 22:24
f6427a1
Compare
Choose a tag to compare
v0.23.1 Pre-release
Pre-release

What's Changed

Full Changelog: v0.23.0...v0.23.1

v0.23.0

07 Nov 12:03
034e104
Compare
Choose a tag to compare
v0.23.0 Pre-release
Pre-release

What's Changed

The major change here is a lot of rework of the safety!(unsafe_references_wrapped) mode, based on the researches done here. This is a compatibility break, but only if you're using that mode.

There are also significant bug fixes to extern_rust_type!() as noted below.

Other features

Bug fixes

Misc changes

New Contributors

Full Changelog: v0.22.4...v0.23.0

v0.22.4

08 Sep 11:02
8d2e1df
Compare
Choose a tag to compare
v0.22.4 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.22.3...v0.22.4