about summary refs log tree commit diff
path: root/src
AgeCommit message (Collapse)AuthorLines
2019-02-06SGX target: simplify usercall internalsJethro Beekman-84/+59
This moves logic from assembly to Rust and removes the special case for exit/panic handling, merging it with regular usercall handling. Also, this fixes a bug in the exit usercall introduced in a75ae00. The bug would make regular exits look like panics with high probability. It would also with some probability leak information through uncleared registers.
2019-02-07libsyntax => 2018Taiki Endo-574/+617
2019-02-06Fix broken grammar in iter::from_fn() docsSebastian Dröge-4/+2
2019-02-07librustc_resolve => 2018Taiki Endo-89/+96
2019-02-07librustc_save_analysis => 2018Taiki Endo-82/+79
2019-02-06error output updated by ./x.py test --stage 1 src/test/ui --incremental --blessClint Frederickson-38/+38
2019-02-06librustc_plugin => 2018Taiki Endo-10/+8
2019-02-06display sugared return types for async functionsAndy Russell-17/+88
2019-02-06librustc_fs_util => 2018Taiki Endo-0/+3
2019-02-06Revert "Auto merge of #57975 - alexcrichton:debug-exit-appveyor, r=pietroalbini"Pietro Albini-7/+0
This reverts commit d3d0bf0e9f4d748b95ed143cc636d159bfcb4a6f, reversing changes made to 40e6a0bd766ca7b1c582b964131400b8c3e89d76.
2019-02-06Revert "Rollup merge of #58162 - pietroalbini:track-259, r=alexcrichton"Pietro Albini-7/+1
This reverts commit 4c243e2c3d8f02cdcd22fe68acf6a0b3edca2078, reversing changes made to 64f0032a3739b18ae45387744340d9c7ce48b145.
2019-02-06librustc_lsan => 2018Taiki Endo-4/+3
2019-02-06librustc_allocator => 2018Taiki Endo-15/+7
2019-02-06libprofiler_builtins => 2018Taiki Endo-3/+2
2019-02-06librustc_asan => 2018Taiki Endo-4/+3
2019-02-06librustc_msan => 2018Taiki Endo-4/+3
2019-02-06librustc_tsan => 2018Taiki Endo-4/+3
2019-02-06add tracking issueRalf Jung-1/+1
2019-02-06remove now-unneeded raw ptr castsRalf Jung-3/+3
2019-02-06Add embedded book to test such that checktools worksMark Rousskov-0/+1
2019-02-06fix doctestsRalf Jung-1/+2
2019-02-06Auto merge of #56123 - oli-obk:import_miri_from_future, r=eddybbors-2/+155
Add a forever unstable opt-out of const qualification checks r? @eddyb cc @RalfJung @Centril basically a forever unstable way to screw with const things in horribly unsafe, unsound and incoherent ways. Note that this does *not* affect miri except by maybe violating assumptions that miri makes. But there's no change in how miri evaluates things.
2019-02-06Make an assert debug-only in `find_constraint_paths_between_regions`.Nicholas Nethercote-1/+1
This reduces instruction counts for NLL builds of `wg-grammar` by over 20%.
2019-02-06Auto merge of #58061 - nnethercote:overhaul-syntax-Folder, r=petrochenkovbors-2004/+1791
Overhaul `syntax::fold::Folder`. This PR changes `syntax::fold::Folder` from a functional style (where most methods take a `T` and produce a new `T`) to a more imperative style (where most methods take and modify a `&mut T`), and renames it `syntax::mut_visit::MutVisitor`. This makes the code faster and more concise.
2019-02-05Move ArcWake in common test file.Matthias Einwag-110/+73
2019-02-06Auto merge of #58058 - QuietMisdreavus:use-attr, r=GuillaumeGomezbors-6/+18
rustdoc: don't try to get a DefId for a Def that doesn't have one Fixes https://github.com/rust-lang/rust/issues/58054 The compiler allows you to write a `use` statement for a built-in non-macro attribute, since `use proc_macro` can apply to both the `proc_macro` crate and the `#[proc_macro]` attribute. However, if you write a use statement for something that *doesn't* have this crossover, rustdoc will try to use it the same way as anything else... which resulted in an ICE because it tried to pull a DefId for something that didn't have one. This PR makes rustdoc skip those lookups when it encounters them, allowing it to properly process and render these imports.
2019-02-06Make `intern_lazy_const` actually intern its argument.Nicholas Nethercote-38/+40
Currently it just unconditionally allocates it in the arena. For a "Clean Check" build of the the `packed-simd` benchmark, this change reduces both the `max-rss` and `faults` counts by 59%; it slightly (~3%) increases the instruction counts but the `wall-time` is unchanged. For the same builds of a few other benchmarks, `max-rss` and `faults` drop by 1--5%, but instruction counts and `wall-time` changes are in the noise. Fixes #57432, fixes #57829.
2019-02-06Rename `fold.rs` as `mut_visit.rs`.Nicholas Nethercote-1/+1
2019-02-05Auto merge of #58131 - ehuss:update-cargo, r=alexcrichtonbors-0/+0
Update cargo 7 commits in 245818076052dd7178f5bb7585f5aec5b6c1e03e..4e74e2fc0908524d17735c768067117d3e84ee9c 2019-01-27 15:17:26 +0000 to 2019-02-02 17:48:44 +0000 - Fix overlapping progress with stdout. (rust-lang/cargo#6618) - Improve progress bar flickering. (rust-lang/cargo#6615) - Add detail to multiple rename deps (rust-lang/cargo#6603) - Fix race condition in local registry crate unpacking (rust-lang/cargo#6591) - Revert "Make incremental compilation the default for all profiles." (rust-lang/cargo#6610) - Fixup the docs on crate-type (rust-lang/cargo#6606) - Document that owner --add now just invites (rust-lang/cargo#6604)
2019-02-06Overhaul `syntax::fold::Folder`.Nicholas Nethercote-1516/+1417
This commit changes `syntax::fold::Folder` from a functional style (where most methods take a `T` and produce a new `T`) to a more imperative style (where most methods take and modify a `&mut T`), and renames it `syntax::mut_visit::MutVisitor`. The first benefit is speed. The functional style does not require any reallocations, due to the use of `P::map` and `MoveMap::move_{,flat_}map`. However, every field in the AST must be overwritten; even those fields that are unchanged are overwritten with the same value. This causes a lot of unnecessary memory writes. The imperative style reduces instruction counts by 1--3% across a wide range of workloads, particularly incremental workloads. The second benefit is conciseness; the imperative style is usually more concise. E.g. compare the old functional style: ``` fn fold_abc(&mut self, abc: ABC) { ABC { a: fold_a(abc.a), b: fold_b(abc.b), c: abc.c, } } ``` with the imperative style: ``` fn visit_abc(&mut self, ABC { a, b, c: _ }: &mut ABC) { visit_a(a); visit_b(b); } ``` (The reductions get larger in more complex examples.) Overall, the patch removes over 200 lines of code -- even though the new code has more comments -- and a lot of the remaining lines have fewer characters. Some notes: - The old style used methods called `fold_*`. The new style mostly uses methods called `visit_*`, but there are a few methods that map a `T` to something other than a `T`, which are called `flat_map_*` (`T` maps to multiple `T`s) or `filter_map_*` (`T` maps to 0 or 1 `T`s). - `move_map.rs`/`MoveMap`/`move_map`/`move_flat_map` are renamed `map_in_place.rs`/`MapInPlace`/`map_in_place`/`flat_map_in_place` to reflect their slightly changed signatures. - Although this commit renames the `fold` module as `mut_visit`, it keeps it in the `fold.rs` file, so as not to confuse git. The next commit will rename the file.
2019-02-05extend box-maybe-uninit testRalf Jung-0/+3
2019-02-05Do not ICE in codegen given a extern_type staticDan Robertson-1/+48
The layout of a extern_type static is unsized, but may pass the Well-Formed check in typeck. As a result, we cannot assume that a static is sized when generating the `Place` for an r-value.
2019-02-05fix test caseRalf Jung-3/+3
2019-02-05[WIP] add better error message for partial moveClint Frederickson-3/+6
2019-02-05Allow const assignment for int saturating_add() calls for #58030Patrick McCarter-12/+91
2019-02-05allow shorthand syntax for deprecation reasonAndy Russell-67/+117
2019-02-05typeck: partially HirIdifyljedrz-47/+49
2019-02-05mir: partially HirIdifyljedrz-23/+20
2019-02-05rustc: partially HirIdifyljedrz-33/+30
2019-02-05Update cargoEric Huss-0/+0
2019-02-05Auto merge of #57851 - Aaron1011:fix/clean-lifetime, r=GuillaumeGomezbors-15/+37
Don't try to clean predicates involving ReErased There's nothing to render when we have a bound involving ReErased (either a type or region outliving it), so we don't attempt to generate a clean WherePredicate Fixes #57806 I haven't been able to come up with a minimized reproduction for the issue, but I've confirmed that this allows the docs to build for `parqet-rs`
2019-02-05fix str mutating through a ptr derived from &selfRalf Jung-3/+19
2019-02-05move librustc to 2018Mark Mansi-1243/+1234
2019-02-05fix doctestRalf Jung-2/+2
2019-02-06Rollup merge of #58186 - komaeda:docs/integrate-rustlings, r=steveklabnikkennytm-0/+6
Add Rustlings to the doc index r? @steveklabnik
2019-02-06Rollup merge of #58182 - jethrogb:jb/sgx-bytebuffer-len-0, r=joshtriplettkennytm-3/+9
SGX target: handle empty user buffers correctly Also, expose correct items in `os::fortanix_sgx::usercalls::alloc` * [read_alloc documentation](https://edp.fortanix.com/docs/api/fortanix_sgx_abi/struct.Usercalls.html#method.read_alloc) * [Clarified ByteBuffer documentation](https://github.com/fortanix/rust-sgx/pull/94/files#diff-ca843ad9e25cacd63a80579c0f7efa56) r? @joshtriplett
2019-02-06Rollup merge of #58172 - garyemerson:patch-1, r=steveklabnikkennytm-14/+14
update split docs Some confusion about split popped up at https://news.ycombinator.com/item?id=19080931 since the docs sorta sound like `&str`, `char` and closures are the only types that can be patterns. cc @steveklabnik
2019-02-06Rollup merge of #58162 - pietroalbini:track-259, r=alexcrichtonkennytm-1/+7
Add more debugging code to track down appveyor 259 exit code cc https://github.com/rust-lang/rust/issues/58160 r? @alexcrichton
2019-02-06Rollup merge of #58145 - taiki-e:poll, r=cramertjkennytm-0/+1
Add #[must_use] to core::task::Poll cc rust-lang/rfcs#2592 r? @withoutboats
2019-02-06Rollup merge of #58142 - jethrogb:jb/sgx-rwlock, r=joshtriplettkennytm-3/+0
Remove stray FIXME These were copied from the WebAssembly implementation, and later commented. There is nothing to be fixed, RWLock is Send/Sync because all member fields are Send/Sync. r? @joshtriplett