Stream: wasmtime

Topic: What do to about our Interface Types support?


view this post on Zulip Alex Crichton (Feb 27 2020 at 17:22):

I wanted to start a discussion here about whether we should remove the interface types support in wasmtime today. I think there's a few strong technical reasons we should do this:

Or, put another way, the current support is all tech debt, there's no tests, and it's impossible to get working today. On a technical level what needs to happen is that we need to update the wasmtime crate (and C API) with support for interface types. At the bare minimum to get the Rust examples work again we need to update the wasmtime crate. I started this work a long time ago but didn't get too too far. It wouldn't be too hard to get it up and working again but filling it out to implement all of interface types (or at least what wasm-bindgen supports) will be a good chunk of time.

So, this leads us to the question, what do we do? With everything broken right now I feel like we need to do something, but our options seem to be either (a) remove all support and document that support will come back soon or (b) I should take time to fully integrate the next iteration of interface types in to wasmtime.

view this post on Zulip Alex Crichton (Feb 27 2020 at 17:22):

@Till Schneidereit you're likely interested in this topic

view this post on Zulip Alex Crichton (Feb 27 2020 at 20:46):

I've also taken a bit of time to rebase what I had awhile back and post https://github.com/bytecodealliance/wasmtime/pull/1013, although it has a number of "hard" items it doesn't implement which may take significant time to plan out

This commit is the start of the modernization of the implementation of interface types in wasmtime. This has a long way to go, and like the previous iteration, chunks of it are already destined to ...

view this post on Zulip Till Schneidereit (Feb 28 2020 at 12:20):

Thank you for working on this!

I agree that removing Interface Types (from hereon: itypes, because) for now probably makes sense. Two things I think would be good to do:

  1. file a tracking issue for re-enabling iface support, probably linking to #1013
  2. detect iface usage in a Wasm module and print a message explaining that they're not supported for now, with a link to a tracking issue for re-enabling them
This commit is the start of the modernization of the implementation of interface types in wasmtime. This has a long way to go, and like the previous iteration, chunks of it are already destined to ...

view this post on Zulip Josh Triplett (Feb 28 2020 at 16:41):

@Alex Crichton How much time does it seem likely to take to fully implement the current version of interface types?

view this post on Zulip Josh Triplett (Feb 28 2020 at 16:41):

Or update the code that's currently there and move it into wasmtime?

view this post on Zulip Alex Crichton (Feb 28 2020 at 16:43):

@Josh Triplett my guess would be a week or so, there's a lot of design to do around things like strings

view this post on Zulip Josh Triplett (Feb 28 2020 at 16:46):

Given how critically important interface types are, might it make sense to not remove the old implementation until we have a new implementation?

view this post on Zulip Alex Crichton (Feb 28 2020 at 16:47):

Well that's sort of the question I'm posing. I'm also pointing out, however, that basically nothing works today, so no matter how critical we want it to be it's not too too critical because of how broken it is sorta (at least at this time)

view this post on Zulip Josh Triplett (Feb 28 2020 at 16:52):

That's fair, I'm just wondering how much sense it makes to go through a detailed removal (including cli error messages) in the interim period.

view this post on Zulip Alex Crichton (Feb 28 2020 at 16:55):

I would agree with Till that we should do this (and it should be pretty easy to do). We still get a good number of folks testing things out and bug reports about how the interface types examples don't work, so it'd be good to try to head that off if we can.

view this post on Zulip Till Schneidereit (Feb 28 2020 at 16:58):

which reminds me: wherever we have documentation about this, we should add a note at the top about the state of play

view this post on Zulip fitzgen (he/him) (Feb 28 2020 at 23:01):

fully implement the current version of interface types

note that this requires both the reference-types and bulk-memory proposals, which I'm working on, but is going to take longer than "a week or so" :laughing:

view this post on Zulip Till Schneidereit (Mar 02 2020 at 15:55):

@Luke Wagner I'd also be interested in your thoughts on this topic


Last updated: Dec 23 2024 at 13:07 UTC