summaryrefslogtreecommitdiffstats
path: root/CHANGES
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGES')
-rw-r--r--CHANGES337
1 files changed, 337 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000..c81b81e
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,337 @@
+# 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