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