Skip to content

Initial component model and GC support in fused adapters #11020

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

Merged
merged 7 commits into from
Jun 18, 2025

Conversation

fitzgen
Copy link
Member

@fitzgen fitzgen commented Jun 11, 2025

This lays down the initial infrastructure for support for GC in our fused adapters for the component model. We keep track of whether each lifted/lowered function wants args/results as GC values or in linear memory. We additionally plumb through the core function types of the functions being lifted and lowered for (eventual) use with GC adapters.

Ultimately, this commit is enough to fuse together lifted and lowered functions where one or both are using the GC variant of the canonical ABI. Attempting to actually pass arguments will hit todo!()s. The work of implementing those todo!()s is left to future commits.

@fitzgen fitzgen requested a review from alexcrichton June 11, 2025 23:35
@github-actions github-actions bot added the wasmtime:api Related to the API of the `wasmtime` crate itself label Jun 12, 2025
@fitzgen fitzgen marked this pull request as ready for review June 13, 2025 18:20
@fitzgen fitzgen requested review from a team as code owners June 13, 2025 18:20
@fitzgen fitzgen requested review from alexcrichton and removed request for a team June 13, 2025 18:20
@fitzgen
Copy link
Member Author

fitzgen commented Jun 13, 2025

Making it so that the options always have a core type was actually really nice, and a bunch of initializers that previously had options and a core type no longer need a separate core type.

Anyways, I think this is ready for another round of review.

@fitzgen fitzgen force-pushed the cm-gc-initial-fact-integration branch from 9ab2f10 to 8c895f8 Compare June 13, 2025 22:44
@fitzgen fitzgen requested a review from a team as a code owner June 13, 2025 22:44
@fitzgen fitzgen requested review from alexcrichton and removed request for a team June 13, 2025 22:44
@github-actions github-actions bot added the fuzzing Issues related to our fuzzing infrastructure label Jun 14, 2025
Copy link

Subscribe to Label Action

cc @fitzgen

This issue or pull request has been labeled: "fuzzing", "wasmtime:api"

Thus the following users have been cc'd because of the following labels:

  • fitzgen: fuzzing

To subscribe or unsubscribe from this label, edit the .github/subscribe-to-label.json configuration file.

Learn more.

fitzgen added 7 commits June 18, 2025 13:22
This lays down the initial infrastructure for support for GC in our fused
adapters for the component model. We keep track of whether each lifted/lowered
function wants args/results as GC values or in linear memory. We additionally
plumb through the core function types of the functions being lifted and lowered
for (eventual) use with GC adapters.

Ultimately, this commit is enough to fuse together lifted and lowered functions
where one or both are using the GC variant of the canonical ABI. Attempting to
actually pass arguments will hit `todo!()`s. The work of implementing those
`todo!()`s is left to future commits.
@fitzgen fitzgen force-pushed the cm-gc-initial-fact-integration branch from 6384016 to 1b3c745 Compare June 18, 2025 20:23
@fitzgen fitzgen enabled auto-merge June 18, 2025 20:23
@fitzgen fitzgen added this pull request to the merge queue Jun 18, 2025
Merged via the queue into bytecodealliance:main with commit 8801023 Jun 18, 2025
41 checks passed
@fitzgen fitzgen deleted the cm-gc-initial-fact-integration branch June 18, 2025 20:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fuzzing Issues related to our fuzzing infrastructure wasmtime:api Related to the API of the `wasmtime` crate itself
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants