We're pleased to invite you to the next installment in our series of ongoing Bytecode Alliance Plumbers Summits, to be held Wednesday October 28, 2026. This will be an all on-line event supporting full remote participation for anyone anywhere, in three-hour sessions each day that will be recorded so they can be viewed anytime afterward via our YouTube channel. Watch this topic for more information leading up to the event and as a live conversation during the event itself.
Thank you for your support of the Alliance, our projects, and our community! We hope you’ll join us for our next Plumbers Summit!
The planned agenda for the event is now available via our general meeting information repository here. Additional details will be provided both there and here to help you plan for and attend the event.
All times are US Pacific Daylight (GMT-7):
We're hoping you're planning to attend tomorrow's Plumbers Summit Event! You're welcome to join the hosted Zoom meeting directly (link), or can participate through the event livestream on YouTube (link). Details and both those links are also in the event's README in our meetings repository.
We'll get started at 8am US Pacific Daylight Time tomorrow (Wednesday, October 28).
let's gooooo
hellooo
Hello, everyone -- thanks for joining us!
Question for Luke - re: getters/setters, in wasi we aligned to having a get- prefix for getters knowing this is the direction we were heading (ty Dave). When wasi adopts the CM feature as stabilized we could begin using the feature. Is there a way to do this in a non-breaking way for existing WIT definitions that already have the prefix?
IIRC the validation rules would allow:
get-foo: func() -> u32;
foo: get() -> u32;
so I believe adding get and set functions for various properties alongside the preexisting get/set functions should work well
and so wit-bindgen or other generators will want to special case the previous get- prefixed ones if there's a canonical getter to map to canonical getter func just to have an eventual deprecation path off the old func
yay, debugging support for components!
https://dl.acm.org/doi/10.1145/349299.349339 <- paper Chris mentioned
@Chris Fallin Very cool! I maybe missed it, but how are you handling externref for snapshots? Also do you have a link to the slides or code prototypes?
great question @Ryan Hunt ! So the question is what you can do with an externref: just plumb it through and pass it back out to a hostcall, right? During replay hostcalls are stubbed out and only exist for their side-effects; so externrefs are just opaque meaningless things. (I don't remember whether I gave them unique ids or just made them Unit but the debugger can't introspect them either so at least in Wasmtime it doesn't matter)
re: code and slides: soon!
@Chris Fallin I really liked the watchpoint CoW scheme. I'm kind of curious how that works/whether there are scalability limits on it, since one usually has a pretty limited number of watchpoint ranges available?
Also: a bit out of scope for this talk, but looking to the future since you mentioned heisendebugging earlier: do you have any thoughts on whether/how you might be able to in the future explore thread schedules/weak memory interleavings when multiple parallel threads (e.g. via shared-everything thread.new) arrive?
@Lucy Menon great questions!
probably a chaos-mode scheduler would be an orthogonal option, and the deterministic recording would just replay the scheduling that chaos-mode chose exactly
Yes, exactly
coop threading slides from me
debugging slides (and this link + branches to go to agenda file in meetings repo soon)
(@chris) Ah, I missed the "software" qualifier on watchpoint! That makes a lot of sense, thanks
@Lucy Menon yep! a nice side-effect of this is that r/r, snapshots, reversibility work on Every Wasmtime Platform (**with virtual memory, for the fixed-pointer-of-memory thing) -- vs. e.g. rr that works only on Linux
All the slides from this morning's presentations so far are now available via the meetings repo here.
(Just pushed links to the demo branches in the doc as well. All of this will be upstreamed hopefully "real soon now")
WinterTC support would be great for StarlingMonkey!
Thanks @Till Schneidereit One of the slides talked about linking model, and it looks like wit-dylib is statically linked into starling core module? I think that makes a lot of sense as those calls can be inlined, but iirc wit-dylib only supports dynamic component linking?
that's what they want you to believe!
no, you're right: the intended way of using wit-dylib is with dynamic linking. But I ran into some gnarly issues with dynamic linking and vtables when using p3 streams, plus StarlingMonkey as a dylib is a bunch larger than a static build, so I found a way to do a static link for the time being
or rather, for the dylib part to be a very small layer on top of starling.wasm as a non-dylib
Interesting! I think adding support to wit-dylib to generate relocatable static object and then hand off inlining to wasm-opt would be an interesting alternative.
the long-term plan is to have this be focused on dynamic linking though, so we can provide APIs as dylibs instead of having one big binary
as Alex mentioned briefly, I played around with external dylibs as separate cwasms, and found those to perform really quite well
"If any of you are in the sparkling water sub-reddits" - lol
i did a git clone of the velorant repo and cargo build --release, was that the right thing to get around the corp download blocker or what
Quick feedback form, if you please: https://docs.google.com/forms/d/e/1FAIpQLScmZt9gbUphDwB8RNmS5GCvGMY5fGjAM07a9CpySDzpGwdG1A/viewform?usp=dialog
Last updated: Oct 31 2026 at 23:03 UTC