From 449472647808fc09383b585bff9cef9c55bece2a Mon Sep 17 00:00:00 2001 From: Fabio Niephaus Date: Fri, 30 Aug 2024 15:49:37 +0200 Subject: [PATCH] Add GraalWasm to "Feature Extensions" page. (#396) (Disclaimer: I'm on the [GraalVM](https://www.graalvm.org/) team that maintains GraalWasm). This PR adds GraalWasm to the [Feature Extensions page](https://webassembly.org/features/). GraalWasm is an [open-source](https://github.com/oracle/graal/tree/master/wasm) WebAssembly runtime written in Java using our [Truffle framework](https://www.graalvm.org/latest/graalvm-as-a-platform/language-implementation-framework/). We introduced [it in 2019](https://medium.com/graalvm/announcing-graalwasm-a-webassembly-engine-in-graalvm-25cd0400a7f2) and plan to declare it as stable in the upcoming 24.1.0 release on September 17, 2024. Note that https://graalvm.org/webassembly will become available in the next couple of days, we are still working on it. I thought I open this PR now because it seems that the Feature Extensions page may need a little tweaking. With the additional GraalWasm entry, the table starts to become wider than the content box, causing an awkward horizontal scrollbar (see below). I'm happy to incorporate any fixes or improvements for this. ![image](https://github.com/user-attachments/assets/fd148227-6d6c-4486-94b4-af8c8217881c) --- features.json | 118 ++++++++++++++++++++++++++------------------- images/graalvm.svg | 8 +++ 2 files changed, 77 insertions(+), 49 deletions(-) create mode 100644 images/graalvm.svg diff --git a/features.json b/features.json index e28ffed..b8dc87f 100644 --- a/features.json +++ b/features.json @@ -222,55 +222,6 @@ "typedFunctionReferences": "18" } }, - "Wasmtime": { - "url": "https://wasmtime.dev/", - "logo": "/images/bca.svg", - "features": { - "bigInt": null, - "bulkMemory": "0.20", - "customAnnotationSyntaxInTheTextFormat": true, - "customPageSizes": ["flag", "Requires flag `--wasm=custom-page-sizes`"], - "esmIntegration": null, - "extendedConst": "25", - "gc": ["flag", "Requires flag `--wasm=gc`"], - "jspi": null, - "jsStringBuiltins": null, - "memory64": ["flag", "Requires flag `--wasm=memory64`"], - "multiMemory": "15", - "multiValue": "0.17", - "mutableGlobals": true, - "referenceTypes": "0.20", - "relaxedSimd": "15", - "saturatedFloatToInt": true, - "signExtensions": true, - "simd": "0.33", - "tailCall": ["22", "Enabled by default when using the Cranelift backend, except for the s390x architecture"], - "threads": "15", - "typedFunctionReferences": ["flag", "Requires flag `--wasm=function-references`"], - "typeReflection": null, - "webContentSecurityPolicy": null - } - }, - "Wasmer": { - "url": "https://wasmer.io/", - "logo": "/images/wasmer.svg", - "features": { - "bigInt": null, - "bulkMemory": "1.0", - "customAnnotationSyntaxInTheTextFormat": true, - "esmIntegration": null, - "jspi": null, - "jsStringBuiltins": null, - "multiValue": "1.0", - "mutableGlobals": "0.7", - "referenceTypes": "2.0", - "saturatedFloatToInt": true, - "signExtensions": true, - "simd": "2.0", - "typeReflection": "2.0", - "webContentSecurityPolicy": null - } - }, "Node.js": { "url": "https://nodejs.org/", "logo": "/images/nodejs.svg", @@ -333,6 +284,75 @@ "webContentSecurityPolicy": null } }, + "GraalWasm": { + "url": "https://github.com/oracle/graal/tree/master/wasm", + "logo": "/images/graalvm.svg", + "features": { + "bigInt": "21.3", + "bulkMemory": "23.0", + "customAnnotationSyntaxInTheTextFormat": null, + "extendedConst": ["flag", "Requires flag `--wasm.ExtendedConstExpressions=true`"], + "memory64": ["flag", "Requires flag `--wasm.Memory64=true`"], + "multiMemory": ["flag", "Requires flag `--wasm.MultiMemory=true`"], + "multiValue": "22.3", + "mutableGlobals": "21.3", + "referenceTypes": "23.0", + "saturatedFloatToInt": "22.3", + "signExtensions": "22.3", + "simd": "24.1", + "threads": ["flag", "Requires flag `--wasm.Threads=true`"], + "webContentSecurityPolicy": null + } + }, + "Wasmtime": { + "url": "https://wasmtime.dev/", + "logo": "/images/bca.svg", + "features": { + "bigInt": null, + "bulkMemory": "0.20", + "customAnnotationSyntaxInTheTextFormat": true, + "customPageSizes": ["flag", "Requires flag `--wasm=custom-page-sizes`"], + "esmIntegration": null, + "extendedConst": "25", + "gc": ["flag", "Requires flag `--wasm=gc`"], + "jspi": null, + "jsStringBuiltins": null, + "memory64": ["flag", "Requires flag `--wasm=memory64`"], + "multiMemory": "15", + "multiValue": "0.17", + "mutableGlobals": true, + "referenceTypes": "0.20", + "relaxedSimd": "15", + "saturatedFloatToInt": true, + "signExtensions": true, + "simd": "0.33", + "tailCall": ["22", "Enabled by default when using the Cranelift backend, except for the s390x architecture"], + "threads": "15", + "typedFunctionReferences": ["flag", "Requires flag `--wasm=function-references`"], + "typeReflection": null, + "webContentSecurityPolicy": null + } + }, + "Wasmer": { + "url": "https://wasmer.io/", + "logo": "/images/wasmer.svg", + "features": { + "bigInt": null, + "bulkMemory": "1.0", + "customAnnotationSyntaxInTheTextFormat": true, + "esmIntegration": null, + "jspi": null, + "jsStringBuiltins": null, + "multiValue": "1.0", + "mutableGlobals": "0.7", + "referenceTypes": "2.0", + "saturatedFloatToInt": true, + "signExtensions": true, + "simd": "2.0", + "typeReflection": "2.0", + "webContentSecurityPolicy": null + } + }, "wasm2c": { "url": "https://github.com/WebAssembly/wabt", "logo": "/images/wasm2c.svg", diff --git a/images/graalvm.svg b/images/graalvm.svg new file mode 100644 index 0000000..b85b292 --- /dev/null +++ b/images/graalvm.svg @@ -0,0 +1,8 @@ + + + + + + + +