News for hackers. Stuff that matters.
Re:WASI Support in Go by jbrandhorst on Wednesday September 13, 2023 @04:49PM (#37501532)
Exports are something we'd like to work on but it turns out it's pretty complicated to reconcile the Go runtime with the WebAssembly environment, especially when there's only a single thread. We'll get to exports as soon as we can but it may require Wasm threads to be stable first.
Re:WASI Support in Go by dilyevsky on Wednesday September 13, 2023 @09:34PM (#37503856)
Just curious what state is it (thread support) in now? I saw wasmtime already supporting some pthread style threads so assumed proposal has already been accepted but it’s super hard to actually figure out what state anything is in with wasm…
Re:WASI Support in Go by beanjuiceII on Wednesday September 13, 2023 @11:15PM (#37504553)
I would like to second that last statement. If anyone knows a good place to keep up with it all I'd appreciate it
Re:WASI Support in Go by cplli on Thursday September 14, 2023 @12:56AM (#37505134)
Threads are Phase 3

https://github.com/WebAssembly/proposals

You can also check out:

https://webassembly.org/roadmap/

And for Go, the proposal project on Github has many interesting conversations from the devs.

And as a reminder to anyone interested in using Go WASM, it’s experimental and does not come with the same compatibility promise as Go itself:

https://github.com/golang/go/wiki/WebAssembly

Re:WASI Support in Go by dilyevsky on Thursday September 14, 2023 @03:36AM (#37506067)
Yes it's been in phase 3 for what like 2-3 years at this point (judging by when it landed in browsers)? No eta and no next steps. The tp says they are waiting until "it's stable" so I'm assuming phase 4. It qualifies browser support and "at least one toolchain" criteria[0] (zig) and seems like all the other conditions too except maybe "CG consensus" whatever that means, so for all I know it could take anywhere between tomorrow and in a few years from now...

[0] https://github.com/WebAssembly/meetings/blob/main/process/ph...

Re:WASI Support in Go by fathyb on Thursday September 14, 2023 @04:11AM (#37506275)
Don't know about the server side, but I've been using threads on the browser for ~2 months, I didn't hit any bug specific to it yet. I use it both with Rust (wasmbindgen with async/await) and C (Emscripten with pthread support). HTTPS with some headers is required for `SharedArrayBuffer`.

I still build a single-threaded binary for Firefox, and fallback to it if `SharedArrayBuffer` is `undefined` or if the `WebAssembly.Memory` constructor fails (some iOS devices might throw when `shared` is `true` due to a bug).

Re:WASI Support in Go by pryz on Thursday September 14, 2023 @05:06PM (#37514852)
The answer is: it's complicated. Which is most of the time the answer in the WASI world.

For this case it's complicated because some runtime supports https://github.com/WebAssembly/threads which mostly contains things like the spec for atomic but not the actual "threads" specs and then some runtimes (i.e wasmtime) also supports https://github.com/WebAssembly/wasi-threads which is one version of the threads. But a new proposal came into play https://github.com/abrown/thread-spawn so ... it's complicated.

Re:WASI Support in Go by dilyevsky on Friday September 15, 2023 @01:33AM (#37518864)
Yes, "it's complicated" is very diplomatic way of putting it after like 5+ years...