You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
11 KiB
11 KiB
Change Log
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased
v0.11.2 - 2021-03-25
Fixed
- Added missing allocator type parameter to
HashMap's andHashSet'sCloneimpls. (#252)
v0.11.1 - 2021-03-20
Fixed
- Added missing
pubmodifier toBumpWrapper. (#251)
v0.11.0 - 2021-03-14
Added
- Added safe
try_insert_no_growmethod toRawTable. (#229) - Added support for
bumpaloas an allocator without thenightlyfeature. (#231) - Implemented
DefaultforRawTable. (#237) - Added new safe methods
RawTable::get_each_mut,HashMap::get_each_mut, andHashMap::get_each_key_value_mut. (#239) - Added
From<HashMap<T, ()>>forHashSet<T>. (#235) - Added
try_insertmethod toHashMap. (#247)
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
- 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 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
- Parametrized
RawTable,HashSetandHashMapover an allocator. (#133) - Improved branch prediction hints on stable. (#209)
- Optimized hashing of primitive types with AHash using specialization. (#207)
- Only instantiate
RawTable's reserve functions once per key-value. (#204)
v0.9.1 - 2020-09-28
Added
- Added safe methods to
RawTable(#202):get:findandas_refget_mut:findandas_mutinsert_entry:insertandas_mutremove_entry:findandremoveerase_entry:findanderase
Changed
v0.9.0 - 2020-09-03
Fixed
drain_filternow removes and yields items that do match the predicate, rather than items that don't. This is a breaking change to match the behavior of thedrain_filtermethods instd. (#187)
Added
- Added
replace_entry_withtoOccupiedEntry, andand_replace_entry_withtoEntry. (#190) - Implemented
FusedIteratorandsize_hintforDrainFilter. (#188)
Changed
- The minimum Rust version has been bumped to 1.36 (due to
crossbeamdependency). (#193) - Updated
ahashdependency to 0.4. (#198) HashMap::with_hasherandHashSet::with_hasherare nowconst fn. (#195)- Removed
T: Hash + EqandS: BuildHasherbounds onHashSet::new,with_capacity,with_hasher, andwith_capacity_and_hasher. (#185)
v0.8.2 - 2020-08-08
Changed
v0.8.1 - 2020-07-16
Added
- Added
eraseandremovetoRawTable. (#171) - Added
try_with_capacitytoRawTable. (#174) - Added methods that allow re-using a
RawIterforRawDrain,RawIntoIter, andRawParIter. (#175) - Added
reflect_removeandreflect_inserttoRawIter. (#175) - Added a
drain_filterfunction toHashSet. (#179)
Changed
- Deprecated
RawTable::erase_no_dropin favor oferaseandremove. (#176) insert_no_growis now exposed under the"raw"feature. (#180)
v0.8.0 - 2020-06-18
Fixed
- Marked
RawTable::par_iterasunsafe. (#157)
Changed
- Reduced the size of
HashMap. (#159) - No longer create tables with a capacity of 1 element. (#162)
- Removed
K: Eq + Hashbounds onretain. (#163) - Pulled in
HashMapchanges from rust-lang/rust (#164):extend_onesupport on nightly.CollectionAllocErrrenamed toTryReserveError.- Added
HashSet::get_or_insert_owned. DefaultforHashSetno longer requiresT: Eq + HashandS: BuildHasher.
v0.7.2 - 2020-04-27
Added
- Added
or_insert_with_keytoEntry. (#152)
Fixed
- Partially reverted
Cloneoptimization which was unsound. (#154)
Changed
- Disabled use of
const-randomby default, which prevented reproducible builds. (#155) - Optimized
repeatfunction. (#150) - Use
NonNullfor buckets, which improves codegen for iterators. (#148)
v0.7.1 - 2020-03-16
Added
- Added
HashMap::get_key_value_mut. (#145)
Changed
- Optimized
Cloneimplementation. (#146)
v0.7.0 - 2020-01-31
Added
- Added a
drain_filterfunction toHashMap. (#135)
Changed
- Updated
ahashdependency to 0.3. (#141) - Optimized set union and intersection. (#130)
raw_entrycan now be used without requiringS: BuildHasher. (#123)RawTable::bucket_indexcan now be used under therawfeature. (#128)
v0.6.3 - 2019-10-31
Added
- Added an
ahash-compile-time-rngfeature (enabled by default) which allows disabling thecompile-time-rngfeature inahashto work around a Cargo bug. (#125)
v0.6.2 - 2019-10-23
Added
- Added an
inline-morefeature (enabled by default) which allows choosing a tradeoff between runtime performance and compilation time. (#119)
v0.6.1 - 2019-10-04
Added
- Added
Entry::insertandRawEntryMut::insert. (#118)
Changed
Group::static_emptywas changed from aconstto astatic(#116).
v0.6.0 - 2019-08-13
Fixed
- Fixed AHash accidentally depending on
std. (#110)
Changed
- The minimum Rust version has been bumped to 1.32 (due to
randdependency).
v0.5.1 - 2019-08-04
This release was yanked due to a breaking change for users of no-default-features.
Added
- The experimental and unsafe
RawTableAPI is available under the "raw" feature. (#108) - Added entry-like methods for
HashSet. (#98)
Changed
- Changed the default hasher from FxHash to AHash. (#97)
hashbrownis now fullyno_stdon recent Rust versions (1.36+). (#96)
Fixed
- We now avoid growing the table during insertions when it wasn't necessary. (#106)
RawOccupiedEntryMutnow properly implementsSendandSync. (#100)- Relaxed
lazy_staticversion. (#92)
v0.5.0 - 2019-06-12
Fixed
- Resize with a more conservative amount of space after deletions. (#86)
Changed
- Exposed the Layout of the failed allocation in CollectionAllocErr::AllocErr. (#89)
v0.4.0 - 2019-05-30
Fixed
- Fixed
Sendtrait bounds onIterMutnot matching the libstd one. (#82)
v0.3.1 - 2019-05-30
Fixed
- Fixed incorrect use of slice in unsafe code. (#80)
v0.3.0 - 2019-04-23
Changed
- Changed shrink_to to not panic if min_capacity < capacity. (#67)
Fixed
- Worked around emscripten bug emscripten-core/emscripten-fastcomp#258. (#66)
v0.2.2 - 2019-04-16
Fixed
v0.2.1 - 2019-04-14
Changed
- Use for_each in map Extend and FromIterator. (#58)
- Improved worst-case performance of HashSet.is_subset. (#61)
Fixed
- Removed incorrect debug_assert. (#60)
v0.2.0 - 2019-03-31
Changed
- The code has been updated to Rust 2018 edition. This means that the minimum Rust version has been bumped to 1.31 (2018 edition).
Added
- Added
insert_with_hasherto the raw_entry API to allowK: !(Hash + Eq). (#54) - Added support for using hashbrown as the hash table implementation in libstd. (#46)
Fixed
- Fixed cargo build with minimal-versions. (#45)
- Fixed
#[may_dangle]attributes to match the libstdHashMap. (#46) - ZST keys and values are now handled properly. (#46)
v0.1.8 - 2019-01-14
Added
- Rayon parallel iterator support (#37)
raw_entrysupport (#31)#[may_dangle]on nightly (#31)try_reservesupport (#31)
Fixed
- Fixed variance on
IterMut. (#31)
v0.1.7 - 2018-12-05
Fixed
- Fixed non-SSE version of convert_special_to_empty_and_full_to_deleted. (#32)
- Fixed overflow in rehash_in_place. (#33)
v0.1.6 - 2018-11-17
Fixed
- Fixed compile error on nightly. (#29)
v0.1.5 - 2018-11-08
Fixed
- Fixed subtraction overflow in generic::Group::match_byte. (#28)
v0.1.4 - 2018-11-04
Fixed
- Fixed a bug in the
erase_no_dropimplementation. (#26)
v0.1.3 - 2018-11-01
Added
- Serde support. (#14)
Fixed
- Make the compiler inline functions more aggressively. (#20)
v0.1.2 - 2018-10-31
Fixed
clearsegfaults when called on an empty table. (#13)
v0.1.1 - 2018-10-30
Fixed
erase_no_dropoptimization not triggering in the SSE2 implementation. (#3)- Missing
SendandSyncfor hash map and iterator types. (#7) - Bug when inserting into a table smaller than the group width. (#5)
v0.1.0 - 2018-10-29
- Initial release