alexcrichton commented on issue #11:
I've updated with a tweak to the APIs in languages like Python, Go, and .NET. Originally I intended that "pass the store around" wouldn't be as common there, but the behavior of the GC in Go and converting a
wasmtime_val_t
to awasmtime_func_t
has tipped my opinion in favor of "pass the store everyhwere" like what happens in C & Rust.
alexcrichton commented on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [ ] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [ ] @cfallin
- [ ] @sunfishcode
- [ ] @jedisct1
- [ ] @fitzgen
- [ ] @pchickey
- [ ] @peterhuene
- [ ] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [ ] @bjorn3
acfoltzer commented on issue #11:
[ ] @acfoltzer
- [x] @acfoltzer
acfoltzer edited a comment on issue #11:
- [ ] @acfoltzer
- [x] @acfoltzer
pchickey edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [ ] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [ ] @cfallin
- [ ] @sunfishcode
- [ ] @jedisct1
- [ ] @fitzgen
- [x] @pchickey
- [ ] @peterhuene
- [ ] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [ ] @bjorn3
peterhuene edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [ ] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [ ] @cfallin
- [ ] @sunfishcode
- [ ] @jedisct1
- [ ] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [ ] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [ ] @bjorn3
fitzgen edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [ ] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [ ] @cfallin
- [ ] @sunfishcode
- [ ] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [ ] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [ ] @bjorn3
fitzgen edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [ ] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [ ] @cfallin
- [ ] @sunfishcode
- [ ] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [ ] @bjorn3
cfallin edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [ ] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [ ] @sunfishcode
- [ ] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [ ] @bjorn3
akirilov-arm edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [ ] @sunfishcode
- [ ] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [ ] @bjorn3
alexcrichton edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [ ] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [ ] @bjorn3
alexcrichton commented on issue #11:
Entering Final Call Period
Once any stakeholder from a different group has signed off, the RFC will move into a 10 calendar day final comment period (FCP), long enough to ensure that other stakeholders have at least a full business week to respond.
The FCP will end on Thursday June 3.
alexcrichton commented on issue #11:
I think it may be a little too early to say how we might support a proposal like that. The discussion on that issue is largely about thread id representation which is somewhat orthogonal to the embedding API. For the embedding API though the proposal is so vague at this point I'm not sure what our design constraints are. For example with a hypothetical
thread.new
instruction:
- I'm not sure how the imports of the current module are handled. For example if you imported a function, how is that fuction import satisfied on the other thread? Similarly if you have a function table in the module it's not clear how that would be "forked" into another thread. This might mean recursively instantiating a whole bunch of modules, but you'd also bottom out in host closures and be faced with a question of how to "fork" them to new threads too.
- I'm not sure how globals would be handled. Current globals, like the stack pointer, naturally don't want to be shared amongst threads and the sub-thread would want to get a fresh copy. (but where does the initial value come from?)
I'm sure there's other questions too, but without knowing much about the proposal it's hard to say what the embedding API might look like.
My rough mental model for the current wasm threads proposal (not to be confused with that issue for a native wasm thread) is that there'd be a
Store
-per-thread. HereT
wouldn't needSend
orSync
since the embedder would simply arrange theStore
to be on its own thread somewhere else. Trying to fuse this with a native wasm threads proposal sort of looks like we'd need like a "store factory" where there's a built-in ability to create aStore
on another thread. That namely does indeed need to create aT
, and that could presumably be done with a custom trait/helper or even justT: Clone
. This would indeed requireT: Send. I don't think that
T: Syncwould make sense since we provide mutable access to the
Twhich means that we can't share the
T` across threads anyway.Overall I don't think we're necessarily in a bad position to support a proposal like that, but it's tough to say given the current state. I do think that we're still better off than we are today where host state is littered across all sorts of host functions and such. The only state in a
Store
which is maybe notSend
andSync
is theT
itself. This means that all reasoning about thread-safety is entirely tied toT
since everything else is threadsafe (e.g. host closures are allFn() + Send + Sync
).Currently there's a bunch of pieces floating around where if you connect a few and squint hard it sort of looks like an implementation of a native threads proposal, but I think there needs to be more concrete design planning and such done first.
alexcrichton edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [ ] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [x] @bjorn3
sunfishcode edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [x] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [ ] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [x] @bjorn3
alexcrichton edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [x] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [ ] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [x] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [x] @bjorn3
alexcrichton edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [x] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [x] @abrown
- [ ] @jlb6740
Microsoft
- [ ] @thomastaylor312
- [ ] @bacongobbler
- [x] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [x] @bjorn3
alexcrichton edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [x] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [x] @abrown
- [ ] @jlb6740
Microsoft
- [x] @thomastaylor312
- [ ] @bacongobbler
- [x] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [x] @bjorn3
alexcrichton edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [x] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [ ] @mingqiusun
- [x] @abrown
- [ ] @jlb6740
Microsoft
- [x] @thomastaylor312
- [x] @bacongobbler
- [x] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [x] @bjorn3
mingqiusun edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [ ] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [x] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [x] @mingqiusun
- [x] @abrown
- [ ] @jlb6740
Microsoft
- [x] @thomastaylor312
- [x] @bacongobbler
- [x] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [x] @bjorn3
alexcrichton edited a comment on issue #11:
I think it may be a little too early to say how we might support a proposal like that. The discussion on that issue is largely about thread id representation which is somewhat orthogonal to the embedding API. For the embedding API though the proposal is so vague at this point I'm not sure what our design constraints are. For example with a hypothetical
thread.new
instruction:
- I'm not sure how the imports of the current module are handled. For example if you imported a function, how is that fuction import satisfied on the other thread? Similarly if you have a function table in the module it's not clear how that would be "forked" into another thread. This might mean recursively instantiating a whole bunch of modules, but you'd also bottom out in host closures and be faced with a question of how to "fork" them to new threads too.
- I'm not sure how globals would be handled. Current globals, like the stack pointer, naturally don't want to be shared amongst threads and the sub-thread would want to get a fresh copy. (but where does the initial value come from?)
I'm sure there's other questions too, but without knowing much about the proposal it's hard to say what the embedding API might look like.
My rough mental model for the current wasm threads proposal (not to be confused with that issue for a native wasm thread) is that there'd be a
Store
-per-thread. HereT
wouldn't needSend
orSync
since the embedder would simply arrange theStore
to be on its own thread somewhere else. Trying to fuse this with a native wasm threads proposal sort of looks like we'd need like a "store factory" where there's a built-in ability to create aStore
on another thread. That namely does indeed need to create aT
, and that could presumably be done with a custom trait/helper or even justT: Clone
. This would indeed requireT: Send
. I don't think thatT: Sync
would make sense since we provide mutable access to theT
which means that we can't share theT
across threads anyway.Overall I don't think we're necessarily in a bad position to support a proposal like that, but it's tough to say given the current state. I do think that we're still better off than we are today where host state is littered across all sorts of host functions and such. The only state in a
Store
which is maybe notSend
andSync
is theT
itself. This means that all reasoning about thread-safety is entirely tied toT
since everything else is threadsafe (e.g. host closures are allFn() + Send + Sync
).Currently there's a bunch of pieces floating around where if you connect a few and squint hard it sort of looks like an implementation of a native threads proposal, but I think there needs to be more concrete design planning and such done first.
bnjbvr edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [x] @bnjbvr
- [ ] @repi
Fastly
- [x] @cfallin
- [x] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [x] @mingqiusun
- [x] @abrown
- [ ] @jlb6740
Microsoft
- [x] @thomastaylor312
- [x] @bacongobbler
- [x] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [x] @bjorn3
Good stuff! :+1:
bnjbvr edited a comment on issue #11:
Motion to finalize with a disposition to merge
We've reached out to various Wasmtime embedders, and have received very positive feedback on the changes proposed here. Additionally, we have full implementations of the proposal for Wasmtime's Rust and C-APIs, wasmtime-py, and wasmtime-go.
We also analyzed the impact on various existing embeddings, and found it to be very reasonable in all cases.
As such, we proposing finalizing this RFC with a disposition to merge it.
Stakeholders sign-off
Given the broad impact of these changes, we decided to also tag a broad list of contributors and Wasmtime embedders for feedback.
Arm
- [x] @akirilov-arm
DFINITY
- [ ] @granstrom
Embark Studios
- [x] @bnjbvr
- [x] @repi
Fastly
- [x] @cfallin
- [x] @sunfishcode
- [x] @jedisct1
- [x] @fitzgen
- [x] @pchickey
- [x] @peterhuene
- [x] @acfoltzer
- [ ] @iximeow
Intel
- [x] @mingqiusun
- [x] @abrown
- [ ] @jlb6740
Microsoft
- [x] @thomastaylor312
- [x] @bacongobbler
- [x] @radu-matei
Mozilla
- [ ] @julian-seward1
- [ ] @yurydelendik
IBM
- [ ] @uweigand
wasmCloud
- [ ] @autodidaddict
Unaffiliated
- [x] @bjorn3
alexcrichton commented on issue #11:
Ok the FCP period has now finished and no objections have been raised. Time to merge then!
Last updated: Dec 23 2024 at 12:05 UTC