Releases: google/autocxx
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
v0.17.5
Improvements
- Add
char16_t
support by @adetaylor in #957 extern_rust_{type|fun}
work without autodiscover. by @adetaylor in #958- Support
extern_rust_function
on methods. by @adetaylor in #959 - Document how to see generated bindings using
cargo doc
. by @adetaylor in #960 - Shrink size of cargo package by excluding unnecessary stuff. by @adetaylor in #961
- Add test that doc comments survive C++ -> Rust. by @adetaylor in #962
- Better diagnostics for duplicate items. by @adetaylor in #963
Full Changelog: v0.17.4...v0.17.5
v0.17.4
Mostly bug fixes...
Features
- Add
concrete!
directive to give a specific name to the concrete instantiation of a templated type; by @adetaylor in #943
Ergonomics
- Re-export UniquePtr. by @adetaylor in #942
A new example
- LLVM example by @adetaylor in #932
Bug fixes
- Constructors taking non-reference parameters give a
NotAPin
error by @adetaylor in #944 - Fix inconsistent name of
extern_rust_function
by @adetaylor in #950 - Do not attempt to generate bindings to functions which take/return opaque types by @adetaylor in #945
- Better document exported types. by @adetaylor in #952
- Multi-line docs. by @adetaylor in #953
Tooling
- Reduction tweaks by @adetaylor in #938
Full Changelog: v0.17.3...v0.17.4
v0.17.3
Bug fix release
- Fix assignment operators for types with names with underscores by @bsilver8192 in #927
- Multiple value parameters by @adetaylor in #933
Full Changelog: v0.17.2...v0.17.3
v0.17.2
What's Changed
- Fix problem with returning POD/built-in references from a non-POD reference by @adetaylor in #925
Full Changelog: v0.17.1...v0.17.2
v0.17.1
What's Changed
One small feature
- Add
generate_ns
directive by @adetaylor in #910
Mostly bugfixes
- Stack move example for book by @adetaylor in #899
- Add test for #873. by @adetaylor in #900
- Unexpected constructor param count by @adetaylor in #905
- Add explicit test for C++17 by @adetaylor in #902
- Break dependency of autocxx on autocxx_engine. by @adetaylor in #908
- Zap a
std::move
by @adetaylor in #909 - Force generating wrappers for test functions taking reference parameters by @bsilver8192 in #907
- Remove obsolete 'name_for_gc' field. by @adetaylor in #912
- Use
self: Pin<&mut Self>
invalue_param.rs
by @bsilver8192 in #914 - Never panic on pushing API by @adetaylor in #911
Docs
- docs: Add instructions for C++17 deps. by @lukesneeringer in #904
- Test let_cxx_string. by @adetaylor in #920
- Better build-related doc links. by @adetaylor in #906
New Contributors
- @lukesneeringer made their first contribution in #904
Full Changelog: v0.17.0...v0.17.1
v0.17
What's Changed
Major change: better flexibility for ValueParam
, more ability to use stack objects
Mostly this has been work by @bsilver8192 to get all the various implicit constructor/destructor rules right.
- Always use
std::move
for params; never for returns by @adetaylor in #804 - Enable
UniquePtr::emplace()
by @adetaylor in #767 - Allow value parameters to be passed by copy instead of consuming by @adetaylor in #766
- Implement most of the C++ special member function rules by @bsilver8192 in #843
- Pass new not copy by @adetaylor in #847
Major change: we have a book!
See https://google.github.io/autocxx
Selected PRs:
- Initial book infrastructure by @adetaylor in #769
- Book improvements 1 by @adetaylor in #850
- Fix book URI. by @adetaylor in #854
- Document how nested classes are named by @bsilver8192 in #786
Other functional changes
- Cease to require bases to be allowlisted. by @adetaylor in #776
- Support
include_cpp!
inmod
by @bsilver8192 in #794
Build and tooling related
The main thing: @philipcraig has done a bonzer job setting up CI on all sorts of platforms.
- add Cargo.lock by @milahu in #780
- Make reduction piepline better: dont run postcompile_step when gen_cmd failed by @milahu in #783
- Make
KEEP_TEMPDIRS
more useful by @bsilver8192 in #793 - Implement an option for not generating
cxx::bridge
sources by @bsilver8192 in #792 creduce
error case diagnostics by @adetaylor in #807- github actions build and test on major architectures by @philipcraig in #817
- Remove beta test ignoring setup by @philipcraig in #826
- CI sanitize, rustdoc, cache by @philipcraig in #848
- Track and print dependencies caused an API to be ignored by @bsilver8192 in #896
- Generate fixed filenames for all types of files by @bsilver8192 in #876
Bug fixes
(selected PRs)
- Cease to make implicit constructors unless we understand all fields & bases by @adetaylor in #803
- Match trait method unsafety expectations by @adetaylor in #790
- Add test for #787. by @adetaylor in #791
- Test for issue 798. by @adetaylor in #802
- Test for #799 by @adetaylor in #806
- Uniquify constructor names when multiple mods by @adetaylor in #810
- switch
rustfmt
to--check
, to give clearer CI errors by @philipcraig in #811 - fix branch spec by @philipcraig in #814
- Cease to turn commits red based on cargo outdated. by @adetaylor in #830
- Move away from deprecated C++ APIs in the demo by @bsilver8192 in #871
Internals
(selected PRs)
- Ensure every API has a unique name by @adetaylor in #879 - this will have fixed lots of lurking problems
- Remove dependency on unzip_n. by @adetaylor in #857
New Contributors
- @milahu made their first contribution in #780
- @bsilver8192 made their first contribution in #786
- @philipcraig made their first contribution in #801
Full Changelog: v0.16.0...v0.17.0