darwin-x64 engine refresh

This commit is contained in:
SheetJS 2024-12-18 00:47:18 -05:00
parent a8395e7139
commit e9f8e08e13
22 changed files with 145 additions and 116 deletions

@ -121,7 +121,7 @@ This demo was last tested in the following deployments:
| Architecture | BunJS | Date |
|:-------------|:---------|:-----------|
| `darwin-x64` | `1.1.4` | 2024-04-19 |
| `darwin-x64` | `1.1.39` | 2024-12-17 |
| `darwin-arm` | `1.1.10` | 2024-09-22 |
| `win10-x64` | `1.1.4` | 2024-04-19 |
| `win11-x64` | `1.1.22` | 2024-08-11 |

@ -277,11 +277,7 @@ This complete component example fetches a test file and displays the contents in
a HTML table. When the export button is clicked, a callback will export a file:
```jsx title="src/SheetJSReactAoO.js"
// React imports
import React, { useCallback, useEffect, useState } from "react";
// Preact imports
// import { render } from 'preact';
// import { useCallback, useEffect, useState } from 'preact/hooks';
import { read, utils, writeFileXLSX } from 'xlsx';
@ -564,13 +560,15 @@ and test the page.
</TabItem>
<TabItem name="preact" value="Preact">
:::note Tested Deployments
This demo was tested in the following environments:
| Preact | ViteJS | Date |
| Preact | ViteJS | Date |
|:----------|:----------|:-----------|
| `10.22.1` | `5.3.3` | 2024-12-17 |
| `10.22.1` | `5.3.3` | 2024-12-17 |
:::
1) Create a new site:
@ -584,10 +582,9 @@ press Enter to accept the default options.**
2) Install the SheetJS dependency and start the dev server:
<CodeBlock language="bash">{`\
cd sheetjs-preact
npm i --save https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz
npm run dev`}
</CodeBlock>
@ -595,7 +592,7 @@ npm run dev`}
4) Copy `src/SheetJSReactAoO.js` demo code to `src/index.jsx` and update the imports:
```jsx
```jsx title="src/index.jsx (replace React import with Preact)"
// Remove React import and replace with:
import { render } from 'preact';
import { useCallback, useEffect, useState } from 'preact/hooks';
@ -603,7 +600,7 @@ import { useCallback, useEffect, useState } from 'preact/hooks';
5) Add the following to the bottom of the file:
```jsx
```jsx title="src/index.jsx (append to file)"
export function App() { return ( <SheetJSReactAoO/> );}
render(<App />, document.getElementById('app'));
@ -654,11 +651,7 @@ export, the first `TABLE` child element can be parsed with [`table_to_book`](/do
generate a workbook object.
```jsx title="src/SheetJSReactHTML.js"
// React imports
import React, { useCallback, useEffect, useRef, useState } from "react";
// Preact imports
// import { render } from 'preact';
// import { useCallback, useEffect, useRef, useState } from 'preact/hooks';
import { read, utils, writeFileXLSX } from 'xlsx';
@ -816,11 +809,13 @@ and test the page.
<TabItem name="preact" value="Preact">
:::note Tested Deployments
This demo was tested in the following environments:
| Preact | ViteJS | Date |
|:----------|:--------|:-----------|
| `10.22.1` | `5.3.3` | 2024-12-17 |
:::
```bash
@ -835,7 +830,7 @@ press Enter to accept the default options.**
<CodeBlock language="bash">{`\
cd sheetjs-preact
npm i --save https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz
npm i --save https://cdn.sheetjs.com/xlsx-${current}/xlsx-${current}.tgz
npm run dev`}
</CodeBlock>
@ -843,7 +838,7 @@ npm run dev`}
4) Copy `src/SheetJSReactHTML.js` demo code to `src/index.jsx` and update the imports:
```jsx
```jsx title="src/index.jsx (replace React import with Preact)"
// Remove React import and replace with:
import { render } from 'preact';
import { useCallback, useEffect, useRef, useState } from 'preact/hooks';
@ -851,7 +846,7 @@ import { useCallback, useEffect, useRef, useState } from 'preact/hooks';
5) Add the following to the bottom of the file:
```jsx
```jsx title="src/index.jsx (append to file)"
export function App() { return ( <SheetJSReactHTML/> );}
render(<App />, document.getElementById('app'));

@ -407,7 +407,7 @@ This demo was tested in the following environments:
| Architecture | PhantomJS | Date |
|:-------------|:----------|:-----------|
| `darwin-x64` | `2.1.1` | 2024-03-15 |
| `darwin-x64` | `2.1.1` | 2024-12-17 |
| `win10-x64` | `2.1.1` | 2024-03-24 |
| `win11-x64` | `2.1.1` | 2024-05-22 |
| `linux-x64` | `2.1.1` | 2024-04-25 |

@ -32,7 +32,7 @@ Swift on MacOS supports JavaScriptCore without additional dependencies.
| Architecture | Swift | Date |
|:-------------|:--------|:-----------|
| `darwin-x64` | `5.10` | 2024-04-04 |
| `darwin-x64` | `6.0.2` | 2024-12-17 |
| `darwin-arm` | `5.10` | 2024-06-30 |
[**C / C++ Compiled from Source**](#c)

@ -163,7 +163,7 @@ This demo was tested in the following deployments:
| Architecture | Jint | Date |
|:-------------|:--------|:-----------|
| `darwin-x64` | `3.0.1` | 2024-03-15 |
| `darwin-x64` | `4.1.0` | 2024-12-17 |
| `darwin-arm` | `3.1.2` | 2024-05-25 |
| `win10-x64` | `3.1.0` | 2024-04-17 |
| `win11-arm` | `3.1.2` | 2024-05-25 |

@ -94,7 +94,7 @@ This demo was tested in the following deployments:
| Architecture | Git Commit | Go version | Date |
|:-------------|:-----------|:-----------|:-----------|
| `darwin-x64` | `e401ed4` | `1.21.7` | 2024-04-25 |
| `darwin-x64` | `79f3a7e` | `1.23.3` | 2024-12-27 |
| `darwin-arm` | `ccbae20` | `1.22.3` | 2024-05-23 |
| `win10-x64` | `e401ed4` | `1.22.1` | 2024-03-24 |
| `win11-arm` | `ccbae20` | `1.22.3` | 2024-05-25 |

@ -105,21 +105,22 @@ This demo was tested in the following deployments:
| OpenJDK | Nashorn | Date |
|:--------|:----------------|:-----------|
| 22.0.1 | 15.4 standalone | 2024-06-24 |
| 21.0.3 | 15.4 standalone | 2024-06-24 |
| 20.0.2 | 15.4 standalone | 2024-06-24 |
| 19.0.2 | 15.4 standalone | 2024-06-24 |
| 18.0.2 | 15.4 standalone | 2024-06-24 |
| 17.0.11 | 15.4 standalone | 2024-06-24 |
| 16.0.1 | 15.4 standalone | 2024-06-24 |
| 15.0.10 | 15.4 standalone | 2024-06-24 |
| 14.0.2 | Built-in | 2024-06-24 |
| 13.0.14 | Built-in | 2024-06-24 |
| 12.0.2 | Built-in | 2024-06-24 |
| 11.0.23 | Built-in | 2024-06-24 |
| 10.0.2 | Built-in | 2024-06-24 |
| 9 | Built-in | 2024-06-24 |
| 1.8.0 | Built-in | 2024-06-24 |
| 23.0.1 | 15.4 standalone | 2024-12-17 |
| 22.0.2 | 15.4 standalone | 2024-12-17 |
| 21.0.5 | 15.4 standalone | 2024-12-17 |
| 20.0.2 | 15.4 standalone | 2024-12-17 |
| 19.0.2 | 15.4 standalone | 2024-12-17 |
| 18.0.2 | 15.4 standalone | 2024-12-17 |
| 17.0.13 | 15.4 standalone | 2024-12-17 |
| 16.0.1 | 15.4 standalone | 2024-12-17 |
| 15.0.10 | 15.4 standalone | 2024-12-17 |
| 14.0.2 | Built-in | 2024-12-17 |
| 13.0.14 | Built-in | 2024-12-17 |
| 12.0.2 | Built-in | 2024-12-17 |
| 11.0.25 | Built-in | 2024-12-17 |
| 10.0.2 | Built-in | 2024-12-17 |
| 9 | Built-in | 2024-12-17 |
| 1.8.0 | Built-in | 2024-12-17 |
:::

@ -27,7 +27,7 @@ command-line tool for reading data from files.
:::note pass
Many QuickJS functions are not documented. The explanation was verified against
the latest release (commit `d378a9f`).
the latest release (commit `6e2e68f`).
:::
@ -263,14 +263,14 @@ This demo was tested in the following deployments:
| Architecture | Git Commit | Date |
|:-------------|:-----------|:-----------|
| `darwin-x64` | `6a89d7c` | 2024-03-15 |
| `darwin-arm` | `d378a9f` | 2024-05-23 |
| `darwin-x64` | `6e2e68f` | 2024-12-17 |
| `darwin-arm` | `6e2e68f` | 2024-12-17 |
| `win10-x64` | `9e561d5` | 2024-03-04 |
| `win11-arm` | `d378a9f` | 2024-05-25 |
| `linux-x64` | `3b45d15` | 2024-04-25 |
| `linux-arm` | `d378a9f` | 2024-05-25 |
When the demo was tested, `d378a9f` was the HEAD commit on the `master` branch.
When the demo was tested, `6e2e68f` was the HEAD commit on the `master` branch.
:::
@ -286,7 +286,7 @@ tests were run entirely within Windows Subsystem for Linux.
```bash
git clone https://github.com/bellard/quickjs
cd quickjs
git checkout d378a9f
git checkout 6e2e68f
make
cd ..
```
@ -343,9 +343,9 @@ This demo was tested in the following environments:
| Git Commit | Date |
|:-----------|:-----------|
| `d378a9f` | 2024-05-23 |
| `6e2e68f` | 2024-12-17 |
When the demo was tested, `d378a9f` was the HEAD commit on the `master` branch.
When the demo was tested, `6e2e68f` was the HEAD commit on the `master` branch.
:::

@ -28,7 +28,7 @@ command-line tool for reading data from files.
:::info pass
Many Hermes functions are not documented. The explanation was verified against
commit `15b323d`.
commit `d070c74`.
:::
@ -364,7 +364,7 @@ This demo was tested in the following deployments:
| Architecture | Git Commit | Date |
|:-------------|:-----------|:-----------|
| `darwin-x64` | `d070c74` | 2024-04-25 |
| `darwin-x64` | `d070c74` | 2024-12-17 |
| `darwin-arm` | `d070c74` | 2024-05-23 |
| `linux-x64` | `d217af8` | 2024-03-21 |
| `linux-arm` | `d070c74` | 2024-05-25 |
@ -765,7 +765,7 @@ This demo was tested in the following deployments:
| Architecture | Hermes | Date |
|:-------------|:---------|:-----------|
| `darwin-x64` | `0.12.0` | 2024-03-13 |
| `darwin-x64` | `0.13.0` | 2024-12-17 |
:::
@ -777,7 +777,7 @@ as a Base64 string and directly add it to an amalgamated script.
0) Install the Hermes command line tools:
```bash
npx jsvu hermes@0.12.0
npx jsvu hermes@0.13.0
```
When prompted, select the appropriate operating system.
@ -787,10 +787,10 @@ When prompted, select the appropriate operating system.
```text pass
Extracting…
// highlight-next-line
Installing binary to ~/.jsvu/engines/hermes-0.12.0/hermes-0.12.0…
Installing symlink at ~/.jsvu/bin/hermes-0.12.0 pointing to ~/.jsvu/engines/hermes-0.12.0/hermes-0.12.0…
Installing binary to ~/.jsvu/engines/hermes-0.12.0/hermes-0.12.0-compiler…
Installing symlink at ~/.jsvu/bin/hermes-0.12.0-compiler pointing to ~/.jsvu/engines/hermes-0.12.0/hermes-0.12.0-compiler…
Installing binary to ~/.jsvu/engines/hermes-0.13.0/hermes-0.13.0…
Installing symlink at ~/.jsvu/bin/hermes-0.13.0 pointing to ~/.jsvu/engines/hermes-0.13.0/hermes-0.13.0…
Installing binary to ~/.jsvu/engines/hermes-0.13.0/hermes-0.13.0-compiler…
Installing symlink at ~/.jsvu/bin/hermes-0.13.0-compiler pointing to ~/.jsvu/engines/hermes-0.13.0/hermes-0.13.0-compiler…
```
The first "Installing binary" line mentions the path to the `hermes` tool.
@ -807,7 +807,7 @@ cd sheetjs-hermes-cli
3) Copy the binary from Step 1 into the current folder. For example, on macOS:
```bash
cp ~/.jsvu/engines/hermes-0.12.0/hermes-0.12.0 .
cp ~/.jsvu/engines/hermes-0.13.0/hermes-0.13.0 .
```
#### Create Script
@ -861,7 +861,7 @@ ready, it will read the bundled test data and print the contents as CSV.
8) Run the script using the Hermes standalone binary:
```bash
./hermes-0.12.0 sheetjs.hermes.js
./hermes-0.13.0 sheetjs.hermes.js
```
If successful, the script will print CSV data from the test file.

@ -85,14 +85,14 @@ The `strict_` variants ensure that no newlines are added to the strings.
This demo was tested in the following deployments:
| Platform | Ruby | ExecJS | Date |
|:-------------|:---------|:--------|:-----------|
| `darwin-x64` | `2.6.10` | `2.9.1` | 2024-04-25 |
| `darwin-arm` | `2.6.10` | `2.9.1` | 2024-05-25 |
| `win10-x64` | `3.2.3` | `2.9.1` | 2024-03-10 |
| `win11-arm` | `3.0.2` | `2.9.1` | 2024-05-25 |
| `linux-x64` | `3.0.5` | `2.9.1` | 2024-03-21 |
| `linux-arm` | `3.1.2` | `2.9.1` | 2024-05-25 |
| Platform | Ruby | ExecJS | Date |
|:-------------|:---------|:---------|:-----------|
| `darwin-x64` | `2.6.10` | `2.10.0` | 2024-12-17 |
| `darwin-arm` | `2.6.10` | `2.9.1` | 2024-05-25 |
| `win10-x64` | `3.2.3` | `2.9.1` | 2024-03-10 |
| `win11-arm` | `3.0.2` | `2.9.1` | 2024-05-25 |
| `linux-x64` | `3.0.5` | `2.9.1` | 2024-03-21 |
| `linux-arm` | `3.1.2` | `2.9.1` | 2024-05-25 |
When the demo was last tested, there was no official Ruby release for Windows
on ARM. The `win11-arm` test was run in WSL.

@ -132,7 +132,7 @@ This demo was tested in the following deployments:
| Architecture | Git Commit | Date |
|:-------------|:-----------|:-----------|
| `darwin-x64` | `c3ead3f` | 2024-03-15 |
| `darwin-x64` | `e26c81f` | 2024-12-17 |
| `darwin-arm` | `3a7b120` | 2024-05-23 |
| `win10-x64` | `c3ead3f` | 2024-03-04 |
| `win11-arm` | `13358c6` | 2024-07-14 |
@ -189,7 +189,7 @@ The commands in this demo should be run in "ARM64 Native Tools Command Prompt".
```bash
git clone https://github.com/chakra-core/ChakraCore.git
cd ChakraCore
git checkout 13358c6
git checkout e26c81f
cd ..
```
@ -200,7 +200,7 @@ cd ..
```bash
cd ChakraCore
./build.sh --static --icu=/usr/local/opt/icu4c/include --test-build -j=8
./build.sh --static --icu=/usr/local/opt/icu4c/include --test-build -j=8 --system-icu --no-jit
cd ..
```
@ -221,6 +221,14 @@ ln -s /opt/homebrew/opt/icu4c usr/local/opt/icu4c
cd ..
```
:::
:::danger pass
There are known issues with MacOS 15.1 SDK and ChakraCore JIT. These issues did
not affect earlier tests against MacOS 14.5. The current recommendation is to
disable JIT and use the system ICU implementation.
:::
</TabItem>
@ -484,7 +492,7 @@ If successful, the program will print the contents of the first sheet as CSV.
:::note Tested Deployments
This demo was last tested on 2024-07-14 against `ch` commit `13358c6`.
This demo was last tested on 2024-12-17 against `ch` commit `e26c81f`.
:::

@ -120,7 +120,7 @@ This demo was tested in the following deployments:
| Architecture | Boa | Date |
|:-------------|:---------|:-----------|
| `darwin-x64` | `0.18.0` | 2024-04-25 |
| `darwin-x64` | `0.20.0` | 2024-12-17 |
| `darwin-arm` | `0.18.0` | 2024-05-23 |
| `win10-x64` | `0.18.0` | 2024-04-25 |
| `win11-arm` | `0.18.0` | 2024-05-25 |

@ -127,7 +127,7 @@ This demo was tested in the following deployments:
| Architecture | Version | Date |
|:-------------|:--------|:-----------|
| `darwin-x64` | `0.066` | 2024-06-29 |
| `darwin-x64` | `0.066` | 2024-12-17 |
| `darwin-arm` | `0.066` | 2024-05-25 |
| `linux-x64` | `0.066` | 2024-06-29 |
| `linux-arm` | `0.066` | 2024-05-25 |
@ -148,7 +148,7 @@ There were permissions errors in some test runs:
mkdir /Library/Perl/5.30/File: Permission denied at /System/Library/Perl/5.30/ExtUtils/Install.pm line 489.
```
On macOS, the commands should be run through `sudo`:
The install command should be run through `sudo`:
```bash
sudo cpan install JE File::Slurp

@ -36,7 +36,7 @@ This demo was tested in the following environments:
| Architecture | Commit | Date |
|:-------------|:----------|:-----------|
| `darwin-x64` | `35465ed` | 2024-05-25 |
| `darwin-x64` | `d2d30df` | 2024-12-17 |
| `darwin-arm` | `35465ed` | 2024-05-25 |
| `win10-x64` | `47bd5d4` | 2024-04-14 |
| `win11-arm` | `35465ed` | 2024-05-25 |
@ -52,7 +52,7 @@ The Windows tests were run in WSL.
:::info pass
The official JerryScript documentation and examples are out of date. This
explanation was verified against the latest release (commit `514fa67`).
explanation was verified against the latest release (commit `d2d30df`).
:::

@ -54,12 +54,13 @@ This demo was tested in the following deployments:
| OpenJDK | GraalJS | Date |
|:--------|:--------|:-----------|
| 22 | 24.0.1 | 2024-05-25 |
| 21.0.3 | 24.0.1 | 2024-05-25 |
| 20.0.2 | 24.0.1 | 2024-05-25 |
| 19.0.2 | 24.0.1 | 2024-05-25 |
| 18.0.2 | 24.0.1 | 2024-05-25 |
| 17.0.10 | 24.0.1 | 2024-05-25 |
| 23.0.1 | 24.1.1 | 2024-12-17 |
| 22.0.2 | 24.1.1 | 2024-12-17 |
| 21.0.5 | 24.1.1 | 2024-12-17 |
| 20.0.2 | 24.1.1 | 2024-12-17 |
| 19.0.2 | 24.1.1 | 2024-12-17 |
| 18.0.2 | 24.1.1 | 2024-12-17 |
| 17.0.13 | 24.1.1 | 2024-12-17 |
:::
@ -68,14 +69,14 @@ This demo was tested in the following deployments:
0) Download GraalJS and its dependencies:
```bash
curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-scriptengine/24.0.1/js-scriptengine-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-language/24.0.1/js-language-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/polyglot/polyglot/24.0.1/polyglot-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/collections/24.0.1/collections-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/truffle/truffle-api/24.0.1/truffle-api-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/nativeimage/24.0.1/nativeimage-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/shadowed/icu4j/24.0.1/icu4j-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/regex/regex/24.0.1/regex-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-scriptengine/24.1.1/js-scriptengine-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-language/24.1.1/js-language-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/polyglot/polyglot/24.1.1/polyglot-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/collections/24.1.1/collections-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/truffle/truffle-api/24.1.1/truffle-api-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/nativeimage/24.1.1/nativeimage-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/shadowed/icu4j/24.1.1/icu4j-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/regex/regex/24.1.1/regex-24.1.1.jar"
```
1) Download the SheetJS Standalone script, shim script and test file. Move all
@ -116,14 +117,14 @@ CSV rows from the first worksheet.
<TabItem value="unix" label="Linux/MacOS">
```bash
java -cp ".:js-scriptengine-24.0.1.jar:js-language-24.0.1.jar:polyglot-24.0.1.jar:collections-24.0.1.jar:truffle-api-24.0.1.jar:nativeimage-24.0.1.jar:icu4j-24.0.1.jar:regex-24.0.1.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
java -cp ".:js-scriptengine-24.1.1.jar:js-language-24.1.1.jar:polyglot-24.1.1.jar:collections-24.1.1.jar:truffle-api-24.1.1.jar:nativeimage-24.1.1.jar:icu4j-24.1.1.jar:regex-24.1.1.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
```
</TabItem>
<TabItem value="win" label="Windows">
```bash
java -cp ".;js-scriptengine-24.0.1.jar;js-language-24.0.1.jar;polyglot-24.0.1.jar;collections-24.0.1.jar;truffle-api-24.0.1.jar;nativeimage-24.0.1.jar;icu4j-24.0.1.jar;regex-24.0.1.jar" -D"polyglot.js.nashorn-compat=true" SheetJSNashorn pres.xlsx
java -cp ".;js-scriptengine-24.1.1.jar;js-language-24.1.1.jar;polyglot-24.1.1.jar;collections-24.1.1.jar;truffle-api-24.1.1.jar;nativeimage-24.1.1.jar;icu4j-24.1.1.jar;regex-24.1.1.jar" -D"polyglot.js.nashorn-compat=true" SheetJSNashorn pres.xlsx
```
</TabItem>
@ -153,14 +154,14 @@ cd sheethorn
<TabItem value="unix" label="Linux/MacOS">
```bash
java -cp ".:js-scriptengine-24.0.1.jar:js-language-24.0.1.jar:polyglot-24.0.1.jar:collections-24.0.1.jar:truffle-api-24.0.1.jar:nativeimage-24.0.1.jar:icu4j-24.0.1.jar:regex-24.0.1.jar:SheetJSNashorn.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
java -cp ".:js-scriptengine-24.1.1.jar:js-language-24.1.1.jar:polyglot-24.1.1.jar:collections-24.1.1.jar:truffle-api-24.1.1.jar:nativeimage-24.1.1.jar:icu4j-24.1.1.jar:regex-24.1.1.jar:SheetJSNashorn.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
```
</TabItem>
<TabItem value="win" label="Windows">
```bash
java -cp ".;js-scriptengine-24.0.1.jar;js-language-24.0.1.jar;polyglot-24.0.1.jar;collections-24.0.1.jar;truffle-api-24.0.1.jar;nativeimage-24.0.1.jar;icu4j-24.0.1.jar;regex-24.0.1.jar;SheetJSNashorn.jar" -D"polyglot.js.nashorn-compat=true" SheetJSNashorn pres.xlsx
java -cp ".;js-scriptengine-24.1.1.jar;js-language-24.1.1.jar;polyglot-24.1.1.jar;collections-24.1.1.jar;truffle-api-24.1.1.jar;nativeimage-24.1.1.jar;icu4j-24.1.1.jar;regex-24.1.1.jar;SheetJSNashorn.jar" -D"polyglot.js.nashorn-compat=true" SheetJSNashorn pres.xlsx
```
</TabItem>

@ -36,7 +36,7 @@ as [Duktape](/docs/demos/engines/duktape).
:::info pass
Many MuJS functions are not documented. The explanation was verified against
version `1.3.4`.
version `1.3.5`.
:::
@ -322,7 +322,7 @@ This demo was tested in the following deployments:
| Architecture | Version | Date |
|:-------------|:--------|:-----------|
| `darwin-x64` | `1.3.4` | 2024-05-25 |
| `darwin-x64` | `1.3.5` | 2024-12-17 |
| `darwin-arm` | `1.3.4` | 2024-05-23 |
| `win10-x64` | `1.3.4` | 2024-06-20 |
| `win11-arm` | `1.3.4` | 2024-06-20 |
@ -354,9 +354,9 @@ cd sheetjs-mu
2) Build the MuJS shared library from source:
```bash
curl -LO https://mujs.com/downloads/mujs-1.3.4.zip
unzip mujs-1.3.4.zip
cd mujs-1.3.4
curl -LO https://mujs.com/downloads/mujs-1.3.5.zip
unzip mujs-1.3.5.zip
cd mujs-1.3.5
make release
cd ..
```
@ -364,7 +364,7 @@ cd ..
3) Copy the `mujs.h` header file and `libmujs.a` library to the project folder:
```bash
cp mujs-1.3.4/build/release/libmujs.a mujs-1.3.4/mujs.h .
cp mujs-1.3.5/build/release/libmujs.a mujs-1.3.5/mujs.h .
```
4) Download [`SheetJSMu.c`](pathname:///mujs/SheetJSMu.c):

@ -158,7 +158,7 @@ The result will be passed back to C# code.
:::
```csharp
string ods = engine.Evaluate("XLSX.write(wb, {bookType: 'ods', type: 'base64'})") as string;
string ods = engine.Evaluate<string>("XLSX.write(wb, {bookType: 'ods', type: 'base64'})")!;
```
`ods` is a Base64 string. `System.Convert.FromBase64String` can decode the
@ -176,7 +176,7 @@ This demo was tested in the following deployments:
| Architecture | Jurassic | Date |
|:-------------|:---------|:-----------|
| `darwin-x64` | `3.2.7` | 2024-06-15 |
| `darwin-x64` | `3.2.8` | 2024-12-17 |
| `darwin-arm` | `3.2.7` | 2024-06-15 |
| `win10-x64` | `3.2.7` | 2024-06-21 |
| `win11-arm` | `3.2.7` | 2024-07-14 |
@ -260,7 +260,7 @@ dotnet run
4) Add Jurassic using the NuGet tool:
```bash
dotnet add package Jurassic --version 3.2.7
dotnet add package Jurassic --version 3.2.8
```
To verify Jurassic is installed, replace `Program.cs` with the following:
@ -340,7 +340,7 @@ object csv = engine.Evaluate("XLSX.utils.sheet_to_csv(ws)");
Console.Write(csv);
/* Generate XLSB file and save to SheetJSJurassic.ods */
string ods = engine.Evaluate("XLSX.write(wb, {bookType: 'ods', type: 'base64'})") as string;
string ods = engine.Evaluate<string>("XLSX.write(wb, {bookType: 'ods', type: 'base64'})")!;
File.WriteAllBytes("SheetJSJurassic.ods", System.Convert.FromBase64String(ods));
```

@ -5,14 +5,14 @@ rm -rf sheetjs-graaljs
mkdir -p sheetjs-graaljs
cd sheetjs-graaljs
curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-scriptengine/24.0.1/js-scriptengine-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-language/24.0.1/js-language-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/polyglot/polyglot/24.0.1/polyglot-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/collections/24.0.1/collections-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/truffle/truffle-api/24.0.1/truffle-api-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/nativeimage/24.0.1/nativeimage-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/shadowed/icu4j/24.0.1/icu4j-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/regex/regex/24.0.1/regex-24.0.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-scriptengine/24.1.1/js-scriptengine-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/js/js-language/24.1.1/js-language-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/polyglot/polyglot/24.1.1/polyglot-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/collections/24.1.1/collections-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/truffle/truffle-api/24.1.1/truffle-api-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/sdk/nativeimage/24.1.1/nativeimage-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/shadowed/icu4j/24.1.1/icu4j-24.1.1.jar"
curl -LO "https://repo1.maven.org/maven2/org/graalvm/regex/regex/24.1.1/regex-24.1.1.jar"
curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js
curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/shim.min.js
@ -20,19 +20,19 @@ curl -LO https://sheetjs.com/pres.xlsx
curl -LO https://docs.sheetjs.com/nashorn/SheetJSNashorn.java
for n in {17..22}; do
for n in {17..23}; do
export JAVA_HOME=`/usr/libexec/java_home -v $n`
java -version
rm -fr SheetJSNashorn.class SheetJSNashorn.jar sheethorn
javac SheetJSNashorn.java
java -cp ".:js-scriptengine-24.0.1.jar:js-language-24.0.1.jar:polyglot-24.0.1.jar:collections-24.0.1.jar:truffle-api-24.0.1.jar:nativeimage-24.0.1.jar:icu4j-24.0.1.jar:regex-24.0.1.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
java -cp ".:js-scriptengine-24.1.1.jar:js-language-24.1.1.jar:polyglot-24.1.1.jar:collections-24.1.1.jar:truffle-api-24.1.1.jar:nativeimage-24.1.1.jar:icu4j-24.1.1.jar:regex-24.1.1.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
jar -cf SheetJSNashorn.jar SheetJSNashorn.class xlsx.full.min.js shim.min.js
mkdir -p sheethorn
cp *.jar pres.xlsx sheethorn
cd sheethorn
java -cp ".:js-scriptengine-24.0.1.jar:js-language-24.0.1.jar:polyglot-24.0.1.jar:collections-24.0.1.jar:truffle-api-24.0.1.jar:nativeimage-24.0.1.jar:icu4j-24.0.1.jar:regex-24.0.1.jar:SheetJSNashorn.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
java -cp ".:js-scriptengine-24.1.1.jar:js-language-24.1.1.jar:polyglot-24.1.1.jar:collections-24.1.1.jar:truffle-api-24.1.1.jar:nativeimage-24.1.1.jar:icu4j-24.1.1.jar:regex-24.1.1.jar:SheetJSNashorn.jar" -Dpolyglot.js.nashorn-compat=true SheetJSNashorn pres.xlsx
cd -
done

@ -9,7 +9,7 @@ cd SheetJSJurassic
dotnet new console
dotnet run
dotnet add package Jurassic --version 3.2.7
dotnet add package Jurassic --version 3.2.8
curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/shim.min.js
curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.mini.min.js

@ -7,13 +7,13 @@ rm -rf sheetjs-mu
mkdir sheetjs-mu
cd sheetjs-mu
curl -LO https://mujs.com/downloads/mujs-1.3.4.zip
unzip mujs-1.3.4.zip
cd mujs-1.3.4
curl -LO https://mujs.com/downloads/mujs-1.3.5.zip
unzip mujs-1.3.5.zip
cd mujs-1.3.5
make release
cd ..
cp mujs-1.3.4/build/release/libmujs.a mujs-1.3.4/mujs.h .
cp mujs-1.3.5/build/release/libmujs.a mujs-1.3.5/mujs.h .
curl -LO https://docs.sheetjs.com/mujs/SheetJSMu.c

@ -18,7 +18,7 @@ curl -L -o asm-analysis-9.5.jar "https://search.maven.org/remotecontent?filepath
curl -L -o asm-util-9.5.jar "https://search.maven.org/remotecontent?filepath=org/ow2/asm/asm-util/9.5/asm-util-9.5.jar"
# Standalone Nashorn
for n in {15..22}; do
for n in {15..23}; do
echo $n
export JAVA_HOME=`/usr/libexec/java_home -v $n`
echo $JAVA_HOME

24
tests/engines-quickjs.sh Executable file

@ -0,0 +1,24 @@
#!/bin/bash
# https://docs.sheetjs.com/docs/demos/engines/quickjs
cd /tmp
rm -rf sheetjs-quickjs
mkdir -p sheetjs-quickjs
cd sheetjs-quickjs
git clone https://github.com/bellard/quickjs
cd quickjs
git checkout 6e2e68f
make
cd ..
cp quickjs/libquickjs.a .
cp quickjs/quickjs.h .
curl -LO https://docs.sheetjs.com/quickjs/sheetjs.quick.c
gcc -o sheetjs.quick -Wall sheetjs.quick.c libquickjs.a -lm
curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js
curl -LO https://docs.sheetjs.com/pres.numbers
./sheetjs.quick pres.numbers