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

Implement the reference types proposal #155

Merged
merged 4 commits into from Feb 5, 2020

Commits on Feb 5, 2020

  1. Implement the reference types proposal

    This commit enables the `reference-types` and `bulk-memory-operations`
    proposals from the upstream wasm spec test suite. This involved fully
    implementing the reference types proposal, notably passive element
    segments as well as a few table-related instructions. A summary of the
    changes made here are:
    
    * `TableCopy`, `TableInit`, and `ElemDrop` are now all implemented instructions.
    * All element segments now live as an `Element` type rather than being
      embedded directly into a `Table`. This is because they all need an
      index to refer to in `ElemDrop` instructions and such.
    * Type checking has been updated to handle subtyping
    * The `Funcref` and `Nullref` value types have been added
    * Tables now list their element type as a struct field
    * Elements now participate in GC passes
    * Global initializers are expanded with `ref.func` and `ref.null`
    alexcrichton committed Feb 5, 2020
    Configuration menu
    Copy the full SHA
    1a3d4ef View commit details
    Browse the repository at this point in the history
  2. Run rustfmt

    alexcrichton committed Feb 5, 2020
    Configuration menu
    Copy the full SHA
    324bac0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3b39ff3 View commit details
    Browse the repository at this point in the history
  4. Update test assertions

    alexcrichton committed Feb 5, 2020
    Configuration menu
    Copy the full SHA
    2919da6 View commit details
    Browse the repository at this point in the history