1# Version 0.3.8 2 3- Bump the minimum required version of `crossbeam-utils`. 4 5# Version 0.3.7 6 7- Remove `parking_lot` and `rand` dependencies. 8- Expand documentation. 9- Implement `Default` for `Select`. 10- Make `size_of::<Receiver<T>>()` smaller. 11- Several minor optimizations. 12- Add more tests. 13 14# Version 0.3.6 15 16- Fix a bug in initialization of unbounded channels. 17 18# Version 0.3.5 19 20- New implementation for unbounded channels. 21- A number of small performance improvements. 22- Remove `crossbeam-epoch` dependency. 23 24# Version 0.3.4 25 26- Bump `crossbeam-epoch` to `0.7`. 27- Improve documentation. 28 29# Version 0.3.3 30 31- Relax the lifetime in `SelectedOperation<'_>`. 32- Add `Select::try_ready()`, `Select::ready()`, and `Select::ready_timeout()`. 33- Update licensing notices. 34- Improve documentation. 35- Add methods `is_disconnected()`, `is_timeout()`, `is_empty()`, and `is_full()` on error types. 36 37# Version 0.3.2 38 39- More elaborate licensing notices. 40 41# Version 0.3.1 42 43- Update `crossbeam-utils` to `0.6`. 44 45# Version 0.3.0 46 47- Add a special `never` channel type. 48- Dropping all receivers now closes the channel. 49- The interface of sending and receiving methods is now very similar to those in v0.1. 50- The syntax for `send` in `select!` is now `send(sender, msg) -> res => body`. 51- The syntax for `recv` in `select!` is now `recv(receiver) -> res => body`. 52- New, more efficient interface for `Select` without callbacks. 53- Timeouts can be specified in `select!`. 54 55# Version 0.2.6 56 57- `Select` struct that can add cases dynamically. 58- More documentation (in particular, the FAQ section). 59- Optimize contended sends/receives in unbounded channels. 60 61# Version 0.2.5 62 63- Use `LocalKey::try_with` instead of `LocalKey::with`. 64- Remove helper macros `__crossbeam_channel*`. 65 66# Version 0.2.4 67 68- Make `select!` linearizable with other channel operations. 69- Update `crossbeam-utils` to `0.5.0`. 70- Update `parking_lot` to `0.6.3`. 71- Remove Mac OS X tests. 72 73# Version 0.2.3 74 75- Add Mac OS X tests. 76- Lower some memory orderings. 77- Eliminate calls to `mem::unitialized`, which caused bugs with ZST. 78 79# Version 0.2.2 80 81- Add more tests. 82- Update `crossbeam-epoch` to 0.5.0 83- Initialize the RNG seed to a random value. 84- Replace `libc::abort` with `std::process::abort`. 85- Ignore clippy warnings in `select!`. 86- Better interaction of `select!` with the NLL borrow checker. 87 88# Version 0.2.1 89 90- Fix compilation errors when using `select!` with `#[deny(unsafe_code)]`. 91 92# Version 0.2.0 93 94- Implement `IntoIterator<Item = T>` for `Receiver<T>`. 95- Add a new `select!` macro. 96- Add special channels `after` and `tick`. 97- Dropping receivers doesn't close the channel anymore. 98- Change the signature of `recv`, `send`, and `try_recv`. 99- Remove `Sender::is_closed` and `Receiver::is_closed`. 100- Remove `Sender::close` and `Receiver::close`. 101- Remove `Sender::send_timeout` and `Receiver::recv_timeout`. 102- Remove `Sender::try_send`. 103- Remove `Select` and `select_loop!`. 104- Remove all error types. 105- Remove `Iter`, `TryIter`, and `IntoIter`. 106- Remove the `nightly` feature. 107- Remove ordering operators for `Sender` and `Receiver`. 108 109# Version 0.1.3 110 111- Add `Sender::disconnect` and `Receiver::disconnect`. 112- Implement comparison operators for `Sender` and `Receiver`. 113- Allow arbitrary patterns in place of `msg` in `recv(r, msg)`. 114- Add a few conversion impls between error types. 115- Add benchmarks for `atomicring` and `mpmc`. 116- Add benchmarks for different message sizes. 117- Documentation improvements. 118- Update `crossbeam-epoch` to 0.4.0 119- Update `crossbeam-utils` to 0.3.0 120- Update `parking_lot` to 0.5 121- Update `rand` to 0.4 122 123# Version 0.1.2 124 125- Allow conditional cases in `select_loop!` macro. 126- Fix typos in documentation. 127- Fix deadlock in selection when all channels are disconnected and a timeout is specified. 128 129# Version 0.1.1 130 131- Implement `Debug` for `Sender`, `Receiver`, `Iter`, `TryIter`, `IntoIter`, and `Select`. 132- Implement `Default` for `Select`. 133 134# Version 0.1.0 135 136- First implementation of the channels. 137- Add `select_loop!` macro by @TimNN. 138