Commit Graph

98938 Commits

Author SHA1 Message Date
Mazdak Farrokhzad
4398eb7b54
Rollup merge of #64425 - guanqun:typo-fix, r=matthewjasper
typo fix
2019-09-14 16:42:38 +02:00
Mazdak Farrokhzad
70787c7d85
Rollup merge of #64423 - ollie27:mailmap, r=Mark-Simulacrum
Add self to .mailmap
2019-09-14 16:42:36 +02:00
Mazdak Farrokhzad
181d12938d
Rollup merge of #64422 - ollie27:error_index_generator_stringify, r=Mark-Simulacrum
Remove raw string literal quotes from error index descriptions

The error index has unnecessary `r##"` and `"##` around the descriptions from #63721. Removing the `stringify` call removes them.

r? @Mark-Simulacrum
2019-09-14 16:42:35 +02:00
Mazdak Farrokhzad
5e44c5f2d6
Rollup merge of #64420 - nnethercote:inline-mark_neighbours_as_waiting_from, r=Mark-Simulacrum
Inline `mark_neighbours_as_waiting_from`.

This function is very hot, doesn't get inlined because it's recursive,
and the function calls are significant.

This commit splits it into inlined and uninlined variants, and uses the
inlined variant for the hot call site. This wins several percent on a
few benchmarks.

r? @nikomatsakis
2019-09-14 16:42:33 +02:00
Mazdak Farrokhzad
f669872690
Rollup merge of #64393 - Wind-River:master_002_envKey, r=alexcrichton
declare EnvKey before use to fix build error

r? @alexcrichton
2019-09-14 16:42:32 +02:00
Mazdak Farrokhzad
f7dd5d0f20
Rollup merge of #64384 - mati865:tools_hack, r=alexcrichton
Trim rustc-workspace-hack

Those dependencies seem no longer necessary.
`./x.py test` and `x86_64-gnu-tools` container passed locally so I think this won't hurt.
2019-09-14 16:42:31 +02:00
Mazdak Farrokhzad
ae9d417f2a
Rollup merge of #64378 - Rosto75:master, r=jonas-schievink
Fix inconsistent link formatting.
2019-09-14 16:42:29 +02:00
Mazdak Farrokhzad
c6c2acdb47
Rollup merge of #64375 - kornelski:vecdrop, r=rkruppe
Fast path for vec.clear/truncate

For trivial types like `u8`, `vec.truncate()`/`vec.clear()` relies on the optimizer to remove the loop. This means more work in debug builds, and more work for the optimizer.

Avoiding this busywork is exactly what `mem::needs_drop::<T>()` is for.
2019-09-14 16:42:28 +02:00
Mazdak Farrokhzad
af33a1d902
Rollup merge of #64374 - nnethercote:box-DiagnosticBuilder, r=zackmdavis
Box `DiagnosticBuilder`.

It's a large type -- 176 bytes on 64-bit. And it's passed around and
returned from a lot of functions, including within `PResult`.

This commit boxes it, which reduces memory traffic. In particular,
`PResult` shrinks to 16 bytes in the best case; this reduces instruction
counts by up to 2% on various workloads. The commit touches a lot of
lines but it's almost all trivial plumbing changes.
2019-09-14 16:42:26 +02:00
Mazdak Farrokhzad
1e2a97018f
Rollup merge of #64372 - Wind-River:master, r=alexcrichton
use randSecure and randABytes

r? @alexcrichton

cc @n-salim
2019-09-14 16:42:25 +02:00
Mazdak Farrokhzad
10541584d1
Rollup merge of #64302 - nnethercote:shrink-ObligationCauseCode, r=zackmdavis
Shrink `ObligationCauseCode`

These commits reduce the size of `ObligationCauseCode` from 56 bytes to 32 bytes on 64-bit. This reduces instruction counts on various benchmarks by up to 1%, due to less `memcpy`ing.
2019-09-14 16:42:23 +02:00
Mazdak Farrokhzad
afc52916f6
Rollup merge of #64203 - alexreg:rush-pr-2, r=centril
A few cosmetic improvements to code & comments in liballoc and libcore

Factored out from hacking on rustc for work on the REPL.

r? @Centril
2019-09-14 16:42:22 +02:00
Mazdak Farrokhzad
45baedb14b
Rollup merge of #64116 - ZeGentzy:patch-1, r=oli-obk
Fix minor typo in docs.

This comment is prolly refering to the comment in [const_eval_raw_provider](https://github.com/rust-lang/rust/pull/64116/files#diff-e0b58bb6712edaa8595ad7237542c958R616), not itself.
2019-09-14 16:42:20 +02:00
Mazdak Farrokhzad
baaaea3de3
Rollup merge of #63846 - DevQps:32626-document-time-system-calls, r=rkruppe
Added table containing the system calls used by Instant and SystemTime.

# Description
See #32626 for a discussion on documenting system calls used by Instant and SystemTime.

## Changes
- Added a table containing the system calls used by each platform.

EDIT: If I can format this table better (due to the large links) please let me know.
I'd also be happy to learn a quick command to generate the docs on my host machine! Currently I am using: `python x.py doc --stage 0 src/libstd` but that gives me some `unrecognized intrinsic` errors. Advice is always welcome :)

closes #32626
2019-09-14 16:42:19 +02:00
Alexander Regueiro
58a26c8fc0
Update src/liballoc/raw_vec.rs
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-09-14 15:26:50 +01:00
bors
457666860c Auto merge of #64080 - estebank:parse-format-comma, r=zackmdavis
Be accurate on `format!` parse error expectations

Fix https://github.com/rust-lang/rust/issues/57277.
2019-09-14 06:10:08 +00:00
Hal Gentz
094af9743b
Update value.rs 2019-09-13 20:37:38 -06:00
bors
a6946a817a Auto merge of #63420 - spastorino:place2_5, r=oli-obk
[Place 2.0] Convert Place's projection to a boxed slice

This is still work in progress, it's not compiling right now I need to review a bit more to see what's going on but wanted to open the PR to start discussing it.

r? @oli-obk
2019-09-13 15:37:15 +00:00
Christian Veenman
b3b671366b
Update src/libstd/time.rs
Co-Authored-By: Robin Kruppe <robin.kruppe@gmail.com>
2019-09-13 16:29:06 +02:00
Santiago Pastorino
28db2c9e95
Make all projection base names be proj_base 2019-09-13 09:30:23 -03:00
Santiago Pastorino
6ffc20f6a3
Use if let here 2019-09-13 09:30:00 -03:00
Santiago Pastorino
98edaead82
Fix style in comments 2019-09-13 09:30:00 -03:00
Santiago Pastorino
07a706ecf5
Avoid math and use patterns to grab projection base 2019-09-13 09:29:57 -03:00
Oliver Middleton
69112a27fb Add self to .mailmap 2019-09-13 11:42:31 +01:00
Oliver Middleton
bd25507f0e Remove raw string literal quotes from error index descriptions 2019-09-13 11:37:29 +01:00
Guanqun Lu
a47a5c3a62 typo fix 2019-09-13 17:36:52 +08:00
bors
3287a65fc0 Auto merge of #64254 - aleksijuvani:fix-macos-sysroot, r=alexcrichton
Fix sysroot on macOS when cross-compiling and SDKROOT is set

Fixes rust-lang/cargo#7283
Closes rust-lang/cargo#7284

r? @alexcrichton
2019-09-13 09:19:43 +00:00
Nicholas Nethercote
a2261ad664 Inline mark_neighbours_as_waiting_from.
This function is very hot, doesn't get inlined because it's recursive,
and the function calls are significant.

This commit splits it into inlined and uninlined variants, and uses the
inlined variant for the hot call site. This wins several percent on a
few benchmarks.
2019-09-13 13:46:23 +10:00
bors
f43ac06534 Auto merge of #64361 - ehuss:update-cargo, r=alexcrichton
Update cargo

11 commits in fe0e5a48b75da2b405c8ce1ba2674e174ae11d5d..9655d70af8a6dddac238e3afa2fec75088c9226f
2019-09-04 00:51:27 +0000 to 2019-09-10 18:16:11 +0000
- Home docs: fix broken links, misspellings, style fixes, clarifications. (rust-lang/cargo#7348)
- add readme key to cargos manifest. (rust-lang/cargo#7347)
- Explicitly ignore some results (rust-lang/cargo#7340)
- Don't resolve std's optional dependencies (rust-lang/cargo#7337)
- Add `alloc` and `proc_macro` to libstd crates (rust-lang/cargo#7336)
- doc: capitalization change for consistency. (rust-lang/cargo#7334)
- Fix test for changes in plugin API. (rust-lang/cargo#7335)
- Fix some man pages where the files weren't rebuilt. (rust-lang/cargo#7332)
- guide: add section about the cargo home (rust-lang/cargo#7314)
- `map_dependencies` is doing a deep clone, so lets make it cheaper (rust-lang/cargo#7326)
- don't need to copy this string (rust-lang/cargo#7324)
2019-09-13 01:07:51 +00:00
bors
a5e3de3437 Auto merge of #64360 - varkor:foreign-items-diagnostic-const-generics, r=cramertj
Correct the polymorphic extern fn error for const parameters

Before, any polymorphism on extern functions was assumed to be type polymorphism.
2019-09-12 21:20:06 +00:00
Santiago Pastorino
232a4a2881
Destructure instead of using split_at 2019-09-12 16:03:38 -03:00
Santiago Pastorino
9c0bbe09e9
Use fold 2019-09-12 15:25:33 -03:00
Aleksi Juvani
fe6d626abc Ignore linker env vars set for macOS on iOS targets 2019-09-12 17:14:54 +03:00
bors
eb48d6bdee Auto merge of #64359 - varkor:opaque-ty-in-extern, r=estebank
Forbid opaque types in `extern "C"` blocks

Fixes #64338.
2019-09-12 12:40:31 +00:00
Mateusz Mikuła
612c3947b4 Trim rustc-workspace-hack 2019-09-12 14:12:12 +02:00
Aleksi Juvani
e715d03275 Remove env vars instead of setting them to an empty string 2019-09-12 13:47:17 +03:00
bors
28e85d7ae7 Auto merge of #64328 - Mark-Simulacrum:rustdoc-find-rustc, r=GuillaumeGomez
rustdoc: change doctests locating rustc binary

We previously used the "naive" approach of replacing the `current_exe()`'s file name with rustc, but now load from the sysroot by default (`$sysroot/bin/rustc`). The functionality of locating the sysroot overlaps/is the same as the functionality used by codegen backend loading; this ensures that any failure cases we've introduced are not exceeding those, and that improvements to finding the sysroot for loading codegen backends likewise enhance rustdoc.

The second commit adds an unstable `--test-builder` flag to rustdoc, and is largely separate (I can split into separate PR, but it's a simple and related change). This is largely intended for "advanced" users at this point (I'm not sure if we'll ever stabilize it); it permits use of a different rustc binary for rustdoc compilation of doctests than the rustdoc binary used when loading. Note, that this may not be what you want as the parsers and such differ (and rustdoc uses its own libsyntax, etc.). However, I've been told that running doctests in miri may be assisted by this change, so I've implemented it; I'll file a tracking issue for it if there's interest in it (and we land this PR).
2019-09-12 08:29:55 +00:00
bors
f71826e8f2 Auto merge of #64303 - nnethercote:avoid-more-Symbol-to-string-operations, r=petrochenkov
Avoid more `Symbol`-to-string operations

These commits avoid various `Symbol`-to-string conversions, by doing more operations directly on `Symbol`s. This requires adding a few more static `Symbol`s to the binary.

r? @petrochenkov
2019-09-12 04:15:27 +00:00
Baoshan
08fa803946
Merge pull request #22 from Wind-River/master_002
declare EnvKey before use to fix build error
2019-09-11 19:34:23 -07:00
bors
c9edc02e83 Auto merge of #64334 - jyao1:i686-master, r=joshtriplett
Add i686-unknown-uefi target

This adds a new rustc target-configuration called 'i686-unknown_uefi'.
This is similar to existing x86_64-unknown_uefi target.

The i686-unknown-uefi target can be used to build Intel Architecture
32bit UEFI application. The ABI defined in UEFI environment (aka IA32)
is similar to cdecl.

We choose i686-unknown-uefi-gnu instead of i686-unknown-uefi to avoid
the intrinsics generated by LLVM. The detail of root-cause and solution
analysis is added as comment in the code.
For x86_64-unknown-uefi, we cannot use -gnu, because the ABI between
MSVC and GNU is totally different, and UEFI chooses ABI similar to MSVC.
For i686-unknown-uefi, the UEFI chooses cdecl ABI, which is same as
MSVC and GNU. According to LLVM code, the only differences between MSVC
and GNU are fmodf(f32), longjmp() and TLS, which have no impact to UEFI.
As such, using i686-unknown-uefi-gnu is the simplest way to pass the build.

Adding the undefined symbols, such as _aulldiv() to rust compiler-builtins
is out of scope. But it may be considered later.

The scope of this patch is limited to support target-configuration.

No standard library support is added in this patch. Such work can be
done in future enhancement.

Cc: Josh Triplett <josh.triplett@intel.com>
Reviewed-by: Josh Triplett <josh.triplett@intel.com>
2019-09-11 22:40:11 +00:00
Nicholas Nethercote
2fcd870711 Box DiagnosticBuilder.
It's a large type -- 176 bytes on 64-bit. And it's passed around and
returned from a lot of functions, including within PResult.

This commit boxes it, which reduces memory traffic. In particular,
`PResult` shrinks to 16 bytes in the best case; this reduces instruction
counts by up to 2% on various workloads.
2019-09-12 08:29:17 +10:00
Santiago Pastorino
87420cd1bc
Make Place Boxed on Statement to reduce size from 64 bytes to 32 bytes 2019-09-11 16:28:06 -03:00
Kornel
223600ac2c Guarantee vec.clear/truncate is O(1) for trivial types 2019-09-11 20:14:23 +01:00
bors
f0b58fcf03 Auto merge of #64271 - Centril:non-exhaustive-peel-refs, r=estebank
check_match: refactor + improve non-exhaustive diagnostics for default binding modes

Refactor `check_match` a bit with more code-reuse and improve the diagnostics for a non-exhaustive pattern match by peeling off any references from the scrutinee type so that the "defined here" label is added in more cases. For example:

```rust
error[E0004]: non-exhaustive patterns: `&mut &B` not covered
 --> foo.rs:4:11
  |
1 | enum E { A, B }
  | ---------------
  | |           |
  | |           not covered
  | `E` defined here
...
4 |     match x {
  |           ^ pattern `&mut &B` not covered
  |
  = help: ensure that all possible cases are being handled, possibly by adding wildcards or more match arms
```

Moreover, wrt. "defined here", we give irrefutable pattern matching (i.e. in `let`, `for`, and `fn` parameters) a more consistent treatment in line with `match`.

r? @estebank
2019-09-11 18:46:18 +00:00
bors
fe6d05a8b3 Auto merge of #64154 - alexcrichton:std-backtrace, r=sfackler
std: Add a `backtrace` module

This commit adds a `backtrace` module to the standard library, as
designed in [RFC 2504]. The `Backtrace` type is intentionally very
conservative, effectively only allowing capturing it and printing it.

Additionally this commit also adds a `backtrace` method to the `Error`
trait which defaults to returning `None`, as specified in [RFC 2504].
More information about the design here can be found in [RFC 2504] and in
the [tracking issue].

Implementation-wise this is all based on the `backtrace` crate and very
closely mirrors the `backtrace::Backtrace` type on crates.io. Otherwise
it's pretty standard in how it handles everything internally.

[RFC 2504]: https://github.com/rust-lang/rfcs/blob/master/text/2504-fix-error.md
[tracking issue]: https://github.com/rust-lang/rust/issues/53487

cc #53487
2019-09-11 14:46:08 +00:00
Tomasz Różański
a8c5f90b06 Fix inconsistent link formatting. 2019-09-11 14:03:40 +02:00
Baoshan Pang
b731e11d52 declare EnvKey before use to fix build error 2019-09-10 21:35:01 -07:00
Baoshan
5e8bf872f6
Merge pull request #21 from rust-lang/master
Sync with rust-lang/rust master branch
2019-09-10 21:21:48 -07:00
Nicholas Nethercote
8138efae16 Avoid two Symbol::as_str() calls. 2019-09-11 13:30:21 +10:00
Nicholas Nethercote
4fd18c9c06 Use Symbol in external_path(). 2019-09-11 11:31:38 +10:00