1# Version 0.8.7 2 3- Add `AtomicCell<{i*,u*}>::{fetch_max,fetch_min}`. (#785) 4- Add `AtomicCell<{i*,u*,bool}>::fetch_nand`. (#785) 5- Fix unsoundness of `AtomicCell<{i,u}64>` arithmetics on 32-bit targets that support `Atomic{I,U}64` (#781) 6 7# Version 0.8.6 8 9- 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) 10- 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) 11 12# Version 0.8.5 13 14- Add `AtomicCell::fetch_update`. (#704) 15- Support targets that do not have atomic CAS on stable Rust. (#698) 16 17# Version 0.8.4 18 19- Bump `loom` dependency to version 0.5. (#686) 20 21# Version 0.8.3 22 23- Make `loom` dependency optional. (#666) 24 25# Version 0.8.2 26 27- Deprecate `AtomicCell::compare_and_swap`. Use `AtomicCell::compare_exchange` instead. (#619) 28- Add `Parker::park_deadline`. (#563) 29- Improve implementation of `CachePadded`. (#636) 30- Add unstable support for `loom`. (#487) 31 32# Version 0.8.1 33 34- Make `AtomicCell::is_lock_free` always const fn. (#600) 35- Fix a bug in `seq_lock_wide`. (#596) 36- Remove `const_fn` dependency. (#600) 37- `crossbeam-utils` no longer fails to compile if unable to determine rustc version. Instead, it now displays a warning. (#604) 38 39# Version 0.8.0 40 41- Bump the minimum supported Rust version to 1.36. 42- Remove deprecated `AtomicCell::get_mut()` and `Backoff::is_complete()` methods. 43- Remove `alloc` feature. 44- Make `CachePadded::new()` const function. 45- Make `AtomicCell::is_lock_free()` const function at 1.46+. 46- Implement `From<T>` for `AtomicCell<T>`. 47 48# Version 0.7.2 49 50- Fix bug in release (yanking 0.7.1) 51 52# Version 0.7.1 53 54- Bump `autocfg` dependency to version 1.0. (#460) 55- Make `AtomicCell` lockfree for u8, u16, u32, u64 sized values at 1.34+. (#454) 56 57# Version 0.7.0 58 59- Bump the minimum required version to 1.28. 60- Fix breakage with nightly feature due to rust-lang/rust#65214. 61- Apply `#[repr(transparent)]` to `AtomicCell`. 62- Make `AtomicCell::new()` const function at 1.31+. 63 64# Version 0.6.6 65 66- Add `UnwindSafe` and `RefUnwindSafe` impls for `AtomicCell`. 67- Add `AtomicCell::as_ptr()`. 68- Add `AtomicCell::take()`. 69- Fix a bug in `AtomicCell::compare_exchange()` and `AtomicCell::compare_and_swap()`. 70- Various documentation improvements. 71 72# Version 0.6.5 73 74- Rename `Backoff::is_complete()` to `Backoff::is_completed()`. 75 76# Version 0.6.4 77 78- Add `WaitGroup`, `ShardedLock`, and `Backoff`. 79- Add `fetch_*` methods for `AtomicCell<i128>` and `AtomicCell<u128>`. 80- Expand documentation. 81 82# Version 0.6.3 83 84- Add `AtomicCell`. 85- Improve documentation. 86 87# Version 0.6.2 88 89- Add `Parker`. 90- Improve documentation. 91 92# Version 0.6.1 93 94- Fix a soundness bug in `Scope::spawn()`. 95- Remove the `T: 'scope` bound on `ScopedJoinHandle`. 96 97# Version 0.6.0 98 99- Move `AtomicConsume` to `atomic` module. 100- `scope()` returns a `Result` of thread joins. 101- Remove `spawn_unchecked`. 102- Fix a soundness bug due to incorrect lifetimes. 103- Improve documentation. 104- Support nested scoped spawns. 105- Implement `Copy`, `Hash`, `PartialEq`, and `Eq` for `CachePadded`. 106- Add `CachePadded::into_inner()`. 107 108# Version 0.5.0 109 110- Reorganize sub-modules and rename functions. 111 112# Version 0.4.1 113 114- Fix a documentation link. 115 116# Version 0.4.0 117 118- `CachePadded` supports types bigger than 64 bytes. 119- Fix a bug in scoped threads where unitialized memory was being dropped. 120- Minimum required Rust version is now 1.25. 121 122# Version 0.3.2 123 124- Mark `load_consume` with `#[inline]`. 125 126# Version 0.3.1 127 128- `load_consume` on ARM and AArch64. 129 130# Version 0.3.0 131 132- Add `join` for scoped thread API. 133- Add `load_consume` for atomic load-consume memory ordering. 134- Remove `AtomicOption`. 135 136# Version 0.2.2 137 138- Support Rust 1.12.1. 139- Call `T::clone` when cloning a `CachePadded<T>`. 140 141# Version 0.2.1 142 143- Add `use_std` feature. 144 145# Version 0.2.0 146 147- Add `nightly` feature. 148- Use `repr(align(64))` on `CachePadded` with the `nightly` feature. 149- Implement `Drop` for `CachePadded<T>`. 150- Implement `Clone` for `CachePadded<T>`. 151- Implement `From<T>` for `CachePadded<T>`. 152- Implement better `Debug` for `CachePadded<T>`. 153- Write more tests. 154- Add this changelog. 155- Change cache line length to 64 bytes. 156- Remove `ZerosValid`. 157 158# Version 0.1.0 159 160- Old implementation of `CachePadded` from `crossbeam` version 0.3.0 161