about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorLines
2020-07-22Improve codegen for unchecked float casts on wasmAlex Crichton-38/+74
This commit improves codegen for unchecked casts on WebAssembly targets to use the singluar `iNN.trunc_fMM_{u,s}` instructions. Previously rustc would codegen a bare `fptosi` and `fptoui` for float casts but for WebAssembly targets the codegen for these instructions is quite large. This large codegen is due to the fact that LLVM can speculate these instructions so the trapping behavior of WebAssembly needs to be protected against in case they're speculated. The change here is to update the codegen for the unchecked cast intrinsics to have a wasm-specific case where they call the appropriate LLVM intrinsic to generate the right wasm instruction. The intrinsic is explicitly opting-in to undefined behavior so a trap here for out-of-bounds inputs on wasm should be acceptable. cc #73591
2020-07-22Auto merge of #74404 - lcnr:ty-dep-path-cleanup-aaaaa, r=eddybbors-50/+56
remove some const arg in ty dep path boilerplate followup to #74113, together with #74376, this closes #74360. r? @eddyb
2020-07-22More BTreeMap test cases, some exposing undefined behaviourStein Somers-0/+80
2020-07-22require type defaults to be after const generic parametersBastian Kauschke-6/+46
as if this is currently possible. HA!
2020-07-22Change error code numberEsteban Küber-23/+22
2020-07-22Improve the documentation for Vec::drainAlexis Bourget-4/+7
2020-07-22rustdoc: Add explanation when linting against public to private item linksDennis Hamester-0/+11
The additional note helps explaining why the lint was triggered and that --document-private-items directly influences the link resolution.
2020-07-22rustdoc: Always warn when linking from public to private itemsDennis Hamester-10/+36
Change the logic such that linking from a public to a private item always triggers intra_doc_link_resolution_failure. Previously, the warning was not emitted when --document-private-items is passed. Also don't rely anymore on the item's visibility, which would falsely trigger the lint now that the check for --document-private-items is gone.
2020-07-22Auto merge of #74633 - davidtwco:issue-74614-disable-polymorphisation, ↵bors-37/+66
r=wesleywiser Disable polymorphisation Fixes #74614. This PR disables polymorphisation to fix the regression in #74614 after investigation into the issue makes it clear that the fix won't be trivial. ~~I'll file an issue shortly to replace #74614 with the findings so far.~~ #74636 has been filed to track the fix of the underlying regression. r? @eddyb
2020-07-22Handle fully-qualified paths and add test casesEsteban Küber-98/+404
2020-07-22Partially account for case where used method is from traitEsteban Küber-5/+21
2020-07-22Use `ty::Instance::resolve` to identify `'static` bound sourceEsteban Küber-182/+196
2020-07-22Further tweak wording of E0759 and introduce E0767Esteban Küber-167/+280
2020-07-22Add more context to diagnosticEsteban Küber-18/+96
2020-07-22Increase accuracy of lifetime bound on trait object impl suggestionEsteban Küber-114/+321
2020-07-22Detect when `'static` obligation might come from an `impl`Esteban Küber-302/+431
Address #71341.
2020-07-22build: Avoid unnecessary build script reruns in libstdVadim Petrochenkov-0/+3
Add a FIXME to build scripts in profiler_builtins
2020-07-22build: Harden env var tracking in build scriptsVadim Petrochenkov-18/+22
2020-07-22Auto merge of #74642 - Manishearth:rollup-148kz52, r=Manishearthbors-632/+748
Rollup of 9 pull requests Successful merges: - #73655 (va_args implementation for AAPCS.) - #73893 (Stabilize control-flow-guard codegen option) - #74237 (compiletest: Rewrite extract_*_version functions) - #74454 (small coherence cleanup) - #74528 (refactor and reword intra-doc link errors) - #74568 (Apply #66379 to `*mut T` `as_ref`) - #74570 (Use forge links for prioritization procedure) - #74589 (Update books) - #74635 (Fix tooltip position if the documentation starts with a code block) Failed merges: r? @ghost
2020-07-22Rollup merge of #74635 - GuillaumeGomez:fix-tooltip-pos, r=ManishearthManish Goregaokar-0/+10
Fix tooltip position if the documentation starts with a code block Fixes #74321. Before: ![before](https://user-images.githubusercontent.com/3050060/88188970-cf842400-cc38-11ea-839b-37e41656837d.png) After: ![after](https://user-images.githubusercontent.com/3050060/88188981-d3b04180-cc38-11ea-8194-713ffe640d3a.png) And in case there is text, it is not being applied: ![after-witness](https://user-images.githubusercontent.com/3050060/88189009-ddd24000-cc38-11ea-9f0a-61dfd0a0cbd0.png) And on mobile it isn't needed so it's not "activated": ![Screenshot from 2020-07-22 17-17-43](https://user-images.githubusercontent.com/3050060/88194698-65bb4880-cc3f-11ea-8513-0043ccca8cfc.png) r? @rust-lang/rustdoc
2020-07-22Rollup merge of #74589 - ehuss:update-books, r=ehussManish Goregaokar-0/+0
Update books ## reference 5 commits in 0ea7bc494f1289234d8800bb9185021e0ad946f0..b329ce37424874ad4db94f829a55807c6e21d2cb 2020-07-02 15:33:04 -0700 to 2020-07-20 08:54:08 -0700 - this '*' is unnecessary, and reduces readability (rust-lang-nursery/reference#853) - Tiny typo fix (rust-lang-nursery/reference#849) - Update const eval chapter to latest changes (rust-lang-nursery/reference#842) - Document #[track_caller]. (rust-lang-nursery/reference#742) - Document shebang restriction. (rust-lang-nursery/reference#823) ## book 2 commits in 84a31397b34f9d405df44f2899ff17a4828dba18..a914f2c7e5cdb771fa465de142381a51c53b580e 2020-07-04 10:50:18 -0500 to 2020-07-21 09:20:05 -0500 - Change misleading wording (rust-lang/book#2399) - Improve wording to include Windows versions (rust-lang/book#2395) ## edition-guide 3 commits in 82bec5877c77cfad530ca11095db4456d757f668..bd6e4a9f59c5c1545f572266af77f5c7a5bad6d1 2020-06-03 08:56:02 -0500 to 2020-07-12 17:37:08 -0500 - update guide for 1.36 and 1.37 (rust-lang/edition-guide#217) - Add contents for Rust 1.35 (rust-lang/edition-guide#216) - update edition guide for Rust 1.34 (rust-lang/edition-guide#215)
2020-07-22Rollup merge of #74570 - spastorino:fix-prioritization-procedures-links, ↵Manish Goregaokar-7/+7
r=Mark-Simulacrum Use forge links for prioritization procedure r? @Mark-Simulacrum cc @rust-lang/wg-prioritization
2020-07-22Rollup merge of #74568 - aticu:master, r=Mark-SimulacrumManish Goregaokar-7/+12
Apply #66379 to `*mut T` `as_ref` #66379 changed the documentation of `as_ref` on the type `*const T` and `as_mut` on the type `*mut T`, but it missed making that same change for `as_ref` on the type `*mut T`.
2020-07-22Rollup merge of #74528 - euclio:intra-link-errors, r=jyn514Manish Goregaokar-298/+290
refactor and reword intra-doc link errors This commit refactors intra-doc link error reporting to deduplicate code and decouple error construction from the type of error. This greatly improves flexibility at each error construction site, while reducing the complexity of the diagnostic creation. This commit also rewords the diagnostics for clarity and style: - Diagnostics should not end in periods. - It's unnecessary to say "ignoring it". Since this is a warning by default, it's already clear that the link is ignored.
2020-07-22Rollup merge of #74454 - lcnr:negative-impls, r=nikomatsakisManish Goregaokar-52/+47
small coherence cleanup r? @eddyb
2020-07-22Rollup merge of #74237 - lzutao:compiletest, r=Mark-SimulacrumManish Goregaokar-253/+208
compiletest: Rewrite extract_*_version functions This makes extract_lldb_version has the same version type like extract_gdb_version.
2020-07-22Rollup merge of #73893 - ajpaverd:cfguard-stabilize, r=nikomatsakisManish Goregaokar-12/+24
Stabilize control-flow-guard codegen option This is the stabilization PR discussed in #68793. It converts the `-Z control-flow-guard` debugging option into a codegen option (`-C control-flow-guard`), and changes the associated tests.
2020-07-22Rollup merge of #73655 - JamieCunliffe:jamie_va-args-c, r=nikicManish Goregaokar-3/+150
va_args implementation for AAPCS. Implement the va args in codegen for AAPCS, this will be used as the default va_args implementation for AArch64 rather than the va_args llvm-ir as it currently is. This should fix the following issues: https://github.com/rust-lang/rust/issues/56475 https://github.com/rust-lang/rust/issues/72579
2020-07-22build: Remove unnecessary `build = "build.rs"` annotationsVadim Petrochenkov-6/+0
2020-07-22build: Remove unnecessary `cargo:rerun-if-env-changed` annotationsVadim Petrochenkov-58/+2
2020-07-22Update Usage section of README.mdPhilipp Krones-4/+2
2020-07-22Fix tooltip position if the documentation starts with a code blockGuillaume Gomez-0/+10
2020-07-22no need to polymorphizeBastian Kauschke-1/+0
2020-07-22polymorphize GlobalAlloc::FunctionBastian Kauschke-1/+15
2020-07-22tests: add regression test for #74614David Wood-0/+17
This commit adds a regression test for #74614 so that it is fixed before polymorphisation is re-enabled. Signed-off-by: David Wood <david@davidtw.co>
2020-07-22sess: disable polymorphisationDavid Wood-35/+46
This commit disables polymorphisation to resolve regressions related to closures which inherit unused generic parameters and are then used in casts or reflection. Signed-off-by: David Wood <david@davidtw.co>
2020-07-22mir: improve polymorphic constant bugDavid Wood-2/+3
This commit changes the span and content of the "collection encountered polymorphic constant" bug in monomorphization collection to point to the use of the constant rather than the definition. Signed-off-by: David Wood <david@davidtw.co>
2020-07-22rustc_target: Add a target spec option for disabling `--eh-frame-hdr`Vadim Petrochenkov-8/+24
2020-07-22Auto merge of #74620 - rust-lang:remove-most-azure, r=Mark-Simulacrumbors-298/+3
Disable Azure Pipelines except for macOS Following up on https://github.com/rust-lang/rust/pull/74565, this PR disables most of Azure Pipelines except for macOS auto builds, practically switching us to GitHub Actions :tada: r? @Mark-Simulacrum
2020-07-22Revert "include backtrace folder in rust-src component"Mark Rousskov-1/+0
This reverts commit d7a36d8964c927863faef5d3b42da08f37e5896c.
2020-07-22Revert "std: Switch from libbacktrace to gimli"Mark Rousskov-107/+55
This reverts commit 13db3cc1e8d2fd4b8e7c74d91002274d7b62801b.
2020-07-22Revert "std: Fix compilation without backtrace feature"Mark Rousskov-1/+2
This reverts commit 028f8d7b85898683b99e05564cd2976c7e0d5b43.
2020-07-22Revert "update backtrace-rs"Mark Rousskov-0/+0
This reverts commit 4cbd265c119cb1a5eb92e98d2bb93466f05efa46.
2020-07-22Enable perf try builderMark Rousskov-6/+8
This adds a dedicated branch for perf to use for CI, intended to allow perf to enqueue builds without needing to use bors. bors is great, but bors requires an open PR to work, and we want to invoke perf on closed PRs sometimes (in particular, rollups).
2020-07-22note LLVM in fixmeBastian Kauschke-1/+1
2020-07-22Optimize away BitAnd and BitOr when possibleXavier Denis-24/+187
2020-07-22ci: disable Azure Pipelines except for macOSPietro Albini-298/+3
2020-07-22const prop into operandsBastian Kauschke-89/+261
2020-07-22Auto merge of #73270 - dylanmckay:avr-use-correct-addrspace, r=nagisabors-36/+188
[AVR] Correctly set the pointer address space when constructing pointers to functions NOTE: Pull request iterations: * https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.0 * https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.1 * https://github.com/dylanmckay/rust/releases/tag/avr-use-correct-addrspace.2 This patch extends the existing `type_i8p` method so that it requires an explicit address space to be specified. Before this patch, the `type_i8p` method implcitily assumed the default address space, which is not a safe transformation on all targets, namely AVR. The Rust compiler already has support for tracking the "instruction address space" on a per-target basis. This patch extends the code generation routines so that an address space must always be specified. In my estimation, around 15% of the callers of `type_i8p` produced invalid code on AVR due to the loss of address space prior to LLVM final code generation. This would lead to unavoidable assertion errors relating to invalid bitcasts. With this patch, the address space is always either 1) explicitly preserved from the input type, or 2) explicitly set to the instruction address space because the logic is dealing with functions which must be placed there, or 3) explicitly set to the default address space 0 because the logic can only operate on data space pointers and thus we keep the existing semantics of assuming the default, "data" address space.
2020-07-22mark methods as constant since 1.47.0 instead of 1.46.0Trevor Spiteri-81/+43