7 ms·
I assume this page describes what changed since 1.0: Since the original release 1.0 of the WebAssembly specification, a number of proposals for extensions
by tux3 5y ago
I assume this page describes what changed since 1.0:
Since the original release 1.0 of the WebAssembly specification, a number of proposals for extensions have been integrated. The following sections provide an overview of what has changed.
https://webassembly.github.io/spec/core/appendix/changes.html https://webassembly.github.io/spec/core/appendix/changes.htm...
- infogulch 5y agoThe additions that look interesting to me are multiple return values for functions, and table manipulations. IIRC tables are used to communicate things like function pointers with the host executor, maybe like a vtable but more general.
- richdougherty 5y agoThanks! Here's a quick summary from there, with links to the implemented proposals. Multiple values: Generalized the result type of blocks and functions to allow for multiple values; in addition, introduced the ability to have block parameters https://github.com/WebAssembly/spec/blob/main/proposals/multi-value/Overview.md https://github.com/WebAssembly/spec/blob/main/proposals/mult... Reference types: Added and as new value types and respective instructions Table instructions: Added instructions to directly access and modify tables Multiple tables: Added the ability to use multiple tables per module Bulk memory and table instructions: Added instructions that modify ranges of memory or table entries https://github.com/WebAssembly/spec/blob/main/proposals/reference-types/Overview.md https://github.com/WebAssembly/spec/blob/main/proposals/refe... https://github.com/WebAssembly/spec/blob/main/proposals/bulk-memory-operations/Overview.md https://github.com/WebAssembly/spec/blob/main/proposals/bulk... Vector instructions: Added vector type and instructions that manipulate multiple numeric values in parallel (also known as SIMD, single instruction multiple data) https://github.com/WebAssembly/spec/tree/main/proposals/simd/ https://github.com/WebAssembly/spec/tree/main/proposals/simd... Sign extension instructions: Added new numeric instructions for performing sign extension within integer representations. https://github.com/WebAssembly/spec/blob/main/proposals/sign-extension-ops/Overview.md https://github.com/WebAssembly/spec/blob/main/proposals/sign... Non-trapping float-to-int conversions: Added new conversion instructions that avoid trapping when converting a floating-point number to an integer https://github.com/WebAssembly/spec/blob/main/proposals/nontrapping-float-to-int-conversion/Overview.md https://github.com/WebAssembly/spec/blob/main/proposals/nont...
- dmitriid 5y agoSo it looks like it's basically slapping a 2.0 on standardized features from the roadmap: https://webassembly.org/roadmap/ https://webassembly.org/roadmap/
- richdougherty 5y agoI think that's the process, yes. Features get proposed, discussed, implemented, then eventually when they're done they're moved into the spec and tagged with a version.
- dmitriid 5y agoJust realised this will make it easier for tools like caniuse. Instead of listing all features, they can just have "webgpu 2.0 availability"
- tomcam 5y agoAppreciate this. Can you explain why there appear to be English-looking letters used for terms but with alternate Unicode versions? Makes everything look jumbly but I'm sure there's a good reason.
- richdougherty 5y agoAre you talking about the MathJax rendering used for instruction names?
- tomcam 5y agoFalse alarm. I think it's a font rendering problem on Safari. When I tried Chrome and Firefox it didn't appear. For example, under "External Types" at https://www.w3.org/TR/wasm-core-2/syntax/types.html#external-types https://www.w3.org/TR/wasm-core-2/syntax/types.html#external... you see this grammar rule: externtype ::= func functype | table tabletype | mem memtype | global globaltype On Safari, the tokens fun, table, men, and global render with weird font baselines on some letters: c, o, e and a are raised a few points higher than they should be. I just figured these were odd substitutions for ASCII characters from further in the Unicode alphabet, maybe to avoid collisions with other reserved token names or something (vamping here because it was all I could think of). Sorry about that.
- miohtama 5y agoNo garbage collection integration yet? Or is it done as a separate work?
- richdougherty 5y agoIt looks like garbage collection is at the 'proposal' stage, one step before it would start to be implemented. "During this phase: "One or more implementations proceed on prototyping the feature to the point that a comprehensive set of tests can be added. "A test suite is added. These tests need not pass the reference interpreter at this point, but should pass on some implementation." https://github.com/WebAssembly/proposals https://github.com/WebAssembly/proposals https://github.com/WebAssembly/meetings/blob/main/process/phases.md https://github.com/WebAssembly/meetings/blob/main/process/ph... Here's the proposal: https://github.com/WebAssembly/gc https://github.com/WebAssembly/gc And you can see it's being actively worked on: https://github.com/WebAssembly/gc/commits/main https://github.com/WebAssembly/gc/commits/main
- mhoad 5y agoUnder implementation in Chromium too https://bugs.chromium.org/p/v8/issues/detail?id=7748 https://bugs.chromium.org/p/v8/issues/detail?id=7748
- markdog12 5y agoAnd Dart has an experimental wasm backend that leverages that work in v8 here: https://github.com/dart-lang/sdk/blob/main/pkg/dart2wasm/dart2wasm.md https://github.com/dart-lang/sdk/blob/main/pkg/dart2wasm/dar...
- gigatexal 5y agoIs garbage collection really needed?
- m00dy 5y agoisn't it part of the runtime ?