Releases: google/autocxx
v0.22.1
What's Changed
One new feature:
- Add a function to upcast UniquePtr by @bsilver8192 in #1112 (thanks!)
A roll of the minimum cxx version to work around a new clippy warning:
- Roll cxx minimal version. by @adetaylor in #1104
Lots of bug fixes:
- Solve anonymous namespaces and other problems by @adetaylor in #1088
- Ignore types named
_bindgen_ty
by @adetaylor in #1091 - Alter mdbook-mermaid installation. by @adetaylor in #1102
- Succeeding test for issue 1081 by @adetaylor in #1101
- Fix and test extern_cpp_type with type in a C++ namespace by @bsilver8192 in #1100
- Adding lots of ignored tests by @adetaylor in #1106
- Reject type params in typedefs by @adetaylor in #1108
- Issue 1094 by @adetaylor in #1095
- Fix #1092. by @adetaylor in #1093
- Reject typedefs to anon namespaces. by @adetaylor in #1107
- Fix and test subclass without
safety!(unsafe)
by @bsilver8192 in #1111 - Fix and test subclasses with C++ std in scope by @bsilver8192 in #1110
There is currently a known soundness problem, as noted in #1006.
Full Changelog: v0.22.0...v0.22.1
v0.22.0
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.
- Remove --skip-cxx-gen by @adetaylor in #1052
- Support generating multiple bindings with a single
autocxx_gen
invocation by @adetaylor in #1061 - Minor cleanups by @adetaylor in #1051
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.
- Remove make_unique. by @adetaylor in #1040
This release also upgrades some of our dependencies:
- Upgrade to clap 3 by @gabriel-viviani (thanks!) in #1037
But mostly there are lots of bug fixes for cases where autocxx previously failed.
- Fix 'unsupported type' problem for typedefs pointing to enums by @adetaylor in #1074
- Properly disregard variadic functions by @adetaylor in #1076 (thanks to @yuxuan-xie for the report)
- Ignore inner type opaque typedefs by @adetaylor and @yuxuan-xie (thanks!) in #1083
- Fix "invalid application of" bug by @adetaylor in #1072
- Fwd decls in
&UniquePtr<T>
by @adetaylor in #1085 - Instantiable opaques by @adetaylor in #1086 (this one introduces a new directive,
instantiable!
, for niche cases) - Add test for 'array' is not a class, namespace, or enumeration by @adetaylor in #1080
- Do not fail when encountering
std::vector<char>
by @adetaylor in #1060
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
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
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
- Allow implicit constructors for structs with array fields by @adetaylor in #1039
- Fix pin problem. by @adetaylor in #1046
Internal and testing changes
- Modularize directive handling. by @adetaylor in #1032
- Add test for base class destructors getting called. by @adetaylor in #1041
- Add missing forward declaration tests. by @adetaylor in #1042
- Minor demo code updates. by @adetaylor in #1043
Full Changelog: v0.21.0...v0.21.1
v0.21.0
What's Changed
Major breaking change:
- Functions which return (non-POD) values no longer return a
UniquePtr
. Instead they return animpl New
, so you can emplace them on the stack or in aBox
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:
- Fix for mdbook off-by-one test ID. by @adetaylor in #1028
Full Changelog: v0.20.1...v0.21.0
v0.20.1
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:
- Cease to need MakeCppStorage to put something in a Box by @adetaylor in #1022
- impl
ValueParam
forPin<Box<T>>
by @adetaylor in #1024
Various internal tidyings.
- Outdent a test. by @adetaylor in #1023
- Fix destructor trait safety. by @adetaylor in #1025
- Unsafe dialect by @adetaylor in #1026
- Upgrade to 0.20.1. by @adetaylor in #1027
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
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 ofinclude_cpp!
bindings to delegate a type to another set obindings.
Boring but breaking change
- Split the
Within
trait into two by @adetaylor in #1013
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.
- Rewrite constructor chapter of book. by @adetaylor in #1000
- Publish integration tests by @adetaylor in #1001
- Switch tests away from deprecated
::make_unique()
. by @adetaylor in #1003 - Restructure
codegen_rs/fun/mod.rs
by @adetaylor in #1002 - Show
autocxx_build::Builder::new
in docs by @Xaeroxe in #1004 - Improve Builder documentation. by @adetaylor in #1007
- Harmless changes by @adetaylor in #1014
- Doc fix. by @adetaylor in #1016
New Contributors
Full Changelog: v0.19.1...v0.20.0
v0.19.1
What's Changed
- This release deprecates the
make_unique()
functions that were previously created for each constructor, and instead introduces a newWithin
trait. This will later become the only way of using constructors. (@adetaylor in #997)
Testing improvements
- Do a test run under ASAN on github CI by @adetaylor in #993 (thanks also to @philipcraig )
- Add tests for
gen
by @bsilver8192 in #913
Full Changelog: v0.19.0...v0.19.1
v0.19.0
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
asusize
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
- Add test for moving out of UP by @adetaylor in #973
Full Changelog: v0.18.0...v0.19.0
v0.18.0
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