Skip to content

Commit eeb5f17

Browse files
committed
Merge remote-tracking branch 'upstream/master' into asm-compile-tests
2 parents 5c7ec6c + 8bf1f1c commit eeb5f17

File tree

3,937 files changed

+27972
-23161
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,937 files changed

+27972
-23161
lines changed

.mailmap

+1
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,7 @@ Michael Woerister <michaelwoerister@posteo> <michaelwoerister@gmail>
161161
Mickaël Raybaud-Roig <[email protected]> m-r-r <[email protected]>
162162
163163
Mukilan Thiagarajan <[email protected]>
164+
164165
Nathan Wilson <[email protected]>
165166
Nathaniel Herman <[email protected]> Nathaniel Herman <[email protected]>
166167

Cargo.lock

+113-60
Large diffs are not rendered by default.

RELEASES.md

+23-21
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ Version 1.33.0 (2019-02-28)
44
Language
55
--------
66
- [You can now use the `cfg(target_vendor)` attribute.][57465] E.g.
7-
`#[cfg(target_vendor="linux")] fn main() { println!("Hello Linux!"); }`
7+
`#[cfg(target_vendor="apple")] fn main() { println!("Hello Apple!"); }`
88
- [Integer patterns such as in a match expression can now be exhaustive.][56362]
99
E.g. You can have match statement on a `u8` that covers `0..=255` and
10-
you would no longer be required to have a `_ => unreachable!()` case.
10+
you would no longer be required to have a `_ => unreachable!()` case.
1111
- [You can now have multiple patterns in `if let` and `while let`
1212
expressions.][57532] You can do this with the same syntax as a `match`
1313
expression. E.g.
@@ -51,8 +51,7 @@ Language
5151
// Allowed as there is only one `Read` in the module.
5252
pub trait Read {}
5353
```
54-
- [`extern` functions will now abort by default when panicking.][55982]
55-
This was previously undefined behaviour.
54+
- [You may now use `Rc`, `Arc`, and `Pin` as method receivers][56805].
5655

5756
Compiler
5857
--------
@@ -109,27 +108,30 @@ Compatibility Notes
109108
are now deprecated in the standard library, and their usage will now produce a warning.
110109
Please use the `str::{trim_start, trim_end, trim_start_matches, trim_end_matches}`
111110
methods instead.
111+
- The `Error::cause` method has been deprecated in favor of `Error::source` which supports
112+
downcasting.
112113

113-
[57615]: https://github.com/rust-lang/rust/pull/57615/
114-
[57465]: https://github.com/rust-lang/rust/pull/57465/
115-
[57532]: https://github.com/rust-lang/rust/pull/57532/
116-
[57535]: https://github.com/rust-lang/rust/pull/57535/
117-
[57566]: https://github.com/rust-lang/rust/pull/57566/
114+
[55982]: https://github.com/rust-lang/rust/pull/55982/
115+
[56303]: https://github.com/rust-lang/rust/pull/56303/
116+
[56351]: https://github.com/rust-lang/rust/pull/56351/
117+
[56362]: https://github.com/rust-lang/rust/pull/56362
118+
[56642]: https://github.com/rust-lang/rust/pull/56642/
119+
[56769]: https://github.com/rust-lang/rust/pull/56769/
120+
[56805]: https://github.com/rust-lang/rust/pull/56805
121+
[56947]: https://github.com/rust-lang/rust/pull/56947/
122+
[57049]: https://github.com/rust-lang/rust/pull/57049/
123+
[57067]: https://github.com/rust-lang/rust/pull/57067/
124+
[57105]: https://github.com/rust-lang/rust/pull/57105
118125
[57130]: https://github.com/rust-lang/rust/pull/57130/
119126
[57167]: https://github.com/rust-lang/rust/pull/57167/
120127
[57175]: https://github.com/rust-lang/rust/pull/57175/
121128
[57234]: https://github.com/rust-lang/rust/pull/57234/
122129
[57332]: https://github.com/rust-lang/rust/pull/57332/
123-
[56947]: https://github.com/rust-lang/rust/pull/56947/
124-
[57049]: https://github.com/rust-lang/rust/pull/57049/
125-
[57067]: https://github.com/rust-lang/rust/pull/57067/
126-
[56769]: https://github.com/rust-lang/rust/pull/56769/
127-
[56642]: https://github.com/rust-lang/rust/pull/56642/
128-
[56303]: https://github.com/rust-lang/rust/pull/56303/
129-
[56351]: https://github.com/rust-lang/rust/pull/56351/
130-
[55982]: https://github.com/rust-lang/rust/pull/55982/
131-
[56362]: https://github.com/rust-lang/rust/pull/56362
132-
[57105]: https://github.com/rust-lang/rust/pull/57105
130+
[57465]: https://github.com/rust-lang/rust/pull/57465/
131+
[57532]: https://github.com/rust-lang/rust/pull/57532/
132+
[57535]: https://github.com/rust-lang/rust/pull/57535/
133+
[57566]: https://github.com/rust-lang/rust/pull/57566/
134+
[57615]: https://github.com/rust-lang/rust/pull/57615/
133135
[cargo/6484]: https://github.com/rust-lang/cargo/pull/6484/
134136
[`unix::FileExt::read_exact_at`]: https://doc.rust-lang.org/std/os/unix/fs/trait.FileExt.html#method.read_exact_at
135137
[`unix::FileExt::write_all_at`]: https://doc.rust-lang.org/std/os/unix/fs/trait.FileExt.html#method.write_all_at
@@ -170,7 +172,7 @@ Language
170172
- [You can now match against literals in macros with the `literal`
171173
specifier.][56072] This will match against a literal of any type.
172174
E.g. `1`, `'A'`, `"Hello World"`
173-
- [Self can now be used as a constructor and pattern for unit and tuple structs.][56365] E.g.
175+
- [Self can now be used as a constructor and pattern for unit and tuple structs.][56365] E.g.
174176
```rust
175177
struct Point(i32, i32);
176178

@@ -460,7 +462,7 @@ Version 1.31.0 (2018-12-06)
460462

461463
Language
462464
--------
463-
- 🎉 [This version marks the release of the 2018 edition of Rust.][54057] 🎉
465+
- 🎉 [This version marks the release of the 2018 edition of Rust.][54057] 🎉
464466
- [New lifetime elision rules now allow for eliding lifetimes in functions and
465467
impl headers.][54778] E.g. `impl<'a> Reader for BufReader<'a> {}` can now be
466468
`impl Reader for BufReader<'_> {}`. Lifetimes are still required to be defined

appveyor.yml

-5
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@ environment:
55
# server goes down presumably. See #43333 for more info
66
CARGO_HTTP_CHECK_REVOKE: false
77

8-
# Execute the builds on GCE instead of Hyper-V. Those builders have a 3-4
9-
# minute startup overhead, but AppVeyor support recommended this as a
10-
# possible solution for #58160 (spurious 259 exit codes)
11-
appveyor_build_worker_cloud: gce
12-
138
matrix:
149
# 32/64 bit MSVC tests
1510
- MSYS_BITS: 64

config.toml.example

+6-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
# support. You'll need to write a target specification at least, and most
6262
# likely, teach rustc about the C ABI of the target. Get in touch with the
6363
# Rust team and file an issue if you need assistance in porting!
64-
#targets = "X86;ARM;AArch64;Mips;PowerPC;SystemZ;JSBackend;MSP430;Sparc;NVPTX;Hexagon"
64+
#targets = "X86;ARM;AArch64;Mips;PowerPC;SystemZ;MSP430;Sparc;NVPTX;Hexagon"
6565

6666
# LLVM experimental targets to build support for. These targets are specified in
6767
# the same format as above, but since these targets are experimental, they are
@@ -104,6 +104,8 @@
104104
# The value specified here will be passed as `-DLLVM_USE_LINKER` to CMake.
105105
#use-linker = "lld"
106106

107+
# Whether or not to specify `-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=YES`
108+
#allow-old-toolchain = false
107109

108110
# =============================================================================
109111
# General build configuration options
@@ -162,6 +164,9 @@
162164
# Python interpreter to use for various tasks throughout the build, notably
163165
# rustdoc tests, the lldb python interpreter, and some dist bits and pieces.
164166
# Note that Python 2 is currently required.
167+
#
168+
# Defaults to python2.7, then python2. If neither executable can be found, then
169+
# it defaults to the Python interpreter used to execute x.py.
165170
#python = "python2.7"
166171

167172
# Force Cargo to check that Cargo.lock describes the precise dependency

src/bootstrap/bin/rustc.rs

+16-7
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,14 @@ fn main() {
107107
// actually downloaded, so we just always pass the `--sysroot` option.
108108
cmd.arg("--sysroot").arg(&sysroot);
109109

110+
cmd.arg("-Zexternal-macro-backtrace");
111+
112+
// Link crates to the proc macro crate for the target, but use a host proc macro crate
113+
// to actually run the macros
114+
if env::var_os("RUST_DUAL_PROC_MACROS").is_some() {
115+
cmd.arg("-Zdual-proc-macros");
116+
}
117+
110118
// When we build Rust dylibs they're all intended for intermediate
111119
// usage, so make sure we pass the -Cprefer-dynamic flag instead of
112120
// linking all deps statically into the dylib.
@@ -256,13 +264,6 @@ fn main() {
256264
}
257265
}
258266

259-
// Force all crates compiled by this compiler to (a) be unstable and (b)
260-
// allow the `rustc_private` feature to link to other unstable crates
261-
// also in the sysroot.
262-
if env::var_os("RUSTC_FORCE_UNSTABLE").is_some() {
263-
cmd.arg("-Z").arg("force-unstable-if-unmarked");
264-
}
265-
266267
if let Ok(map) = env::var("RUSTC_DEBUGINFO_MAP") {
267268
cmd.arg("--remap-path-prefix").arg(&map);
268269
}
@@ -282,6 +283,14 @@ fn main() {
282283
}
283284
}
284285

286+
// Force all crates compiled by this compiler to (a) be unstable and (b)
287+
// allow the `rustc_private` feature to link to other unstable crates
288+
// also in the sysroot. We also do this for host crates, since those
289+
// may be proc macros, in which case we might ship them.
290+
if env::var_os("RUSTC_FORCE_UNSTABLE").is_some() && (stage != "0" || target.is_some()) {
291+
cmd.arg("-Z").arg("force-unstable-if-unmarked");
292+
}
293+
285294
if env::var_os("RUSTC_PARALLEL_COMPILER").is_some() {
286295
cmd.arg("--cfg").arg("parallel_compiler");
287296
}

src/bootstrap/bootstrap.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,10 @@ def default_build_triple():
262262
cputype = 'arm'
263263
if ostype == 'linux-android':
264264
ostype = 'linux-androideabi'
265+
elif ostype == 'unknown-freebsd':
266+
cputype = subprocess.check_output(
267+
['uname', '-p']).strip().decode(default_encoding)
268+
ostype = 'unknown-freebsd'
265269
elif cputype == 'armv6l':
266270
cputype = 'arm'
267271
if ostype == 'linux-android':
@@ -830,7 +834,7 @@ def main():
830834

831835
# x.py help <cmd> ...
832836
if len(sys.argv) > 1 and sys.argv[1] == 'help':
833-
sys.argv = sys.argv[:1] + [sys.argv[2], '-h'] + sys.argv[3:]
837+
sys.argv = [sys.argv[0], '-h'] + sys.argv[2:]
834838

835839
help_triggered = (
836840
'-h' in sys.argv) or ('--help' in sys.argv) or (len(sys.argv) == 1)

src/bootstrap/builder.rs

+13-1
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,8 @@ impl<'a> Builder<'a> {
405405
test::Miri,
406406
test::Clippy,
407407
test::CompiletestTest,
408-
test::RustdocJS,
408+
test::RustdocJSStd,
409+
test::RustdocJSNotStd,
409410
test::RustdocTheme,
410411
// Run bootstrap close to the end as it's unlikely to fail
411412
test::Bootstrap,
@@ -813,6 +814,17 @@ impl<'a> Builder<'a> {
813814
cargo.env("RUST_CHECK", "1");
814815
}
815816

817+
match mode {
818+
Mode::Std | Mode::Test | Mode::ToolBootstrap | Mode::ToolStd | Mode::ToolTest=> {},
819+
Mode::Rustc | Mode::Codegen | Mode::ToolRustc => {
820+
// Build proc macros both for the host and the target
821+
if target != compiler.host && cmd != "check" {
822+
cargo.arg("-Zdual-proc-macros");
823+
cargo.env("RUST_DUAL_PROC_MACROS", "1");
824+
}
825+
},
826+
}
827+
816828
cargo.arg("-j").arg(self.jobs().to_string());
817829
// Remove make-related flags to ensure Cargo can correctly set things up
818830
cargo.env_remove("MAKEFLAGS");

src/bootstrap/channel.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use crate::Build;
1414
use crate::config::Config;
1515

1616
// The version number
17-
pub const CFG_RELEASE_NUM: &str = "1.34.0";
17+
pub const CFG_RELEASE_NUM: &str = "1.35.0";
1818

1919
pub struct GitInfo {
2020
inner: Option<Info>,

src/bootstrap/check.rs

+8-4
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,8 @@ impl Step for Std {
4242
true);
4343

4444
let libdir = builder.sysroot_libdir(compiler, target);
45-
add_to_sysroot(&builder, &libdir, &libstd_stamp(builder, compiler, target));
45+
let hostdir = builder.sysroot_libdir(compiler, compiler.host);
46+
add_to_sysroot(&builder, &libdir, &hostdir, &libstd_stamp(builder, compiler, target));
4647
}
4748
}
4849

@@ -88,7 +89,8 @@ impl Step for Rustc {
8889
true);
8990

9091
let libdir = builder.sysroot_libdir(compiler, target);
91-
add_to_sysroot(&builder, &libdir, &librustc_stamp(builder, compiler, target));
92+
let hostdir = builder.sysroot_libdir(compiler, compiler.host);
93+
add_to_sysroot(&builder, &libdir, &hostdir, &librustc_stamp(builder, compiler, target));
9294
}
9395
}
9496

@@ -175,7 +177,8 @@ impl Step for Test {
175177
true);
176178

177179
let libdir = builder.sysroot_libdir(compiler, target);
178-
add_to_sysroot(builder, &libdir, &libtest_stamp(builder, compiler, target));
180+
let hostdir = builder.sysroot_libdir(compiler, compiler.host);
181+
add_to_sysroot(builder, &libdir, &hostdir, &libtest_stamp(builder, compiler, target));
179182
}
180183
}
181184

@@ -222,7 +225,8 @@ impl Step for Rustdoc {
222225
true);
223226

224227
let libdir = builder.sysroot_libdir(compiler, target);
225-
add_to_sysroot(&builder, &libdir, &rustdoc_stamp(builder, compiler, target));
228+
let hostdir = builder.sysroot_libdir(compiler, compiler.host);
229+
add_to_sysroot(&builder, &libdir, &hostdir, &rustdoc_stamp(builder, compiler, target));
226230
builder.cargo(compiler, Mode::ToolRustc, target, "clean");
227231
}
228232
}

0 commit comments

Comments
 (0)