From 07235061eae4e3bc7770b571d516dcd47911ef1a Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Wed, 3 Jul 2019 08:40:51 -0400 Subject: [PATCH 1/3] Switch to beta channel --- src/ci/run.sh | 2 +- src/stage0.txt | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ci/run.sh b/src/ci/run.sh index 811d401a83c21..b91859bfceb78 100755 --- a/src/ci/run.sh +++ b/src/ci/run.sh @@ -45,7 +45,7 @@ fi # # FIXME: need a scheme for changing this `nightly` value to `beta` and `stable` # either automatically or manually. -export RUST_RELEASE_CHANNEL=nightly +export RUST_RELEASE_CHANNEL=beta if [ "$DEPLOY$DEPLOY_ALT" = "1" ]; then RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --release-channel=$RUST_RELEASE_CHANNEL" RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-llvm-static-stdcpp" diff --git a/src/stage0.txt b/src/stage0.txt index d928d0888a0df..f7dd0fd4260d3 100644 --- a/src/stage0.txt +++ b/src/stage0.txt @@ -12,9 +12,9 @@ # source tarball for a stable release you'll likely see `1.x.0` for rustc and # `0.x.0` for Cargo where they were released on `date`. -date: 2019-05-23 -rustc: beta -cargo: beta +date: 2019-07-03 +rustc: 1.36.0 +cargo: 0.37.0 # When making a stable release the process currently looks like: # @@ -34,4 +34,4 @@ cargo: beta # looking at a beta source tarball and it's uncommented we'll shortly comment it # out. -#dev: 1 +dev: 1 From 2ddaaa100a6bea9a847ba1540a6190dbf67de9c2 Mon Sep 17 00:00:00 2001 From: Mark Rousskov Date: Tue, 2 Jul 2019 11:09:38 -0400 Subject: [PATCH 2/3] Amend release notes with compat-notes for stdsimd --- RELEASES.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/RELEASES.md b/RELEASES.md index 5ceeea8d037cb..43a5fda61297a 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -39,7 +39,7 @@ Stabilized APIs - [`mem::MaybeUninit`] - [`pointer::align_offset`] - [`future::Future`] -- [`task::Context`] +- [`task::Context`] - [`task::RawWaker`] - [`task::RawWakerVTable`] - [`task::Waker`] @@ -61,6 +61,8 @@ Misc Compatibility Notes ------------------- +- [`std::arch::x86::_rdtsc` returns `u64` instead of `i64`][stdsimd/559] +- [`std::arch::x86_64::_mm_shuffle_ps` takes an `i32` instead of `u32` for `mask`][stdsimd/522] - With the stabilisation of `mem::MaybeUninit`, `mem::uninitialized` use is no longer recommended, and will be deprecated in 1.38.0. @@ -97,7 +99,8 @@ Compatibility Notes [`task::Poll`]: https://doc.rust-lang.org/beta/std/task/enum.Poll.html [clippy-1-36-0]: https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-136 [cargo-1-36-0]: https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-136-2019-07-04 - +[stdsimd/522]: https://github.com/rust-lang-nursery/stdsimd/issues/522 +[stdsimd/559]: https://github.com/rust-lang-nursery/stdsimd/issues/559 Version 1.35.0 (2019-05-23) ========================== From 421160e3f12e3acb9451567eb95b6170e0697fab Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Tue, 2 Jul 2019 15:19:19 +0200 Subject: [PATCH 3/3] HashMap is UnwindSafe Fixes https://github.com/rust-lang/rust/issues/62301, a regression in 1.36.0 which was caused by hashbrown using `NonZero` where the older hashmap used `Unique`. --- src/libstd/collections/hash/map.rs | 6 ++++++ src/libstd/panic.rs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/src/libstd/collections/hash/map.rs b/src/libstd/collections/hash/map.rs index 5a2fe2b244f55..2925d8362c8d9 100644 --- a/src/libstd/collections/hash/map.rs +++ b/src/libstd/collections/hash/map.rs @@ -2608,6 +2608,12 @@ mod test_map { use realstd::collections::CollectionAllocErr::*; use realstd::usize; + // https://github.com/rust-lang/rust/issues/62301 + fn _assert_hashmap_is_unwind_safe() { + fn assert_unwind_safe() {} + assert_unwind_safe::>>(); + } + #[test] fn test_zero_capacities() { type HM = HashMap; diff --git a/src/libstd/panic.rs b/src/libstd/panic.rs index 7a3b5d30500a9..1d4fd98dd754f 100644 --- a/src/libstd/panic.rs +++ b/src/libstd/panic.rs @@ -4,6 +4,7 @@ use crate::any::Any; use crate::cell::UnsafeCell; +use crate::collections; use crate::fmt; use crate::future::Future; use crate::pin::Pin; @@ -285,6 +286,11 @@ impl RefUnwindSafe for atomic::AtomicBool {} #[stable(feature = "unwind_safe_atomic_refs", since = "1.14.0")] impl RefUnwindSafe for atomic::AtomicPtr {} +// https://github.com/rust-lang/rust/issues/62301 +#[stable(feature = "hashbrown", since = "1.36.0")] +impl UnwindSafe for collections::HashMap + where K: UnwindSafe, V: UnwindSafe, S: UnwindSafe {} + #[stable(feature = "catch_unwind", since = "1.9.0")] impl Deref for AssertUnwindSafe { type Target = T;