Skip to content

Versioning of interfaces (modules) #29

Closed

Description

@axic

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?

Activity

  1. sbc100 commented on Jun 6, 2019

    @sbc100
    Member

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

  2. sunfishcode commented on Feb 19, 2020

    @sunfishcode
    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    module-systemIssues target at the module system

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions