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