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

Deprecate execution of "uncomponentizable" WAGI modules #2552

Open
Tracked by #2619 ...
lann opened this issue Jun 12, 2024 · 0 comments
Open
Tracked by #2619 ...

Deprecate execution of "uncomponentizable" WAGI modules #2552

lann opened this issue Jun 12, 2024 · 0 comments
Labels
Milestone

Comments

@lann
Copy link
Collaborator

lann commented Jun 12, 2024

My module has been deprecated! What can I do?

This deprecation most likely impacts you only if:

  • you are using the WAGI executor, and
  • you are not using wit-bindgen, and
  • you are using a module compiled with a version of clang < 15.0.7, indicating likely usage of wasi-sdk <19

If you have access to the relevant source code, updating wasi-sdk to at least version 19 can avoid this deprecation.

The Problem

Wasm modules compiled with old versions of wasi-sdk <18 have a bug that makes them incompatible with the wasi-preview1-adapter, which in turn means we cannot convert these modules into components. Maintaining support for executing these uncomponentizable modules represents a significant ongoing maintenance burden, but - as far as we can tell - has been used by very few users, especially recently.

Deprecation Details

We can heuristically detect these modules:

  • If a module exports cabi_realloc, it should be safe to componentize, regardless of the version of clang / wasi-sdk
  • If a module has a producers section indicating that it was compiled with clang < 15.0.7, it was probably compiled with a buggy version of wasi-sdk

Implementation of this deprecation would include:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: 🆕 New
Development

No branches or pull requests

2 participants