-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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 7 pull requests #113162
Rollup of 7 pull requests #113162
Commits on Jun 7, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 82336c1 - Browse repository at this point
Copy the full SHA 82336c1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 00ce5e8 - Browse repository at this point
Copy the full SHA 00ce5e8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 35cdb28 - Browse repository at this point
Copy the full SHA 35cdb28View commit details -
Configuration menu - View commit details
-
Copy full SHA for 82730b4 - Browse repository at this point
Copy the full SHA 82730b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 12ad662 - Browse repository at this point
Copy the full SHA 12ad662View commit details -
Co-authored-by: bjorn3 <17426603+bjorn3@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 744ec64 - Browse repository at this point
Copy the full SHA 744ec64View commit details
Commits on Jun 24, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 8af8a95 - Browse repository at this point
Copy the full SHA 8af8a95View commit details
Commits on Jun 28, 2023
-
Configuration menu - View commit details
-
Copy full SHA for d8d09b0 - Browse repository at this point
Copy the full SHA d8d09b0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5b51d9c - Browse repository at this point
Copy the full SHA 5b51d9cView commit details -
Introduce
exec_compiled_test_general
This will allow the `run-coverage` mode to easily set environment variable `LLVM_PROFILE_FILE`, and to prevent the executable from being deleted after a successful run.
Configuration menu - View commit details
-
Copy full SHA for a32cdee - Browse repository at this point
Copy the full SHA a32cdeeView commit details -
Remember whether
failure-status
was explicitly specifiedCurrently a test without a `failure-status` directive is treated as having an expected failure-status of 1, but `run-coverage` tests will want to treat those tests as expecting success instead.
Configuration menu - View commit details
-
Copy full SHA for 75d01f8 - Browse repository at this point
Copy the full SHA 75d01f8View commit details -
Configuration menu - View commit details
-
Copy full SHA for a42bbd0 - Browse repository at this point
Copy the full SHA a42bbd0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 22e119b - Browse repository at this point
Copy the full SHA 22e119bView commit details -
Configuration menu - View commit details
-
Copy full SHA for e0625b4 - Browse repository at this point
Copy the full SHA e0625b4View commit details -
Configuration menu - View commit details
-
Copy full SHA for d05653c - Browse repository at this point
Copy the full SHA d05653cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9d2564a - Browse repository at this point
Copy the full SHA 9d2564aView commit details -
Migrate the remaining
run-make/coverage-reports
tests over to `run-……coverage` To make it easier to verify that the output snapshots have been migrated faithfully, this change adds some temporary helper code that lets us avoid having to completely re-bless the existing snapshots. A later change in this PR will then re-bless the tests and remove the temporary helper code.
Configuration menu - View commit details
-
Copy full SHA for a2c0b38 - Browse repository at this point
Copy the full SHA a2c0b38View commit details -
Configuration menu - View commit details
-
Copy full SHA for edd051c - Browse repository at this point
Copy the full SHA edd051cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7b4e75b - Browse repository at this point
Copy the full SHA 7b4e75bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 453603a - Browse repository at this point
Copy the full SHA 453603aView commit details
Commits on Jun 29, 2023
-
Configuration menu - View commit details
-
Copy full SHA for aafc801 - Browse repository at this point
Copy the full SHA aafc801View commit details -
refactor
tool_doc!
so that it can accept additional arguments.Signed-off-by: ozkanonur <work@onurozkan.dev>
Configuration menu - View commit details
-
Copy full SHA for cde54ff - Browse repository at this point
Copy the full SHA cde54ffView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4dcce38 - Browse repository at this point
Copy the full SHA 4dcce38View commit details -
Configuration menu - View commit details
-
Copy full SHA for 35c6a1d - Browse repository at this point
Copy the full SHA 35c6a1dView commit details -
Rollup merge of rust-lang#111322 - mirkootter:master, r=davidtwco
Support for native WASM exceptions ### Motivation Currently, rustc does not support native WASM exceptions. It does support JavaScript based exceptions for the wasm32-emscripten-target, but this requires back&forth with javascript for many calls, which is very slow. Native wasm support for exceptions is quite common: Clang+LLVM implemented them years ago, and all major browsers support them by now. They enable zero-cost exceptions, at least with regard to runtime-performance-cost. They may increase startup-time and code size, though. ### Important: This PR does not change default behaviour Exceptions usually add a lot of code in form of unwinding blocks, increasing the binary size. Most users probably do not want that, especially which regard to web development. Therefore, wasm exceptions play a similar role as WASM-threads: rustc should support them, like clang does, but users who want to use it have to use some command-line magic like rustflags to opt in. ### What does this PR do? As stated above, the default behaviour is not changed. It is already possible to opt-in into wasm exceptions using the command line. Unfortunately, the LLVM IR is invalid and the LLVM backend crashes. ``` rustc <sourcefile> --target wasm32-unknown-unknown -C panic=unwind -C llvm-args=-wasm-enable-eh -C target-feature=+exception-handling ``` As it turns out, LLVM is quite picky when it comes to IR for exception handling. If the IR does not look exactly like it should, some LLVM-assertions fail and the code generation crashes. This PR adds the necessary modifications to the code generator to make it work. It also adds `exception-handling` as a wasm target feature. ### What this PR does not / what is missing This PR is not a full fledges solution. It is the first step. A few parts are still missing; however, it is already useable (see next section). Currently missing: * The std library has to be adapted. Currently, only [no_std] crates work * Usually, nested exceptions abort the program (i.e. a panic during the cleanup of another panic). This is currently not done yet. - Currently, code inside cleanup handlers does not unwind - To fix this requires a little more work: The code generator currently maintains a single terminate block per function for this. Unfortunately, WASM requires funclet based exception handling. Therefore, we need to create a terminate block per funclet. This is probably not a big problem, but I want to keep this PR simple. ### How to use the compiler given this PR? This PR does not add any command line flags or features. It uses those which are already there. To compile with exceptions enabled, you need * to set the panic strategy to unwind, i.e. `-C panic=unwind` * to enable the exception-handling target feature, i.e. `-C target-feature=+exception-handling` * to tell LLVM about the exception handling, i.e. `-C llvm-args=-wasm-enable-eh` Since the standard library has not been adapted, you can only use it in [no_std] crates as of now. The intrinsic `core::intrinsics::r#try` works. To throw exceptions, you need the ```@llvm.wasm.throw``` intrinsic. I created a sample application which works for me: https://github.com/mirkootter/rust-wasm-demos This example can be run at https://webassembly.sh
Configuration menu - View commit details
-
Copy full SHA for 4696a92 - Browse repository at this point
Copy the full SHA 4696a92View commit details -
Rollup merge of rust-lang#112086 - petrochenkov:impambig, r=oli-obk
resolve: Remove artificial import ambiguity errors Fixes rust-lang#56414. FCP report: rust-lang#112086 (comment)
Configuration menu - View commit details
-
Copy full SHA for be0a96f - Browse repository at this point
Copy the full SHA be0a96fView commit details -
Rollup merge of rust-lang#112234 - ozkanonur:hotfix, r=jyn514
refactor `tool_doc!` resolves rust-lang#112211 (comment)
Configuration menu - View commit details
-
Copy full SHA for 93a97c7 - Browse repository at this point
Copy the full SHA 93a97c7View commit details -
Rollup merge of rust-lang#112300 - Zalathar:run-coverage, r=wesleywiser
Convert `run-make/coverage-reports` tests to use a custom compiletest mode I was frustrated by the fact that most of the coverage tests are glued together with makefiles and shell scripts, so I tried my hand at converting most of them over to a newly-implemented `run-coverage` mode/suite in compiletest. This ~~*mostly*~~ resolves rust-lang#85009, ~~though I've left a small number of the existing tests as-is because they would require more work to fix/support~~. --- I had time to go back and add support for the more troublesome tests that I had initially skipped over, so this PR now manages to completely get rid of `run-make/coverage-reports`. --- The patches are arranged as follows: - Declare the new mode/suite in bootstrap - Small changes to compiletest that will be used by the new mode - Implement the new mode in compiletest - Migrate most of the tests over - Add more code to bootstrap and compiletest to support the remaining tests - Migrate the remaining tests (with some temporary hacks to avoid re-blessing them) - Remove the temporary hacks and re-bless the migrated tests - Remove the unused remnants of `run-make/coverage-reports`
Configuration menu - View commit details
-
Copy full SHA for f00db43 - Browse repository at this point
Copy the full SHA f00db43View commit details -
Rollup merge of rust-lang#112795 - He1pa:translation_builtin_macros, …
…r=davidtwco Migrate some rustc_builtin_macros to SessionDiagnostic Part of rust-lang#100717. ``@rustbot`` label +A-translation
Configuration menu - View commit details
-
Copy full SHA for f135815 - Browse repository at this point
Copy the full SHA f135815View commit details -
Rollup merge of rust-lang#113144 - compiler-errors:elaborate-clauses,…
… r=oli-obk Make the `Elaboratable` trait take clauses We only ever elaborate clauses, so make this explicit in the trait's definition rather than having a bunch of `.expect_clause()` calls everywhere.
Configuration menu - View commit details
-
Copy full SHA for 5d74664 - Browse repository at this point
Copy the full SHA 5d74664View commit details -
Rollup merge of rust-lang#113161 - Bryanskiy:err_msg, r=petrochenkov
Fix type privacy lints error message Type privacy lints diagnostic messages are not related to spans. r? `@petrochenkov`
Configuration menu - View commit details
-
Copy full SHA for 4338683 - Browse repository at this point
Copy the full SHA 4338683View commit details