Skip to content

Releases: google/autocxx

v0.10.0

09 Jun 13:32
8737c6b
Compare
Choose a tag to compare
v0.10.0 Pre-release
Pre-release
  • Reject APIs involving type names that will conflict in the flat namespace of the cxx::bridge mod (e.g. if two different C++ namespaces both have a type called A)

v0.9.0: Merge pull request #539 from google/rev-0.9.0

28 May 17:32
01761e7
Compare
Choose a tag to compare
  • Handle deleted functions
  • Support multiple FFI mods in one file
  • Support manual #[cxx::bridge] mods without the need for an extra codegen tool
  • Better handle some std types for which we have no explicit support
  • Ignore types with discarded template params
  • Add logging to autocxx_gen (using RUST_LOG=autocxx_engine=info like everywhere else)
  • Many improvements to reduction pipeline
  • Correctly detect abstract subclasses
  • Reject (or, where possible, rename) APIs named using Rust keywords which are valid identifiers in C++ (e.g. move)

0.8.0

03 May 23:13
193fd29
Compare
Choose a tag to compare
0.8.0 Pre-release
Pre-release
  • Handles nested types (thanks @martinboehme)
  • Doesn't import the move constructor (thanks @martinboehme)
  • Adds experimental generate_all! directive
  • Does not attempt to codegen APIs which depend on types not known to autocxx (e.g. u128)

v0.7.1: Merge pull request #450 from google/0.7.1-bump

29 Apr 02:46
888c72e
Compare
Choose a tag to compare
  • Fixing typedefs to ptrs where some part of the chain of typedefs contains __. These items are now ignored (i.e. give a nice message in the output mod about why we can't generate bindings)

v0.7.0: Merge pull request #444 from google/0.7.0-revision

28 Apr 01:28
ec7bc77
Compare
Choose a tag to compare

Fixes:

  • No longer tries to generate code for functions/types with double underscores.
  • Puts constants in the right namespace (thanks @ssbr). Compatibility break.
  • Inlines all our generated C++, to avoid an unnecessary compilation unit.
  • Fixes conflicts between overridden ignored methods/functions.
  • Does not try to create constructors for abstract types.
  • Can now cope with autocxx::include_cpp! as well as use autocxx::include_cpp; include_cpp!
  • Ignores types for which bindgen drops "unused" template parameters. This is a Big Deal as it removes the need for most block! directives
  • Allows use of forward-declared types in pointers and references, just like in C++. (But not in UniquePtrs).
  • Rejects unknown std and rust namespace types.

v0.6.0

20 Apr 15:40
5f39a5b
Compare
Choose a tag to compare
v0.6.0 Pre-release
Pre-release

Changes:

  • Don't import nested types as top-level types
  • Generate marker types in the output Rust when we encounter an error
  • Allow passing arbitrary lang arguments
  • Add preprocess/reduction workflow for debugging
  • Pass through doc comments from C++
  • Support long longs
  • Add an example
  • Make it easier to pass strings from Rust to C++

0.5.4

01 Apr 18:28
ff221c5
Compare
Choose a tag to compare
0.5.4 Pre-release
Pre-release
Merge pull request #338 from google/0.5.4

Rev version to 0.5.4

0.5.3

23 Mar 04:33
0310ba6
Compare
Choose a tag to compare
0.5.3 Pre-release
Pre-release

Adopts cxx's native support for raw pointers.

0.5.1

20 Feb 17:20
Compare
Choose a tag to compare
0.5.1 Pre-release
Pre-release
0.5.1 version

0.5.0

05 Jan 21:54
Compare
Choose a tag to compare
0.5.0 Pre-release
Pre-release

Upgrade to cxx 1.0.x. This is a breaking change in two main ways:

  • In cxx 1.0.x, mutating methods can only be called on pinned types. This requires callers to use pin_mut() on UniquePtr instances.
  • cxx 1.0.x requires an unsafe keyword to be specified, and we're following a similar policy. Either unsafe needs to be specified once for the entire autocxx block (in safety!(unsafe)) or for each method.