1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392
|
# unreleased
# 0.29.2
* Request serde's std feature to avoid issues with newer toml versions.
# 0.29.1
* cf13c2b enum: Track dependencies properly in enumerations.
* 307d1e9 constant: Handle cfg in associated constants.
* 0902d02 Remove "display" feature from the toml crate
* 9068410 Fix incorrect detection of duplicated constants
* 451e768 docs: Correct after_include type in example config (fix)
* aff68c6 cargo update
* 09666f6 Update toml to 0.9
# 0.29.0
* Support no-export annotation for statics and functions.
* Fixed conditional fields of constexpr literal structs
* Add rename rule for generated associated constant
* Upgrade heck to 0.5
* Add support for an optional nullable attribute
* docs.md: Fix deprecated_with_note and deprecated_variant_with_note being spelled as 'notes'
* Fix generic with "void" default
* Fixed error generation of structures using the keyword as inside arrays
* Added test for unsafe(no_mangle) attribute
* Fixed handling of trait methods containing the unsafe attribute
* Rename -Zparse-only
# 0.28.0
* Parse unsafe attributes in https://github.com/mozilla/cbindgen/pull/1020
* Fix local override of enum prefix-with-name by jsgf in https://github.com/mozilla/cbindgen/pull/1006
* Add rename-all=prefix in https://github.com/mozilla/cbindgen/pull/1021
* ir: add support for UnsafeCell and SyncUnsafeCell by alekitto in https://github.com/mozilla/cbindgen/pull/1003
* Implement mangling for arrays in https://github.com/mozilla/cbindgen/pull/1022
* Fix: Ignore `CARGO_BUILD_TARGET` in tests by bryango in https://github.com/mozilla/cbindgen/pull/1010
* Newline for each field for constexpr field constants by youknowone in https://github.com/mozilla/cbindgen/pull/988
* Fix clippy warnings by youknowone in https://github.com/mozilla/cbindgen/pull/1026
* Add aarch64/arm64 to CI by NickeZ in https://github.com/mozilla/cbindgen/pull/1036
* Add `unstable_ir` feature flag that makes the ir pub by heesooy in https://github.com/mozilla/cbindgen/pull/1011
* Support generated a symbols file by TheElectronWill in https://github.com/mozilla/cbindgen/pull/916
# 0.27.0
* Revert: The `Config` struct now has a private member.
* Allow users to specify a crate version for bindings generation (#901).
* Update MSRV to 1.74 (#912, #987).
* Support #[deprecated] on enum variants (#933).
* Support integrating the package_version information in a header file comment (#939).
* Add a language backend (#942).
* Support generics with defaulted args (#959).
* Add `VaList` compatibility (#970).
# 0.26.0
* Fix swapping of `>>=` and `<<=` in constants.
* Add support for #[deprecated] (#860).
* Built-in support for bitflags 2.0.
* Support for "C-unwind" ABI.
* Generate bindings for non-public extern items if they are #[no_mangle].
## 0.25.0
* Re-release of yanked 0.24.6 as a major release
* Update MSRV to 1.57
* Support variadic arguments (`...`) (#805)
* Add --depfile option (#820)
* Breaking changes: The `Config` struct now has a private member.
## 0.24.6 (YANKED: depfile option was breaking, see #841)
* Update MSRV to 1.57
* Support variadic arguments (`...`) (#805)
* Add --depfile option (#820)
## 0.24.5
* Don't enforce tempfile version.
## 0.24.4
* Move expand infinite recursion fix (#799)
* Add with_cpp_compat to the builder (#796)
* Handle never type in return position consistently (#780)
* Fix warnings (#816, #819)
* Updated documentation (#788, #791, #792, #810, #823)
## 0.24.3
* Make struct expressions correctly generated through typedefs (#768).
## 0.24.2
* Make bitfield operators use explicit constructors.
## 0.24.1
* Add support for unary negation (#765).
* Make more bitfield operators constexpr (#765).
## 0.24.0
* Basic const generic support (#759, #760 #762).
* Suffixes on integer literals are now honored to avoid narrowing (#764).
## 0.23.0
* Better support for constexpr. (#756)
* constexpr is now enabled by default in C++ mode. You can use const.allow_constexpr=false to revert to previous behavior. (#756)
* Minimum syn version no longer parses old rust code. (#754)
## 0.22.0
* Support rename rule for union body members (#751).
* constant: Add support for associated constant expressions (#752).
* Fix regression in CamelCase rename rule (should be lowerCamelCase) (#750).
* enumeration: simplify standard types in variants (#749).
* Avoid generating and writing bindings when called recursively (#747).
* Cython: Omit per-variant tags in unions generated for Rust enums (#748).
* Update various dependencies.
## 0.21.0
* Update MSRV to 1.54.0
* Update clap to 3.1.
* Update heck to 0.4.0
* unraw identifiers
* Honor documentation_length in Cython.
* Add documentation_style to with short and full options
* Map RawFd to Int
* Respect remove_underscores config when prefixing name to enum
## 0.20.0
* Add Builder::with_using_namespaces. (#688)
* Ignore PhantomPinned. (#695)
* Simplify Pin<T> to T. (#697)
* Update --pretty=expanded to -Zunpretty=expanded. (#706)
## 0.19.0
* Simplify types in generics (#663)
* Use --profile=check for macro expansion (#671)
* Use exported name to prefix enum variants (#672)
* Fix path attribute handling in inline submodules (#679)
* Fix a stack overflow with some recursive typedefs (#680)
## 0.18.0
* Simplify types in nested types such as pointed-to types and function signatures (#661)
## 0.17.0
* Add with_parse_extra_bindings to builder. (#645)
* Support NonZero and fix incorrect simplification of Option<ptr> into ptr. (#647)
* Deal with name conflicts correctly in declaration type resolution. (#651)
* Support pointers to ZSTs. (#656)
## 0.16.0
* Remove artificial restriction on lifetime parameters on enums (#604)
* Add an option for converting usize/isize into size_t/ptrdiff_t. (#606)
* Allow controlling the cargo profile used for expansion. (#607)
* Support wider range of expressions in enum discriminants (#614)
* Support generation of Cython bindings (#590)
* Fixed some issues with style=tag and recursive structs (#615)
* Default C style to Both (as specified in docs) (#615)
* Fix resolution of path dependencies from certain modules. (#629)
* Support inlined definitions for tuple variants with a single field in C (#631)
Thanks to all the awesome contributors that contributed to this release.
## 0.15.0
* Allow customizing mangling of generic parameters in C (#575)
* Box<T> simplifies to T* in C (4ce324c)
* ManuallyDrop<T> and MaybeUninit<T> simplify to T in C, and are opaque in C++ (0076a17)
* C++ supports a derive-ostream annotation to derive serialization of structs, unions and enums (#582)
* Large character constants have been fixed on Windows (#586)
* Constants are now generated for typedefs, etc (#589)
* The `sort_by` configuration option has been made to work for constants (#587)
* Default sort order is source order now (sort_by = "None"), and can be changed by the above option (#587)
## 0.14.6
* Fixed the builds with older versions of rustc.
## 0.14.5
* Add support to specify line ending style (#568)
* Add cbindgen:ptrs-as-arrays annotation to allow making function
arguments C/C++ arrays.
## 0.14.4
* Allow to override the mangling separator (#502)
* cbindgen now handles better having ZSTs in template parameters, and
default template parameters (#563).
* Support for annotating nonnull pointers (#558)
* Fixed bitflags that overflow a signed integer (#556)
* Support for wildcard argument names (#550)
* Support for the never return type, with configurable annotation (#549)
* Properly reject arrays as function arguments (#540)
## 0.14.3
* Introduce cbindgen:ignore comment annotation, to allow ignoring items or modules. (#519)
* Support for casts in constant expressions. (#526)
* Make a non-fatal error a warning message. (#535)
* Add a --metadata option to the CLI, to allow passing pre-computed cargo metadata. (#538)
## 0.14.2
* Fixed minimal dependency versions. (#507)
* Add an option to write pragma once. (#511)
* Fix submodule scanning for implicit Rust 2018 modules. (#512)
* Fix dependency parsing / scanning to handle target-specific versions. (#513)
* Use heck for case conversion. (#514)
* Add support for verbatim content after includes. (#416)
* Allow to add attributes to most generated functions. (#515)
## 0.14.1
* Handle mangling pointers. (#508)
* Unconditionally generate a return statement in partialeq implementations. (#509)
## 0.14.0
* Minor tweak at how [export.exclude] is handled to allow excluding
generic instantiations in C mode. (#501)
* Documented cpp_compat option. (#496)
* Fixed a panic when parsing associated constants for a built-in type. (#494)
## 0.13.2
* Constants now have suitable documentation. (#471)
* Fixed some C warnings by emitting void when there are no arguments. (#470)
* Avoids reading cargo.toml when not needed, which can cause panics in workspace situations.
* Only write `default` cases if the switch is not exhaustive. (#475)
* Some warnings have been refined. (#477)
* Code generation for static arrays has been fixed. (#479)
* Opt-in support for constexpr in constants. (#481)
* Fix C code generation and some warnings when extremely large constants are used. (#490)
* Proper escaping of enum variants and fields. (#483)
* Added support for RefCell (as an opaque type) and Cell. (#489)
## 0.13.1
* Support `#[cfg]` on individual enum variants. (#469)
## 0.13.0
* Support 'swift_name' attributes on generated functions (#449)
* Add [export.pre_body] to config (#452)
* Handle new line in doc attribute (#454)
* Add support for `Self` in tagged enums, structs and unions (#455, #455, #456)
* Make sentinel variant respect regular config (#459)
* Fix layout of tagged enums with size under some configurations (#463)
* Add an option to allow configuring the order of function names in generated headers (#466)
## 0.12.2
* Fixed version detection with lockfile v2. https://github.com/mozilla/cbindgen/pull/446
* Added support for export_name on functions. https://github.com/mozilla/cbindgen/pull/447
## 0.12.1
* Added support for #[repr*64)] on enums. https://github.com/mozilla/cbindgen/pull/441
* Added support to generate plain enums instead of enum classes for C++. https://github.com/mozilla/cbindgen/pull/443
* Fixed dependency resolution with lockfile v2. https://github.com/mozilla/cbindgen/pull/438
## 0.12.0
* Added support for #[repr(align)] and #[repr(packed)] on structs and unions. https://github.com/mozilla/cbindgen/pull/431
* Added support to generate copy-assignment operators for enums. https://github.com/mozilla/cbindgen/pull/434
## 0.11.1
* More binary operators and expressions are supported. https://github.com/mozilla/cbindgen/pull/425
* More built-in bitflags operators. https://github.com/mozilla/cbindgen/pull/426
## 0.11.0
* Made rust char map to uint32_t. https://github.com/mozilla/cbindgen/pull/424
## 0.10.1
* Improved error message for missing config file. https://github.com/mozilla/cbindgen/pull/422
* Add missing header for char32_t. https://github.com/mozilla/cbindgen/pull/414
## 0.10.0
* Initialize struct literal with list-initializer for C++11 standard. https://github.com/mozilla/cbindgen/pull/401
* Surround namespace with __cplusplus ifdef in cpp_compat mode. https://github.com/mozilla/cbindgen/pull/407
* Add support for --quiet flag. https://github.com/mozilla/cbindgen/pull/400
* Map char to char32_t. https://github.com/mozilla/cbindgen/pull/396
* Improve binding_crate_ref() error message. https://github.com/mozilla/cbindgen/pull/395
* avoid prematurely returning during expansion. https://github.com/mozilla/cbindgen/pull/389
* Add support for adding "using namespace" statements. https://github.com/mozilla/cbindgen/pull/387
## 0.9.1
* Various improvements to comment output. https://github.com/mozilla/cbindgen/pull/370 / https://github.com/mozilla/cbindgen/pull/375.
* Fixed expand when ran from build.rs. https://github.com/mozilla/cbindgen/pull/371
* More debugging output for expansion. https://github.com/mozilla/cbindgen/pull/383
* New option to add a default private constructor in C++ tagged enums. https://github.com/mozilla/cbindgen/pull/377
* Syn and related dependencies updated to 1.0. https://github.com/mozilla/cbindgen/pull/379
## 0.9.0
* Support to generate C headers with C++ compatibility. https://github.com/mozilla/cbindgen/pull/349
* Fix include guard generation when no_includes is set. https://github.com/mozilla/cbindgen/pull/352
* Fix crate parsing order so that types from the binding crate are preferred in presence of conflicting names. https://github.com/mozilla/cbindgen/pull/355
* Add extra_bindings option to generate bindings for dependencies. https://github.com/mozilla/cbindgen/pull/362
* Clap dependency is optional now so it's feasible to avoid building it if cbindgen is used as a library. https://github.com/mozilla/cbindgen/pull/363
## 0.8.7
* Require C++11 to run the test-suite (#341, test-only)
* Improve mangling error message (#340)
* Add the ability to automatically derive copy-constructors for tagged enums (#339)
* Use placement new for constructing in tagged unions' helper methods (#333)
## 0.8.6
* Fixed a panic when missing a lock file
## 0.8.5
* Improved support for Rust 2018 modules
* Add possibility to autogenerate tagged union destructors
## 0.8.4
* Support for package renaming in Cargo.toml
* Improved error messages for |cargo metadata| failures
* Replaced 'test.py' harness with |cargo test|
* Char constants will now be escaped properly
* Visibility of constants will now be respected
* Added a C99 doc comment style
## 0.8.2
* Improvements to bitflags parsing
## 0.8.1
* Support for manual parsing and expanding of bitflags macros
* Support for optional tagged enum casts with asserts
## 0.8.0
* support for 'includes' without default includes
* removed dependency on ancient serde_derive!
## 0.7.1
* Fix for crash when unwrapping unsupported type with associated constants
## 0.7.0
* support for libc::ssize_t
* fixed some warnings on nightly
* fix for transparent associated constants
* switched more API's to use AsRef<Path>
* impl std::error::Error for cbindgen::Error
* now support putting user-defined content in item bodies
## 0.6.8
* ptrdiff_t is now a recognized primitive type
* named function type arguments are now propagated
* fixes for struct literals in constants
* reserved C/C++ keywords are now escaped automatically
* negative enum discriminants are now supported
* fix for prefixing and formatting variant names
* fix for snake_case formatter
* syn update
* doxygen style comments are now output by default
* VaList is now a recognized primitive type
* fix for comment processing
* constant is propagated into array types
* references are now supported in IR, and used for some helper method generation
* assignment helper functions will generate array copies if necessary
|