diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e44e3c5ea..f66cefa6b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,11 +46,11 @@ jobs: matrix: include: - os: ubuntu-22.04 - nodejs_version: 16 + nodejs_version: 17 - os: macos-11 - nodejs_version: 16 + nodejs_version: 17 - os: windows-2022 - nodejs_version: 16 + nodejs_version: 17 steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d16ef0ef..bbf9222f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,9 @@ Uses libvips v8.15.2, compiled with Emscripten v3.1.58. - Inline worker script (`.worker.js`) into the main output file. [emscripten-core/emscripten#21701](https://github.com/emscripten-core/emscripten/pull/21701) +- Enable WebAssembly multi-value and reference types features. + [llvm/llvm-project#80923](https://github.com/llvm/llvm-project/pull/80923) +- Drop support for Node.js 16, now requires Node.js >= 17.2.0. ## [v0.0.8] - 2024-03-17 diff --git a/README.md b/README.md index 4de134900..4da216aa5 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,12 @@ https://github.com/kleisauke/wasm-vips/issues/1). ## Engine support -An engine that [supports WebAssembly SIMD](https://webassembly.org/roadmap/). +An engine that supports [WebAssembly SIMD](https://caniuse.com/wasm-simd) and +[WebAssembly Reference Types](https://caniuse.com/wasm-reference-types). This is present on most major browser engines. -For V8-based engines, at least version 9.1.54 is required to match the final -SIMD opcodes, this corresponds to Chrome 91, Node.js 16.4.0 and Deno 1.9.0. +For V8-based engines, at least version 9.6 is required, this corresponds to +Chrome 96, Node.js 17.2.0 and Deno 1.16.0. For Spidermonkey-based engines, the JavaScript engine used in Mozilla Firefox and whose version numbers are aligned, at least version 89 is required. @@ -30,7 +31,7 @@ at least version 615.1.17 is required. This corresponds to Safari 16.4. | ![Chrome](https://github.com/alrra/browser-logos/raw/main/src/chrome/chrome_32x32.png)
Chrome | ![Firefox](https://github.com/alrra/browser-logos/raw/main/src/firefox/firefox_32x32.png)
Firefox | ![Safari](https://github.com/alrra/browser-logos/raw/main/src/safari/safari_32x32.png)
Safari | ![Edge](https://github.com/alrra/browser-logos/raw/main/src/edge/edge_32x32.png)
Edge | ![Node.js](https://github.com/alrra/browser-logos/raw/main/src/node.js/node.js_32x32.png)
Node.js | ![Deno](https://github.com/alrra/browser-logos/raw/main/src/deno/deno_32x32.png)
Deno | |:---:|:---:|:---:|:---:|:---:|:---:| -| :heavy_check_mark:
[version 91+](https://www.chromestatus.com/feature/6533147810332672) | :heavy_check_mark:
[version 89+](https://bugzilla.mozilla.org/show_bug.cgi?id=1695585) | :heavy_check_mark:
[version 16.4+](https://webkit.org/blog/13966/webkit-features-in-safari-16-4/#javascript-and-webassembly) | :heavy_check_mark:
[version 91+](https://www.chromestatus.com/feature/6533147810332672) | :heavy_check_mark:
[version 16.4+](https://github.com/nodejs/node/pull/38273) | :heavy_check_mark:
[version 1.9+](https://github.com/denoland/deno/pull/10152) | +| :heavy_check_mark:
[version 96+](https://chromestatus.com/feature/5166497248837632) | :heavy_check_mark:
[version 89+](https://bugzilla.mozilla.org/show_bug.cgi?id=1695585) | :heavy_check_mark:
[version 16.4+](https://webkit.org/blog/13966/webkit-features-in-safari-16-4/#javascript-and-webassembly) | :heavy_check_mark:
[version 96+](https://chromestatus.com/feature/5166497248837632) | :heavy_check_mark:
[version 17.2+](https://github.com/nodejs/node/pull/40488) | :heavy_check_mark:
[version 1.16+](https://github.com/denoland/deno/pull/12564) | ## Installation diff --git a/package.json b/package.json index 1b5a412b2..29f1159c6 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "serve": "^14.2.3" }, "engines": { - "node": ">=16.4.0" + "node": ">=17.2.0" }, "semistandard": { "globals": [ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 930a7c875..16b018c39 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -150,7 +150,7 @@ if ("node" IN_LIST ENVIRONMENT) set(NODE_LINK_OPTIONS -sENVIRONMENT=node,worker $<$>:-sNODERAWFS> - -sMIN_NODE_VERSION=160400 + -sMIN_NODE_VERSION=170200 ) target_link_options(${PROJECT_NAME}-node diff --git a/test/bench/package.json b/test/bench/package.json index 658345c77..bede240ca 100644 --- a/test/bench/package.json +++ b/test/bench/package.json @@ -23,6 +23,6 @@ "benchmark": "^2.1.4" }, "engines": { - "node": ">=16.4.0" + "node": ">=17.2.0" } } diff --git a/test/unit/package.json b/test/unit/package.json index adbe1e527..d4df63c8c 100644 --- a/test/unit/package.json +++ b/test/unit/package.json @@ -23,6 +23,6 @@ "mocha": "^10.4.0" }, "engines": { - "node": ">=16.4.0" + "node": ">=17.2.0" } }