Skip to content

Commit

Permalink
Merge remaining subcrates
Browse files Browse the repository at this point in the history
  • Loading branch information
Stjepan Glavina committed Nov 5, 2018
1 parent ac2f9a6 commit d9b1e34
Show file tree
Hide file tree
Showing 109 changed files with 28,622 additions and 385 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
/target/
/crossbeam-channel/benchmarks/*.txt
/crossbeam-channel/benchmarks/*.png
target/
Cargo.lock
15 changes: 9 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
language: rust

addons:
apt:
sources:
- ubuntu-toolchain-r-test
- llvm-toolchain-precise
- llvm-toolchain-precise-3.8

rust:
- 1.25.0
- 1.26.0
- stable
- beta
- nightly
- 1.26.0

install:
- cargo install cargo-tree

script:
# TODO(stjepang): Uncomment the following line once we fix the dependency tree
# - (cargo tree --duplicate | grep ^crossbeam) && exit 1
- ./ci/script.sh
- (cd crossbeam-utils && ./ci/script.sh)
4 changes: 4 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ rand = "0.5"
[workspace]
members = [
".",
"crossbeam-channel",
"crossbeam-deque",
"crossbeam-epoch",
"crossbeam-skiplist",
"crossbeam-utils",
]

Expand Down
3 changes: 0 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,10 @@

[![Build Status](https://travis-ci.org/crossbeam-rs/crossbeam.svg?branch=master)](
https://travis-ci.org/crossbeam-rs/crossbeam)

[![License](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg)](
https://github.com/crossbeam-rs/crossbeam)

[![Cargo](https://img.shields.io/crates/v/crossbeam.svg)](
https://crates.io/crates/crossbeam)

[![Documentation](https://docs.rs/crossbeam/badge.svg)](
https://docs.rs/crossbeam)

Expand Down
20 changes: 18 additions & 2 deletions ci/script.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,27 @@
#!/bin/bash

check_min_version() {
local rustc="`rustc -V | cut -d' ' -f2 | cut -d- -f1`"
if [[ "$rustc" != "`echo -e "$rustc\n$1" | sort -V | tail -n1`" ]]; then
echo "Unsupported Rust version: $1 < $rustc"
exit 0
fi
}
check_min_version 1.26.0

set -ex

cargo build
export RUSTFLAGS="-D warnings"

cargo build --no-default-features
cargo test

if [[ $TRAVIS_RUST_VERSION == nightly ]]; then
if [[ "$TRAVIS_RUST_VERSION" == "nightly" ]]; then
cargo test --features nightly
fi

# TODO(stjepang): Uncomment the following lines once we fix the dependency tree
# if [[ "$TRAVIS_RUST_VERSION" == "nightly" ]]; then
# cargo install cargo-tree
# (cargo tree --duplicate | grep "^crossbeam") && exit 1
# fi
93 changes: 93 additions & 0 deletions crossbeam-channel/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# 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.
27 changes: 27 additions & 0 deletions crossbeam-channel/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[package]
name = "crossbeam-channel"
# When publishing a new version:
# - Update CHANGELOG.md
# - Update README.md
# - Create "crossbeam-channel-X.Y.Z" git tag
version = "0.3.0"
authors = ["The Crossbeam Project Developers"]
license = "MIT/Apache-2.0"
readme = "README.md"
repository = "https://github.com/crossbeam-rs/crossbeam-channel"
homepage = "https://github.com/crossbeam-rs/crossbeam-channel"
documentation = "https://docs.rs/crossbeam-channel"
description = "Multi-producer multi-consumer channels for message passing"
keywords = ["channel", "mpmc", "select", "golang", "message"]
categories = ["algorithms", "concurrency", "data-structures"]

[dependencies]
crossbeam-epoch = "0.6.0"
crossbeam-utils = "0.5.0"
parking_lot = "0.6.3"
rand = "0.5.3"
smallvec = "0.6.2"

[dev-dependencies]
crossbeam = "0.3.0"
signal-hook = "0.1.5"
Loading

0 comments on commit d9b1e34

Please sign in to comment.