Skip to content
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

Add a post about changes to WebAssembly targets #1385

Merged
merged 5 commits into from
Sep 24, 2024

Conversation

alexcrichton
Copy link
Member

This post is intended to be a summary of the changes and impact to users after discussion in rust-lang/rust#127513, rust-lang/rust#128511, and some surrounding issues.

This was suggested to me by @jieyouxu after rust-lang/rust#128511 merged, but if this sort of content isn't appropriate here I'm happy to move it to the inside-rust blog or just summarize it on the PR itself and link to there. Otherwise happy to edit of course!

Also cc @daxpedda for double-checking this too.

This post is intended to be a summary of the changes and impact to users
after discussion in rust-lang/rust#127513,
rust-lang/rust#128511, and some surrounding
issues.
@alexcrichton
Copy link
Member Author

I also wrote in a date of next Monday but that's just a date-out-of-a-hat, happy to adjust that too.

Copy link
Member

@jieyouxu jieyouxu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the detailed blog post. The content LGTM in general, just some minor nits.

@jieyouxu
Copy link
Member

jieyouxu commented Aug 23, 2024

Also in the blog post we use (target) features <-> proposals interchangeably, do we / should we stick with one for consistency?

@jieyouxu
Copy link
Member

FYI @rust-lang/compiler blog post on behalf of T-compiler about wasm32 target changes

Copy link
Member

@jieyouxu jieyouxu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, a few tiny nits, otherwise looks much clearer to me 👍

Copy link

@daxpedda daxpedda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the ping!

@workingjubilee
Copy link
Member

Should this mention the -Zwasm-c-abi thing and wasm32-unknown-unknown?

@daxpedda
Copy link

daxpedda commented Aug 25, 2024

Should this mention the -Zwasm-c-abi thing and wasm32-unknown-unknown?

Could be mentioned in "Aside: ABI Stability and WebAssembly", but its pretty much unrelated to the exact topic at hand.

@alexcrichton
Copy link
Member Author

Updated with more changes (thanks for the reviews!)

I think I agree that -Zwasm-c-abi is probably best left to a separate post of its own when it's closer to being ready to turn on-by-default.

@alexcrichton
Copy link
Member Author

I'll also note that the date currently listed in this PR is yesterday, so when this is ready for merge I'll update to fix the date just beforehand.

@ehuss
Copy link
Contributor

ehuss commented Aug 30, 2024

@davidtwco or @wesleywiser Just wanted to check that this is on your radar to review/merge.

Copy link
Member

@wesleywiser wesleywiser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Converted mentions of nightly Rust to beta Rust or specifically Rust 1.82.

This looks good to me!

@alexcrichton
Copy link
Member Author

Sounds good! I moved the date to next Tuesday to give some wiggle room, but I'm happy to update the date if you're ok merging today too.

Copy link
Member

@wesleywiser wesleywiser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tuesday sounds good to me!

@StackOverflowExcept1on
Copy link

Does LLVM and Rust use table instructions (table.fill, table.get, table.set, table.grow, table.size)? It would be nice to add information about that as well.

@alexcrichton
Copy link
Member Author

I'm not aware of LLVM emitting these instructions at this time, but I'm also not an LLVM expert in this regard. Given that the instructions are part of the reference-types proposal, though, it's possible they could be emitted by LLVM if codegen changes because it's enabled by default.

I could add information about this, but I'm not sure if you're looking for anything in specific? For example unless an engine already supports the reference types proposal it can't parse the output of LLVM, so it's no different from before if the instructions are accessed? (I'm also hesitant to add much information here as I'm not intimately involved in LLVM changes in this regard to know about possible future plans around these instructions)

@jieyouxu
Copy link
Member

+1 I would probably refrain from trying to describe the exact instructions generated, and defer that to the wasm proposals and/or llvm docs if there are any.

@wesleywiser
Copy link
Member

I don't think it's necessary to include the bit about table instructions to publish. We could always amend the post in the future or create another post so I'm going to go ahead and merge this as-is.

@wesleywiser wesleywiser merged commit 5c0cd2e into rust-lang:master Sep 24, 2024
3 checks passed
@alexcrichton alexcrichton deleted the changes-to-wasm branch September 24, 2024 22:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants