- 05 10月, 2016 16 次提交
-
-
由 Ariel Ben-Yehuda 提交于
Fixes #36955.
-
由 Ariel Ben-Yehuda 提交于
-
由 Ariel Ben-Yehuda 提交于
cc #36920 (in addition to LLVM PR30597, should fix the &&[i32] case)
-
由 bors 提交于
Refactoring/bugfixing around definitions for struct/variant constructors https://github.com/rust-lang/rust/commit/d917c364ad0edfa441e5c219da1b00511b976789 separates definitions for struct/variant constructors living in value namespace from struct/variant type definitions. https://github.com/rust-lang/rust/commit/adfb37827b3a52a83dd11d5781e5b492714a5d4c fixes cross-crate resolution of reexports reexporting half-items, like struct constructors without struct type or types without constructor. Such reexports can appear due to glob shadowing. Resolution now is not affected by the order in which items and reexports are decoded from metadata (cc https://github.com/rust-lang/rust/issues/31337#issuecomment-183996263). `try_define` is not used during building reduced graph anymore. 500 lines of this PR are tests for this exotic situation, the remaining line diff count is actually negative! :) https://github.com/rust-lang/rust/commit/c695d0c8756a87c0708b97b7e277b6a3f4712b97 (and partially https://github.com/rust-lang/rust/commit/aabf132de04643602ec17b6abab9e276366d9c6d) moves most of pattern resolution checks from typeck to resolve (except those checking for associated items), uses the same wording for pattern resolution error messages from both typeck and resolve and makes the messages more precise. https://github.com/rust-lang/rust/commit/11e3524e5afa4ac1b04aece67fb683f078e63f37 fixes seemingly incorrectly set `NON_ZERO_SIZED` attributes for struct/variant ctors in const eval. https://github.com/rust-lang/rust/commit/4586fea2531054d9b25f8663f1ba4b32b07c11c2 eliminates `ty::VariantKind` in favor of `def::CtorKind`. The logic is that variant kinds are irrelevant for types, they make sense only when we deal with constructor functions/constants. Despite that `VariantDefData` still keeps a copy of `CtorKind`, but it's used only for various kinds of pretty-printing (and for storing in metadata). https://github.com/rust-lang/rust/commit/aabf132de04643602ec17b6abab9e276366d9c6d is mostly a cleanup of various impossible or improperly used definitions, and other small definition cleanups. cc @jseyfried r? @EddyB
-
由 Vadim Petrochenkov 提交于
Address comments + Fix rebase
-
由 bors 提交于
rustc: Try again to disable NEON on armv7 linux This is a follow-up to #35814 which apparently didn't disable it hard enough. It looks like LLVM's default armv7 target enables NEON so we'd otherwise have to pass `-neon`, but we're already enabling armv7 with `+v7` supposedly, so let's try just telling LLVM that the armv7 target is arm and then enable features selectively. Closes #36913
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
And for methods/functions as well, they are zero-sized now
-
由 Vadim Petrochenkov 提交于
Make error messages more precise
-
由 Vadim Petrochenkov 提交于
`try_define` is not used in build_reduced_graph anymore Collection of field names for error reporting is optimized Some comments added
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Alex Crichton 提交于
This is a follow-up to #35814 which apparently didn't disable it hard enough. It looks like LLVM's default armv7 target enables NEON so we'd otherwise have to pass `-neon`, but we're already enabling armv7 with `+v7` supposedly, so let's try just telling LLVM that the armv7 target is arm and then enable features selectively. Closes #36913
-
- 04 10月, 2016 24 次提交
-
-
由 bors 提交于
add Thumbs to the compiler this commit adds 4 new target definitions to the compiler for easier cross compilation to ARM Cortex-M devices. - `thumbv6m-none-eabi` - For the Cortex-M0, Cortex-M0+ and Cortex-M1 - This architecture doesn't have hardware support (instructions) for atomics. Hence, the `Atomic*` structs are not available for this target. - `thumbv7m-none-eabi` - For the Cortex-M3 - `thumbv7em-none-eabi` - For the FPU-less variants of the Cortex-M4 and Cortex-M7 - On this target, all the floating point operations will be lowered software routines (intrinsics) - `thumbv7em-none-eabihf` - For the variants of the Cortex-M4 and Cortex-M7 that do have a FPU. - On this target, all the floating point operations will be lowered to hardware instructions No binary releases of standard crates, like `core`, are planned for these targets because Cargo, in the future, will compile e.g. the `core` crate on the fly as part of the `cargo build` process. In the meantime, you'll have to compile the `core` crate yourself. [Xargo] is the easiest way to do that as in handles the compilation of `core` automatically and can be used just like Cargo: `xargo build --target thumbv6m-none-eabi` is all that's needed. [Xargo]: https://crates.io/crates/xargo --- cc @brson @alexcrichton
-
由 bors 提交于
Rollup of 12 pull requests - Successful merges: #36798, #36878, #36902, #36903, #36908, #36916, #36917, #36921, #36928, #36938, #36941, #36951 - Failed merges:
-
由 Niko Matsakis 提交于
Work around LLVM bug. cc #36856
-
由 Manish Goregaokar 提交于
Fix an ICE in BuildReducedGraphVisitor::visit_trait_item. This ICE occurs in the futures-rs-test-all benchmark in rustc-benchmarks (fixes #36950).
-
由 Manish Goregaokar 提交于
Add regression test for Issue #21837 This PR adds a regression test for Issue #21837, as explained in the comments of the issue.
-
由 Manish Goregaokar 提交于
Check for overflow in Cursor<Vec<u8>>::write. Ensure that cursor position fits into usize, before proceeding with write. Fixes issue #36884.
-
由 Manish Goregaokar 提交于
Add missing urls for error module r? @steveklabnik
-
由 Manish Goregaokar 提交于
Two lexer tweaks 19 days later, I haven't received a review of my commits in #36470. In an attempt to make some progress, I'm going to split up the changes. Here are the ones that don't relate to renaming things.
-
由 Manish Goregaokar 提交于
Speed up `plug_leaks` Profiling shows that `plug_leaks` and the functions it calls are hot on some benchmarks. It's very common that `skol_map` is empty in this function, and we can specialize `plug_leaks` in that case for some big speed-ups. The PR has two commits. I'm fairly confident that the first one is correct -- I traced through the code to confirm that the `fold_regions` and `pop_skolemized` calls are no-ops when `skol_map` is empty, and I also temporarily added an assertion to check that `result` ends up having the same value as `value` in that case. This commit is responsible for most of the improvement. I'm less confident about the second commit. The call to `resolve_type_vars_is_possible` can change `value` when `skol_map` is empty... but testing suggests that it doesn't matter if the call is omitted. So, please check both patches carefully, especially the second one! Here are the speed-ups for the first commit alone. stage1 compiler (built with old rustc, using glibc malloc), doing debug builds: ``` futures-rs-test 4.710s vs 4.538s --> 1.038x faster (variance: 1.009x, 1.005x) issue-32062-equ 0.415s vs 0.368s --> 1.129x faster (variance: 1.009x, 1.010x) issue-32278-big 1.884s vs 1.808s --> 1.042x faster (variance: 1.020x, 1.017x) jld-day15-parse 1.907s vs 1.668s --> 1.143x faster (variance: 1.011x, 1.007x) piston-image-0. 13.024s vs 12.421s --> 1.049x faster (variance: 1.004x, 1.012x) rust-encoding-0 3.335s vs 3.276s --> 1.018x faster (variance: 1.021x, 1.028x) ``` stage2 compiler (built with new rustc, using jemalloc), doing debug builds: ``` futures-rs-test 4.167s vs 4.065s --> 1.025x faster (variance: 1.006x, 1.018x) issue-32062-equ 0.383s vs 0.343s --> 1.118x faster (variance: 1.012x, 1.016x) issue-32278-big 1.680s vs 1.621s --> 1.036x faster (variance: 1.007x, 1.007x) jld-day15-parse 1.671s vs 1.478s --> 1.131x faster (variance: 1.016x, 1.004x) piston-image-0. 11.336s vs 10.852s --> 1.045x faster (variance: 1.003x, 1.006x) rust-encoding-0 3.036s vs 2.971s --> 1.022x faster (variance: 1.030x, 1.032x) ``` I've omitted the benchmarks for which the change was negligible. And here are the speed-ups for the first and second commit in combination. stage1 compiler (built with old rustc, using glibc malloc), doing debug builds: ``` futures-rs-test 4.684s vs 4.498s --> 1.041x faster (variance: 1.012x, 1.012x) issue-32062-equ 0.413s vs 0.355s --> 1.162x faster (variance: 1.019x, 1.006x) issue-32278-big 1.869s vs 1.763s --> 1.060x faster (variance: 1.013x, 1.018x) jld-day15-parse 1.900s vs 1.602s --> 1.186x faster (variance: 1.010x, 1.003x) piston-image-0. 12.907s vs 12.352s --> 1.045x faster (variance: 1.005x, 1.006x) rust-encoding-0 3.254s vs 3.248s --> 1.002x faster (variance: 1.063x, 1.045x) ``` stage2 compiler (built with new rustc, using jemalloc), doing debug builds: ``` futures-rs-test 4.183s vs 4.046s --> 1.034x faster (variance: 1.007x, 1.004x) issue-32062-equ 0.380s vs 0.340s --> 1.117x faster (variance: 1.020x, 1.003x) issue-32278-big 1.671s vs 1.616s --> 1.034x faster (variance: 1.031x, 1.012x) jld-day15-parse 1.661s vs 1.417s --> 1.172x faster (variance: 1.013x, 1.005x) piston-image-0. 11.347s vs 10.841s --> 1.047x faster (variance: 1.007x, 1.010x) rust-encoding-0 3.050s vs 3.000s --> 1.017x faster (variance: 1.016x, 1.012x) ``` @EddyB: `git blame` suggests that you should review this. Thanks!
-
由 Manish Goregaokar 提交于
Update unstable attr to reference tracking issue.
-
由 Manish Goregaokar 提交于
fix typos r? @steveklabnik
-
由 Manish Goregaokar 提交于
Minor librustdoc cleanup and refactoring.
-
由 Manish Goregaokar 提交于
std: Correct stability attributes for some implementations These are displayed by rustdoc so should be correct.
-
由 Manish Goregaokar 提交于
Avoid introducing `run` twice in the Rust book As it stands, getting-started.md and guessing-game.md both introduce `run` as a new command. I switched it so that the 2nd refers back to the first introduction, rather than re-introducing the command. (First ever FOSS PR, sorry if I screwed up anything obvious :) ) r? @steveklabnik
-
由 Manish Goregaokar 提交于
Improve error message and snippet for "did you mean `x`" - Fixes #36164 - Part of #35233 Based on the standalone example https://is.gd/8STXMd posted by @nikomatsakis and using the third formatting option mentioned in #36164 and agreed by @jonathandturner. Note however this does not address the question of [how to handle an empty or unknown suggestion](https://github.com/rust-lang/rust/issues/36164#issuecomment-244460024). @nikomatsakis any suggestions on how best to address that part?
-
由 Nicholas Nethercote 提交于
This ICE occurs in the futures-rs-test-all benchmark in rustc-benchmarks.
-
由 Jorge Aparicio 提交于
to better express the idea that omitting this field defaults this value to target_pointer_width
-
由 Jorge Aparicio 提交于
-
由 Jorge Aparicio 提交于
-
由 Jorge Aparicio 提交于
-
由 bors 提交于
loosen assertion against proj in collector The collector was asserting a total absence of projections, but some projections are expected, even in trans: in particular, projections containing higher-ranked regions, which we don't currently normalize. r? @pnkfelix Fixes #36381
-
由 Ariel Ben-Yehuda 提交于
that made no sense (see test), and was incompatible with borrowck. Fixes #36936.
-
由 bors 提交于
#36821 I am just starting to learn rust. Feedback would be appreciated.
-
由 Martin Thoresen 提交于
-