about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2018-04-19wasm: Increase default stack size to 1MBAlex Crichton-0/+1
This commit increases the dfeault stack size allocated to the wasm32-unknown-unknown target to 1MB by default. Currently the default stack size is one wasm page, or 64 kilobytes. This default stack is quite small and has caused a stack overflow or two in the wild by accident. The current "best practice" for fixing this is to pass `-Clink-args='-z stack-size=$bigger'` but that's not great nor always easy to do. A default of 1MB matches more closely with other platforms where it's "pretty big" by default. Note that it was tested and if the users uses `-C link-args` to pass a custom stack size that's still resepected as lld seems to take the first argument, and where rustc is passing it will always be last.
2018-04-19Auto merge of #50020 - oli-obk:clippy, r=Manishearthbors-19/+42
Update clippy r? @Manishearth
2018-04-19Auto merge of #49900 - pnkfelix:compare-mode-nll-followup-3, r=nikomatsakisbors-268/+327
Add src/test/ui regression testing for NLL This PR changes `x.py test` so that when you are running the `ui` test suite, it will also always run `compiletest` in the new `--compare-mode=nll`, which just double-checks that when running under the experimental NLL mode, the output matches the `<source-name>.nll.stderr` file, if present. In order to reduce the chance of a developer revolt in response to this change, this PR also includes some changes to make the `--compare-mode=nll` more user-friendly: 1. It now generates nll-specific .stamp files, and uses them (so that repeated runs can reuse previously cached results). 2. Each line of terminal output distinguishes whether we are running under `--compare-mode=nll` by printing with the prefix `[ui (nll)]` instead of just the prefix `[ui]`. Subtask of rust-lang/rust#48879
2018-04-19Auto merge of #49949 - oli-obk:const_signed_pat, r=eddybbors-23/+69
Sign extend constants in range patterns fixes #49940 r? @Mark-Simulacrum
2018-04-19Sign extend constants in range patternsOliver Schneider-23/+69
2018-04-19Update clippyOliver Schneider-19/+42
2018-04-19Auto merge of #49890 - varkor:xpy-check-rustc_trans, r=alexcrichtonbors-55/+138
Add rustc_trans to x.py check r? @Mark-Simulacrum I looked at `bootstrap/compile.rs` and `bootstrap/check.rs` to try to work out which steps were appropriate, but I'm sure I've overlooked some details here, so it's worth checking carefully I've got all the steps right (e.g. I wasn't sure whether we want to build LLVM if necessary with `x.py check`, though I thought it was probably better to than to not). From a quick test, it seems to be working, though.
2018-04-19Auto merge of #49630 - npmccallum:shl, r=alexcrichtonbors-3/+3
Update Rhs on ShlAssign to default to Self This matches the behavior on ShrAssign and all other *Assign operations.
2018-04-19Auto merge of #50048 - glandium:issue50041, r=eddybbors-27/+60
rustc_trans: also check dominators for SSA values in mir::analyze Fixes #50041
2018-04-19Add rerun-if-env-changed=RUST_CHECK to librustc_llvmvarkor-0/+1
2018-04-18Auto merge of #50022 - nrc:doc-analysis, r=mark-simulacrumbors-1/+3
Only emit save-analysis data for `cargo build` tasks Previously, we were emittinng analysis data for all tasks, including `doc`. That meant we got two sets of save-analysis data, one from the normal build and one from the docs. That means indexing with the RLS took twice as long and made downloads larger and build times longer. cc https://github.com/rust-lang-nursery/rls/issues/826 r? @Mark-Simulacrum
2018-04-18Auto merge of #50017 - tinaun:stabilize-all-the-things, r=sfacklerbors-59/+28
stabilize a bunch of minor api additions besides `ptr::NonNull::cast` (which is 4 days away from end of FCP) all of these have been finished with FCP for a few weeks now with minimal issues raised * Closes #41020 * Closes #42818 * Closes #44030 * Closes #44400 * Closes #46507 * Closes #47653 * Closes #46344 the following functions will be stabilized in 1.27: * `[T]::rsplit` * `[T]::rsplit_mut` * `[T]::swap_with_slice` * `ptr::swap_nonoverlapping` * `NonNull::cast` * `Duration::from_micros` * `Duration::from_nanos` * `Duration::subsec_millis` * `Duration::subsec_micros` * `HashMap::remove_entry`
2018-04-18Auto merge of #50006 - rcoh:reorder-compiler-builtins, r=oli-obkbors-1/+27
Reorder injection of std to get better compilation error Per #49851, reorder injection imports to get a better error message. r? @oli-obk
2018-04-18Auto merge of #49993 - nnethercote:shrink-Token, r=alexcrichtonbors-14/+19
Change the hashcounts in raw `Lit` variants from usize to u16. This reduces the size of `Token` from 32 bytes to 24 bytes on 64-bit platforms.
2018-04-18When running under compare-mode=nll, generate expected output to ↵Felix S. Klock II-2/+14
`foo.nll.stderr` This allows easy revision of the update-references.sh script (included here) so that it can update the expected output for nll rather than stderr. It also reminds the rustc developer via the filename that they are looking at output generated under comapre-mode=nll. One could argue that there is still a problem with the strategy encoded here: if we reach a scenario where a change to the compiler brings the output under AST and NLL modes back into sync, this code will continue to still generate output to distinct `foo.stderr` and `foo.nll.stderr` files, and will continue to copy those two files back to corresponding distinct files in the source tree, even if the *content* of the two files is now the same. * Arguably the "right thing" to do in that case is to remove the `foo.nll.stderr` file entirely. * However, I think the real answer is that we will probably want to double-check such cases by hand anyway. We should be regularly double-checking the diffs between `foo.stderr` and `foo.nll.stderr`, and if we see a zero-diff case, then we should evaluate whether that is correct, and if so, remove the file by hand.) * In any case, I think the default behavior encoded here (or at least *intended* to be encoded here) is superior to the alternative of *only* generating a `foo.nll.stderr` file if one already existed in the source tree at the time that `compiletest` was invoked (and otherwise unconditionally generating a `foo.stderr` file, as was the behavior prior to this commit), because that alternative is more likely to cause rustc developers to overwrite a `foo.stderr` file with the stderr output from a compare-mode=nll run, which will then break the *normal* `compiletest` run and probably be much more confusing for the average rustc developer.
2018-04-18Workaround rust-lang/rust#49998 by opting into experimental `-Z ↵Felix S. Klock II-9/+12
nll-subminimal-causes` flag This commit only applies the flag to the one test case, ui/span/dropck_vec_cycle_checked.rs, that absolutely needs it. Without the flag, that test takes an unknown amount of time (greater than 1 minute) to compile. But its possible that other tests would also benefit from the flag, and we may want to make it the default (after evaluating its impact on other tests). In terms of its known impact on other tests, I have only evaluated the ui tests, and the *only* ui test I have found that the flag impacts (running under NLL mode, of course), is src/test/ui/nll/issue-31567.rs In particular: ``` % ./build/x86_64-unknown-linux-gnu/stage1/bin/rustc ../src/test/ui/nll/issue-31567.rs error[E0597]: `*v.0` does not live long enough --> ../src/test/ui/nll/issue-31567.rs:22:26 | 22 | let s_inner: &'a S = &*v.0; //~ ERROR `*v.0` does not live long enough | ^^^^^ borrowed value does not live long enough 23 | &s_inner.0 24 | } | - borrowed value only lives until here | note: borrowed value must be valid for the lifetime 'a as defined on the function body at 21:1... --> ../src/test/ui/nll/issue-31567.rs:21:1 | 21 | fn get_dangling<'a>(v: VecWrapper<'a>) -> &'a u32 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0597`. % ./build/x86_64-unknown-linux-gnu/stage1/bin/rustc ../src/test/ui/nll/issue-31567.rs -Z nll-subminimal-causes error[E0597]: `*v.0` does not live long enough --> ../src/test/ui/nll/issue-31567.rs:22:26 | 22 | let s_inner: &'a S = &*v.0; //~ ERROR `*v.0` does not live long enough | ^^^^^ borrowed value does not live long enough 23 | &s_inner.0 24 | } | - | | | borrowed value only lives until here | borrow later used here, when `v` is dropped error: aborting due to previous error For more information about this error, try `rustc --explain E0597`. % ```
2018-04-18Work around rust-lang/rust#49998 with experimental code that does less ↵Felix S. Klock II-2/+14
updating of cause map. This seems to avoid poor scaling on src/test/ui/span/dropck_vec_cycle_checked.rs
2018-04-18Removed `.nll.stderr` files that currently match their corresponding ↵Felix S. Klock II-140/+0
`.stderr` files.
2018-04-18Trivial updates to `.nll.stderr` files post-rebase, reflecting s/-Znll/nll/ ↵Felix S. Klock II-57/+57
in messages.
2018-04-18Update the previously checkpointed (but unused by bors) tests to reflect ↵Felix S. Klock II-50/+174
current reality.
2018-04-18Generate separate stamp files for `--compare-mode=nll`, and also use them. :)Felix S. Klock II-3/+8
2018-04-18Change output of `compiletest` to include the compare-mode when present.Felix S. Klock II-2/+6
E.g. when running with `--compare-mode=nll`, then each test line will look like e.g.: ``` test [ui (nll)] ui/issue-10969.rs ... ok ```
2018-04-18Expand `x.py test` to also run with `--compare-mode=nll` on src/test/ui suite.Felix S. Klock II-3/+42
2018-04-18Auto merge of #49981 - nox:fix-signed-niches, r=eddybbors-5/+26
Properly handle ranges of signed enums using both extremums (fixes #49973) Fixes #49973.
2018-04-18rustc_trans: also check dominators for SSA values in mir::analyze.Eduard-Mihai Burtescu-27/+60
Fixes #50041
2018-04-18Replace Build with Buildervarkor-11/+10
2018-04-18Do not rebuild LLVM for x.py checkvarkor-3/+13
2018-04-18Abstract LLVM building from bootstrapvarkor-94/+65
This deduplicates the LLVM building functionality from compile.rs and check.rs.
2018-04-18Correct the timestamp for CodegenBackend checkvarkor-4/+13
2018-04-18Add rustc_trans to x.py checkvarkor-7/+100
2018-04-18Auto merge of #49349 - Zoxc:sync-errors, r=michaelwoeristerbors-35/+40
Make Handler more thread-safe The use of `code_emitted` to suppress extended explanations is not thread safe. I'm not sure why we keep the documentation for errors outside `diagnostics.rs` anyway. It would be better to add a `teach` method to `DiagnosticsBuilder`, so instead of: ``` if self.tcx.sess.teach(&err.get_code().unwrap()) { err.note("..."); } ``` we'd use `err.teach("...")` cc @estebank r? @michaelwoerister
2018-04-18Auto merge of #49972 - Mark-Simulacrum:remove-build, r=alexcrichtonbors-939/+873
Remove uses of Build across Builder steps This is purely a code cleanup; there should be no functional changes. r? @alexcrichton
2018-04-18Auto merge of #49969 - mark-i-m:allocator_fmt, r=estebankbors-648/+743
Various rustfmt and commenting changes These are factored out of #49320 There aren't actually any changes in functionality, just rustfmt and doccomments.
2018-04-17Remove uses of Build across Builder stepsMark Simulacrum-939/+873
2018-04-18Auto merge of #49950 - Zoxc:default-span, r=estebankbors-171/+138
Improve query cycle error message r? @michaelwoerister
2018-04-17Auto merge of #50036 - nrc:update, r=alexcrichtonbors-29/+29
Update Rustfmt Fixes RLS and Rustfmt and enables a new nightly r? @alexcrichton
2018-04-18Update RustfmtNick Cameron-29/+29
2018-04-17Auto merge of #49904 - michaelwoerister:no-debug-attr, r=alexcrichtonbors-7/+22
Work around LLVM debuginfo problem in librustc_driver. Works around a problem (https://github.com/rust-lang/rust/issues/48910) with global variable debuginfo generation for `rustc_driver::get_trans::LOAD` by applying `#[no_debug]` to it (which just disables debuginfo generation for that variable). This way we can build the compiler with debuginfo again. Since the problem is also present in beta, this workaround might have to be backported. r? @alexcrichton
2018-04-17Auto merge of #50033 - GuillaumeGomez:rollup, r=GuillaumeGomezbors-158/+217
Rollup of 4 pull requests Successful merges: - #49699 (Removed 'proc' from the reserved keywords list) - #49966 (Multiple query search) - #50013 (Remove no longer necessary comparison to Vec::splice.) - #50032 (rustdoc: Don't include private paths in all.html) Failed merges:
2018-04-17Rollup merge of #50032 - ollie27:rustdoc_all_private, r=GuillaumeGomezGuillaume Gomez-1/+11
rustdoc: Don't include private paths in all.html For example the `std` [`all.html`](https://doc.rust-lang.org/nightly/std/all.html) includes references to the `coresimd` module which is a private implementation detail. r? @GuillaumeGomez
2018-04-17Rollup merge of #50013 - frewsxcv:frewsxcv-ssplice, r=GuillaumeGomezGuillaume Gomez-3/+0
Remove no longer necessary comparison to Vec::splice. `String::replace_range` was previously called `String::splice`, so this note was necessary to differentiate it from the `Vec` method. Now that it's renamed, this note no longer seems necessary.
2018-04-17Rollup merge of #49966 - GuillaumeGomez:comma-search, r=QuietMisdreavusGuillaume Gomez-131/+203
Multiple query search Part of #49757. r? @QuietMisdreavus
2018-04-17Rollup merge of #49699 - zesterer:master, r=joshtriplettGuillaume Gomez-33/+13
Removed 'proc' from the reserved keywords list Remove 'proc' from the reserved keywords list. 'proc' is a very useful identifier name for a lot of things. It's especially useful when dealing with processes, operating system internals, and kernel development.
2018-04-17Turn some comments into doccommentsMark Mansi-53/+54
2018-04-17run rustfmt on rustc_driver/driver.rsMark Mansi-526/+610
2018-04-17Run rustfmtMark Mansi-69/+79
2018-04-17Make one_time_diagnostics thread-safeJohn Kåre Alsaker-2/+2
2018-04-17Make Handler more thread-safeJohn Kåre Alsaker-33/+38
2018-04-17Auto merge of #49836 - nikomatsakis:nll-facts-prep, r=pnkfelixbors-1128/+1141
prep work for using timely dataflow with NLL Two major changes: **Two-phase borrows are overhauled.** We no longer have two bits per borrow. Instead, we track -- for each borrow -- an (optional) "activation point". Then, for each point P where the borrow is in scope, we check where P falls relative to the activation point. If P is between the reservation point and the activation point, then this is the "reservation" phase of the borrow, else the borrow is considered active. This is simpler and means that the dataflow doesn't have to care about 2-phase at all, at last not yet. **We no longer support using the MIR borrow checker without NLL.** It is going to be increasingly untenable to support lexical mode as we go forward, I think, and also of increasingly little value. This also exposed a few bugs in NLL mode due to increased testing. r? @pnkfelix cc @bobtwinkles
2018-04-17Clean up attribute handling in create_function_debug_context().Michael Woerister-4/+5