-
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 5 pull requests #67455
Rollup of 5 pull requests #67455
Conversation
Allow defaultness on trait items syntactically.
An exception is `fn` params.
Also fix error the code description.
The WebAssembly targets of rustc have weird issues around name mangling and import the same name from different modules. This all largely stems from the fact that we're using literal symbol names in LLVM IR to represent what a function is called when it's imported, and we're not using the wasm-specific `wasm-import-name` attribute. This in turn leads to two issues: * If, in the same codegen unit, the same FFI symbol is referenced twice then rustc, when translating to LLVM IR, will only reference one symbol from the first wasm module referenced. * There's also a bug in LLD [1] where even if two codegen units reference different modules, having the same symbol names means that LLD coalesces the symbols and only refers to one wasm module. Put another way, all our imported wasm symbols from the environment are keyed off their LLVM IR symbol name, which has lots of collisions today. This commit fixes the issue by implementing two changes: 1. All wasm symbols with `#[link(wasm_import_module = "...")]` are mangled by default in LLVM IR. This means they're all given unique names. 2. Symbols then use the `wasm-import-name` attribute to ensure that the WebAssembly file uses the correct import name. When put together this should ensure we don't trip over the LLD bug [1] and we also codegen IR correctly always referencing the right symbols with the right import module/name pairs. Closes rust-lang#50021 Closes rust-lang#56309 Closes rust-lang#63562 [1]: https://bugs.llvm.org/show_bug.cgi?id=44316
🌲 The tree is currently closed for pull requests below priority 100, this pull request will be tested once the tree is reopened |
Rollup of 5 pull requests Successful merges: - #64588 (Add a raw "address of" operator) - #67031 (Update tokio crates to latest versions) - #67131 (Merge `TraitItem` & `ImplItem into `AssocItem`) - #67354 (Fix pointing at arg when cause is outside of call) - #67363 (Fix handling of wasm import modules and names) Failed merges: r? @ghost
☀️ Test successful - checks-azure |
@rust-lang/infra looks like the toolstate is (still?) not updated properly (this pr broke clippy, but there is no note in the message, at https://github.com/rust-lang-nursery/rust-toolstate or the toolstate website) |
rustup rust-lang/rust#67455 changelog: none
Changes: ```` rustup "Merge `ast::Mutability` and `mir::Mutability`" rustup rust-lang#67130 rustup rust-lang#67455 There are no per-file copyright headers anymore Update lints for `iterator_step_by_zero` changes Fix 'redudant' spelling in redundant_clone docs Fix documentation example for unnecessary_filter_map. Fix `expect_fun_call` false negative on references Fix `iterator_step_by_zero` description in declaration Fix `iterator_step_by_zero` definition Correct `iterator_step_by_zero` documentation Update iterator_step_by_zero Prevent `cmp_nan` when inside constants Detect comparisons with NAN constants Fix clippy build failure ````
submodules: update clippy from 69f99e7 to acbc609 Changes: ```` rustup "Merge `ast::Mutability` and `mir::Mutability`" rustup #67130 rustup #67455 Update lints for `iterator_step_by_zero` changes Fix 'redudant' spelling in redundant_clone docs Fix documentation example for unnecessary_filter_map. Fix `expect_fun_call` false negative on references Fix `iterator_step_by_zero` description in declaration Fix `iterator_step_by_zero` definition Correct `iterator_step_by_zero` documentation Update iterator_step_by_zero Prevent `cmp_nan` when inside constants Detect comparisons with NAN constants Fix clippy build failure ```` r? @oli-obk @Manishearth
Changes: ```` rustup "Merge `ast::Mutability` and `mir::Mutability`" rustup rust-lang/rust#67130 rustup rust-lang/rust#67455 There are no per-file copyright headers anymore Update lints for `iterator_step_by_zero` changes Fix 'redudant' spelling in redundant_clone docs Fix documentation example for unnecessary_filter_map. Fix `expect_fun_call` false negative on references Fix `iterator_step_by_zero` description in declaration Fix `iterator_step_by_zero` definition Correct `iterator_step_by_zero` documentation Update iterator_step_by_zero Prevent `cmp_nan` when inside constants Detect comparisons with NAN constants Fix clippy build failure ````
Successful merges:
TraitItem
&ImplItem into
AssocItem` #67131 (MergeTraitItem
&ImplItem into
AssocItem`)Failed merges:
r? @ghost