- From: Derek Schuff <dschuff@google.com>
- Date: Fri, 15 Apr 2022 15:05:14 -0700
- To: Rain Wang <rainwang6188@gmail.com>
- Cc: public-webassembly@w3.org
- Message-ID: <CAAEAhveLOvqJky3d2CF8uxAuY_MtU5ABZDQBuvo-kZ3AcS_uFw@mail.gmail.com>
Hi Rui, This is the kind of question that would be great to ask as a discussion on the spec repo (https://github.com/WebAssembly/spec/discussions), since this mailing list is very large and doesn't get a lot of traffic. But the short answer is that the store is mostly just an abstraction for specification purposes. Most implementations do not have a single concrete thing that corresponds to the store. Each of those elements have individual instructions (or host/embedding functions) that access it, e.g. loads/stores for memory, global.get/set, table.get/set or indirect calls, etc, as well as being initialized during instantiation. -Derek On Fri, Apr 15, 2022 at 7:33 AM Rain Wang <rainwang6188@gmail.com> wrote: > Hi, I'm a student from ZJU, and interested in the WASM.. > > I'm new to this area and currently working on a project which aims to > verify the correctness of WASM Virtual Machines, to it's important to > access the running state of a WASM program. > > I've read the spec and find that there's a runtime structure named `store > <https://webassembly.github.io/spec/core/exec/runtime.html#store>` > which represents all global state that can be manipulated by WebAssembly > programs. It consists of the runtime representation of all instances of > functions, tables, memories, and globals, element segments, and data > segments that have been allocated during the life time of the abstract > machine. > > But I found no relevant instructions that can access this structure. So > does that mean `store` is just a concept which is not implemented yet? > > Best, > Rui Wang >
Received on Friday, 15 April 2022 22:05:39 UTC