-
Notifications
You must be signed in to change notification settings - Fork 55
IT Mini-MVP? #123
Comments
Great question! I totally feel you on wanting to get something out the door so we can start iterating and getting feedback. First, three observations:
Putting these together, I think the right next step (in parallel to fleshing out the aforementioned TODOs) is to start work on a tool for doing the fusion and (optionally, for JS hosts) JS glue code generation. With such a tool, there wouldn't need to be a hard Mini-MVP release cut but, rather, an incremental set of improvements to the tool over time that devs could pick up incrementally. The prereq for doing that is to pick a tentative binary encoding to bootstrap the producers/consumers. And to do that we need a tentative binary encoding for Module Linking (upon which Interface Types is (proposed to be) based), which @alexcrichton has, thankfully, done. I think @eqrion may have a draft of a binary format for interface types in some state (but maybe pre-linking-rebase?)? |
Concur! |
@lukewagner thanks for the perspective. I can see that its a tough balance, and had we moved forward earlier then a lot of these improvements would now be a lot harder. |
Out of curiosity, has anyone started working on such a tool or announced plans to do so? |
I've recently started working on this, and my goal is basically as @lukewagner gisted above. My intention is that the end-state is that you use
This started in WebAssembly/WASI#395 but still has some distance to go. I'm talking with others still about particular type representations and the grammar of possible types, and I think there's still more witx changes to come, but I am at least very actively working on this right now! |
That's super cool, thanks for the update @alexcrichton! |
@alexcrichton Thanks for tackling this. Can we help? I've dedicated time to work on WIT. |
Unfortunately it's still relatively early so there's a lot of churn, but I'll try make sure to post here when I've got something concrete to show. |
For what it's worth the work I did at attempting to polyfill this all lives over at https://github.com/jgravelle-google/it-tools An interesting result of that which had a similar effect to prototyping lift+lower combining was the IT->wasm polyfill, for use in non-JS environments https://github.com/jgravelle-google/it-tools/tree/master/examples/05%20-%20Self%20Hosting%20(generated) Not sure how bitrotted it is by this point, but figured I should leave a pointer to it just in case |
I see IT as crucial puzzle piece for the Wasm eco system, and I keep seeing new proposals and ideas that could benefit from it being available. Yet at the same time it seems to become a more and more complex beast (usefully so, in the long run) that is going to take much longer to land.
What are thoughts on cutting off the absolute simplest slice of this system (with maybe just "unicode strings" and "byte buffers"), with very limited tooling, limited adapter functions etc such that this can get started to be put to use, and avoid less well thought out solutions to proliferate? Maybe something like a usable proof of concept that will attract more people to want to push it further?
The text was updated successfully, but these errors were encountered: