Skip to content

Versioning of interfaces (modules) #29

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

Closed
axic opened this issue May 2, 2019 · 2 comments
Closed

Versioning of interfaces (modules) #29

axic opened this issue May 2, 2019 · 2 comments
Labels
module-system Issues target at the module system

Comments

@axic
Copy link

axic commented May 2, 2019

I'm working on Ewasm which tries to bring WebAssembly to Ethereum. We are evaluating how we could use WASI (core) or other modules.

As part of the design process we have realised that versioning is an important feature to have: ewasm/design#121

I wonder how WASI plans to solve versioning of its interfaces. I see some potential options:

  • Would it be similar to Dynamic detection of host functionality #12 having a function to query the version?
  • A system similar to glibc where either the namespace or the name has a pre/postfix? (This is option a) in the linked issue).
  • A custom section listing interface version (This is option b) in the linked issue).
  • Adding versioning to the wasm import sections themselves.

Probably there are other/better proposals. Was there any previous discussion about this topic?

@rylev rylev added the module-system Issues target at the module system label May 8, 2019
@sbc100
Copy link
Member

sbc100 commented Jun 6, 2019

IIUC this is what is being discussed in #2. Or am I missing something?

@sunfishcode
Copy link
Member

WASI now has versioning of interfaces, using a version number formatted within the module-name field of wasm imports. And the mechanism for querying interfaces is optional imports.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
module-system Issues target at the module system
Projects
None yet
Development

No branches or pull requests

4 participants