Portable low-level *compiled* code
Portable low-level *compiled* code
Posted Nov 15, 2019 12:55 UTC (Fri) by CChittleborough (subscriber, #60775)In reply to: Use case? by yodermk
Parent article: Announcing the Bytecode Alliance
It is important to note that WebAssembly is a moving target. Right now, it is good for arithmetic (integer and floating-point). Work is already under way to properly support structures, references, arrays etc. Separately, the project is developing WASI, which plays similar role to libc in POSIX systems. WASI is intended for tight sandboxing, so it uses capabilities (drawing inspiration from CloudABI and Capsicum) rather than POSIX permissions.
So WASM will one day let you write code in C, C++, Rust etc against WASI and produce .wasm files that (1) can run in any contemporary browser, (2) have great security (enough that you can safely run untrusted .wasm modules) and (3) are relatively easy to translate into optimized machine code. Yes, it is a form of write-once-run-anywhere (‘compile-once-run-anywhere’?) like the JVM, only with less overhead and better performance.
The folks working on WebAssembly realized early on that it would also be very useful outside the browser. For example, once WASM runtimes are widely available, software can be published in compiled form as one set of .wasm files that can be run on most any computer. Smaller project teams such as indy game developers might find this really attractive.
Posted Nov 15, 2019 22:52 UTC (Fri)
by atai (subscriber, #10977)
[Link] (9 responses)
Posted Nov 15, 2019 23:05 UTC (Fri)
by Cyberax (✭ supporter ✭, #52523)
[Link] (7 responses)
Posted Nov 16, 2019 16:09 UTC (Sat)
by eru (subscriber, #2753)
[Link] (2 responses)
Posted Nov 16, 2019 16:38 UTC (Sat)
by excors (subscriber, #95769)
[Link] (1 responses)
Posted Nov 16, 2019 18:40 UTC (Sat)
by eru (subscriber, #2753)
[Link]
Posted Nov 18, 2019 15:16 UTC (Mon)
by ballombe (subscriber, #9523)
[Link] (3 responses)
Posted Nov 18, 2019 16:35 UTC (Mon)
by excors (subscriber, #95769)
[Link] (2 responses)
Posted Nov 18, 2019 22:50 UTC (Mon)
by ballombe (subscriber, #9523)
[Link] (1 responses)
Posted Nov 19, 2019 5:49 UTC (Tue)
by eru (subscriber, #2753)
[Link]
Posted Nov 16, 2019 18:30 UTC (Sat)
by thoughtpolice (subscriber, #87455)
[Link]
But then you're just implementing a compiler. At that point, you might as well call a spade a spade, and just generate code for a target that actually can be implemented efficiently in hardware. Though WASM is small and has fully specified semantics, so you can potentially do that in a trusted codebase at a transparent level (firmware) that would make the distinction a little less important anyway. And if you make that transparent, you have a level of hardware independence where you can play with performance improvements you couldn't safely try in a more general purpose CPU. Long live AS/400, I suppose!
Portable low-level *compiled* code
Portable low-level *compiled* code
Portable low-level *compiled* code
Portable low-level *compiled* code
Portable low-level *compiled* code
Portable low-level *compiled* code
Portable low-level *compiled* code
Portable low-level *compiled* code
Portable low-level *compiled* code
Portable low-level *compiled* code