-
Notifications
You must be signed in to change notification settings - Fork 12.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 27 pull requests #44621
Rollup of 27 pull requests #44621
Conversation
Implement downcast the like it exists for Box. The implementation avoids using into_raw/from_raw, because the pointer arithmetic which should cancel does not seem to optimize out at the moment. Since Rc<T> is never Send, only Rc<Any> and not Rc<Any + Send> implements downcast.
On Windows, the gcc crate would send /Wall to msvc, which would cause builds to get flooded with warnings, exploding compile times from one hour to more than 72! The gcc crate version 0.3.54 changes this behavior to send /W4 instead, which greatly cuts down on cl.exe flooding the command prompt window with warnings.
In rust-lang#42436 the behavior for spawning processes on Windows was tweaked slightly to fix various bugs, but this caused rust-lang#42791 as a regression, namely that to spawn batch scripts they need to be manually spawned with `cmd /c` instead now. This updates the compiler to handle this case explicitly for Emscripten. Closes rust-lang#42791
Removing unwanted file merged in a previous commit
Most of the other rust-lang buckets are in us-west-1 and I think the original bucket was just accidentally created in the us-east-1 region. Let's consolidate by moving it to the same location as the rest of our buckets.
`FlatMap` can use internal iteration for its `fold`, which shows a performance advantage in the new benchmarks: test iter::bench_flat_map_chain_ref_sum ... bench: 4,354,111 ns/iter (+/- 108,871) test iter::bench_flat_map_chain_sum ... bench: 468,167 ns/iter (+/- 2,274) test iter::bench_flat_map_ref_sum ... bench: 449,616 ns/iter (+/- 6,257) test iter::bench_flat_map_sum ... bench: 348,010 ns/iter (+/- 1,227) ... where the "ref" benches are using `by_ref()` that isn't optimized. So this change shows a decent advantage on its own, but much more when combined with a `chain` iterator that also optimizes `fold`.
This commit alters the `query` function in the dep graph module to preallocate memory using `with_capacity` instead of relying on automatic growth. Discovered in rust-lang#44576 it was found that for the syntex_syntax clean incremental benchmark the peak memory usage was found when the dep graph was being saved, particularly the `DepGraphQuery` data structure itself. PRs like rust-lang#44142 which add more queries end up just making this much larger! I didn't see an immediately obvious way to reduce the size of the `DepGraphQuery` object, but it turns out that `with_capacity` helps quite a bit! Locally 831 MB was used [before] this commit, and 770 MB is in use at the peak of the compiler [after] this commit. That's a nice 7.5% improvement! This won't quite make up for the losses in rust-lang#44142 but I figured it's a good start. [before]: https://gist.github.com/alexcrichton/2d2b9c7a65503761925c5a0bcfeb0d1e [before]: https://gist.github.com/alexcrichton/6da51f2a6184bfb81694cc44f06deb5b
Require +thumb-mode to generate thumb2 code for Android/armv7-a I am investigating rust's code generation into Gecko by https://bugzilla.mozilla.org/show_bug.cgi?id=1399337. armv7-linux-androideabi target uses `+v7,+thumb2,+vfp3,+d16,-neon` as target-feature. But `+thumb2` only doesn't generate thumb2 code. To generate thumb2 code, it requires `+thumb-mode`. So we should add it for armv7-linux-androideabi. r? @alexcrichton
…=eddyb Get `allow(unused_mut)` to work on `let` bindings fixes rust-lang#40491
…xcrichton stabilized ord_max_min (fixes rust-lang#25663)
update rust-installer Fixes <rust-lang#44594> r? @alexcrichton
Some changes occurred in HTML/CSS. |
r? @BurntSushi (rust_highfive has picked a reviewer for you, use r? to override) |
@bors: r+ p=11 |
📌 Commit 0b37908 has been approved by |
⌛ Testing commit 0b37908eef0b823c25aa88549598746f0d766e85 with merge 1f3526eec029957c0588a7cdb0b434a9a29cf381... |
💔 Test failed - status-appveyor |
@bors: r+ |
📌 Commit 1268ec1 has been approved by |
⌛ Testing commit 1268ec181123f93e643bd6ab78a36c8f366fd0ff with merge fd30475a2b3db260d34168f6245d493a786765ca... |
…imulacrum Update cargo submodule Just a routine update
…imulacrum rustbuild: Compile the error-index in stage 2 Right now we comiple rustdoc in stage 2 and the error index in stage 0, which ends up compiling rustdoc twice! To avoid compiling rustdoc twice (which takes awhile) let's just compile it once in stage 2.
…imulacrum rustbuild: Update `cmake` dependency Should help suppress some warnings from various repos as `cmake` in the newest version disables warnings by default.
Mention that HashMap::new and HashSet::new do not allocate The docs for `HashMap::with_capacity` and `HashSet::with_capacity` already say that > If `capacity` is 0, the hash map/set will not allocate. However, the docs for `::new` do not say that the initial capacity is 0, and thus promise that a call to `::new` alone does not allocate. This PR fixes that.
…ark-Simulacrum travis: Disable LLVM assertions on OSX Our OSX builders are routinely and significantly over hour 2 hour "soft limit" for testing PRs. I *think* that a big portion of this time comes from the fact that LLVM and debug assertions are enabled. In an effort to speed up these builders and reduce cycle time this commit disables LLVM assertions on OSX for all builders. My thinking is that we'll let this bake for a bit after merged to see what the effect is on timing on Travis. If it doesn't actually help much we can turn them back on, and if it doesn't help enough we can disable Rust debug assertions as well.
…, r=Mark-Simulacrum rustbuild: Fix test "test rustdoc" invocation Previously it would use the librustc output directory which would cause rustdoc to get entirely recompiled, whereas the intention is that it uses the already-compiled artifacts from building rustdoc itself, using the tool output directory
1268ec1
to
fc6e763
Compare
@bors: r+ |
📌 Commit fc6e763 has been approved by |
⌛ Testing commit fc6e763 with merge 5cd89028d97c4c6cec360ad833435b5048d4773c... |
💔 Test failed - status-travis |
cmd /c emcc.bat
explicitly #44542, extend E0623 for earlybound and latebound for structs #44549, bring TyCtxt into scope #44560, rustdoc: pretty-print Unevaluated expressions in types. #44562, stabilized iterator_for_each (closes #42986) #44567, travis: Move sccache to the us-west-1 region #44574, Customize<FlatMap as Iterator>::fold
#44577, rustc: Preallocate when building the dep graph #44586, Require +thumb-mode to generate thumb2 code for Android/armv7-a #44589, Getallow(unused_mut)
to work onlet
bindings #44590, stabilized ord_max_min (fixes #25663) #44593, update rust-installer #44598, Add Stylo and WebRender to src/tools/cargotest #44603, Update cargo submodule #44604, rustbuild: Compile the error-index in stage 2 #44605, rustbuild: Updatecmake
dependency #44606, Mention that HashMap::new and HashSet::new do not allocate #44609, travis: Disable LLVM assertions on OSX #44610, rustbuild: Fix test "test rustdoc" invocation #44616align_offset
things #44537