3 ms·
how is something like this implemented ? does this hook into the rust compiler ? or does the rust/wasm compiler architecture provide an intermediate step that a
by sandGorgon 3y ago
how is something like this implemented ? does this hook into the rust compiler ? or does the rust/wasm compiler architecture provide an intermediate step that allows for these kinds of systems to be built on top ?
- paulgb 3y agoWasm itself provides some determinism constraints[1] as an explicit design goal, which is what enables things like this. I made a very simple snapshottable compute executer for a talk last year and it took surprisingly little code if you want a look at how it works[2], but the complexity of something like Flawless is that doing anything useful involves communicating with the outside world, where non-determinism can easily sneak in. I've been following Bernard's work on Lunatic so I'm incredibly excited to see he's tackling these hard problems. [1] https://github.com/WebAssembly/design/blob/main/Nondeterminism.md https://github.com/WebAssembly/design/blob/main/Nondetermini... [2] https://github.com/drifting-in-space/wasmbox/tree/main https://github.com/drifting-in-space/wasmbox/tree/main
- sandGorgon 3y agothis is very cool! but just to be clear - wasm allows for someone to tap into variable declarations, etc ? which is what flawless is doing. that's almost parse tree right ?
- paulgb 3y agoI'm not 100% sure how Flawless works, but you don't need to tap into variable declarations if you can just snapshot the entire stack and heap, so I think that's what it does.