aboutsummaryrefslogtreecommitdiff
path: root/CHANGELOG.md
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r--CHANGELOG.md176
1 files changed, 176 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..0a53e8a
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,176 @@
+# Version 0.5.0
+
+- Bump the minimum supported Rust version to 1.36.
+- Add `at()` function.
+- Add `Sender::send_deadline()` and `Receiver::recv_deadline()` methods.
+- Add `Select::select_deadline()` and `Select::ready_deadline()` methods.
+- Add `std` (enabled by default) feature for forward compatibility.
+- Allow `select!` macro compile with `forbid(unsafe_code)`.
+
+# Version 0.4.4
+
+- Fix bug in release (yanking 0.4.3)
+- Fix UB and breaking change introduced in 0.4.3
+
+# Version 0.4.3
+
+- Change license to "MIT OR Apache-2.0".
+
+# Version 0.4.2
+
+- Fix bug in release (yanking 0.4.1)
+
+# Version 0.4.1
+
+- Avoid time drift in `channel::tick`. (#456)
+- Fix unsoundness issues by adopting `MaybeUninit`. (#458)
+
+# Version 0.4.0
+
+- Bump the minimum required version to 1.28.
+- Bump `crossbeam-utils` to `0.7`.
+
+# Version 0.3.9
+
+- Fix a bug in reference counting.
+- Optimize `recv_timeout()`.
+- Add `Select::remove()`.
+- Various small improvements, code cleanup, more tests.
+
+# Version 0.3.8
+
+- Bump the minimum required version of `crossbeam-utils`.
+
+# Version 0.3.7
+
+- Remove `parking_lot` and `rand` dependencies.
+- Expand documentation.
+- Implement `Default` for `Select`.
+- Make `size_of::<Receiver<T>>()` smaller.
+- Several minor optimizations.
+- Add more tests.
+
+# Version 0.3.6
+
+- Fix a bug in initialization of unbounded channels.
+
+# Version 0.3.5
+
+- New implementation for unbounded channels.
+- A number of small performance improvements.
+- Remove `crossbeam-epoch` dependency.
+
+# Version 0.3.4
+
+- Bump `crossbeam-epoch` to `0.7`.
+- Improve documentation.
+
+# Version 0.3.3
+
+- Relax the lifetime in `SelectedOperation<'_>`.
+- Add `Select::try_ready()`, `Select::ready()`, and `Select::ready_timeout()`.
+- Update licensing notices.
+- Improve documentation.
+- Add methods `is_disconnected()`, `is_timeout()`, `is_empty()`, and `is_full()` on error types.
+
+# Version 0.3.2
+
+- More elaborate licensing notices.
+
+# Version 0.3.1
+
+- Update `crossbeam-utils` to `0.6`.
+
+# Version 0.3.0
+
+- Add a special `never` channel type.
+- Dropping all receivers now closes the channel.
+- The interface of sending and receiving methods is now very similar to those in v0.1.
+- The syntax for `send` in `select!` is now `send(sender, msg) -> res => body`.
+- The syntax for `recv` in `select!` is now `recv(receiver) -> res => body`.
+- New, more efficient interface for `Select` without callbacks.
+- Timeouts can be specified in `select!`.
+
+# Version 0.2.6
+
+- `Select` struct that can add cases dynamically.
+- More documentation (in particular, the FAQ section).
+- Optimize contended sends/receives in unbounded channels.
+
+# Version 0.2.5
+
+- Use `LocalKey::try_with` instead of `LocalKey::with`.
+- Remove helper macros `__crossbeam_channel*`.
+
+# Version 0.2.4
+
+- Make `select!` linearizable with other channel operations.
+- Update `crossbeam-utils` to `0.5.0`.
+- Update `parking_lot` to `0.6.3`.
+- Remove Mac OS X tests.
+
+# Version 0.2.3
+
+- Add Mac OS X tests.
+- Lower some memory orderings.
+- Eliminate calls to `mem::unitialized`, which caused bugs with ZST.
+
+# Version 0.2.2
+
+- Add more tests.
+- Update `crossbeam-epoch` to 0.5.0
+- Initialize the RNG seed to a random value.
+- Replace `libc::abort` with `std::process::abort`.
+- Ignore clippy warnings in `select!`.
+- Better interaction of `select!` with the NLL borrow checker.
+
+# Version 0.2.1
+
+- Fix compilation errors when using `select!` with `#[deny(unsafe_code)]`.
+
+# Version 0.2.0
+
+- Implement `IntoIterator<Item = T>` for `Receiver<T>`.
+- Add a new `select!` macro.
+- Add special channels `after` and `tick`.
+- Dropping receivers doesn't close the channel anymore.
+- Change the signature of `recv`, `send`, and `try_recv`.
+- Remove `Sender::is_closed` and `Receiver::is_closed`.
+- Remove `Sender::close` and `Receiver::close`.
+- Remove `Sender::send_timeout` and `Receiver::recv_timeout`.
+- Remove `Sender::try_send`.
+- Remove `Select` and `select_loop!`.
+- Remove all error types.
+- Remove `Iter`, `TryIter`, and `IntoIter`.
+- Remove the `nightly` feature.
+- Remove ordering operators for `Sender` and `Receiver`.
+
+# Version 0.1.3
+
+- Add `Sender::disconnect` and `Receiver::disconnect`.
+- Implement comparison operators for `Sender` and `Receiver`.
+- Allow arbitrary patterns in place of `msg` in `recv(r, msg)`.
+- Add a few conversion impls between error types.
+- Add benchmarks for `atomicring` and `mpmc`.
+- Add benchmarks for different message sizes.
+- Documentation improvements.
+- Update `crossbeam-epoch` to 0.4.0
+- Update `crossbeam-utils` to 0.3.0
+- Update `parking_lot` to 0.5
+- Update `rand` to 0.4
+
+# Version 0.1.2
+
+- Allow conditional cases in `select_loop!` macro.
+- Fix typos in documentation.
+- Fix deadlock in selection when all channels are disconnected and a timeout is specified.
+
+# Version 0.1.1
+
+- Implement `Debug` for `Sender`, `Receiver`, `Iter`, `TryIter`, `IntoIter`, and `Select`.
+- Implement `Default` for `Select`.
+
+# Version 0.1.0
+
+- First implementation of the channels.
+- Add `select_loop!` macro by @TimNN.