Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump MSRV to 1.36 #504

Merged
4 commits merged into from
May 20, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 1 addition & 7 deletions .github/workflows/ci.yml
Expand Up @@ -25,7 +25,7 @@ jobs:
- crossbeam-skiplist
- crossbeam-utils
rust:
- 1.28.0
- 1.36.0
- nightly
steps:
- uses: actions/checkout@master
Expand All @@ -36,12 +36,6 @@ jobs:
run: |
rustup target add thumbv7m-none-eabi
rustup target add thumbv6m-none-eabi
# cfg-if 0.1.10 requires Rust 1.31+ so downgrade it.
- name: Downgrade dependencies
if: matrix.rust == '1.28.0'
run: |
cargo generate-lockfile
cargo update -p cfg-if --precise 0.1.9
- name: Test
run: ./ci/${{ matrix.crates }}.sh

Expand Down
6 changes: 4 additions & 2 deletions README.md
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam)
https://crates.io/crates/crossbeam)
[![Documentation](https://docs.rs/crossbeam/badge.svg)](
https://docs.rs/crossbeam)
[![Rust 1.28+](https://img.shields.io/badge/rust-1.28+-lightgray.svg)](
[![Rust 1.36+](https://img.shields.io/badge/rust-1.36+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discordapp.com/invite/JXYwgWZ)

Expand Down Expand Up @@ -98,7 +98,9 @@ extern crate crossbeam;

## Compatibility

The minimum supported Rust version is 1.28. Any change to this is considered a breaking change.
Crossbeam supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.36.

## Contributing

Expand Down
14 changes: 7 additions & 7 deletions bors.toml
@@ -1,17 +1,17 @@
status = [
"test (crossbeam, 1.28.0)",
"test (crossbeam, 1.36.0)",
"test (crossbeam, nightly)",
"test (crossbeam-channel, 1.28.0)",
"test (crossbeam-channel, 1.36.0)",
"test (crossbeam-channel, nightly)",
"test (crossbeam-deque, 1.28.0)",
"test (crossbeam-deque, 1.36.0)",
"test (crossbeam-deque, nightly)",
"test (crossbeam-epoch, 1.28.0)",
"test (crossbeam-epoch, 1.36.0)",
"test (crossbeam-epoch, nightly)",
"test (crossbeam-queue, 1.28.0)",
"test (crossbeam-queue, 1.36.0)",
"test (crossbeam-queue, nightly)",
"test (crossbeam-skiplist, 1.28.0)",
"test (crossbeam-skiplist, 1.36.0)",
"test (crossbeam-skiplist, nightly)",
"test (crossbeam-utils, 1.28.0)",
"test (crossbeam-utils, 1.36.0)",
"test (crossbeam-utils, nightly)",
"dependencies",
"rustfmt",
Expand Down
3 changes: 0 additions & 3 deletions crossbeam-channel/Cargo.toml
Expand Up @@ -15,9 +15,6 @@ description = "Multi-producer multi-consumer channels for message passing"
keywords = ["channel", "mpmc", "select", "golang", "message"]
categories = ["algorithms", "concurrency", "data-structures"]

[dependencies]
maybe-uninit = "2.0.0"

[dependencies.crossbeam-utils]
version = "0.7"
path = "../crossbeam-utils"
Expand Down
6 changes: 4 additions & 2 deletions crossbeam-channel/README.md
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam-channel)
https://crates.io/crates/crossbeam-channel)
[![Documentation](https://docs.rs/crossbeam-channel/badge.svg)](
https://docs.rs/crossbeam-channel)
[![Rust 1.28+](https://img.shields.io/badge/rust-1.28+-lightgray.svg)](
[![Rust 1.36+](https://img.shields.io/badge/rust-1.36+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.gg/BBYwKq)

Expand Down Expand Up @@ -53,7 +53,9 @@ extern crate crossbeam_channel;

## Compatibility

The minimum supported Rust version is 1.28. Any change to this is considered a breaking change.
Crossbeam Channel supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.36.

## License

Expand Down
4 changes: 1 addition & 3 deletions crossbeam-channel/src/flavors/array.rs
Expand Up @@ -15,15 +15,13 @@

use std::cell::UnsafeCell;
use std::marker::PhantomData;
use std::mem;
use std::mem::{self, MaybeUninit};
use std::ptr;
use std::sync::atomic::{self, AtomicUsize, Ordering};
use std::time::Instant;

use crossbeam_utils::{Backoff, CachePadded};

use maybe_uninit::MaybeUninit;

use context::Context;
use err::{RecvTimeoutError, SendTimeoutError, TryRecvError, TrySendError};
use select::{Operation, SelectHandle, Selected, Token};
Expand Down
3 changes: 1 addition & 2 deletions crossbeam-channel/src/flavors/list.rs
Expand Up @@ -2,14 +2,13 @@

use std::cell::UnsafeCell;
use std::marker::PhantomData;
use std::mem::MaybeUninit;
use std::ptr;
use std::sync::atomic::{self, AtomicPtr, AtomicUsize, Ordering};
use std::time::Instant;

use crossbeam_utils::{Backoff, CachePadded};

use maybe_uninit::MaybeUninit;

use context::Context;
use err::{RecvTimeoutError, SendTimeoutError, TryRecvError, TrySendError};
use select::{Operation, SelectHandle, Selected, Token};
Expand Down
1 change: 0 additions & 1 deletion crossbeam-channel/src/lib.rs
Expand Up @@ -348,7 +348,6 @@
#![warn(missing_debug_implementations)]

extern crate crossbeam_utils;
extern crate maybe_uninit;

mod channel;
mod context;
Expand Down
3 changes: 0 additions & 3 deletions crossbeam-deque/Cargo.toml
Expand Up @@ -15,9 +15,6 @@ description = "Concurrent work-stealing deque"
keywords = ["chase-lev", "lock-free", "scheduler", "scheduling"]
categories = ["algorithms", "concurrency", "data-structures"]

[dependencies]
maybe-uninit = "2.0.0"

[dependencies.crossbeam-epoch]
version = "0.8"
path = "../crossbeam-epoch"
Expand Down
6 changes: 4 additions & 2 deletions crossbeam-deque/README.md
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam-deque)
https://crates.io/crates/crossbeam-deque)
[![Documentation](https://docs.rs/crossbeam-deque/badge.svg)](
https://docs.rs/crossbeam-deque)
[![Rust 1.28+](https://img.shields.io/badge/rust-1.28+-lightgray.svg)](
[![Rust 1.36+](https://img.shields.io/badge/rust-1.36+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.gg/BBYwKq)

Expand All @@ -32,7 +32,9 @@ extern crate crossbeam_deque;

## Compatibility

The minimum supported Rust version is 1.28. Any change to this is considered a breaking change.
Crossbeam Deque supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.36.

## License

Expand Down
6 changes: 1 addition & 5 deletions crossbeam-deque/src/lib.rs
Expand Up @@ -92,23 +92,19 @@
extern crate crossbeam_epoch as epoch;
extern crate crossbeam_utils as utils;

extern crate maybe_uninit;

use std::cell::{Cell, UnsafeCell};
use std::cmp;
use std::fmt;
use std::iter::FromIterator;
use std::marker::PhantomData;
use std::mem;
use std::mem::{self, MaybeUninit};
use std::ptr;
use std::sync::atomic::{self, AtomicIsize, AtomicPtr, AtomicUsize, Ordering};
use std::sync::Arc;

use epoch::{Atomic, Owned};
use utils::{Backoff, CachePadded};

use maybe_uninit::MaybeUninit;

// Minimum buffer capacity.
const MIN_CAP: usize = 64;
// Maximum number of tasks that can be stolen in `steal_batch()` and `steal_batch_and_pop()`.
Expand Down
4 changes: 0 additions & 4 deletions crossbeam-epoch/Cargo.toml
Expand Up @@ -24,7 +24,6 @@ sanitize = [] # Makes it more likely to trigger any potential data races.

[dependencies]
cfg-if = "0.1.2"
maybe-uninit = "2.0.0"
memoffset = "0.5"

[dependencies.crossbeam-utils]
Expand All @@ -40,8 +39,5 @@ optional = true
version = "1"
default-features = false

[build-dependencies]
autocfg = "1"

[dev-dependencies]
rand = "0.6"
6 changes: 4 additions & 2 deletions crossbeam-epoch/README.md
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam-epoch)
https://crates.io/crates/crossbeam-epoch)
[![Documentation](https://docs.rs/crossbeam-epoch/badge.svg)](
https://docs.rs/crossbeam-epoch)
[![Rust 1.28+](https://img.shields.io/badge/rust-1.28+-lightgray.svg)](
[![Rust 1.36+](https://img.shields.io/badge/rust-1.36+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.gg/BBYwKq)

Expand Down Expand Up @@ -39,7 +39,9 @@ extern crate crossbeam_epoch as epoch;

## Compatibility

The minimum supported Rust version is 1.28. Any change to this is considered a breaking change.
Crossbeam Epoch supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.36.

## License

Expand Down
8 changes: 0 additions & 8 deletions crossbeam-epoch/build.rs

This file was deleted.

18 changes: 0 additions & 18 deletions crossbeam-epoch/src/atomic.rs
Expand Up @@ -150,24 +150,6 @@ impl<T> Atomic<T> {
///
/// let a = Atomic::<i32>::null();
/// ```
#[cfg(not(has_min_const_fn))]
pub fn null() -> Atomic<T> {
Self {
data: AtomicUsize::new(0),
_marker: PhantomData,
}
}

/// Returns a new null atomic pointer.
///
/// # Examples
///
/// ```
/// use crossbeam_epoch::Atomic;
///
/// let a = Atomic::<i32>::null();
/// ```
#[cfg(has_min_const_fn)]
pub const fn null() -> Atomic<T> {
Self {
data: AtomicUsize::new(0),
Expand Down
4 changes: 1 addition & 3 deletions crossbeam-epoch/src/deferred.rs
@@ -1,11 +1,9 @@
use alloc::boxed::Box;
use core::fmt;
use core::marker::PhantomData;
use core::mem;
use core::mem::{self, MaybeUninit};
use core::ptr;

use maybe_uninit::MaybeUninit;

/// Number of words a piece of `Data` can hold.
///
/// Three words should be enough for the majority of cases. For example, you can fit inside it the
Expand Down
2 changes: 0 additions & 2 deletions crossbeam-epoch/src/lib.rs
Expand Up @@ -64,8 +64,6 @@ extern crate cfg_if;
#[cfg(feature = "std")]
extern crate core;

extern crate maybe_uninit;

cfg_if! {
if #[cfg(feature = "alloc")] {
extern crate alloc;
Expand Down
3 changes: 1 addition & 2 deletions crossbeam-epoch/src/sync/queue.rs
Expand Up @@ -8,12 +8,11 @@
//! Simon Doherty, Lindsay Groves, Victor Luchangco, and Mark Moir. 2004b. Formal Verification of a
//! Practical Lock-Free Queue Algorithm. https://doi.org/10.1007/978-3-540-30232-2_7

use core::mem::MaybeUninit;
use core::sync::atomic::Ordering::{Acquire, Relaxed, Release};

use crossbeam_utils::CachePadded;

use maybe_uninit::MaybeUninit;

use {unprotected, Atomic, Guard, Owned, Shared};

// The representation here is a singly-linked list, with a sentinel node at the front. In general
Expand Down
1 change: 0 additions & 1 deletion crossbeam-queue/Cargo.toml
Expand Up @@ -23,7 +23,6 @@ nightly = []

[dependencies]
cfg-if = "0.1.2"
maybe-uninit = "2.0.0"

[dependencies.crossbeam-utils]
version = "0.7"
Expand Down
6 changes: 4 additions & 2 deletions crossbeam-queue/README.md
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam-queue/tree/master/src)
https://crates.io/crates/crossbeam-queue)
[![Documentation](https://docs.rs/crossbeam-queue/badge.svg)](
https://docs.rs/crossbeam-queue)
[![Rust 1.28+](https://img.shields.io/badge/rust-1.28+-lightgray.svg)](
[![Rust 1.36+](https://img.shields.io/badge/rust-1.36+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.gg/BBYwKq)

Expand Down Expand Up @@ -37,7 +37,9 @@ extern crate crossbeam_queue;

## Compatibility

The minimum supported Rust version is 1.28. Any change to this is considered a breaking change.
Crossbeam Queue supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.36.

## License

Expand Down
4 changes: 1 addition & 3 deletions crossbeam-queue/src/array_queue.rs
Expand Up @@ -12,13 +12,11 @@ use alloc::vec::Vec;
use core::cell::UnsafeCell;
use core::fmt;
use core::marker::PhantomData;
use core::mem;
use core::mem::{self, MaybeUninit};
use core::sync::atomic::{self, AtomicUsize, Ordering};

use crossbeam_utils::{Backoff, CachePadded};

use maybe_uninit::MaybeUninit;

use err::{PopError, PushError};

/// A slot in a queue.
Expand Down
2 changes: 0 additions & 2 deletions crossbeam-queue/src/lib.rs
Expand Up @@ -18,8 +18,6 @@ extern crate cfg_if;
#[cfg(feature = "std")]
extern crate core;

extern crate maybe_uninit;

cfg_if! {
if #[cfg(feature = "alloc")] {
extern crate alloc;
Expand Down
3 changes: 1 addition & 2 deletions crossbeam-queue/src/seg_queue.rs
Expand Up @@ -2,13 +2,12 @@ use alloc::boxed::Box;
use core::cell::UnsafeCell;
use core::fmt;
use core::marker::PhantomData;
use core::mem::MaybeUninit;
use core::ptr;
use core::sync::atomic::{self, AtomicPtr, AtomicUsize, Ordering};

use crossbeam_utils::{Backoff, CachePadded};

use maybe_uninit::MaybeUninit;

use err::PopError;

// Bits indicating the state of a slot:
Expand Down
6 changes: 4 additions & 2 deletions crossbeam-skiplist/README.md
Expand Up @@ -8,7 +8,7 @@ https://github.com/crossbeam-rs/crossbeam-skiplist)
https://crates.io/crates/crossbeam-skiplist)
[![Documentation](https://docs.rs/crossbeam-skiplist/badge.svg)](
https://docs.rs/crossbeam-skiplist)
[![Rust 1.28+](https://img.shields.io/badge/rust-1.28+-lightgray.svg)](
[![Rust 1.36+](https://img.shields.io/badge/rust-1.36+-lightgray.svg)](
https://www.rust-lang.org)
[![chat](https://img.shields.io/discord/569610676205781012.svg?logo=discord)](https://discord.gg/BBYwKq)

Expand All @@ -35,7 +35,9 @@ extern crate crossbeam_skiplist;

## Compatibility

The minimum supported Rust version is 1.28. Any change to this is considered a breaking change.
Crossbeam Skiplist supports stable Rust releases going back at least six months,
and every time the minimum supported Rust version is increased, a new minor
version is released. Currently, the minimum supported Rust version is 1.36.

## License

Expand Down