Show HN: Life – A secure, blazing-fast, cross-platform WebAssembly VM in Go
github.com
github.com
[1] https://github.com/perlin-network/life/blob/master/exec/vm.g...
It looks like it generates C code and compiles it on the fly. The generated code seems to do manual stack operations, rather than assigning values to variables, and it’s compiled with -O1 so it won’t be heavily optimized. It will be a bit faster than the interpreter because it avoids the opcode dispatch overhead, but if I understand the code right it’s not surprising that it isn’t a ton faster.
The project itself looks pretty cool, though. It's neat to see WebAssembly starting to take off. I'm eager to begin programming browser applications in a decent language …
I've certainly (in the same place) heard that heavy adverb use is a “writing smell” in much that way, but the point of that was very much not to substitute the use of adjectives serving as if they were adverbs for actual adverbs.
[1] https://www.brainpickings.org/2013/03/13/stephen-king-on-adv...
Isn't Mozilla's implementation the fastest and most mature of them all? How does it fare against it?
> is faster than all other WebAssembly implementations tested
is pretty meaningless once you realize this.
I'd be really surprised if this outperformed V8 or SpiderMonkey, but I'd love to be proved wrong.
A JIT is planned but not yet implemented.
I see "Life (JIT)" in the benchmark plot. What is it?
"Researchers, developers, startups and enterprises incur excessive costs to power up the cloud machines/instances they rent from centralized cloud computing providers.
Perlin is creating a decentralized, trustless cloud computing marketplace which delivers massive computational throughput and power with the ability to attain high transaction volume and market activity, effectively reducing the cost of computing power."
More to the point and I quote :
"Decentralized cloud computing.
Perlin’s compute layer is bootstrapped on top of it’s DAG-based ledger unlocking a plethora of underutilized compute resources from everyday devices, to form a decentralized cloud computing marketplace that combats the inflated pricing models set by the oligopolistic cloud computing market."
"Perlin is the first practical, trustless and decentralized cloud computing marketplace that leverages underutilized compute power in everyday smart-devices to make supercomputing economically viable and accessible globally. This is achieved via a DAG-based distributed ledger using Avalanche consensus."
https://www.reddit.com/r/perlin/comments/8vq0c1/the_perlin_n...
Can I write Golang code and see it executed through Life? Or will it execute my WASM binaries, compiled through whatever?
If the later, how is Life VM meant to be integrated into a web browser (if this is a goal)?
Is there a Life target for the Go compiler?
- the next version of the Go toolchain (Go-1.11) will have a wasm target
Can it be renamed to something more indicative of virtualization?
[0] https://github.com/perlin-network/life/blob/master/exec/vm.g...
On a related note: you can enforce a CPU limit on WebAssembly in any engine by using wasm-metering[0]. Note that if the WebAssembly hits the limit, it is entirely aborted, not paused. So wasm-metering is good for limiting the CPU usage of a WebAssembly binary that has short functions called regularly, but not capable of time-slicing a long-running WebAssembly function. I think you'll need custom support from a WebAssembly VM (or a much more extensive preprocessor) for that.