1# Version 0.8.19 2 3- Remove dependency on `cfg-if`. (#1072) 4 5# Version 0.8.18 6 7- Relax the minimum supported Rust version to 1.60. (#1056) 8- Improve scalability of `AtomicCell` fallback. (#1055) 9 10# Version 0.8.17 11 12- Bump the minimum supported Rust version to 1.61. (#1037) 13- Improve support for targets without atomic CAS or 64-bit atomic. (#1037) 14- Always implement `UnwindSafe` and `RefUnwindSafe` for `AtomicCell`. (#1045) 15- Improve compatibility with Miri, TSan, and loom. (#995, #1003) 16- Improve compatibility with unstable `oom=panic`. (#1045) 17- Improve implementation of `CachePadded`. (#1014, #1025) 18- Update `loom` dependency to 0.7. 19 20# Version 0.8.16 21 22- Improve implementation of `CachePadded`. (#967) 23 24# Version 0.8.15 25 26- Add `#[clippy::has_significant_drop]` to `ShardedLock{Read,Write}Guard`. (#958) 27- Improve handling of very large timeout. (#953) 28- Soft-deprecate `thread::scope()` in favor of the more efficient `std::thread::scope` that stabilized on Rust 1.63. (#954) 29 30# Version 0.8.14 31 32- Fix build script bug introduced in 0.8.13. (#932) 33 34# Version 0.8.13 35 36**Note:** This release has been yanked due to regression fixed in 0.8.14. 37 38- Improve support for custom targets. (#922) 39 40# Version 0.8.12 41 42- Removes the dependency on the `once_cell` crate to restore the MSRV. (#913) 43- Work around [rust-lang#98302](https://github.com/rust-lang/rust/issues/98302), which causes compile error on windows-gnu when LTO is enabled. (#913) 44 45# Version 0.8.11 46 47- Bump the minimum supported Rust version to 1.38. (#877) 48 49# Version 0.8.10 50 51- Fix unsoundness of `AtomicCell` on types containing niches. (#834) 52 This fix contains breaking changes, but they are allowed because this is a soundness bug fix. See #834 for more. 53 54# Version 0.8.9 55 56- Replace lazy_static with once_cell. (#817) 57 58# Version 0.8.8 59 60- Fix a bug when unstable `loom` support is enabled. (#787) 61 62# Version 0.8.7 63 64- Add `AtomicCell<{i*,u*}>::{fetch_max,fetch_min}`. (#785) 65- Add `AtomicCell<{i*,u*,bool}>::fetch_nand`. (#785) 66- Fix unsoundness of `AtomicCell<{i,u}64>` arithmetics on 32-bit targets that support `Atomic{I,U}64` (#781) 67 68# Version 0.8.6 69 70**Note:** This release has been yanked. See [GHSA-qc84-gqf4-9926](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-qc84-gqf4-9926) for details. 71 72- Re-add `AtomicCell<{i,u}64>::{fetch_add,fetch_sub,fetch_and,fetch_or,fetch_xor}` that were accidentally removed in 0.8.0 on targets that do not support `Atomic{I,U}64`. (#767) 73- Re-add `AtomicCell<{i,u}128>::{fetch_add,fetch_sub,fetch_and,fetch_or,fetch_xor}` that were accidentally removed in 0.8.0. (#767) 74 75# Version 0.8.5 76 77**Note:** This release has been yanked. See [GHSA-qc84-gqf4-9926](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-qc84-gqf4-9926) for details. 78 79- Add `AtomicCell::fetch_update`. (#704) 80- Support targets that do not have atomic CAS on stable Rust. (#698) 81 82# Version 0.8.4 83 84**Note:** This release has been yanked. See [GHSA-qc84-gqf4-9926](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-qc84-gqf4-9926) for details. 85 86- Bump `loom` dependency to version 0.5. (#686) 87 88# Version 0.8.3 89 90**Note:** This release has been yanked. See [GHSA-qc84-gqf4-9926](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-qc84-gqf4-9926) for details. 91 92- Make `loom` dependency optional. (#666) 93 94# Version 0.8.2 95 96**Note:** This release has been yanked. See [GHSA-qc84-gqf4-9926](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-qc84-gqf4-9926) for details. 97 98- Deprecate `AtomicCell::compare_and_swap`. Use `AtomicCell::compare_exchange` instead. (#619) 99- Add `Parker::park_deadline`. (#563) 100- Improve implementation of `CachePadded`. (#636) 101- Add unstable support for `loom`. (#487) 102 103# Version 0.8.1 104 105**Note:** This release has been yanked. See [GHSA-qc84-gqf4-9926](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-qc84-gqf4-9926) for details. 106 107- Make `AtomicCell::is_lock_free` always const fn. (#600) 108- Fix a bug in `seq_lock_wide`. (#596) 109- Remove `const_fn` dependency. (#600) 110- `crossbeam-utils` no longer fails to compile if unable to determine rustc version. Instead, it now displays a warning. (#604) 111 112# Version 0.8.0 113 114**Note:** This release has been yanked. See [GHSA-qc84-gqf4-9926](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-qc84-gqf4-9926) for details. 115 116- Bump the minimum supported Rust version to 1.36. 117- Remove deprecated `AtomicCell::get_mut()` and `Backoff::is_complete()` methods. 118- Remove `alloc` feature. 119- Make `CachePadded::new()` const function. 120- Make `AtomicCell::is_lock_free()` const function at 1.46+. 121- Implement `From<T>` for `AtomicCell<T>`. 122 123# Version 0.7.2 124 125- Fix bug in release (yanking 0.7.1) 126 127# Version 0.7.1 128 129- Bump `autocfg` dependency to version 1.0. (#460) 130- Make `AtomicCell` lockfree for u8, u16, u32, u64 sized values at 1.34+. (#454) 131 132# Version 0.7.0 133 134- Bump the minimum required version to 1.28. 135- Fix breakage with nightly feature due to rust-lang/rust#65214. 136- Apply `#[repr(transparent)]` to `AtomicCell`. 137- Make `AtomicCell::new()` const function at 1.31+. 138 139# Version 0.6.6 140 141- Add `UnwindSafe` and `RefUnwindSafe` impls for `AtomicCell`. 142- Add `AtomicCell::as_ptr()`. 143- Add `AtomicCell::take()`. 144- Fix a bug in `AtomicCell::compare_exchange()` and `AtomicCell::compare_and_swap()`. 145- Various documentation improvements. 146 147# Version 0.6.5 148 149- Rename `Backoff::is_complete()` to `Backoff::is_completed()`. 150 151# Version 0.6.4 152 153- Add `WaitGroup`, `ShardedLock`, and `Backoff`. 154- Add `fetch_*` methods for `AtomicCell<i128>` and `AtomicCell<u128>`. 155- Expand documentation. 156 157# Version 0.6.3 158 159- Add `AtomicCell`. 160- Improve documentation. 161 162# Version 0.6.2 163 164- Add `Parker`. 165- Improve documentation. 166 167# Version 0.6.1 168 169- Fix a soundness bug in `Scope::spawn()`. 170- Remove the `T: 'scope` bound on `ScopedJoinHandle`. 171 172# Version 0.6.0 173 174- Move `AtomicConsume` to `atomic` module. 175- `scope()` returns a `Result` of thread joins. 176- Remove `spawn_unchecked`. 177- Fix a soundness bug due to incorrect lifetimes. 178- Improve documentation. 179- Support nested scoped spawns. 180- Implement `Copy`, `Hash`, `PartialEq`, and `Eq` for `CachePadded`. 181- Add `CachePadded::into_inner()`. 182 183# Version 0.5.0 184 185- Reorganize sub-modules and rename functions. 186 187# Version 0.4.1 188 189- Fix a documentation link. 190 191# Version 0.4.0 192 193- `CachePadded` supports types bigger than 64 bytes. 194- Fix a bug in scoped threads where unitialized memory was being dropped. 195- Minimum required Rust version is now 1.25. 196 197# Version 0.3.2 198 199- Mark `load_consume` with `#[inline]`. 200 201# Version 0.3.1 202 203- `load_consume` on ARM and AArch64. 204 205# Version 0.3.0 206 207- Add `join` for scoped thread API. 208- Add `load_consume` for atomic load-consume memory ordering. 209- Remove `AtomicOption`. 210 211# Version 0.2.2 212 213- Support Rust 1.12.1. 214- Call `T::clone` when cloning a `CachePadded<T>`. 215 216# Version 0.2.1 217 218- Add `use_std` feature. 219 220# Version 0.2.0 221 222- Add `nightly` feature. 223- Use `repr(align(64))` on `CachePadded` with the `nightly` feature. 224- Implement `Drop` for `CachePadded<T>`. 225- Implement `Clone` for `CachePadded<T>`. 226- Implement `From<T>` for `CachePadded<T>`. 227- Implement better `Debug` for `CachePadded<T>`. 228- Write more tests. 229- Add this changelog. 230- Change cache line length to 64 bytes. 231- Remove `ZerosValid`. 232 233# Version 0.1.0 234 235- Old implementation of `CachePadded` from `crossbeam` version 0.3.0 236