Skip to content

Releases: google/autocxx

v0.22.1

29 May 04:26
bdff5db
Compare
Choose a tag to compare
v0.22.1 Pre-release
Pre-release

What's Changed

One new feature:

A roll of the minimum cxx version to work around a new clippy warning:

Lots of bug fixes:

There is currently a known soundness problem, as noted in #1006.

Full Changelog: v0.22.0...v0.22.1

v0.22.0

29 Apr 08:27
24f5e2a
Compare
Choose a tag to compare
v0.22.0 Pre-release
Pre-release

What's Changed

Major changes to how the command line generation tool autocxx_gen works. If you're just using cargo you probably don't need to worry about this, but if you're using other build systems you'll almost certainly need to make changes.

There's also a compatibility change in that make_unique methods have been removed. They've been deprecated for a few releases now, so this shouldn't come as a surprise. Append .within_unique_ptr() everywhere you would have used it.

This release also upgrades some of our dependencies:

But mostly there are lots of bug fixes for cases where autocxx previously failed.

Various other bug fixes or minor changes:

  • Achieve predictable iteration order. by @adetaylor in #1044 - this makes output more deterministic
  • Fix excessive generate_pod output in repro cases. by @adetaylor in #1058 - fixes a bug in the reproduction pipeline
  • Better logging from autocxx-reduce. by @adetaylor in #1062
  • Avoid duplicate stddef introduction in reduction. by @adetaylor in #1063
  • Avoid redefining cxx types in reduction by @adetaylor in #1064
  • Add stress test reduction pipeline. by @adetaylor in #1069

Full Changelog: v0.21.2...v0.22.0

v0.21.2

19 Apr 05:45
99702d5
Compare
Choose a tag to compare
v0.21.2 Pre-release
Pre-release

What's Changed

  • Treat C++ warnings as fatal within the test suite, revealing a problem that needed to be fixed in our generated code...
  • Fix unnecessary std::move by @adetaylor in #1048

Full Changelog: v0.21.1...v0.21.2

v0.21.1

19 Apr 05:21
7319702
Compare
Choose a tag to compare
v0.21.1 Pre-release
Pre-release

What's Changed

Significant improvement (though some corner cases wouldn't surprise me): where possible, treat incomprehensible typedefs as opaque types by @adetaylor in #1035. Previously if we encountered a type that bindgen couldn't fully handle, we ignored that type plus any typedefs that depended upon it. Now, we still discard the type - but typedefs should continue to be somewhat usable.

Bug fixes

Internal and testing changes

Full Changelog: v0.21.0...v0.21.1

v0.21.0

15 Apr 04:55
8e04069
Compare
Choose a tag to compare
v0.21.0 Pre-release
Pre-release

What's Changed

Major breaking change:

  • Functions which return (non-POD) values no longer return a UniquePtr. Instead they return an impl New, so you can emplace them on the stack or in a Box if you prefer. If in doubt, simply append .within_unique_ptr() to go back to the old behavior. (#998)
  • Function calls which take rvalue reference parameters (Thingy&&) are now supported (#821)

Bug fixes:

Full Changelog: v0.20.1...v0.21.0

v0.20.1

12 Apr 03:28
5dcafe7
Compare
Choose a tag to compare
v0.20.1 Pre-release
Pre-release

What's Changed

  • Bug fix to stop important error messages disappearing (thanks to @testforvln for the report) - in #1021
  • Slightly more flexibility when storing C++ objects in Rust boxes:

Various internal tidyings.

The next release is likely to be a significant compatibility break as we land a major part of #379.

Full Changelog: v0.20.0...v0.20.1

v0.20.0

07 Apr 21:19
bee0078
Compare
Choose a tag to compare
v0.20.0 Pre-release
Pre-release

What's Changed

New features

  • Support writing depfiles from autocxx_gen by @adetaylor in #1012
  • Basic support for extern_cpp_type! by @adetaylor in #1008. This allows one set of include_cpp! bindings to delegate a type to another set obindings.

Boring but breaking change

Bugfixes and documentation

This version includes a lot of restructuring with no intentional functional change, as prep work for eventually landing the next bit of #379.

New Contributors

Full Changelog: v0.19.1...v0.20.0

v0.19.1

04 Apr 14:51
85d22c7
Compare
Choose a tag to compare
v0.19.1 Pre-release
Pre-release

What's Changed

  • This release deprecates the make_unique() functions that were previously created for each constructor, and instead introduces a new Within trait. This will later become the only way of using constructors. (@adetaylor in #997)

Testing improvements

Full Changelog: v0.19.0...v0.19.1

v0.19.0

02 Apr 04:41
d0f5278
Compare
Choose a tag to compare
v0.19.0 Pre-release
Pre-release

Improvements

  • Don't spam stderr so much by @adetaylor in #985
  • Use miette for nicer syntax errors by @adetaylor in #980. This also removes some long-deprecated functions, so you may need to update your build.rs files.
  • Recognize size_t as usize by @adetaylor in #986
  • Support array fields within structs by @yshui (thanks!) in #969

Bug fixes

  • Fix use of &str in generated C++ code by @adetaylor in #984
  • Ignore constructors taking extra default parameters by @adetaylor in #983
  • Fix erroneous allocation sizes when using moveit::new::New by @adetaylor in #991
  • Fix problem with methods beginning with their class name by @adetaylor in #992

Miscellaneous

Full Changelog: v0.18.0...v0.19.0

v0.18.0

28 Mar 20:12
cd3292e
Compare
Choose a tag to compare
v0.18.0 Pre-release
Pre-release

What's Changed

  • Fix a problem when used with the most recent version of syn by @adetaylor in #971
  • Roll to moveit 0.5.0. by @adetaylor in #970. This change allows you to move out of a UniquePtr, e.g.
let xyz: UniquePtr<Foo> = ...;
moveit! {
  let stack_xyz = autocxx::moveit::new::mov(xyz);
}

This is technically a breaking change though I doubt anyone much is using the MoveRef trait a lot.

Full Changelog: v0.17.5...v0.18.0