1 of 4

☃?

WebAssembly CG, August 20

2 of 4

Host→Web IDL→☃ Update

  • Agreed (in A Coruña) to re-scope to more than optimizing Web API calls
  • Hence rename from "Web IDL Bindings" to ... "☃ Bindings"
  • What should ☃ be? ϵ, External, Module, Wasm, Edge, Boundary, ...
  • Lots of discussion (webidl-bindings/#47)
  • Nothing sounds quite right
  • Observation: "binding" is the problem; it's overloaded
    • "let x = y" introduces a "binding"
    • JS: "foo.bind(x)", function-references: func.bind
    • "Module binding" sounds like we're binding import values to a module
  • What does the (newly-scoped) proposal do?
    • Define a new set of high-level types that can only be used at interface boundaries
    • Define how a wasm module can adapt its interface to use these new types

3 of 4

module interface type

adapted module

module type

module

contains value types� (e.g., i32, i64, anyref, ...)

contains interface types

(e.g., string, string list, ...)

known sections

.wasm (binary)

module : module type

adapted module : module interface type

module type module interface type

contains adapter functions which

contain adapter instructions

interface adapter

Proposal name: Interface Types

interface adapter custom section

No "bindings" anywhere

or ☃

\o/

4 of 4

Next Steps

  • Updated explainer up in webidl-bindings/#59
  • Several reviews + approvals
  • Poll: rename proposal/repo to "Interface Types"