summaryrefslogtreecommitdiffstats
path: root/third_party/rust/hashbrown/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/hashbrown/CHANGELOG.md')
-rw-r--r--third_party/rust/hashbrown/CHANGELOG.md166
1 files changed, 148 insertions, 18 deletions
diff --git a/third_party/rust/hashbrown/CHANGELOG.md b/third_party/rust/hashbrown/CHANGELOG.md
index 3354b54bb3..8c4068089a 100644
--- a/third_party/rust/hashbrown/CHANGELOG.md
+++ b/third_party/rust/hashbrown/CHANGELOG.md
@@ -7,35 +7,157 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
## [Unreleased]
+### Changed
+
+- Changed `hash_set::{Entry, VacantEntry}::insert` to return `OccupiedEntry`. (#495)
+
+## [v0.14.5] - 2024-04-28
+
+### Fixed
+
+- Fixed index calculation in panic guard of `clone_from_impl`. (#511)
+
+## ~~[v0.14.4] - 2024-03-19~~
+
+This release was _yanked_ due to a breaking change.
+
+## [v0.14.3] - 2023-11-26
+
+### Added
+
+- Specialized `fold` implementation of iterators. (#480)
+
+### Fixed
+
+- Avoid using unstable `ptr::invalid_mut` on nightly. (#481)
+
+## [v0.14.2] - 2023-10-19
+
+### Added
+
+- `HashTable` type which provides a low-level but safe API with explicit hashing. (#466)
+
+### Fixed
+
+- Disabled the use of NEON instructions on big-endian ARM. (#475)
+- Disabled the use of NEON instructions on Miri. (#476)
+
+## [v0.14.1] - 2023-09-28
+
+### Added
+
+- Allow serializing `HashMap`s that use a custom allocator. (#449)
+
+### Changed
+
+- Use the `Equivalent` trait from the `equivalent` crate. (#442)
+- Slightly improved performance of table resizing. (#451)
+- Relaxed MSRV to 1.63.0. (#457)
+- Removed `Clone` requirement from custom allocators. (#468)
+
+### Fixed
+
+- Fixed custom allocators being leaked in some situations. (#439, #465)
+
+## [v0.14.0] - 2023-06-01
+
+### Added
+
+- Support for `allocator-api2` crate
+ for interfacing with custom allocators on stable. (#417)
+- Optimized implementation for ARM using NEON instructions. (#430)
+- Support for rkyv serialization. (#432)
+- `Equivalent` trait to look up values without `Borrow`. (#345)
+- `Hash{Map,Set}::raw_table_mut` is added whic returns a mutable reference. (#404)
+- Fast path for `clear` on empty tables. (#428)
+
+### Changed
+
+- Optimized insertion to only perform a single lookup. (#277)
+- `DrainFilter` (`drain_filter`) has been renamed to `ExtractIf` and no longer drops remaining
+ elements when the iterator is dropped. #(374)
+- Bumped MSRV to 1.64.0. (#431)
+- `{Map,Set}::raw_table` now returns an immutable reference. (#404)
+- `VacantEntry` and `OccupiedEntry` now use the default hasher if none is
+ specified in generics. (#389)
+- `RawTable::data_start` now returns a `NonNull` to match `RawTable::data_end`. (#387)
+- `RawIter::{reflect_insert, reflect_remove}` are now unsafe. (#429)
+- `RawTable::find_potential` is renamed to `find_or_find_insert_slot` and returns an `InsertSlot`. (#429)
+- `RawTable::remove` now also returns an `InsertSlot`. (#429)
+- `InsertSlot` can be used to insert an element with `RawTable::insert_in_slot`. (#429)
+- `RawIterHash` no longer has a lifetime tied to that of the `RawTable`. (#427)
+- The trait bounds of `HashSet::raw_table` have been relaxed to not require `Eq + Hash`. (#423)
+- `EntryRef::and_replace_entry_with` and `OccupiedEntryRef::replace_entry_with`
+ were changed to give a `&K` instead of a `&Q` to the closure.
+
+### Removed
+
+- Support for `bumpalo` as an allocator with custom wrapper.
+ Use `allocator-api2` feature in `bumpalo` to use it as an allocator
+ for `hashbrown` collections. (#417)
+
+## [v0.13.2] - 2023-01-12
+
+### Fixed
+
+- Added `#[inline(always)]` to `find_inner`. (#375)
+- Fixed `RawTable::allocation_info` for empty tables. (#376)
+
+## [v0.13.1] - 2022-11-10
+
+### Added
+
+- Added `Equivalent` trait to customize key lookups. (#350)
+- Added support for 16-bit targets. (#368)
+- Added `RawTable::allocation_info` which provides information about the memory
+ usage of a table. (#371)
+
+### Changed
+
+- Bumped MSRV to 1.61.0.
+- Upgraded to `ahash` 0.8. (#357)
+- Make `with_hasher_in` const. (#355)
+- The following methods have been removed from the `RawTable` API in favor of
+ safer alternatives:
+ - `RawTable::erase_no_drop` => Use `RawTable::erase` or `RawTable::remove` instead.
+ - `Bucket::read` => Use `RawTable::remove` instead.
+ - `Bucket::drop` => Use `RawTable::erase` instead.
+ - `Bucket::write` => Use `Bucket::as_mut` instead.
+
+### Fixed
+
+- Ensure that `HashMap` allocations don't exceed `isize::MAX`. (#362)
+- Fixed issue with field retagging in scopeguard. (#359)
+
## [v0.12.3] - 2022-07-17
-## Fixed
+### Fixed
- Fixed double-drop in `RawTable::clone_from`. (#348)
## [v0.12.2] - 2022-07-09
-## Added
+### Added
- Added `Entry` API for `HashSet`. (#342)
- Added `Extend<&'a (K, V)> for HashMap<K, V, S, A>`. (#340)
- Added length-based short-circuiting for hash table iteration. (#338)
- Added a function to access the `RawTable` of a `HashMap`. (#335)
-## Changed
+### Changed
- Edited `do_alloc` to reduce LLVM IR generated. (#341)
## [v0.12.1] - 2022-05-02
-## Fixed
+### Fixed
- Fixed underflow in `RawIterRange::size_hint`. (#325)
- Fixed the implementation of `Debug` for `ValuesMut` and `IntoValues`. (#325)
## [v0.12.0] - 2022-01-17
-## Added
+### Added
- Added `From<[T; N]>` and `From<[(K, V); N]>` for `HashSet` and `HashMap` respectively. (#297)
- Added an `allocator()` getter to HashMap and HashSet. (#257)
@@ -44,7 +166,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
- Implement `From<array>` on `HashSet` and `HashMap`. (#298)
- Added `entry_ref` API to `HashMap`. (#201)
-## Changed
+### Changed
- Bumped minimum Rust version to 1.56.1 and edition to 2021.
- Use u64 for the GroupWord on WebAssembly. (#271)
@@ -56,7 +178,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
- Rename `get_each_mut` to `get_many_mut` and align API with the stdlib. (#291)
- Don't hash the key when searching in an empty table. (#305)
-## Fixed
+### Fixed
- Guard against allocations exceeding isize::MAX. (#268)
- Made `RawTable::insert_no_grow` unsafe. (#254)
@@ -65,19 +187,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
## [v0.11.2] - 2021-03-25
-## Fixed
+### Fixed
- Added missing allocator type parameter to `HashMap`'s and `HashSet`'s `Clone` impls. (#252)
## [v0.11.1] - 2021-03-20
-## Fixed
+### Fixed
- Added missing `pub` modifier to `BumpWrapper`. (#251)
## [v0.11.0] - 2021-03-14
-## Added
+### Added
- Added safe `try_insert_no_grow` method to `RawTable`. (#229)
- Added support for `bumpalo` as an allocator without the `nightly` feature. (#231)
- Implemented `Default` for `RawTable`. (#237)
@@ -86,22 +208,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
- Added `From<HashMap<T, ()>>` for `HashSet<T>`. (#235)
- Added `try_insert` method to `HashMap`. (#247)
-## Changed
+### Changed
- The minimum Rust version has been bumped to 1.49.0. (#230)
- Significantly improved compilation times by reducing the amount of generated IR. (#205)
-## Removed
+### Removed
- We no longer re-export the unstable allocator items from the standard library, nor the stable shims approximating the same. (#227)
- Removed hasher specialization support from `aHash`, which was resulting in inconsistent hashes being generated for a key. (#248)
-## Fixed
+### Fixed
- Fixed union length comparison. (#228)
## ~~[v0.10.0] - 2021-01-16~~
This release was _yanked_ due to inconsistent hashes being generated with the `nightly` feature. (#248)
-## Changed
+### Changed
- Parametrized `RawTable`, `HashSet` and `HashMap` over an allocator. (#133)
- Improved branch prediction hints on stable. (#209)
- Optimized hashing of primitive types with AHash using specialization. (#207)
@@ -109,7 +231,7 @@ This release was _yanked_ due to inconsistent hashes being generated with the `n
## [v0.9.1] - 2020-09-28
-## Added
+### Added
- Added safe methods to `RawTable` (#202):
- `get`: `find` and `as_ref`
- `get_mut`: `find` and `as_mut`
@@ -117,7 +239,7 @@ This release was _yanked_ due to inconsistent hashes being generated with the `n
- `remove_entry`: `find` and `remove`
- `erase_entry`: `find` and `erase`
-## Changed
+### Changed
- Removed `from_key_hashed_nocheck`'s `Q: Hash`. (#200)
- Made `RawTable::drain` safe. (#201)
@@ -215,7 +337,7 @@ This release was _yanked_ due to inconsistent hashes being generated with the `n
## [v0.6.2] - 2019-10-23
### Added
-- Added an `inline-more` feature (enabled by default) which allows choosing a tradeoff between
+- Added an `inline-more` feature (enabled by default) which allows choosing a tradeoff between
runtime performance and compilation time. (#119)
## [v0.6.1] - 2019-10-04
@@ -363,7 +485,15 @@ This release was _yanked_ due to a breaking change for users of `no-default-feat
- Initial release
-[Unreleased]: https://github.com/rust-lang/hashbrown/compare/v0.12.3...HEAD
+[Unreleased]: https://github.com/rust-lang/hashbrown/compare/v0.14.5...HEAD
+[v0.14.5]: https://github.com/rust-lang/hashbrown/compare/v0.14.4...v0.14.5
+[v0.14.4]: https://github.com/rust-lang/hashbrown/compare/v0.14.3...v0.14.4
+[v0.14.3]: https://github.com/rust-lang/hashbrown/compare/v0.14.2...v0.14.3
+[v0.14.2]: https://github.com/rust-lang/hashbrown/compare/v0.14.1...v0.14.2
+[v0.14.1]: https://github.com/rust-lang/hashbrown/compare/v0.14.0...v0.14.1
+[v0.14.0]: https://github.com/rust-lang/hashbrown/compare/v0.13.2...v0.14.0
+[v0.13.2]: https://github.com/rust-lang/hashbrown/compare/v0.13.1...v0.13.2
+[v0.13.1]: https://github.com/rust-lang/hashbrown/compare/v0.12.3...v0.13.1
[v0.12.3]: https://github.com/rust-lang/hashbrown/compare/v0.12.2...v0.12.3
[v0.12.2]: https://github.com/rust-lang/hashbrown/compare/v0.12.1...v0.12.2
[v0.12.1]: https://github.com/rust-lang/hashbrown/compare/v0.12.0...v0.12.1