Skip to content

Commit b9b5138

Browse files
committed
Auto merge of #39199 - alexcrichton:rollup, r=alexcrichton
Rollup of 28 pull requests - Successful merges: #38603, #38761, #38842, #38847, #38955, #38966, #39062, #39068, #39077, #39111, #39112, #39114, #39118, #39120, #39132, #39135, #39138, #39142, #39143, #39146, #39157, #39166, #39167, #39168, #39179, #39184, #39195, #39197 - Failed merges: #39060, #39145
2 parents a52da95 + 72c3148 commit b9b5138

File tree

151 files changed

+4973
-926
lines changed

Some content is hidden

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

151 files changed

+4973
-926
lines changed

.travis.yml

+14-11
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@ git:
88
depth: 1
99
submodules: false
1010

11-
osx_image: xcode8.2
12-
1311
matrix:
12+
fast_finish: true
1413
include:
1514
# Linux builders, all docker images
16-
- env: IMAGE=arm-android DEPLOY=1
15+
- env: IMAGE=android DEPLOY=1
1716
- env: IMAGE=cross DEPLOY=1
17+
- env: IMAGE=linux-tested-targets DEPLOY=1
1818
- env: IMAGE=dist-arm-linux DEPLOY=1
1919
- env: IMAGE=dist-armv7-aarch64-linux DEPLOY=1
2020
- env: IMAGE=dist-freebsd DEPLOY=1
@@ -23,16 +23,17 @@ matrix:
2323
- env: IMAGE=dist-powerpc-linux DEPLOY=1
2424
- env: IMAGE=dist-powerpc64-linux DEPLOY=1
2525
- env: IMAGE=dist-s390x-linux-netbsd DEPLOY=1
26-
- env: IMAGE=i686-gnu DEPLOY=1
26+
- env: IMAGE=dist-x86-linux DEPLOY=1
27+
- env: IMAGE=emscripten
28+
- env: IMAGE=i686-gnu
2729
- env: IMAGE=i686-gnu-nopt
28-
- env: IMAGE=x86_64-gnu DEPLOY=1
30+
- env: IMAGE=x86_64-gnu
2931
- env: IMAGE=x86_64-gnu-full-bootstrap
3032
- env: IMAGE=x86_64-gnu-aux
3133
- env: IMAGE=x86_64-gnu-debug
3234
- env: IMAGE=x86_64-gnu-nopt
3335
- env: IMAGE=x86_64-gnu-make
3436
- env: IMAGE=x86_64-gnu-llvm-3.7 ALLOW_PR=1 RUST_BACKTRACE=1
35-
- env: IMAGE=x86_64-musl DEPLOY=1
3637
- env: IMAGE=x86_64-gnu-distcheck
3738

3839
# OSX builders
@@ -41,6 +42,7 @@ matrix:
4142
RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin
4243
SRC=.
4344
os: osx
45+
osx_image: xcode8.2
4446
before_script: &osx_before_script >
4547
ulimit -c unlimited
4648
install: &osx_install_sccache >
@@ -50,7 +52,7 @@ matrix:
5052
echo 'bt all' > cmds;
5153
for file in $(ls /cores); do
5254
echo core file $file;
53-
lldb -c $file `which ld` -b -s cmds;
55+
lldb -c /cores/$file `which ld` -b -s cmds;
5456
done
5557
5658
- env: >
@@ -59,6 +61,7 @@ matrix:
5961
SRC=.
6062
DEPLOY=1
6163
os: osx
64+
osx_image: xcode8.2
6265
before_script: *osx_before_script
6366
install: *osx_install_sccache
6467
after_failure: *osx_after_failure
@@ -67,6 +70,7 @@ matrix:
6770
RUST_CONFIGURE_ARGS=--build=x86_64-apple-darwin --disable-rustbuild
6871
SRC=.
6972
os: osx
73+
osx_image: xcode8.2
7074
before_script: *osx_before_script
7175
install: *osx_install_sccache
7276
after_failure: *osx_after_failure
@@ -76,6 +80,7 @@ matrix:
7680
SRC=.
7781
DEPLOY=1
7882
os: osx
83+
osx_image: xcode8.2
7984
before_script: *osx_before_script
8085
install: *osx_install_sccache
8186
after_failure: *osx_after_failure
@@ -119,11 +124,9 @@ before_deploy:
119124
- mkdir -p deploy/$TRAVIS_COMMIT
120125
- >
121126
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
122-
cp build/dist/*.tar.gz deploy/$TRAVIS_COMMIT &&
123-
find "deploy/$TRAVIS_COMMIT" -maxdepth 1 -type f -exec sh -c 'shasum -a 256 -b "{}" > "{}.sha256"' \;;
127+
cp build/dist/*.tar.gz deploy/$TRAVIS_COMMIT;
124128
else
125-
cp obj/build/dist/*.tar.gz deploy/$TRAVIS_COMMIT &&
126-
find "deploy/$TRAVIS_COMMIT" -maxdepth 1 -type f -exec sh -c 'sha256sum -b "{}" > "{}.sha256"' \;;
129+
cp obj/build/dist/*.tar.gz deploy/$TRAVIS_COMMIT;
127130
fi
128131
129132
deploy:

RELEASES.md

+241
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,244 @@
1+
Version 1.15.0 (2017-02-02)
2+
===========================
3+
4+
Language
5+
--------
6+
7+
* Basic procedural macros allowing custom `#[derive]`, aka "macros 1.1", are
8+
stable. This allows popular code-generating crates like Serde and Diesel to
9+
work ergonomically. [RFC 1681].
10+
* [Tuple structs may be empty. Unary and empty tuple structs may be instantiated
11+
with curly braces][36868]. Part of [RFC 1506].
12+
* [A number of minor changes to name resolution have been activated][37127].
13+
They add up to more consistent semantics, allowing for future evolution of
14+
Rust macros. Specified in [RFC 1560], see its section on ["changes"] for
15+
details of what is different. The breaking changes here have been transitioned
16+
through the [`legacy_imports`] lint since 1.14, with no known regressions.
17+
* [In `macro_rules`, `path` fragments can now be parsed as type parameter
18+
bounds][38279]
19+
* [`?Sized` can be used in `where` clauses][37791]
20+
* [There is now a limit on the size of monomorphized types and it can be
21+
modified with the `#![type_size_limit]` crate attribute, similarly to
22+
the `#![recursion_limit]` attribute][37789]
23+
24+
Compiler
25+
--------
26+
27+
* [On Windows, the compiler will apply dllimport attributes when linking to
28+
extern functions][37973]. Additional attributes and flags can control which
29+
library kind is linked and its name. [RFC 1717].
30+
* [Rust-ABI symbols are no longer exported from cdylibs][38117]
31+
* [The `--test` flag works with procedural macro crates][38107]
32+
* [Fix `extern "aapcs" fn` ABI][37814]
33+
* [The `-C no-stack-check` flag is deprecated][37636]. It does nothing.
34+
* [The `format!` expander recognizes incorrect `printf` and shell-style
35+
formatting directives and suggests the correct format][37613].
36+
* [Only report one error for all unused imports in an import list][37456]
37+
38+
Compiler Performance
39+
--------------------
40+
41+
* [Avoid unnecessary `mk_ty` calls in `Ty::super_fold_with`][37705]
42+
* [Avoid more unnecessary `mk_ty` calls in `Ty::super_fold_with`][37979]
43+
* [Don't clone in `UnificationTable::probe`][37848]
44+
* [Remove `scope_auxiliary` to cut RSS by 10%][37764]
45+
* [Use small vectors in type walker][37760]
46+
* [Macro expansion performance was improved][37701]
47+
* [Change `HirVec<P<T>>` to `HirVec<T>` in `hir::Expr`][37642]
48+
* [Replace FNV with a faster hash function][37229]
49+
50+
Stabilized APIs
51+
---------------
52+
53+
* [`std::iter::Iterator::min_by`]
54+
* [`std::iter::Iterator::max_by`]
55+
* [`std::os::*::fs::FileExt`]
56+
* [`std::sync::atomic::Atomic*::get_mut`]
57+
* [`std::sync::atomic::Atomic*::into_inner`]
58+
* [`std::vec::IntoIter::as_slice`]
59+
* [`std::vec::IntoIter::as_mut_slice`]
60+
* [`std::sync::mpsc::Receiver::try_iter`]
61+
* [`std::os::unix::process::CommandExt::before_exec`]
62+
* [`std::rc::Rc::strong_count`]
63+
* [`std::rc::Rc::weak_count`]
64+
* [`std::sync::Arc::strong_count`]
65+
* [`std::sync::Arc::weak_count`]
66+
* [`std::char::encode_utf8`]
67+
* [`std::char::encode_utf16`]
68+
* [`std::cell::Ref::clone`]
69+
* [`std::io::Take::into_inner`]
70+
71+
Libraries
72+
---------
73+
74+
* [The standard sorting algorithm has been rewritten for dramatic performance
75+
improvements][38192]. It is a hybrid merge sort, drawing influences from
76+
Timsort. Previously it was a naive merge sort.
77+
* [`Iterator::nth` no longer has a `Sized` bound][38134]
78+
* [`Extend<&T>` is specialized for `Vec` where `T: Copy`][38182] to improve
79+
performance.
80+
* [`chars().count()` is much faster][37888] and so are [`chars().last()`
81+
and `char_indices().last()`][37882]
82+
* [Fix ARM Objective-C ABI in `std::env::args`][38146]
83+
* [Chinese characters display correctly in `fmt::Debug`][37855]
84+
* [Derive `Default` for `Duration`][37699]
85+
* [Support creation of anonymous pipes on WinXP/2k][37677]
86+
* [`mpsc::RecvTimeoutError` implements `Error`][37527]
87+
* [Don't pass overlapped handles to processes][38835]
88+
89+
Cargo
90+
-----
91+
92+
* [In this release, Cargo build scripts no longer have access to the `OUT_DIR`
93+
environment variable at build time via `env!("OUT_DIR")`][cargo/3368]. They
94+
should instead check the variable at runtime with `std::env`. That the value
95+
was set at build time was a bug, and incorrect when cross-compiling. This
96+
change is known to cause breakage.
97+
* [Add `--all` flag to `cargo test`][cargo/3221]
98+
* [Compile statically against the MSVC CRT][cargo/3363]
99+
* [Mix feature flags into fingerprint/metadata shorthash][cargo/3102]
100+
* [Link OpenSSL statically on OSX][cargo/3311]
101+
* [Apply new fingerprinting to build dir outputs][cargo/3310]
102+
* [Test for bad path overrides with summaries][cargo/3336]
103+
* [Require `cargo install --vers` to take a semver version][cargo/3338]
104+
* [Fix retrying crate downloads for network errors][cargo/3348]
105+
* [Implement string lookup for `build.rustflags` config key][cargo/3356]
106+
* [Emit more info on --message-format=json][cargo/3319]
107+
* [Assume `build.rs` in the same directory as `Cargo.toml` is a build script][cargo/3361]
108+
* [Don't ignore errors in workspace manifest][cargo/3409]
109+
* [Fix `--message-format JSON` when rustc emits non-JSON warnings][cargo/3410]
110+
111+
Tooling
112+
-------
113+
114+
* [Test runners (binaries built with `--test`) now support a `--list` argument
115+
that lists the tests it contains][38185]
116+
* [Test runners now support a `--exact` argument that makes the test filter
117+
match exactly, instead of matching only a substring of the test name][38181]
118+
* [rustdoc supports a `--playground-url` flag][37763]
119+
* [rustdoc provides more details about `#[should_panic]` errors][37749]
120+
121+
Misc
122+
----
123+
124+
* [The Rust build system is now written in Rust][37817]. The Makefiles may
125+
continue to be used in this release by passing `--disable-rustbuild` to the
126+
configure script, but they will be deleted soon. Note that the new build
127+
system uses a different on-disk layout that will likely affect any scripts
128+
building Rust.
129+
* [Rust supports i686-unknown-openbsd][38086]. Tier 3 support. No testing or
130+
releases.
131+
* [Rust supports the MSP430][37627]. Tier 3 support. No testing or releases.
132+
* [Rust supports the ARMv5TE architecture][37615]. Tier 3 support. No testing or
133+
releases.
134+
135+
Compatibility Notes
136+
-------------------
137+
138+
* [A number of minor changes to name resolution have been activated][37127].
139+
They add up to more consistent semantics, allowing for future evolution of
140+
Rust macros. Specified in [RFC 1560], see its section on ["changes"] for
141+
details of what is different. The breaking changes here have been transitioned
142+
through the [`legacy_imports`] lint since 1.14, with no known regressions.
143+
* [In this release, Cargo build scripts no longer have access to the `OUT_DIR`
144+
environment variable at build time via `env!("OUT_DIR")`][cargo/3368]. They
145+
should instead check the variable at runtime with `std::env`. That the value
146+
was set at build time was a bug, and incorrect when cross-compiling. This
147+
change is known to cause breakage.
148+
* [Higher-ranked lifetimes are no longer allowed to appear _only_ in associated
149+
types][33685]. The [`hr_lifetime_in_assoc_type` lint] has been a warning since
150+
1.10 and is now an error by default. It will become a hard error in the near
151+
future.
152+
* [The semantics relating modules to file system directories are changing in
153+
minor ways][37602]. This is captured in the new `legacy_directory_ownership`
154+
lint, which is a warning in this release, and will become a hard error in the
155+
future.
156+
* [Rust-ABI symbols are no longer exported from cdylibs][38117]
157+
* [Once `Peekable` peeks a `None` it will return that `None` without re-querying
158+
the underlying iterator][37834]
159+
160+
["changes"]: https://github.com/rust-lang/rfcs/blob/master/text/1560-name-resolution.md#changes-to-name-resolution-rules
161+
[33685]: https://github.com/rust-lang/rust/issues/33685
162+
[36868]: https://github.com/rust-lang/rust/pull/36868
163+
[37127]: https://github.com/rust-lang/rust/pull/37127
164+
[37229]: https://github.com/rust-lang/rust/pull/37229
165+
[37456]: https://github.com/rust-lang/rust/pull/37456
166+
[37527]: https://github.com/rust-lang/rust/pull/37527
167+
[37602]: https://github.com/rust-lang/rust/pull/37602
168+
[37613]: https://github.com/rust-lang/rust/pull/37613
169+
[37615]: https://github.com/rust-lang/rust/pull/37615
170+
[37636]: https://github.com/rust-lang/rust/pull/37636
171+
[37642]: https://github.com/rust-lang/rust/pull/37642
172+
[37677]: https://github.com/rust-lang/rust/pull/37677
173+
[37699]: https://github.com/rust-lang/rust/pull/37699
174+
[37701]: https://github.com/rust-lang/rust/pull/37701
175+
[37705]: https://github.com/rust-lang/rust/pull/37705
176+
[37749]: https://github.com/rust-lang/rust/pull/37749
177+
[37760]: https://github.com/rust-lang/rust/pull/37760
178+
[37763]: https://github.com/rust-lang/rust/pull/37763
179+
[37764]: https://github.com/rust-lang/rust/pull/37764
180+
[37789]: https://github.com/rust-lang/rust/pull/37789
181+
[37791]: https://github.com/rust-lang/rust/pull/37791
182+
[37814]: https://github.com/rust-lang/rust/pull/37814
183+
[37817]: https://github.com/rust-lang/rust/pull/37817
184+
[37834]: https://github.com/rust-lang/rust/pull/37834
185+
[37848]: https://github.com/rust-lang/rust/pull/37848
186+
[37855]: https://github.com/rust-lang/rust/pull/37855
187+
[37882]: https://github.com/rust-lang/rust/pull/37882
188+
[37888]: https://github.com/rust-lang/rust/pull/37888
189+
[37973]: https://github.com/rust-lang/rust/pull/37973
190+
[37979]: https://github.com/rust-lang/rust/pull/37979
191+
[38086]: https://github.com/rust-lang/rust/pull/38086
192+
[38107]: https://github.com/rust-lang/rust/pull/38107
193+
[38117]: https://github.com/rust-lang/rust/pull/38117
194+
[38134]: https://github.com/rust-lang/rust/pull/38134
195+
[38146]: https://github.com/rust-lang/rust/pull/38146
196+
[38181]: https://github.com/rust-lang/rust/pull/38181
197+
[38182]: https://github.com/rust-lang/rust/pull/38182
198+
[38185]: https://github.com/rust-lang/rust/pull/38185
199+
[38192]: https://github.com/rust-lang/rust/pull/38192
200+
[38279]: https://github.com/rust-lang/rust/pull/38279
201+
[38835]: https://github.com/rust-lang/rust/pull/38835
202+
[RFC 1492]: https://github.com/rust-lang/rfcs/blob/master/text/1492-dotdot-in-patterns.md
203+
[RFC 1506]: https://github.com/rust-lang/rfcs/blob/master/text/1506-adt-kinds.md
204+
[RFC 1560]: https://github.com/rust-lang/rfcs/blob/master/text/1560-name-resolution.md
205+
[RFC 1681]: https://github.com/rust-lang/rfcs/blob/master/text/1681-macros-1.1.md
206+
[RFC 1717]: https://github.com/rust-lang/rfcs/blob/master/text/1717-dllimport.md
207+
[`hr_lifetime_in_assoc_type` lint]: https://github.com/rust-lang/rust/issues/33685
208+
[`legacy_imports`]: https://github.com/rust-lang/rust/pull/38271
209+
[cargo/3102]: https://github.com/rust-lang/cargo/pull/3102
210+
[cargo/3221]: https://github.com/rust-lang/cargo/pull/3221
211+
[cargo/3310]: https://github.com/rust-lang/cargo/pull/3310
212+
[cargo/3311]: https://github.com/rust-lang/cargo/pull/3311
213+
[cargo/3319]: https://github.com/rust-lang/cargo/pull/3319
214+
[cargo/3336]: https://github.com/rust-lang/cargo/pull/3336
215+
[cargo/3338]: https://github.com/rust-lang/cargo/pull/3338
216+
[cargo/3348]: https://github.com/rust-lang/cargo/pull/3348
217+
[cargo/3356]: https://github.com/rust-lang/cargo/pull/3356
218+
[cargo/3361]: https://github.com/rust-lang/cargo/pull/3361
219+
[cargo/3363]: https://github.com/rust-lang/cargo/pull/3363
220+
[cargo/3368]: https://github.com/rust-lang/cargo/issues/3368
221+
[cargo/3409]: https://github.com/rust-lang/cargo/pull/3409
222+
[cargo/3410]: https://github.com/rust-lang/cargo/pull/3410
223+
[`std::iter::Iterator::min_by`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.min_by
224+
[`std::iter::Iterator::max_by`]: https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.max_by
225+
[`std::os::*::fs::FileExt`]: https://doc.rust-lang.org/std/os/unix/fs/trait.FileExt.html
226+
[`std::sync::atomic::Atomic*::get_mut`]: https://doc.rust-lang.org/std/sync/atomic/struct.AtomicU8.html#method.get_mut
227+
[`std::sync::atomic::Atomic*::into_inner`]: https://doc.rust-lang.org/std/sync/atomic/struct.AtomicU8.html#method.into_inner
228+
[`std::vec::IntoIter::as_slice`]: https://doc.rust-lang.org/std/vec/struct.IntoIter.html#method.as_slice
229+
[`std::vec::IntoIter::as_mut_slice`]: https://doc.rust-lang.org/std/vec/struct.IntoIter.html#method.as_mut_slice
230+
[`std::sync::mpsc::Receiver::try_iter`]: https://doc.rust-lang.org/std/sync/mpsc/struct.Receiver.html#method.try_iter
231+
[`std::os::unix::process::CommandExt::before_exec`]: https://doc.rust-lang.org/std/os/unix/process/trait.CommandExt.html#tymethod.before_exec
232+
[`std::rc::Rc::strong_count`]: https://doc.rust-lang.org/std/rc/struct.Rc.html#method.strong_count
233+
[`std::rc::Rc::weak_count`]: https://doc.rust-lang.org/std/rc/struct.Rc.html#method.weak_count
234+
[`std::sync::Arc::strong_count`]: https://doc.rust-lang.org/std/sync/struct.Arc.html#method.strong_count
235+
[`std::sync::Arc::weak_count`]: https://doc.rust-lang.org/std/sync/struct.Arc.html#method.weak_count
236+
[`std::char::encode_utf8`]: https://doc.rust-lang.org/std/primitive.char.html#method.encode_utf8
237+
[`std::char::encode_utf16`]: https://doc.rust-lang.org/std/primitive.char.html#method.encode_utf16
238+
[`std::cell::Ref::clone`]: https://doc.rust-lang.org/std/cell/struct.Ref.html#method.clone
239+
[`std::io::Take::into_inner`]: https://doc.rust-lang.org/std/io/struct.Take.html#method.into_inner
240+
241+
1242
Version 1.14.0 (2016-12-22)
2243
===========================
3244

appveyor.yml

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ environment:
1111
SCRIPT: python x.py test && python x.py dist
1212
DEPLOY: 1
1313
- MSYS_BITS: 32
14-
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc
14+
RUST_CONFIGURE_ARGS: --build=i686-pc-windows-msvc --target=i586-pc-windows-msvc
1515
SCRIPT: python x.py test && python x.py dist
1616
DEPLOY: 1
1717

@@ -73,6 +73,9 @@ environment:
7373
MINGW_DIR: mingw64
7474
DEPLOY: 1
7575

76+
matrix:
77+
fast_finish: true
78+
7679
clone_depth: 1
7780
build: false
7881

@@ -131,9 +134,6 @@ before_deploy:
131134
- ps: |
132135
New-Item -Path deploy -ItemType directory
133136
Get-ChildItem -Path build\dist -Filter '*.tar.gz' | Move-Item -Destination deploy
134-
Get-FileHash .\deploy\* | ForEach-Object {
135-
[io.file]::WriteAllText($_.Path + ".sha256", $_.Hash.ToLower() + "`n")
136-
}
137137
Get-ChildItem -Path deploy | Foreach-Object {
138138
Push-AppveyorArtifact $_.FullName -FileName ${env:APPVEYOR_REPO_COMMIT}/$_
139139
}
@@ -147,7 +147,7 @@ deploy:
147147
bucket: rust-lang-ci
148148
set_public: true
149149
region: us-east-1
150-
artifact: /.*\.(tar.gz|sha256)/
150+
artifact: /.*\.tar.gz/
151151
folder: rustc-builds
152152
on:
153153
branch: auto

src/bootstrap/cc.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,14 @@ fn set_compiler(cfg: &mut gcc::Config,
121121
}
122122

123123
"mips-unknown-linux-musl" => {
124-
cfg.compiler("mips-linux-musl-gcc");
124+
if cfg.get_compiler().path().to_str() == Some("gcc") {
125+
cfg.compiler("mips-linux-musl-gcc");
126+
}
125127
}
126128
"mipsel-unknown-linux-musl" => {
127-
cfg.compiler("mipsel-linux-musl-gcc");
129+
if cfg.get_compiler().path().to_str() == Some("gcc") {
130+
cfg.compiler("mipsel-linux-musl-gcc");
131+
}
128132
}
129133

130134
t if t.contains("musl") => {

0 commit comments

Comments
 (0)