- Where: zoom.us (see Registration below)
- When: February 22 2024, 17:00-18:00 UTC
- Contact:
- Name: Pat Hickey and Bailey Hayes
- Email: [email protected] and [email protected]
The meeting is open to CG members only. You can join the CG here.
If this is your first time attending, please fill out the registration form to receive an invite. Please make sure you have joined the CG as above, and that your name appears on the membership page, before registering.
The meeting will be on a zoom.us video conference.
- Opening, welcome and roll call
- Please help add your name to the meeting notes.
- Please help take notes.
- Thanks!
- Announcements
- Submit a PR to add your announcement here
- Proposals and discussions
- Pat Hickey: WASI P2 0.2.x
- Submit a PR to add your announcement here
- Bailey Hayes
- Luke Wagner
- Pat Hickey
- Friedrich Vandenberghe
- Sean Isom
- Stephen Berard
- Raees Iqbal
- Colin Murphy
- Trevor Elliott
- Marcin Kolny
- Sehyo Chang
- Fedor Smirnov
- Hung-Ying Tai
- Johnnie Birch
- Merlijn Sebrechts
- Dan Gohman
- Jeff Charles
- Dave Bakker
- Kate Goldenring
- Yong He
- Mendy Berger
- David Bryant
- Piotr Sikora
- Dan Phillips
- Till Schneidereit
Pat Hickey: WASI 0.2.0 is launched. Now we can focus on landing in standard language library SDKs. Now we want to expand 0.2. We want to add new functions and new worlds. Open process driven by all of us.
Pat Hickey: We will ship WASI 0.3.0 no sooner than the end of 0.3.0. If it takes longer, then we will let it take longer. This is what we’re working towards. We will not make breaking changes on 0.2.0. We are working ultimately towards 1.0. The Wasm WG and CG have not blessed these specs, we are still in the early phase process.
Pat Hickey: We have version numbers that show up in import name when at a component level. How are we allocating those version numbers? For proposals that are not yet part of preview 2? For example wasi-observe, logging, nn, etc, not yet at phase 3 or included in preview 2. The process for preview 2 is that we can add things but we need to vote on this as a group.
Pat Hickey: To suggest something is not done yet, use 0.2.0-draft. We don’t guarantee two different wit’s at a draft phase is not guaranteed since churn is expected in this early stage.
Lann Martin: 0.2.0 sorts higher than 0.2.0-anything; maybe it should be 0.2.1-something?
Pat Hickey: May use 0.2.1-draft etc, no requirement there.
Pat Hickey: Once approaching subgroup phase proposals, please use the release candidate: 0.2.0-rc-<iso 8601 date>
Pat Hickey: For proposals that are already part of preview 2: When making your first PR to make a change to an existing proposal in p2, please use 0.2.x-draft. For example wasi-http has such a PR today. We have a tool that is not yet integrated with CI to prove that we have not yet broken 0.2.0 functionality, but we will have that to prevent breaking changes.
Pat Hickey: For breaking changes, you need to wait for 0.3.0 for that.
Joel Dice: Would a draft of what we think a 0.3.0 interface might look like be 0.3.0-draft or something else? (e.g. WebAssembly/wasi-http#101)
Bailey Hayes: That makes sense to me
Pat Hickey: Point release roadmap for the next two patch releases we think will look like this. 0.2.1’s goal is to be the smallest possible change which is only adding timezone to wasi-clocks. We didn’t have two compatible implementations done in time, so we opted to leave it out and add it in afterwards. We chose not to hold up WASI p2 over this. So we will now aim to add this to the current reference implementations.
Pat Hickey: Timezones are important to users. We will establish a cadence that is consistent and the tooling to facilitate this. For example, if a new function 0.2.1, then runtime should reject. But should be able to be backwards compatible with 0.2.0 functionality. That’s what we’re going to do for 0.2.1
Pat Hickey: It’s been proposed once a quarter for the cadence. I know that I can say that 100% certain yet.
Merlijn Sebrechts: So it will look at the actual imported stuff instead of the semver itself?
Pat Hickey: Namespace:package:version for each interface. If there is an interface at 0.2.0 at foo and foo at 0.2.1 then it matches. Effectively ignoring the patch number if the additive interface is not used.
Merlijn Sebrechts: Makes sense, thanks!
Pat Hickey: The idea is that this apply to 0.2.1 and later patch releases. In wasi:io there is work being done by Dave Bakker to handle stream forwarding for example. Dave has others for buffering and flushing. Another example candidate for 0.2.2 is wasi-http to have a different way to expose requests and responses. Then whatever else. You can make PR’s to proposals to add new functionality and work with the champions of the proposals to create an 0.2.x release according to the cadence.
Bharat: Does WebAssembly support asynchronous HTTP calls?
Pat Hickey: Yes, wasi-http supports making async http calls.
Pat Hickey: We’ve received feedback from our community that the word Preview throws them off because they don’t know what it means. We are already using semver. We use it in the WIT. Most developers already know semver. When we say WASI is at 0.2 right now that can get across better than Preview 2 is that we’re not at 1.0. And 0.2.2, 0.2.3, etc means that we’re not breaking anything. Let’s communicate better by using terms most folks are already familiar with. WASI 0.2 is recommended for most audiences. This is what you’ll see in wit docs and import names.
Pat Hickey: For the target triples we don’t want to use the period character. Folks in the go community took the lead here and used wasip2 in their target.
Pat Hickey: This is still called WASI Preview 2 which is relevant in the standards context. WASI is not yet a formal Standard (requires Wasm CG and WG), so in their context this is a Preview.
Pat Hickey: I’d like to salute the go community for seeing this problem coming. Go decided to use wasm32-wasip1 and wasm32-wasip2. Folks in the rust community saw that and also has chosen to adopt this triple.
Pat Hickey: I linked the rust PR that has a good discussion and explanation of the plan. Rust will continue to support wasm32-wasi to mean WASI Preview for some time with a warning to update. One day wasm32-wasi may be removed or changed to mean WASI 1.0. We don’t force or control these other communities but encourage you to give them feedback.
Pat Hickey: We suggest languages reserve wasm32-wasi if possible to one day mean WASI 1.0.
Joel Dice: Can you expand more on why the draft releases should not have a date?
Pat Hickey: I don’t have a hard reason for that. If it’s useful, use draft. Updating the dates was busy work for me while churning. As reaching stability for your end users nears, using a date should be used. It matters less when it’s only a couple developers working in the design phase.
Pat Hickey: I don’t want to mandate anything here, but want to suggest it and try it out.
Pat Hickey: This group is a small subset of people who need to know about WASI. We can hide some of that detail of the churn but at some point we have to ship the software.
Pat Hickey: I get bug reports in wasmtime about version and errors is confusing. I agree that it’s not great right now and as an implementer and there’s consensus to make this better for end-users in the implementations. Docs is also critically important for users. Please everyone continue reporting bugs and helping us improve the experience. Thank you to everyone who has already been doing that.
Merlijn Sebrechts: I have a question about a different topic if that’s ok. I contacted you about i2c devices. I got in contact with someone at Siemens who is working on similar prototypes. They want to work together with us on i2c interfaces. Is it ok if we become co-champions of the proposal.
Pat Hickey: Sorry about that email falling off the bottom of my inbox. Yes, we wanted to see champions that are in the industry in addition to students so that the proposal will continue after students graduate.
Lann Martin: if you haven't already, please see https://bytecodealliance.zulipchat.com/#narrow/stream/206238-general/topic/Begining.20the.20process.20of.20proposing.20an.20Embedded.20SIG
Pat Hickey: Outside the standards group and in the space where folks are working on implementations, Lann posted a link to a new SIG in the Bytecode Alliance including Siemens.
Merlijn Sebrechts: We also have a prototype for the USB interface. We are not thinking about standardizing that. At the moment this is an internal prototype and not planning to go through the standards proposal process unless someone is motivated to do that.
Pat Hickey: You can also post announcements here in this agenda to raise awareness.
Chris Woods: Please come on to the embryonic SIG that is starting to form. I think there is enough interest to go through the necessary process to get the SIG to form. Please come along!