1# Version 0.5.11 2 3- Remove dependency on `cfg-if`. (#1072) 4 5# Version 0.5.10 6 7- Relax the minimum supported Rust version to 1.60. (#1056) 8- Optimize `Drop` implementation of bounded channel. (#1057) 9 10# Version 0.5.9 11 12- Bump the minimum supported Rust version to 1.61. (#1037) 13 14# Version 0.5.8 15 16- Fix race condition in unbounded channel. (#972) 17 18# Version 0.5.7 19 20**Note:** This release has been yanked due to bug fixed in 0.5.8. 21 22- Improve handling of very large timeout. (#953) 23 24# Version 0.5.6 25 26**Note:** This release has been yanked due to bug fixed in 0.5.8. 27 28- Bump the minimum supported Rust version to 1.38. (#877) 29 30# Version 0.5.5 31 32**Note:** This release has been yanked due to bug fixed in 0.5.8. 33 34- Replace Spinlock with Mutex. (#835) 35 36# Version 0.5.4 37 38**Note:** This release has been yanked due to bug fixed in 0.5.8. 39 40- Workaround a bug in upstream related to TLS access on AArch64 Linux. (#802) 41 42# Version 0.5.3 43 44**Note:** This release has been yanked. See [#802](https://github.com/crossbeam-rs/crossbeam/issues/802) for details. 45 46- Fix panic on very large timeout. (#798) 47 48# Version 0.5.2 49 50**Note:** This release has been yanked. See [#802](https://github.com/crossbeam-rs/crossbeam/issues/802) for details. 51 52- Fix stacked borrows violations when `-Zmiri-tag-raw-pointers` is enabled. (#763, #764) 53 54# Version 0.5.1 55 56**Note:** This release has been yanked due to bug fixed in 0.5.8. 57 58- Fix memory leak in unbounded channel. (#669) 59 60# Version 0.5.0 61 62- Bump the minimum supported Rust version to 1.36. 63- Add `at()` function. 64- Add `Sender::send_deadline()` and `Receiver::recv_deadline()` methods. 65- Add `Select::select_deadline()` and `Select::ready_deadline()` methods. 66- Add `std` (enabled by default) feature for forward compatibility. 67- Allow `select!` macro compile with `forbid(unsafe_code)`. 68 69# Version 0.4.4 70 71- Fix bug in release (yanking 0.4.3) 72- Fix UB and breaking change introduced in 0.4.3 73 74# Version 0.4.3 75 76**Note:** This release has been yanked. See [GHSA-v5m7-53cv-f3hx](https://github.com/crossbeam-rs/crossbeam/security/advisories/GHSA-v5m7-53cv-f3hx) for details. 77 78- Change license to "MIT OR Apache-2.0". 79 80# Version 0.4.2 81 82- Fix bug in release (yanking 0.4.1) 83 84# Version 0.4.1 85 86- Avoid time drift in `channel::tick`. (#456) 87- Fix unsoundness issues by adopting `MaybeUninit`. (#458) 88 89# Version 0.4.0 90 91- Bump the minimum required version to 1.28. 92- Bump `crossbeam-utils` to `0.7`. 93 94# Version 0.3.9 95 96- Fix a bug in reference counting. 97- Optimize `recv_timeout()`. 98- Add `Select::remove()`. 99- Various small improvements, code cleanup, more tests. 100 101# Version 0.3.8 102 103- Bump the minimum required version of `crossbeam-utils`. 104 105# Version 0.3.7 106 107- Remove `parking_lot` and `rand` dependencies. 108- Expand documentation. 109- Implement `Default` for `Select`. 110- Make `size_of::<Receiver<T>>()` smaller. 111- Several minor optimizations. 112- Add more tests. 113 114# Version 0.3.6 115 116- Fix a bug in initialization of unbounded channels. 117 118# Version 0.3.5 119 120- New implementation for unbounded channels. 121- A number of small performance improvements. 122- Remove `crossbeam-epoch` dependency. 123 124# Version 0.3.4 125 126- Bump `crossbeam-epoch` to `0.7`. 127- Improve documentation. 128 129# Version 0.3.3 130 131- Relax the lifetime in `SelectedOperation<'_>`. 132- Add `Select::try_ready()`, `Select::ready()`, and `Select::ready_timeout()`. 133- Update licensing notices. 134- Improve documentation. 135- Add methods `is_disconnected()`, `is_timeout()`, `is_empty()`, and `is_full()` on error types. 136 137# Version 0.3.2 138 139- More elaborate licensing notices. 140 141# Version 0.3.1 142 143- Update `crossbeam-utils` to `0.6`. 144 145# Version 0.3.0 146 147- Add a special `never` channel type. 148- Dropping all receivers now closes the channel. 149- The interface of sending and receiving methods is now very similar to those in v0.1. 150- The syntax for `send` in `select!` is now `send(sender, msg) -> res => body`. 151- The syntax for `recv` in `select!` is now `recv(receiver) -> res => body`. 152- New, more efficient interface for `Select` without callbacks. 153- Timeouts can be specified in `select!`. 154 155# Version 0.2.6 156 157- `Select` struct that can add cases dynamically. 158- More documentation (in particular, the FAQ section). 159- Optimize contended sends/receives in unbounded channels. 160 161# Version 0.2.5 162 163- Use `LocalKey::try_with` instead of `LocalKey::with`. 164- Remove helper macros `__crossbeam_channel*`. 165 166# Version 0.2.4 167 168- Make `select!` linearizable with other channel operations. 169- Update `crossbeam-utils` to `0.5.0`. 170- Update `parking_lot` to `0.6.3`. 171- Remove Mac OS X tests. 172 173# Version 0.2.3 174 175- Add Mac OS X tests. 176- Lower some memory orderings. 177- Eliminate calls to `mem::unitialized`, which caused bugs with ZST. 178 179# Version 0.2.2 180 181- Add more tests. 182- Update `crossbeam-epoch` to 0.5.0 183- Initialize the RNG seed to a random value. 184- Replace `libc::abort` with `std::process::abort`. 185- Ignore clippy warnings in `select!`. 186- Better interaction of `select!` with the NLL borrow checker. 187 188# Version 0.2.1 189 190- Fix compilation errors when using `select!` with `#[deny(unsafe_code)]`. 191 192# Version 0.2.0 193 194- Implement `IntoIterator<Item = T>` for `Receiver<T>`. 195- Add a new `select!` macro. 196- Add special channels `after` and `tick`. 197- Dropping receivers doesn't close the channel anymore. 198- Change the signature of `recv`, `send`, and `try_recv`. 199- Remove `Sender::is_closed` and `Receiver::is_closed`. 200- Remove `Sender::close` and `Receiver::close`. 201- Remove `Sender::send_timeout` and `Receiver::recv_timeout`. 202- Remove `Sender::try_send`. 203- Remove `Select` and `select_loop!`. 204- Remove all error types. 205- Remove `Iter`, `TryIter`, and `IntoIter`. 206- Remove the `nightly` feature. 207- Remove ordering operators for `Sender` and `Receiver`. 208 209# Version 0.1.3 210 211- Add `Sender::disconnect` and `Receiver::disconnect`. 212- Implement comparison operators for `Sender` and `Receiver`. 213- Allow arbitrary patterns in place of `msg` in `recv(r, msg)`. 214- Add a few conversion impls between error types. 215- Add benchmarks for `atomicring` and `mpmc`. 216- Add benchmarks for different message sizes. 217- Documentation improvements. 218- Update `crossbeam-epoch` to 0.4.0 219- Update `crossbeam-utils` to 0.3.0 220- Update `parking_lot` to 0.5 221- Update `rand` to 0.4 222 223# Version 0.1.2 224 225- Allow conditional cases in `select_loop!` macro. 226- Fix typos in documentation. 227- Fix deadlock in selection when all channels are disconnected and a timeout is specified. 228 229# Version 0.1.1 230 231- Implement `Debug` for `Sender`, `Receiver`, `Iter`, `TryIter`, `IntoIter`, and `Select`. 232- Implement `Default` for `Select`. 233 234# Version 0.1.0 235 236- First implementation of the channels. 237- Add `select_loop!` macro by @TimNN. 238