Releases: google/autocxx
v0.30.0
Identical to 0.29.1. I just realized that the CppRef
changes were sufficient to merit a semver compatibility break.
Full Changelog: v0.29.1...27acd12
v0.29.1
Major changes
The big change here is to introduce an opaque!
directive which might help give workarounds for bindgen bugs.
What's Changed
- Add comment around opaque types. by @adetaylor in #1458
- Un-ignore some tests. by @adetaylor in #1459
- 1269 test only by @adetaylor in #1460
- Maintenance documentation part one. by @adetaylor in #1462
- Introduce 'opaque' directive. by @adetaylor in #1464
- CppRef changes. by @adetaylor in #1463
- Test for 1192 by @adetaylor in #1468
- Additional virtual function test by @adetaylor in #1469
- Revert "Ignore the test." by @adetaylor in #1470
const
return values by @adetaylor in #1190- Revise to 0.29.1. by @adetaylor in #1471
Full Changelog: v0.29.0...v0.29.1
v0.29.0
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
v0.28.0
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
using std::string
test by @adetaylor in #1424- Add integration tests for 'using declarations' with std::string by @calebfletcher in #1418
- Fix warning about extern with nightly. by @adetaylor in #1427
- Add lifetimes to functions returning
CppRef<'a, T>
by @adetaylor in #1428 - Experiment with ubuntu 22.04 for mdbook by @adetaylor in #1432
- Newtype wrappers for some names. by @adetaylor in #1431
- Initialize env_logger in autocxx-build by @tchebb in #1433
- Update
CppPeerConstructor
documentation by @tchebb in #1434 - Further name tweaks by @adetaylor in #1437
- autocxx-build: Re-export result types used in API by @tchebb in #1438
- Make CppMutRef's T invariant by @cramertj in #1440
- Minisyn to wrap inputs by @adetaylor in #1441
- Switch to using new version of autocxx-bindgen by @adetaylor in #1442
- Remove extra logging. by @adetaylor in #1445
- Clippy fixes. by @adetaylor in #1447
- Revise to 0.28.0 by @adetaylor in #1448
New Contributors
- @calebfletcher made their first contribution in #1418
- @tchebb made their first contribution in #1433
- @cramertj made their first contribution in #1440
Full Changelog: v0.27.1...v0.28.0
0.27.1
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
- Convert to arbitrary_self_types_pointers. by @adetaylor in #1390
- Fix double init of EnvLogger by @adetaylor in #1389
- Specify MSRV by @adetaylor in #1388
- Add missing space on doc comment. by @adetaylor in #1397
- Typedef fn param test by @adetaylor in #1398
- Fix URLs while investigating autocxx.rs. by @adetaylor in #1400
- Roll to autocxx-bindgen 0.70.1. by @adetaylor in #1401
- Fix latest clippy lints by @adetaylor in #1410
- Disable LLVM example in CI. by @adetaylor in #1414
- cargo update by @adetaylor in #1415
- book/building: Fix
expect_build()
call by @Turbo87 in #1420 - book/tutorial: Rename
path
variable to self-describinginclude_path
by @Turbo87 in #1419 - Roll bindgen dec 2024 by @adetaylor in #1416
- Fix concrete typedef dep by @adetaylor in #1423
- Test for a failing double-template with default by @stuglaser in #1417
New Contributors
- @Turbo87 made their first contribution in #1420
- @stuglaser made their first contribution in #1417
Full Changelog: v0.27.0...v0.27.1
0.27.0
What's Changed
- Documentation about C++ versions. by @adetaylor in #1305
- Further documentation on C++ versions. by @adetaylor in #1306
- Newtype wrapper for more concise syn debug output. by @adetaylor in #1309
- Remove commented Cargo line by @adetaylor in #1310
- cargo update by @adetaylor in #1315
- Explicitly reject bitfields by @adetaylor in #1313
- Fix badly named alloc function - fixes #1318 by @adetaylor in #1323
- Clippy fixes. by @adetaylor in #1324
- Test behavior when subclassing something that depends on opaque types by @adetaylor in #1330
- Clippy fix. by @adetaylor in #1335
- Missing stdints. by @adetaylor in #1340
- Bump rustix from 0.37.23 to 0.37.25 by @dependabot in #1338
- Add some missing headers. by @adetaylor in #1344
- Fix unused import warnings. by @adetaylor in #1345
- Clippy fix. by @adetaylor in #1352
- Remove redundant fields. by @adetaylor in #1354
- Add integration tests for functions taking array parameters by @EdmundGoodman in #1353
- Bump shlex from 1.1.0 to 1.3.0 by @dependabot in #1359
- Potential fix for nightly problem. by @adetaylor in #1364
- ci: Use GITHUB_OUTPUT envvar instead of set-output command by @arunsathiya in #1357
- Avoid UB on opaque types. by @adetaylor in #1365
- Some clippy fixes. by @adetaylor in #1367
- Clippy fixes by @adetaylor in #1372
- Fix doc indentation by @adetaylor in #1375
- Revise to autocxx-bindgen 0.69.4. by @adetaylor in #1376
- Revise to 0.27.0 by @adetaylor in #1377
New Contributors
- @dependabot made their first contribution in #1338
- @EdmundGoodman made their first contribution in #1353
- @arunsathiya made their first contribution in #1357
Full Changelog: v0.26.0...v0.27.0
v0.26.0
Compatibility breaks
** You may need to replace EmplaceUnpinned
with Emplace
.
Changes
- Test and fix for 1289 ("Support for anonymous enums") by @badicsalex in #1291
- Fix moveit unsoundness by @adetaylor in #1298 (mostly thanks to @silvanshade!)
- Upgrade to bindgen 0.65.1. by @maurer in #1293
- Fix namespaced destructors and reject unions by @adetaylor in #1264
- fix: feature flag for runtime by @gen-xu in #1277
- Fix diagnostics for in-line subclass macro. by @adetaylor in #1283
- cargo update to remove vulnerable version of time. by @adetaylor in #1284
- Clippy fix. by @adetaylor in #1288
- Update issue templates by @adetaylor in #1290
- Update to syn-2 by @maurer in #1286
- Reference wrapper changes by @adetaylor in #1292
- Fix reference wrappers + mutable refs problem. by @adetaylor in #1295 and #1296
- Add test for unsoundness. by @adetaylor in #1274
- Testing and documenting dynamic dispatch for CppRef. by @adetaylor in #1297
- Add va_list test. by @adetaylor in #1263
- Better diagnostics for pointer-to-pointer cases by @adetaylor in #1272
- Add comment explaining RValueParamHandler. by @adetaylor in #1273
- Fix typo. by @adetaylor in #1275
New Contributors
- @gen-xu made their first contribution in #1277
- @badicsalex made their first contribution in #1291
- @maurer made their first contribution in #1286
- @silvanshade made their first contribution in #1285
Full Changelog: v0.25.0...v0.26.0
v0.25.0
What's Changed
Features
- Allow constructing subclass of abstract class by @russelltg in #1206
- Add an option to
autocxx_gen
to createcxx.h
by @nak3 in #1253 - Print the number of files generated in the error of
--generate-exact
by @nak3 in #1247
Bug fixes
- Fix a multiple definition error by @adetaylor in #1240 (add test for issue #1229 by @VirxEC in #1235)
- Reduce the number of dependencies on std by @kitlith in #1224
- Remove no mod found error by @adetaylor in #1242
- Fix problem using copy constructor of Box by @adetaylor in #1241
- Fix codegen of 'missing lifetimes' when functions have
&mut
return but no&mut
params by @adetaylor in #1254 - Automatically create
outdir
if it doesn't exist by @Jake-Shadle in #1225
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
- Revise to 0.25.0. by @adetaylor in #1258
- Fix
remove_dir_all
security alert by @adetaylor in #1259 - Tests forcing wrappers by @adetaylor in #1250
- Tweaks to reduction by @adetaylor in #1249
New Contributors (thanks all!)
- @Jake-Shadle made their first contribution in #1225
- @kitlith made their first contribution in #1224
- @VirxEC made their first contribution in #1235
- @russelltg made their first contribution in #1206
- @htynkn made their first contribution in #1257
Full Changelog: v0.24.0...v0.25.0
v0.24.0
What's Changed: new minor features
- Support
pod
extern_cpp_types
by @adetaylor in #1193 - Relatedly: Add documentation about the limits of
extern_cpp_types
by @adetaylor in #1221
What's Changed: useful bugfixes
- Fix enum
u16
representation. by @adetaylor in #1223 - Avoid unnecessary rebuilds by @adetaylor in #1219
- Make cxxgen.h names predictable in autocxx-build by @adetaylor in #1220
What's changed: other stuff
- Clippy fixes by @adetaylor in #1199
- Add a note about unsafety of reference wrappers. by @adetaylor in #1202
- Bump autocxx version in examples/llvm by @nak3 in #1213
- Fix typo in autocxx::concrete by @nak3 in #1209
- Bump miette to v5.x for examples/cpp_calling_rust by @nak3 in #1208
- Remove unnecessary memory include in subclass examples by @nak3 in #1210
- Update building.md to include flag syntax for msvc by @aaronrsiphone in #1203
- Latest clippy checks by @adetaylor in #1216
- Improve diagnostics for wrong filename by @adetaylor in #1218
- Fix doc build issue by @adetaylor in #1217
- Revise to 0.24.0 by @adetaylor in #1222
- Cargo publish now waits automatically. by @adetaylor in #1226
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
What's Changed
- Fix problem with field circular dependencies by @adetaylor in #1187
- Revise to 0.23.1 by @adetaylor in #1188
Full Changelog: v0.23.0...v0.23.1