Commit Graph

66829 Commits

Author SHA1 Message Date
Ralf Jung
16fc74c6a2 give up on trying to fix the assertion failure 2017-08-29 16:10:13 +02:00
Ralf Jung
7d9e26f788 Fix alloc_jemalloc debug feature
At least, I think that's how it should be.  'debug' is how the feature is called in Cargo.toml.
2017-08-29 16:10:13 +02:00
bors
a12e4f8098 Auto merge of #43532 - petrochenkov:pgargs, r=nikomatsakis
Desugar parenthesized generic arguments in HIR

Fixes ICE in https://github.com/rust-lang/rust/issues/43431 and maybe some other similar issues.

r? @eddyb
2017-08-24 03:48:25 +00:00
bors
560b6ca6c0 Auto merge of #42565 - murarth:rc-from-slice, r=aturon
Implement From<&[T]> and others for Arc/Rc (RFC 1845)

* Implements `From<`{`&[T]`, `&str`, `String`, `Box<T> where T: ?Sized`, `Vec<T>`}`>` for `Arc`/`Rc`
* Removes `rustc_private`-marked methods `Rc::__from_array` and `Rc::__from_str`, replacing their use with `Rc::from`

Tracking issue: #40475
2017-08-23 23:20:32 +00:00
bors
2bb8fca182 Auto merge of #44058 - frewsxcv:rollup, r=frewsxcv
Rollup of 8 pull requests

- Successful merges: #43631, #43977, #43983, #44016, #44039, #44043, #44047, #44054
- Failed merges:
2017-08-23 13:46:14 +00:00
Corey Farwell
96efcdf065 Rollup merge of #44054 - frewsxcv:frewsxcv-libstd-thread-unwrap-or-else, r=sfackler
Thread spawning: don't run `min_stack` if the user has specified stack size.

None
2017-08-23 08:44:30 -04:00
Corey Farwell
e9853c4758 Rollup merge of #44047 - cuviper:union-basic-endian, r=petrochenkov
Fix little-endian assumptions in run-pass/union/union-basic

None
2017-08-23 08:44:29 -04:00
Corey Farwell
86f0f44762 Rollup merge of #44043 - mattico:patch-1, r=alexcrichton
Clarify windows build instructions in README

The old wording made me think you were supposed to do `python x.py --build=msvc`, which is not the case. Specify that you need to use the target triple.
2017-08-23 08:44:28 -04:00
Corey Farwell
4d83634faf Rollup merge of #44039 - remexre:master, r=steveklabnik
Mention null_mut on the pointer primitive docs.

Also adds a few mentions that both `*const` and `*mut` support functions, when only `*const` was mentioned before.
2017-08-23 08:44:27 -04:00
Corey Farwell
99ab3193da Rollup merge of #44016 - steffengy:master, r=alexcrichton
libproc_macro docs: fix brace and bracket mixup

The documentation indicates that brace is `[`.
Brace is mapped token::Brace which (expectedly) is `{`.
So the documentation is simply confusing brace and bracket there.

Even though it's just a very small issue, it can lead to quite some confusion.
2017-08-23 08:44:26 -04:00
Corey Farwell
dd58d4e45e Rollup merge of #43983 - ids1024:redox-path-prefix, r=alexcrichton
Redox: correct is_absolute() and has_root()

This is awkward, but representing schemes properly in `Components` is not easily possible without breaking backwards compatibility, as discussed earlier in https://github.com/rust-lang/rust/pull/37702.

But these methods can be corrected anyway.
2017-08-23 08:44:25 -04:00
Corey Farwell
4902e6714f Rollup merge of #43977 - GuillaumeGomez:remove-outline, r=QuietMisdreavus
Remove outline when details have focus

r? @rust-lang/docs

(the green outline annoyed me a bit)
2017-08-23 08:44:24 -04:00
Corey Farwell
1182e52959 Rollup merge of #43631 - ruuda:update-docs, r=QuietMisdreavus
Point "deref coercions" links to new book

Currently the link on doc.rust-lang.org is semi-broken; it links to a page that links to the exact page in the first edition in the book, or to the index of the second edition of the book. If the second editions
is the recommended one now, we should point the links at that one. (In the mean time, the links have been updated to point directly to the first edition of the book, but that hasn't made it onto
the stable channel yet.) By the time this commit makes it onto the stable channel, the second edition of the book should be complete enough. At least the part about deref coercions is.

r? @steveklabnik
2017-08-23 08:44:23 -04:00
bors
a3f0ee9a7b Auto merge of #40113 - smaeul:native-musl, r=alexcrichton
Support dynamically-linked and/or native musl targets

These changes allow native compilation on musl-based distributions and the use of dynamic libraries on linux-musl targets. This is intended to remove limitations based on past assumptions about musl targets, while maintaining existing behavior by default.

A minor related bugfix is included.
2017-08-23 08:43:52 +00:00
bors
ca898411c3 Auto merge of #43948 - jseyfried:generic_arguments_in_paths, r=petrochenkov
Ensure that generic arguments don't end up in attribute paths.

Fixes #43424.
r? @petrochenkov or @nrc
2017-08-23 06:06:21 +00:00
bors
528307ab1c Auto merge of #43830 - alexcrichton:path-display-regression, r=aturon
std: Respect formatting flags for str-like OsStr

Historically many `Display` and `Debug` implementations for `OsStr`-like
abstractions have gone through `String::from_utf8_lossy`, but this was updated
in #42613 to use an internal `Utf8Lossy` abstraction instead. This had the
unfortunate side effect of causing a regression (#43765) in code which relied on
these `fmt` trait implementations respecting the various formatting flags
specified.

This commit opportunistically adds back interpretation of formatting trait flags
in the "common case" where where `OsStr`-like "thing" is all valid utf-8 and can
delegate to the formatting implementation for `str`. This doesn't entirely solve
the regression as non-utf8 paths will format differently than they did before
still (in that they will not respect formatting flags), but this should solve
the regression for all "real world" use cases of paths and such. The door's also
still open for handling these flags in the future!

Closes #43765
2017-08-23 03:24:13 +00:00
Corey Farwell
1d5ee636d7 Thread spawning: don't run min_stack if the user has specified stack size. 2017-08-22 23:05:14 -04:00
Jeffrey Seyfried
7e191685e3 Fix fallout in tests. 2017-08-22 15:50:21 -07:00
Jeffrey Seyfried
d54a6d9413 Ensure that generic arguments don't end up in attribute paths. 2017-08-22 15:50:19 -07:00
bors
1682f9d099 Auto merge of #44032 - pnkfelix:mir-borrowck-fix-orisnotand, r=eddyb
Fix logic error in test guarding prototype MIR borrowck code.

Fix logic error in test guarding prototype MIR borrowck code.

tl;dr: 🤦

(This crept in during the shift from a transform to a query (#44009); I didn't notice because my muscle memory was still always passing `-Z mir-borrowck`, while my test cases *also* had the `#[rustc_mir_borrowck]` attribute attached to them.)
2017-08-22 22:41:29 +00:00
Samuel Holland
e6cd941371 Update ignored tests for dynamic musl
Now that musl supports dynamic libraries (although not by default)
enable the tests that now pass. Additional currently-ignored tests
will pass if rustc is built with crt_static=false in config.toml.
2017-08-22 16:24:29 -05:00
Samuel Holland
565a863bc2 Support dynamic linking for musl-based targets
Note that this commit does not affect mips-musl targets, as they do not
inherit from linux_musl_base.
2017-08-22 16:24:29 -05:00
Samuel Holland
c9645678e8 Update libunwind dependencies for musl
Use libgcc_s when linking dynamically. Convert the static libunwind to
static-nobundle, as libunwind.a is copied from musl_root and available
in the library search path.
2017-08-22 16:24:29 -05:00
Samuel Holland
bab6911f8a Tell the linker when we want to link a static executable
If the C runtime is linked statically, explicitly tell the linker that
the executable should be static.
2017-08-22 16:24:29 -05:00
Samuel Holland
054f310868 Disable PIE when linking statically
Static PIE support, while supported on musl, requires a patch to GCC.
Until/unless it is merged, adding '-pie' to the linker command line will
override '-static' and create a binary that requires a dynamic
interpreter (ld.so).
2017-08-22 16:24:29 -05:00
Samuel Holland
12ceed013c Introduce target feature crt_static_allows_dylibs
Most UNIX-like platforms do not allow shared libraries to statically
link their own libc, as libc expects to have consistent process-global
state. On those platforms, when we do not have a shared libc available,
we must not attempt to link dylibs or cdylibs. On Windows, however, it
is expected to statically link the CRT into dynamic libraries.

This feature is only relevant for targets that support both fully-static
and fully-dynamic linkage, such as musl on Linux.
2017-08-22 16:24:29 -05:00
Samuel Holland
beb8abe9a5 Introduce temporary target feature crt_static_respected
This feature allows targets to opt in to full support of the crt-static
feature. Currently, crt-static is allowed on all targets, even those
that really can't or really shouldn't support it. This works because it
is very loose in the specification of its effects. Changing the behavior
of crt-static to be more strict in how it chooses libraries and links
executables would likely cause compilation to fail on these platforms.

To avoid breaking existing uses of crt-static, whitelist targets that
support the new, stricter behavior. For all other targets, this changes
crt-static from being "mostly a no-op" to "explicitly a no-op".
2017-08-22 16:24:29 -05:00
Samuel Holland
3cb987862f Factor out a helper for the getting C runtime linkage
This commit makes no functional changes.
2017-08-22 16:24:29 -05:00
Samuel Holland
52832439ad Inline crt-static choice for pc-windows-msvc
This avoids the possibility of a duplicate or conflicting crt-static
command line option sent to rustc.
2017-08-22 16:24:29 -05:00
Samuel Holland
4b09dc6e39 Introduce crt_static target option in config.toml
This controls the value of the crt-static feature used when building the
standard library for a target, as well as the compiler itself when that
target is the host.
2017-08-22 16:24:29 -05:00
Samuel Holland
0c7a0e9851 Copy musl startup objects before building std
They are required for linking it, even though it is a library, because
crtn.o in post_link_objects, as hardcoded in src/librustc_back/target/
linux_musl_base.rs, is added to the linker command line for both
executables and libraries.
2017-08-22 16:24:29 -05:00
Samuel Holland
8606782bc1 Infer a default musl_root for native builds 2017-08-22 16:24:29 -05:00
Samuel Holland
1757a8701d Improve explanation of musl_root 2017-08-22 16:24:29 -05:00
Samuel Holland
15c141ce05 Remove incorrect special case of mips-musl
The libdl/librt/libpthread provided by musl are no-op (empty static
libraries) on all architectures, mips included.
2017-08-22 16:24:29 -05:00
Josh Stone
b1e8c7215d Fix little-endian assumptions in run-pass/union/union-basic 2017-08-22 12:45:10 -07:00
bors
469a6f9bd9 Auto merge of #44013 - arielb1:coerce-snapshot, r=eddyb
Register fn-ptr coercion obligations out of a snapshot

Fixes #43923.

beta-nominating because regression.
r? @eddyb
2017-08-22 19:14:12 +00:00
Matt Ickstadt
081f32ab67 Clarify windows build instructions in README
The old wording made me think you were supposed to do `python x.py --build=msvc`, which is not the case. Specify that you need to use the target triple.
2017-08-22 13:28:39 -05:00
Ian Douglas Scott
fe2d661931
Simplify code for handling Redox paths 2017-08-22 10:33:49 -07:00
Nathaniel Ringo
c987f30049 Mention null_mut on the pointer primitive docs.
Also adds a few mentions that both `*const` and `*mut` support
functions, when only `*const` was mentioned before.
2017-08-22 12:00:05 -05:00
Ian Douglas Scott
ab48de8847
Use cfg! instead of #[cfg] 2017-08-22 08:17:05 -07:00
bors
a24e0f25d7 Auto merge of #44033 - GuillaumeGomez:rollup, r=GuillaumeGomez
Rollup of 5 pull requests

- Successful merges: #43993, #44001, #44010, #44014, #44029
- Failed merges:
2017-08-22 13:59:20 +00:00
Guillaume Gomez
2dfb8d73f7 Rollup merge of #44029 - WiSaGaN:patch-1, r=alexcrichton
Fix typos in 1.20 release notes
2017-08-22 13:36:21 +02:00
Guillaume Gomez
7c856886ad Rollup merge of #44014 - Mark-Simulacrum:update-readme, r=alexcrichton
Update rustbuild README

Fixes https://github.com/rust-lang/rust/issues/44007.

r? @alexcrichton
2017-08-22 13:36:20 +02:00
Guillaume Gomez
6b62f34ecd Rollup merge of #44010 - GuillaumeGomez:read-links, r=frewsxcv
Add missing links for Read trait

r? @rust-lang/docs
2017-08-22 13:36:19 +02:00
Guillaume Gomez
80cc5e51f0 Rollup merge of #44001 - tamird:release-notes-1.16, r=alexcrichton
RELEASES.md: document 1.16 lifetime elision change

Closes #41105.

r? @Mark-Simulacrum cc @nikomatsakis
2017-08-22 13:36:18 +02:00
Guillaume Gomez
16a189863c Rollup merge of #43993 - tamird:better-wording-error, r=arielb1
borrowck: name the correct type in error message

Closes #36407.

r? @Mark-Simulacrum
2017-08-22 13:36:17 +02:00
bors
1177911790 Auto merge of #44008 - RalfJung:staged1, r=alexcrichton
Make sure crates not opting in to staged_api don't use staged_api

This also fixes the problem that with `-Zforce-unstable-if-unmarked` set, crates could not use `#[deprecated]`.

If you prefer, I can instead submit another version which just fixes this problem, but still allows the staged API attributes for all crates when  `-Zforce-unstable-if-unmarked` is set. I have prepared that at <https://github.com/RalfJung/rust/tree/staged2>. As yet another alternative, @alexcrichton suggested to turn this error into a lint, but that seems to be much more work, so is it worth it?

Cc @alexcrichton #43975
2017-08-22 11:15:10 +00:00
Felix S. Klock II
fbb099edca Fix logic error in test guarding prototype MIR borrowck code.
(This crept in during the shift from a transform to a query; I didn't
notice because my muscle memory was still always passing `-Z
mir-borrowck`, while my test cases *also* had the
`#[rustc_mir_borrowck]` attribute attached to them.)
2017-08-22 12:05:52 +02:00
bors
7e5578da8c Auto merge of #44003 - LukasKalbertodt:patch-1, r=nikomatsakis
Add PartialEq/Eq impls to proc_macro::{Spacing, Delimiter}

I don't see a reason why those two types shouldn't be tested for equality. But I hardly know anything about proc macros, so I'm probably wrong :)
2017-08-22 08:32:14 +00:00
bors
6722996923 Auto merge of #43854 - estebank:missing-cond, r=nikomatsakis
Point out missing if conditional

On a case where an else conditional is missing, point this out
instead of the token immediately after the (incorrect) else block:

```
error: missing condition for `if` statemementt push fork -f

  --> $DIR/issue-13483.rs:16:5
   |
13 |    } else if {
   |             ^ expected if condition here
```

instead of

```
error: expected `{`, found `else`
  --> ../../src/test/ui/issue-13483.rs:14:7
   |
14 |     } else {
   |       ^^^^
```

Fix #13483.
2017-08-22 04:28:49 +00:00