Skip to content

Commit

Permalink
Nim port
Browse files Browse the repository at this point in the history
tests/expectations/infinite-recursion-typedef-monomorph.compat.c
  • Loading branch information
arnetheduck committed Oct 20, 2023
1 parent 703b53c commit e80a85f
Show file tree
Hide file tree
Showing 182 changed files with 4,229 additions and 2,141 deletions.
339 changes: 4 additions & 335 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,337 +1,6 @@
# 0.26.0
## 0.0.2
* Update to 0.2.26

* 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.0.1

## 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
* initial port from cbindgen 0.2.12
Loading

0 comments on commit e80a85f

Please sign in to comment.