summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2019-06-27rustc: Retry SIGILL linker invocationsAlex Crichton-24/+47
We've seen quite a few issues with spurious illegal instructions getting executed on OSX on CI recently. For whatever reason `cc` itself is executing an illegal instruction and we're not really getting any other information about what's happening. Since we're already retrying the linker when it segfaults, let's just continue to retry everything and automatically reinvoke the linker when it fails with an illegal instruction.
2019-06-27Auto merge of #62147 - Centril:rollup-pigazoz, r=alexcrichtonbors-76/+74
[CI] Rollup of 5 pull requests Successful merges: - #62140 (ci: Turn off PR builds on Travis) - #62141 (ci: Disable assertions in PR builds) - #62142 (ci: Switch official `try` builds to happen on Azure) - #62143 (ci: Publish toolstate changes from Azure) - #62145 (ci: Sync AppVeyor/Travis with Azure configuration) Failed merges: r? @ghost
2019-06-26remove unused derives and variantsAndy Russell-68/+56
2019-06-26save-analysis: use buffered writesJeremy Fitzhardinge-3/+4
Otherwise it ends up writing the file byte at a time, which can be very slow for large outputs.
2019-06-26Use pointer::write_bytes for android sigemptysetJosh Stone-5/+3
2019-06-26Avoid mem::uninitialized() in std::sys::unixJosh Stone-58/+57
For `libc` types that will be initialized in FFI calls, we can just use `MaybeUninit` and then pass around raw pointers. For `sun_path_offset()`, which really wants `offset_of`, all callers have a real `sockaddr_un` available, so we can use that reference.
2019-06-27Update miriYuki Okushi-7/+9
2019-06-26Remove outdated question_mark_macro_sep lintJulien Cretin-17/+1
2019-06-26ci: Disable x86_64-msvc-tools builderAlex Crichton-4/+6
While we figure out what's wrong let's continue to land PRs
2019-06-26Update booksEric Huss-0/+0
2019-06-26Add regression test for MIR drop generation in async loopsTaylor Cramer-0/+21
Fixes #61986.
2019-06-26remove old fixmeMark Mansi-1/+1
2019-06-26Don't ICE on item in `.await` expressionNathan Corbyn-9/+89
2019-06-26Hash force_pass_mode when config.mode == Pretty.Mazdak Farrokhzad-1/+1
2019-06-26Fix clippy::precedenceIgor Matuszewski-1/+1
2019-06-26Fix clippy::print_with_newlineIgor Matuszewski-3/+3
2019-06-26Fix clippy::redundant_closureIgor Matuszewski-1/+1
2019-06-26Fix clippy::cast_loslessIgor Matuszewski-13/+13
2019-06-26Fix clippy::redundant_field_namesIgor Matuszewski-29/+29
2019-06-26Check for local types in writeback with debug assertionsJohn Kåre Alsaker-18/+19
2019-06-26Don't use lift to detect local typesJohn Kåre Alsaker-84/+122
2019-06-26Rollup merge of #62145 - alexcrichton:sync-azure, r=pietroalbiniMazdak Farrokhzad-2/+2
ci: Sync AppVeyor/Travis with Azure configuration Manually make sure that we do the same thing across all the services, uncovering one spot where we needed to pass one more configure flag on Azure but otherwise we're good to go!
2019-06-26Rollup merge of #62143 - alexcrichton:toolstate, r=pietroalbiniMazdak Farrokhzad-11/+1
ci: Publish toolstate changes from Azure This commit moves toolstate publishing from Travis to Azure. We've been testing on azure for some time now and this works by deleting the Travis config and updating the credentials used on Azure.
2019-06-26Rollup merge of #62142 - alexcrichton:azure-try, r=pietroalbiniMazdak Farrokhzad-57/+57
ci: Switch official `try` builds to happen on Azure This commit switches the `try` builers to officially happen on Azure Pipelines instead of Travis where they're currently run. This also cuts back the number of builders to just the two we run on Travis, leaving expansion as a possible future extension.
2019-06-26Rollup merge of #62141 - alexcrichton:less-assertions, r=pietroalbiniMazdak Farrokhzad-0/+6
ci: Disable assertions in PR builds The PR builder on Azure currently takes 2.5h which is a bit long, so this commit disables debug assertions and llvm assertions in an attempt to speed up that builder and have PR builds come back a bit more quickly. Other builders continue to enable debug assertions and test the compiler there.
2019-06-26Rollup merge of #62140 - alexcrichton:less-pr-builds, r=pietroalbiniMazdak Farrokhzad-2/+2
ci: Turn off PR builds on Travis This commit turns off PR builds happening on Travis, instead entirely relying on Azure for PR builds to succeed.
2019-06-26ci: Sync AppVeyor/Travis with Azure configurationAlex Crichton-2/+2
Manually make sure that we do the same thing across all the services, uncovering one spot where we needed to pass one more configure flag on Azure but otherwise we're good to go!
2019-06-26ci: Publish toolstate changes from AzureAlex Crichton-11/+1
This commit moves toolstate publishing from Travis to Azure. We've been testing on azure for some time now and this works by deleting the Travis config and updating the credentials used on Azure.
2019-06-26ci: Switch official `try` builds to happen on AzureAlex Crichton-57/+57
This commit switches the `try` builers to officially happen on Azure Pipelines instead of Travis where they're currently run. This also cuts back the number of builders to just the two we run on Travis, leaving expansion as a possible future extension.
2019-06-26ci: Disable assertions in PR buildsAlex Crichton-0/+6
The PR builder on Azure currently takes 2.5h which is a bit long, so this commit disables debug assertions and llvm assertions in an attempt to speed up that builder and have PR builds come back a bit more quickly. Other builders continue to enable debug assertions and test the compiler there.
2019-06-26ci: Turn of PR builds on TravisAlex Crichton-2/+2
This commit turns off PR builds happening on Travis, instead entirely relying on Azure for PR builds to succeed.
2019-06-26Auto merge of #61872 - matthewjasper:refactor-mir-drop-gen, r=nikomatsakisbors-468/+536
Clean up MIR drop generation * Don't assign twice to the destination of a `while` loop containing a `break` expression * Use `as_temp` to evaluate statement expression * Avoid consecutive `StorageLive`s for the condition of a `while` loop * Unify `return`, `break` and `continue` handling, and move it to `scopes.rs` * Make some of the `scopes.rs` internals private * Don't use `Place`s that are always `Local`s in MIR drop generation Closes #42371 Closes #61579 Closes #61731 Closes #61834 Closes #61910 Closes #62115
2019-06-26submodules: Update clippy from 8c80b65f to e3cb40e4Lzu Tao-11/+9
2019-06-26Auto merge of #62072 - eddyb:generator-memory-index, r=tmandrybors-38/+107
rustc: correctly transform memory_index mappings for generators. Fixes #61793, closes #62011 (previous attempt at fixing #61793). During #60187, I made the mistake of suggesting that the (re-)computation of `memory_index` in `ty::layout`, after generator-specific logic split/recombined fields, be done off of the `offsets` of those fields (which needed to be computed anyway), as opposed to the `memory_index`. `memory_index` maps each field to its in-memory order index, which ranges over the same `0..n` values as the fields themselves, making it a bijective mapping, and more specifically a permutation (indeed, it's the permutation resulting from field reordering optimizations). Each field has an unique "memory index", meaning a sort based on them, even an unstable one, will not put them in the wrong order. But offsets don't have that property, because of ZSTs (which do not increase the offset), so sorting based on the offset of fields alone can (and did) result in wrong orders. Instead of going back to sorting based on (slices/subsets of) `memory_index`, or special-casing ZSTs to make sorting based on offsets produce the right results (presumably), as #62011 does, I opted to drop sorting altogether and focus on `O(n)` operations involving *permutations*: * a permutation is easily inverted (see the `invert_mapping` `fn`) * an `inverse_memory_index` was already employed in other parts of the `ty::layout` code (that is, a mapping from memory order to field indices) * inverting twice produces the original permutation, so you can invert, modify, and invert again, if it's easier to modify the inverse mapping than the direct one * you can modify/remove elements in a permutation, as long as the result remains dense (i.e. using every integer in `0..len`, without gaps) * for splitting a `0..n` permutation into disjoint `0..x` and `x..n` ranges, you can pick the elements based on a `i < x` / `i >= x` predicate, and for the latter, also subtract `x` to compact the range to `0..n-x` * in the general case, for taking an arbitrary subset of the permutation, you need a renumbering from that subset to a dense `0..subset.len()` - but notably, this is still `O(n)`! * you can merge permutations, as long as the result remains disjoint (i.e. each element is unique) * for concatenating two `0..n` and `0..m` permutations, you can renumber the elements in the latter to `n..n+m` * some of these operations can be combined, and an inverse mapping (be it a permutation or not) can still be used instead of a forward one by changing the "domain" of the loop performing the operation I wish I had a nicer / more mathematical description of the recombinations involved, but my focus was to fix the bug (in a way which preserves information more directly than sorting would), so I may have missed potential changes in the surrounding generator layout code, that would make this all more straight-forward. r? @tmandry
2019-06-25Add RequiresStorage pass to decide which locals to save in generatorsTyler Mandry-26/+165
This avoids reserving storage in generators for locals that are moved out of (and not re-initialized) prior to yield points.
2019-06-25Add DataflowResultsCursorTyler Mandry-0/+94
2019-06-25Make FlowAtLocation support borrowing flow dataTyler Mandry-14/+24
2019-06-25Use `Local`s instead of `Place`s in MIR drop generationMatthew Jasper-100/+81
2019-06-25Add StorageDead statements for `while` conditionsMatthew Jasper-128/+172
2019-06-25Unify `return`, `break` and `continue` handlingMatthew Jasper-181/+200
2019-06-25Avoid checking if references implement dropMatthew Jasper-10/+0
2019-06-25Use `as_temp` to evaluate statement expressionsMatthew Jasper-81/+96
2019-06-25Fix incorrect double assignment in MIR for while loopsMatthew Jasper-6/+25
2019-06-25Use f{32,64}::from_bitsIgor Matuszewski-2/+2
2019-06-25tweak wordingRalf Jung-3/+3
2019-06-25cleanup: rename name_from to symbol_fromAleksey Kladov-20/+19
Lexer uses Symbols for a lot of stuff, not only for identifiers, so the "name" terminology is just confusing.
2019-06-25Add more tests for async/awaitTaylor Cramer-0/+338
2019-06-25Auto merge of #62119 - Centril:rollup-el20wu0, r=Centrilbors-356/+463
Rollup of 7 pull requests Successful merges: - #61814 (Fix an ICE with uninhabited consts) - #61987 (rustc: produce AST instead of HIR from `hir::lowering::Resolver` methods.) - #62055 (Fix error counting) - #62078 (Remove built-in derive macros `Send` and `Sync`) - #62085 (Add test for issue-38591) - #62091 (HirIdification: almost there) - #62096 (Implement From<Local> for Place and PlaceBase) Failed merges: r? @ghost
2019-06-25Updated RELEASES.md for 1.36.0Erin Power-1/+102
Co-Authored-By: Taiki Endo <te316e89@gmail.com> Co-Authored-By: Jonas Schievink <jonasschievink@gmail.com> Co-Authored-By: Torbjørn Birch Moltu <t.b.moltu@lyse.net>
2019-06-25refactor lexer to use idiomatic borrowingAleksey Kladov-121/+104