From 593cf059585f51f397d473a9b303dba7a87bb588 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Thu, 23 Jun 2022 23:18:42 +0900 Subject: [PATCH 1/4] Revert "Pin nightly toolchain for Miri" This reverts commit 09e972fd80fc521761cc2875b3c1b74d4c35f18b. --- .github/workflows/ci.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 824506d21..48e767da5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -160,9 +160,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - # TODO: unpin nightly toolchain once https://github.com/rust-lang/miri/issues/2223 fixed. - name: Install Rust - run: rustup toolchain install nightly-2022-06-08 --component miri && rustup default nightly-2022-06-08 + run: rustup toolchain install nightly --component miri && rustup default nightly - name: miri run: ./ci/miri.sh From 0256b26c62083be24e6963adf89bd651009d5f34 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Thu, 23 Jun 2022 23:21:23 +0900 Subject: [PATCH 2/4] Disable Miri preemption --- ci/miri.sh | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ci/miri.sh b/ci/miri.sh index f4af1a797..98a9b56d6 100755 --- a/ci/miri.sh +++ b/ci/miri.sh @@ -5,30 +5,35 @@ cd "$(dirname "$0")"/.. export RUSTFLAGS="${RUSTFLAGS:-} -Z randomize-layout" -MIRIFLAGS="-Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation" \ +# disable preemption due to https://github.com/rust-lang/rust/issues/55005 +MIRIFLAGS="-Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation -Zmiri-preemption-rate=0" \ cargo miri test \ -p crossbeam-queue \ -p crossbeam-utils # -Zmiri-ignore-leaks is needed because we use detached threads in tests/docs: https://github.com/rust-lang/miri/issues/1371 -MIRIFLAGS="-Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation -Zmiri-ignore-leaks" \ +# disable preemption due to https://github.com/rust-lang/rust/issues/55005 +MIRIFLAGS="-Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation -Zmiri-ignore-leaks -Zmiri-preemption-rate=0" \ cargo miri test \ -p crossbeam-channel # -Zmiri-ignore-leaks is needed for https://github.com/crossbeam-rs/crossbeam/issues/579 # -Zmiri-disable-stacked-borrows is needed for https://github.com/crossbeam-rs/crossbeam/issues/545 -MIRIFLAGS="-Zmiri-check-number-validity -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation -Zmiri-disable-stacked-borrows -Zmiri-ignore-leaks" \ +# disable preemption due to https://github.com/rust-lang/rust/issues/55005 +MIRIFLAGS="-Zmiri-check-number-validity -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation -Zmiri-disable-stacked-borrows -Zmiri-ignore-leaks -Zmiri-preemption-rate=0" \ cargo miri test \ -p crossbeam-epoch \ -p crossbeam-skiplist # -Zmiri-ignore-leaks is needed for https://github.com/crossbeam-rs/crossbeam/issues/579 # -Zmiri-disable-stacked-borrows is needed for https://github.com/crossbeam-rs/crossbeam/issues/545 -MIRIFLAGS="-Zmiri-check-number-validity -Zmiri-symbolic-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-ignore-leaks -Zmiri-compare-exchange-weak-failure-rate=0.0" \ +# disable preemption due to https://github.com/rust-lang/rust/issues/55005 +MIRIFLAGS="-Zmiri-check-number-validity -Zmiri-symbolic-alignment-check -Zmiri-disable-stacked-borrows -Zmiri-ignore-leaks -Zmiri-compare-exchange-weak-failure-rate=0.0 -Zmiri-preemption-rate=0" \ cargo miri test \ -p crossbeam-deque # -Zmiri-ignore-leaks is needed for https://github.com/crossbeam-rs/crossbeam/issues/579 -MIRIFLAGS="-Zmiri-check-number-validity -Zmiri-symbolic-alignment-check -Zmiri-ignore-leaks" \ +# disable preemption due to https://github.com/rust-lang/rust/issues/55005 +MIRIFLAGS="-Zmiri-check-number-validity -Zmiri-symbolic-alignment-check -Zmiri-ignore-leaks -Zmiri-preemption-rate=0" \ cargo miri test \ -p crossbeam From 9f6d0c6459902bfdef00ad872896dd24c20aecc9 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Thu, 23 Jun 2022 23:22:26 +0900 Subject: [PATCH 3/4] Add publish script --- tools/publish.sh | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 tools/publish.sh diff --git a/tools/publish.sh b/tools/publish.sh new file mode 100755 index 000000000..df3047e9f --- /dev/null +++ b/tools/publish.sh @@ -0,0 +1,49 @@ +#!/bin/bash +set -euo pipefail +IFS=$'\n\t' +cd "$(dirname "$0")"/.. + +# Publish a new release. +# +# USAGE: +# ./tools/publish.sh + +bail() { + echo >&2 "error: $*" + exit 1 +} + +crate="${1:?}" +version="${2:?}" +version="${version#v}" +tag="${crate}-${version}" +if [[ ! "${version}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z\.-]+)?(\+[0-9A-Za-z\.-]+)?$ ]]; then + bail "invalid version format '${version}'" +fi +if [[ $# -gt 2 ]]; then + bail "invalid argument '$3'" +fi + +# Make sure there is no uncommitted change. +git diff --exit-code +git diff --exit-code --staged + +# Make sure the same release has not been created in the past. +if gh release view "${tag}" &>/dev/null; then + bail "tag '${tag}' has already been created and pushed" +fi + +if ! git branch | grep -q '\* master'; then + bail "current branch is not 'master'" +fi + +git tag "${tag}" + +( + if [[ "${crate}" != "crossbeam" ]]; then + cd "${crate}" + fi + cargo publish +) + +git push origin --tags From 3c86b9b881ecf82741f92500e926892a9b9fa269 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Thu, 23 Jun 2022 23:37:19 +0900 Subject: [PATCH 4/4] Prepare for the next release - crossbeam-utils 0.8.9 -> 0.8.10 --- crossbeam-utils/CHANGELOG.md | 5 +++++ crossbeam-utils/Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/crossbeam-utils/CHANGELOG.md b/crossbeam-utils/CHANGELOG.md index f2cbf55df..8decb6cbd 100644 --- a/crossbeam-utils/CHANGELOG.md +++ b/crossbeam-utils/CHANGELOG.md @@ -1,3 +1,8 @@ +# Version 0.8.10 + +- Fix unsoundness of `AtomicCell` on types containing niches. (#834) + This fix contains breaking changes, but they are allowed because this is a soundness bug fix. See #834 for more. + # Version 0.8.9 - Replace lazy_static with once_cell. (#817) diff --git a/crossbeam-utils/Cargo.toml b/crossbeam-utils/Cargo.toml index f91baaea9..f541e5f86 100644 --- a/crossbeam-utils/Cargo.toml +++ b/crossbeam-utils/Cargo.toml @@ -4,7 +4,7 @@ name = "crossbeam-utils" # - Update CHANGELOG.md # - Update README.md # - Create "crossbeam-utils-X.Y.Z" git tag -version = "0.8.9" +version = "0.8.10" edition = "2018" rust-version = "1.36" license = "MIT OR Apache-2.0"