Rustup to rustc 1.34.0-nightly (a9410cd1a 2019-02-15)

This commit is contained in:
bjorn3 2019-02-16 12:35:45 +01:00
parent 408f27bade
commit 06dd020446
5 changed files with 108 additions and 96 deletions

View File

@ -1,32 +1,32 @@
From 1119ae3f160d7e89064583f1d9d6685bc2e6928b Mon Sep 17 00:00:00 2001
From 8080d322c8396b7b234cc92eb675f697c55f7298 Mon Sep 17 00:00:00 2001
From: bjorn3 <bjorn3@users.noreply.github.com>
Date: Wed, 13 Feb 2019 14:37:22 +0100
Date: Sat, 16 Feb 2019 12:09:42 +0100
Subject: [PATCH] Disable u128 and i128 in libcore
---
src/libcore/clone.rs | 4 +-
src/libcore/cmp.rs | 6 +-
src/libcore/default.rs | 2 -
src/libcore/fmt/num.rs | 6 +-
src/libcore/hash/mod.rs | 20 -------
src/libcore/fmt/num.rs | 8 +-
src/libcore/hash/mod.rs | 20 -----
src/libcore/iter/range.rs | 1 -
src/libcore/iter/traits/accum.rs | 2 +-
src/libcore/lib.rs | 2 -
src/libcore/marker.rs | 4 +-
src/libcore/mem.rs | 2 -
src/libcore/num/mod.rs | 100 +++++++++----------------------
src/libcore/num/wrapping.rs | 14 ++---
src/libcore/ops/arith.rs | 22 +++----
src/libcore/ops/bit.rs | 30 ++++------
src/libcore/sync/atomic.rs | 30 ----------
src/libcore/tests/iter.rs | 15 -----
src/libcore/tests/num/mod.rs | 18 ------
src/libcore/time.rs | 123 ---------------------------------------
src/libstd/lib.rs | 4 --
src/libstd/net/ip.rs | 20 -------
src/libcore/num/mod.rs | 100 +++++++------------------
src/libcore/num/wrapping.rs | 14 ++--
src/libcore/ops/arith.rs | 22 +++---
src/libcore/ops/bit.rs | 30 +++-----
src/libcore/sync/atomic.rs | 30 --------
src/libcore/tests/iter.rs | 15 ----
src/libcore/tests/num/mod.rs | 18 -----
src/libcore/time.rs | 123 -------------------------------
src/libstd/lib.rs | 4 -
src/libstd/net/ip.rs | 20 -----
src/libstd/num.rs | 2 +-
src/libstd/panic.rs | 6 --
22 files changed, 63 insertions(+), 370 deletions(-)
22 files changed, 63 insertions(+), 372 deletions(-)
diff --git a/src/libcore/clone.rs b/src/libcore/clone.rs
index ed90b7d..1739f91 100644
@ -94,7 +94,7 @@ index 5ad05b3..1b5a1d1 100644
default_impl! { f32, 0.0f32, "Returns the default value of `0.0`" }
default_impl! { f64, 0.0f64, "Returns the default value of `0.0`" }
diff --git a/src/libcore/fmt/num.rs b/src/libcore/fmt/num.rs
index 3a81233..f889d57 100644
index b9fa364..cd9ee01 100644
--- a/src/libcore/fmt/num.rs
+++ b/src/libcore/fmt/num.rs
@@ -17,7 +17,6 @@ trait Int: PartialEq + PartialOrd + Div<Output=Self> + Rem<Output=Self> +
@ -117,22 +117,21 @@ index 3a81233..f889d57 100644
/// A type that represents a specific radix
#[doc(hidden)]
@@ -176,7 +174,6 @@ integer! { i8, u8 }
@@ -176,8 +174,6 @@ integer! { i8, u8 }
integer! { i16, u16 }
integer! { i32, u32 }
integer! { i64, u64 }
-integer! { i128, u128 }
-
const DEC_DIGITS_LUT: &'static[u8] =
static DEC_DIGITS_LUT: &[u8; 200] =
b"0001020304050607080910111213141516171819\
@@ -252,7 +249,6 @@ macro_rules! impl_Display {
impl_Display!(i8, u8, i16, u16, i32, u32: to_u32);
impl_Display!(i64, u64: to_u64);
-impl_Display!(i128, u128: to_u128);
#[cfg(target_pointer_width = "16")]
impl_Display!(isize, usize: to_u16);
#[cfg(target_pointer_width = "32")]
@@ -274,5 +270,3 @@ mod imp {
impl_Display!(i8, u8, i16, u16, i32, u32, isize, usize as u32 via to_u32 named fmt_u32);
impl_Display!(i64, u64 as u64 via to_u64 named fmt_u64);
}
-
-impl_Display!(i128, u128 as u128 via to_u128 named fmt_u128);
diff --git a/src/libcore/hash/mod.rs b/src/libcore/hash/mod.rs
index d5d29c9..f98f382 100644
--- a/src/libcore/hash/mod.rs
@ -218,10 +217,10 @@ index dfe1d2a..06cc578 100644
/// An iterator adapter that produces output as long as the underlying
diff --git a/src/libcore/lib.rs b/src/libcore/lib.rs
index 9b37104..787b10b 100644
index cd88d3e..532d680 100644
--- a/src/libcore/lib.rs
+++ b/src/libcore/lib.rs
@@ -147,14 +147,12 @@ mod uint_macros;
@@ -148,14 +148,12 @@ mod uint_macros;
#[path = "num/i16.rs"] pub mod i16;
#[path = "num/i32.rs"] pub mod i32;
#[path = "num/i64.rs"] pub mod i64;
@ -237,7 +236,7 @@ index 9b37104..787b10b 100644
#[path = "num/f32.rs"] pub mod f32;
#[path = "num/f64.rs"] pub mod f64;
diff --git a/src/libcore/marker.rs b/src/libcore/marker.rs
index 457d556..91425fb 100644
index c4b41f1..0ade53b 100644
--- a/src/libcore/marker.rs
+++ b/src/libcore/marker.rs
@@ -664,8 +664,8 @@ mod copy_impls {
@ -252,7 +251,7 @@ index 457d556..91425fb 100644
bool char
}
diff --git a/src/libcore/mem.rs b/src/libcore/mem.rs
index 2a493e8..a7dba54 100644
index 3f7455a..7a0c44a 100644
--- a/src/libcore/mem.rs
+++ b/src/libcore/mem.rs
@@ -164,12 +164,10 @@ pub fn forget_unsized<T: ?Sized>(t: T) {
@ -898,10 +897,11 @@ index 51a6017..e6631db 100644
#[derive(Clone)]
struct Test(Bigger);
@@ -1977,19 +1975,6 @@ fn test_step_replace_signed() {
@@ -1976,19 +1974,6 @@ fn test_step_replace_signed() {
assert_eq!(y, 5);
}
#[test]
-#[test]
-fn test_step_replace_no_between() {
- let mut x = 4u128;
- let y = x.replace_zero();
@ -914,10 +914,9 @@ index 51a6017..e6631db 100644
- assert_eq!(y, 5);
-}
-
-#[test]
#[test]
fn test_rev_try_folds() {
let f = &|acc, x| i32::checked_add(2*acc, x);
assert_eq!((1..10).rev().try_fold(7, f), (1..10).try_rfold(7, f));
diff --git a/src/libcore/tests/num/mod.rs b/src/libcore/tests/num/mod.rs
index ab638e0..4a2aa4c 100644
--- a/src/libcore/tests/num/mod.rs
@ -1136,10 +1135,10 @@ index ac7e117..0dfd856 100644
///
/// # Examples
diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs
index 3c358dc..2dd5699 100644
index 9a4232d..592fea0 100644
--- a/src/libstd/lib.rs
+++ b/src/libstd/lib.rs
@@ -395,8 +395,6 @@ pub use core::i16;
@@ -392,8 +392,6 @@ pub use core::i16;
pub use core::i32;
#[stable(feature = "rust1", since = "1.0.0")]
pub use core::i64;
@ -1148,7 +1147,7 @@ index 3c358dc..2dd5699 100644
#[stable(feature = "rust1", since = "1.0.0")]
pub use core::usize;
#[stable(feature = "rust1", since = "1.0.0")]
@@ -429,8 +427,6 @@ pub use alloc_crate::string;
@@ -426,8 +424,6 @@ pub use alloc_crate::string;
pub use alloc_crate::vec;
#[stable(feature = "rust1", since = "1.0.0")]
pub use core::char;
@ -1202,7 +1201,7 @@ index c80b9a5..e32a6b3 100644
#[cfg(test)] use fmt;
#[cfg(test)] use ops::{Add, Sub, Mul, Div, Rem};
diff --git a/src/libstd/panic.rs b/src/libstd/panic.rs
index d27f6ca..8ac2a44 100644
index 862fdf0..171ebeb 100644
--- a/src/libstd/panic.rs
+++ b/src/libstd/panic.rs
@@ -254,9 +254,6 @@ impl RefUnwindSafe for atomic::AtomicI32 {}
@ -1226,5 +1225,4 @@ index d27f6ca..8ac2a44 100644
#[cfg(target_has_atomic = "8")]
#[stable(feature = "unwind_safe_atomic_refs", since = "1.14.0")]
--
2.11.0
2.17.2 (Apple Git-113)

View File

@ -392,6 +392,7 @@ fn trans_stmt<'a, 'tcx: 'a>(
ty::Float(_) => trans_float_binop(fx, *bin_op, lhs, rhs, lval.layout().ty),
ty::Char => trans_char_binop(fx, *bin_op, lhs, rhs, lval.layout().ty),
ty::RawPtr(..) => trans_ptr_binop(fx, *bin_op, lhs, rhs, lval.layout().ty),
ty::FnPtr(..) => trans_ptr_binop(fx, *bin_op, lhs, rhs, lval.layout().ty),
_ => unimplemented!("binop {:?} for {:?}", bin_op, ty),
};
lval.write_cvalue(fx, res);
@ -992,49 +993,49 @@ fn trans_ptr_binop<'a, 'tcx: 'a>(
rhs: CValue<'tcx>,
ret_ty: Ty<'tcx>,
) -> CValue<'tcx> {
match lhs.layout().ty.sty {
ty::RawPtr(TypeAndMut { ty, mutbl: _ }) => {
if ty.is_sized(fx.tcx.at(DUMMY_SP), ParamEnv::reveal_all()) {
binop_match! {
fx, bin_op, false, lhs, rhs, ret_ty, "ptr";
Add (_) bug;
Sub (_) bug;
Mul (_) bug;
Div (_) bug;
Rem (_) bug;
BitXor (_) bug;
BitAnd (_) bug;
BitOr (_) bug;
Shl (_) bug;
Shr (_) bug;
Eq (_) icmp(Equal);
Lt (_) icmp(UnsignedLessThan);
Le (_) icmp(UnsignedLessThanOrEqual);
Ne (_) icmp(NotEqual);
Ge (_) icmp(UnsignedGreaterThanOrEqual);
Gt (_) icmp(UnsignedGreaterThan);
Offset (_) iadd;
}
} else {
let lhs = lhs.load_value_pair(fx).0;
let rhs = rhs.load_value_pair(fx).0;
let res = match bin_op {
BinOp::Eq => fx.bcx.ins().icmp(IntCC::Equal, lhs, rhs),
BinOp::Ne => fx.bcx.ins().icmp(IntCC::NotEqual, lhs, rhs),
_ => unimplemented!(
"trans_ptr_binop({:?}, <fat ptr>, <fat ptr>) not implemented",
bin_op
),
};
assert_eq!(fx.tcx.types.bool, ret_ty);
let ret_layout = fx.layout_of(ret_ty);
CValue::ByVal(fx.bcx.ins().bint(types::I8, res), ret_layout)
}
}
let not_fat = match lhs.layout().ty.sty {
ty::RawPtr(TypeAndMut { ty, mutbl: _ }) => ty.is_sized(fx.tcx.at(DUMMY_SP), ParamEnv::reveal_all()),
ty::FnPtr(..) => true,
_ => bug!("trans_ptr_binop on non ptr"),
};
if not_fat {
binop_match! {
fx, bin_op, false, lhs, rhs, ret_ty, "ptr";
Add (_) bug;
Sub (_) bug;
Mul (_) bug;
Div (_) bug;
Rem (_) bug;
BitXor (_) bug;
BitAnd (_) bug;
BitOr (_) bug;
Shl (_) bug;
Shr (_) bug;
Eq (_) icmp(Equal);
Lt (_) icmp(UnsignedLessThan);
Le (_) icmp(UnsignedLessThanOrEqual);
Ne (_) icmp(NotEqual);
Ge (_) icmp(UnsignedGreaterThanOrEqual);
Gt (_) icmp(UnsignedGreaterThan);
Offset (_) iadd;
}
} else {
let lhs = lhs.load_value_pair(fx).0;
let rhs = rhs.load_value_pair(fx).0;
let res = match bin_op {
BinOp::Eq => fx.bcx.ins().icmp(IntCC::Equal, lhs, rhs),
BinOp::Ne => fx.bcx.ins().icmp(IntCC::NotEqual, lhs, rhs),
_ => unimplemented!(
"trans_ptr_binop({:?}, <fat ptr>, <fat ptr>) not implemented",
bin_op
),
};
assert_eq!(fx.tcx.types.bool, ret_ty);
let ret_layout = fx.layout_of(ret_ty);
CValue::ByVal(fx.bcx.ins().bint(types::I8, res), ret_layout)
}
}

View File

@ -5,7 +5,7 @@ use rustc::mir::interpret::{
};
use rustc::ty::{Const, LazyConst};
use rustc_mir::interpret::{
EvalContext, MPlaceTy, Machine, Memory, MemoryKind, OpTy, PlaceTy, Pointer, StackPopCleanup,
EvalContext, MPlaceTy, Machine, Memory, MemoryKind, OpTy, PlaceTy, Pointer, StackPopCleanup, ImmTy,
};
use cranelift_module::*;
@ -337,10 +337,8 @@ impl<'a, 'mir, 'tcx> Machine<'a, 'mir, 'tcx> for TransPlaceInterpreter {
fn ptr_op(
_: &EvalContext<'a, 'mir, 'tcx, Self>,
_: mir::BinOp,
_: Scalar,
_: TyLayout<'tcx>,
_: Scalar,
_: TyLayout<'tcx>,
_: ImmTy<'tcx>,
_: ImmTy<'tcx>,
) -> EvalResult<'tcx, (Scalar, bool)> {
panic!();
}

View File

@ -291,7 +291,7 @@ fn link_args(cmd: &mut dyn Linker,
codegen_results: &CodegenResults) {
// Linker plugins should be specified early in the list of arguments
cmd.cross_lang_lto();
cmd.linker_plugin_lto();
// The default library location, we need this to find the runtime.
// The location of crates will be determined as needed.
@ -306,6 +306,13 @@ fn link_args(cmd: &mut dyn Linker,
}
cmd.output_filename(out_filename);
if crate_type == config::CrateType::Executable &&
sess.target.target.options.is_like_windows {
if let Some(ref s) = codegen_results.windows_subsystem {
cmd.subsystem(s);
}
}
// If we're building a dynamic library then some platforms need to make sure
// that all symbols are exported correctly from the dynamic library.
if crate_type != config::CrateType::Executable ||
@ -313,6 +320,16 @@ fn link_args(cmd: &mut dyn Linker,
cmd.export_symbols(tmpdir, crate_type);
}
// When linking a dynamic library, we put the metadata into a section of the
// executable. This metadata is in a separate object file from the main
// object file, so we link that in here.
if crate_type == config::CrateType::Dylib ||
crate_type == config::CrateType::ProcMacro {
if let Some(obj) = codegen_results.metadata_module.object.as_ref() {
cmd.add_object(obj);
}
}
let obj = codegen_results.allocator_module
.as_ref()
.and_then(|m| m.object.as_ref());
@ -409,7 +426,7 @@ fn link_args(cmd: &mut dyn Linker,
//
// The rationale behind this ordering is that those items lower down in the
// list can't depend on items higher up in the list. For example nothing can
// depend on what we just generated (e.g. that'd be a circular dependency).
// depend on what we just generated (e.g., that'd be a circular dependency).
// Upstream rust libraries are not allowed to depend on our local native
// libraries as that would violate the structure of the DAG, in that
// scenario they are required to link to them as well in a shared fashion.
@ -418,7 +435,7 @@ fn link_args(cmd: &mut dyn Linker,
// well, but they also can't depend on what we just started to add to the
// link line. And finally upstream native libraries can't depend on anything
// in this DAG so far because they're only dylibs and dylibs can only depend
// on other dylibs (e.g. other native deps).
// on other dylibs (e.g., other native deps).
add_local_native_libraries(cmd, sess, codegen_results);
add_upstream_rust_crates(cmd, sess, codegen_results, crate_type, tmpdir);
add_upstream_native_libraries(cmd, sess, codegen_results, crate_type);

View File

@ -177,8 +177,7 @@ pub fn exec_linker(sess: &Session, cmd: &mut Command, out_filename: &Path, tmpdi
// ensure the line is interpreted as one whole argument.
for c in self.arg.chars() {
match c {
'\\' |
' ' => write!(f, "\\{}", c)?,
'\\' | ' ' => write!(f, "\\{}", c)?,
c => write!(f, "{}", c)?,
}
}
@ -298,7 +297,7 @@ pub fn add_upstream_rust_crates(cmd: &mut dyn Linker,
// compiler-builtins are always placed last to ensure that they're
// linked correctly.
// We must always link the `compiler_builtins` crate statically. Even if it
// was already "included" in a dylib (e.g. `libstd` when `-C prefer-dynamic`
// was already "included" in a dylib (e.g., `libstd` when `-C prefer-dynamic`
// is used)
if let Some(cnum) = compiler_builtins {
add_static_crate(cmd, sess, codegen_results, tmpdir, crate_type, cnum);
@ -345,7 +344,6 @@ pub fn add_upstream_rust_crates(cmd: &mut dyn Linker,
for f in archive.src_files() {
if f.ends_with(RLIB_BYTECODE_EXTENSION) || f == METADATA_FILENAME {
archive.remove_file(&f);
continue
}
}
@ -479,7 +477,7 @@ pub fn add_upstream_rust_crates(cmd: &mut dyn Linker,
// because a `dylib` can be reused as an intermediate artifact.
//
// Note, though, that we don't want to include the whole of a
// compiler-builtins crate (e.g. compiler-rt) because it'll get
// compiler-builtins crate (e.g., compiler-rt) because it'll get
// repeatedly linked anyway.
if crate_type == config::CrateType::Dylib &&
codegen_results.crate_info.compiler_builtins != Some(cnum) {
@ -628,7 +626,7 @@ fn are_upstream_rust_objects_already_included(sess: &Session) -> bool {
Lto::Thin => {
// If we defer LTO to the linker, we haven't run LTO ourselves, so
// any upstream object files have not been copied yet.
!sess.opts.debugging_opts.cross_lang_lto.enabled()
!sess.opts.cg.linker_plugin_lto.enabled()
}
Lto::No |
Lto::ThinLocal => false,