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

Enable new format for embedding component types by default #1308

Merged
merged 1 commit into from
Nov 28, 2023

Conversation

alexcrichton
Copy link
Member

This commit enables the support for the new format of type information embedded in custom sections for wit-component first implemented in #1260. The new format minimizes type information to only that which was bound for the world selected as opposed to all packages and interfaces regardless of whether they're referenced or not.

A bug with this format was fixed with #1270 and shipped in Wasmtime 15 so there's at least one stable release that supports the old and the new without bugs. This commit turns on the new format by default while leaving in an environment variable to turn it off. This isn't expected to have any practical breakage at this time.

This commit enables the support for the new format of type information
embedded in custom sections for `wit-component` first implemented
in bytecodealliance#1260. The new format minimizes type information to only that which
was bound for the `world` selected as opposed to all packages and
interfaces regardless of whether they're referenced or not.

A bug with this format was fixed with bytecodealliance#1270 and shipped in Wasmtime 15
so there's at least one stable release that supports the old and the new
without bugs. This commit turns on the new format by default while
leaving in an environment variable to turn it off. This isn't expected
to have any practical breakage at this time.
@alexcrichton
Copy link
Member Author

I believe that this is the final of the in-flight change to wasm-tools so some time in January of the new year I plan on deleting all the supporting code for the old now-phased-out pieces. (e.g. removing all the env-var-based knobs)

@alexcrichton alexcrichton merged commit f13f42f into bytecodealliance:main Nov 28, 2023
15 checks passed
@alexcrichton alexcrichton deleted the use-new-encode branch November 28, 2023 15:00
alexcrichton added a commit to alexcrichton/wasm-tools that referenced this pull request Jan 9, 2024
This commit is a follow-up to bytecodealliance#1260, bytecodealliance#1270, and bytecodealliance#1308. This is the next
step in the transition to updating how type information is encoded in
object files in core WebAssembly binaries when transforming them into a
component. The old format has been enabled by default since the 1.0.54
release of `wasm-tools` in late November. and has been supported since
the 1.0.51 release in early November.

Support has been preserved for continuing to emit the old format in case
any tooling accidentally hadn't updated but now feels like the right
time to remove the ability to emit the old format. The old format can
still be parsed if historical object files are in use and the hope is
that it's not too bad to leave that piece sticking around for awhile.
alexcrichton added a commit that referenced this pull request Jan 9, 2024
This commit is a follow-up to #1260, #1270, and #1308. This is the next
step in the transition to updating how type information is encoded in
object files in core WebAssembly binaries when transforming them into a
component. The old format has been enabled by default since the 1.0.54
release of `wasm-tools` in late November. and has been supported since
the 1.0.51 release in early November.

Support has been preserved for continuing to emit the old format in case
any tooling accidentally hadn't updated but now feels like the right
time to remove the ability to emit the old format. The old format can
still be parsed if historical object files are in use and the hope is
that it's not too bad to leave that piece sticking around for awhile.
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.

2 participants