diff --git a/docz/docs/03-demos/42-engines/01-duktape.md b/docz/docs/03-demos/42-engines/01-duktape.md
index 4037500..63f5f6a 100644
--- a/docz/docs/03-demos/42-engines/01-duktape.md
+++ b/docz/docs/03-demos/42-engines/01-duktape.md
@@ -17,7 +17,7 @@ been ported to a number of exotic architectures and operating systems.
[SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing
data from spreadsheets.
-The ["Integration Example"](#integration-example) section includes a complete
+The ["Complete Example"](#complete-example) section includes a complete
command-line tool for reading data from spreadsheets and exporting to Excel XLSB
workbooks.
diff --git a/docz/docs/03-demos/42-engines/02-v8.md b/docz/docs/03-demos/42-engines/02-v8.md
index 954b468..d00dd21 100644
--- a/docz/docs/03-demos/42-engines/02-v8.md
+++ b/docz/docs/03-demos/42-engines/02-v8.md
@@ -126,7 +126,7 @@ This demo was tested in the following deployments:
|:--------------|:-------------|:--------------|:-----------------|:-----------|
| `11.8.82` | `darwin-x64` | macOS 13.5.1 | `clang 14.0.3` | 2023-08-26 |
| `12.0.175` | `darwin-arm` | macOS 14.0 | `clang 15.0.0` | 2023-10-20 |
-| `11.8.82` | `win10-x64` | Windows 10 | `CL 19.37.32822` | 2023-08-26 |
+| `12.0.265` | `win10-x64` | Windows 10 | `CL 19.37.32822` | 2023-10-28 |
| `12.0.72` | `linux-x64` | HoloOS 3.4.11 | `gcc 12.2.0` | 2023-10-11 |
| `11.8.82` | `linux-arm` | Debian 11 | `gcc 10.2.1` | 2023-09-26 |
@@ -395,20 +395,20 @@ The recommended fix is to delete the referenced folder and re-run `gclient sync`
-5) Checkout the desired version. The following command pulls `12.0.72`:
+5) Checkout the desired version. The following command pulls `12.0.265`:
```bash
-git checkout refs/tags/12.0.72 -b sample -t
+git checkout refs/tags/12.0.265 -b sample -t
```
```bash
-git checkout tags/12.0.72 -b sample
+git checkout tags/12.0.265 -b sample
```
:::caution pass
@@ -416,14 +416,14 @@ git checkout tags/12.0.72 -b sample
The official documentation recommends:
```bash
-git checkout refs/tags/12.0.72 -b sample -t
+git checkout refs/tags/12.0.265 -b sample -t
```
This command failed in local testing:
```
-E:\v8\v8>git checkout refs/tags/12.0.72 -b sample -t
-fatal: cannot set up tracking information; starting point 'refs/tags/12.0.72' is not a branch
+E:\v8\v8>git checkout refs/tags/12.0.265 -b sample -t
+fatal: cannot set up tracking information; starting point 'refs/tags/12.0.265' is not a branch
```
:::
@@ -526,8 +526,8 @@ from the Control Panel as described in step 0.
In local testing, the `ninja` build failed with C++ deprecation errors:
```c++
-../..\src/wasm/wasm-code-manager.h(789,28): error: 'atomic_load>' is deprecated: warning STL4029: std::atomic_*() overloads for shared_ptr are deprecated in C++20. The shared_ptr specialization of std::atomic provides superior functionality. You can define _SILENCE_CXX20_OLD_SHARED_PTR_ATOMIC_SUPPORT_DEPRECATION_WARNING or _SILENCE_ALL_CXX20_DEPRECATION_WARNINGS to suppress this warning. [-Werror,-Wdeprecated-declarations]
- 789 | auto wire_bytes = std::atomic_load(&wire_bytes_);
+../..\src/wasm/wasm-code-manager.h(670,28): error: 'atomic_load>' is deprecated: warning STL4029: std::atomic_*() overloads for shared_ptr are deprecated in C++20. The shared_ptr specialization of std::atomic provides superior functionality. You can define _SILENCE_CXX20_OLD_SHARED_PTR_ATOMIC_SUPPORT_DEPRECATION_WARNING or _SILENCE_ALL_CXX20_DEPRECATION_WARNINGS to suppress this warning. [-Werror,-Wdeprecated-declarations]
+ 670 | auto wire_bytes = std::atomic_load(&wire_bytes_);
| ^
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.32822\include\memory(3794,1): note: 'atomic_load>' has been explicitly marked deprecated here
3794 | _CXX20_DEPRECATE_OLD_SHARED_PTR_ATOMIC_SUPPORT _NODISCARD shared_ptr<_Ty> atomic_load(
@@ -536,8 +536,6 @@ C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.37.3282
1317 | [[deprecated("warning STL4029: " \
| ^
2 errors generated.
-[14/1303] CXX obj/torque_generated_definitions/js-atomics-synchronization-tq.obj
-FAILED: obj/torque_generated_definitions/js-atomics-synchronization-tq.obj
```
The workaround is to append a line to `out.gn\x64.release.sample\args.gn`:
@@ -546,6 +544,12 @@ The workaround is to append a line to `out.gn\x64.release.sample\args.gn`:
treat_warnings_as_errors = false
```
+After adding the line, run the `ninja` command again:
+
+```bash
+ninja -C out.gn\x64.release.sample v8_monolith
+```
+
:::
diff --git a/docz/docs/03-demos/42-engines/05-jint.md b/docz/docs/03-demos/42-engines/05-jint.md
index 4744caf..7e7d1a5 100644
--- a/docz/docs/03-demos/42-engines/05-jint.md
+++ b/docz/docs/03-demos/42-engines/05-jint.md
@@ -41,7 +41,7 @@ setting the environment variable on supported platforms.
:::note pass
Most of the integration functions are not documented. This explanation is based
-on version `3.0.0-beta-2051`.
+on version `3.0.0-beta-2053`.
:::
@@ -165,7 +165,7 @@ This demo was tested in the following deployments:
|:-------------|:------------------|:-----------|
| `darwin-x64` | `3.0.0-beta-2051` | 2023-09-16 |
| `darwin-arm` | `3.0.0-beta-2051` | 2023-09-26 |
-| `win10-x64` | `3.0.0-beta-2051` | 2023-09-16 |
+| `win10-x64` | `3.0.0-beta-2053` | 2023-10-28 |
| `win11-arm` | `3.0.0-beta-2051` | 2023-09-26 |
| `linux-x64` | `3.0.0-beta-2052` | 2023-10-11 |
| `linux-arm` | `3.0.0-beta-2051` | 2023-09-26 |
@@ -238,7 +238,7 @@ dotnet run
```bash
dotnet nuget add source https://www.myget.org/F/jint/api/v3/index.json
-dotnet add package Jint --version 3.0.0-beta-2052
+dotnet add package Jint --version 3.0.0-beta-2053
```
To verify Jint is installed, replace `Program.cs` with the following:
@@ -333,6 +333,23 @@ If successful, the program will print the contents of the first sheet as CSV
rows. It will also create `SheetJSJint.xlsb` which can be opened in Excel or
another spreadsheet editor.
+:::info pass
+
+Running `dotnet run` without the filename argument will show an error:
+
+```
+Unhandled exception. System.IndexOutOfRangeException: Index was outside the bounds of the array.
+ at Program.$(String[] args) in C:\Users\Me\SheetJSJint\Program.cs:line 13
+```
+
+The command must be run with an argument specifying the name of the workbook:
+
+```bash
+dotnet run pres.xlsx
+```
+
+:::
+
:::caution pass
If the `using Jint;` directive is omitted, the build will fail:
@@ -426,8 +443,9 @@ dotnet publish -c Release -r win-arm64 --self-contained true -p:PublishSingleFil
10) Copy the generated executable to the project directory.
-The build from step 9 is placed in `bin\Release\net6.0\$RID\publish` and the
-binary name will be `SheetJSJint` or `SheetJSJint.exe` depending on OS.
+The binary name will be `SheetJSJint` or `SheetJSJint.exe` depending on OS.
+
+The last line of the output from Step 9 will print the output folder.
Tested platforms (click to hide)
@@ -476,6 +494,22 @@ For Windows 10 x64, the RID is `win10-x64` and the command is:
copy .\bin\Release\net6.0\win10-x64\publish\SheetJSJint.exe .
```
+:::caution pass
+
+In some test runs, the `copy` command failed with a clear message:
+
+```
+The system cannot find the path specified.
+```
+
+The correct command was
+
+```powershell
+copy .\bin\x64\Release\net6.0\win10-x64\publish\SheetJSJint.exe .
+```
+
+:::
+
diff --git a/docz/docs/03-demos/42-engines/06-goja.md b/docz/docs/03-demos/42-engines/06-goja.md
index 54fd590..fed1046 100644
--- a/docz/docs/03-demos/42-engines/06-goja.md
+++ b/docz/docs/03-demos/42-engines/06-goja.md
@@ -96,7 +96,7 @@ This demo was tested in the following deployments:
|:-------------|:-----------|:-----------|:-----------|
| `darwin-x64` | `873a149` | `1.21.3` | 2023-10-14 |
| `darwin-arm` | `873a149` | `1.21.3` | 2023-10-18 |
-| `win10-x64` | `81d7606` | `1.20.2` | 2023-08-27 |
+| `win10-x64` | `b396bb4` | `1.21.3` | 2023-10-28 |
| `win11-arm` | `fc55792` | `1.21.1` | 2023-09-25 |
| `linux-x64` | `fc55792` | `1.21.3` | 2023-10-11 |
| `linux-arm` | `3dbe69d` | `1.21.1` | 2023-08-30 |
diff --git a/docz/docs/03-demos/42-engines/09-hermes.md b/docz/docs/03-demos/42-engines/09-hermes.md
index 0c8b431..e0dbaa9 100644
--- a/docz/docs/03-demos/42-engines/09-hermes.md
+++ b/docz/docs/03-demos/42-engines/09-hermes.md
@@ -372,7 +372,7 @@ fork, which powers React Native for Windows, does have built-in support[^5]
| Architecture | Git Commit | Date |
|:-------------|:-----------|:-----------|
-| `win10-x64` | `c7a4a82` | 2023-09-27 |
+| `win10-x64` | `930456b` | 2023-10-28 |
:::
@@ -521,7 +521,7 @@ cd sheetjs-hermes
```bash
git clone https://github.com/microsoft/hermes-windows
cd hermes-windows
-git checkout c7a4a82
+git checkout 930456b
cd ..
```
@@ -560,6 +560,24 @@ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
:::
+:::info pass
+
+In the most recent test, the command failed when trying to copy `hermes.exe`:
+
+```
+Copy-Item: C:\Users\Me\Documents\hermes-windows\.ado\scripts\cibuild.ps1:331
+Line |
+ 331 | Copy-Item "$compilerAndToolsBuildPath\bin\hermes.exe" -Destinatio …
+ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ | Cannot find path 'C:\Users\Me\Documents\hermes-windows\workspace\build\tools\bin\hermes.exe'
+ | because it does not exist.
+```
+
+The libraries are built first and the standalone binary is not needed when
+embedding Hermes, so the error message can be safely ignored.
+
+:::
+
6) Copy every generated `.lib` and `.dll` file into the main folder:
```powershell
diff --git a/docz/docs/03-demos/42-engines/15-rb.md b/docz/docs/03-demos/42-engines/15-rb.md
index abf6253..ec2f66e 100644
--- a/docz/docs/03-demos/42-engines/15-rb.md
+++ b/docz/docs/03-demos/42-engines/15-rb.md
@@ -72,7 +72,7 @@ This demo was tested in the following deployments:
|:-------------|:---------|:--------|:-----------|
| `darwin-x64` | `2.7.6` | `2.9.1` | 2023-09-24 |
| `darwin-arm` | `2.7.4` | `2.9.1` | 2023-09-24 |
-| `win10-x64` | `3.2.2` | `2.9.1` | 2023-09-24 |
+| `win10-x64` | `3.2.2` | `2.9.1` | 2023-10-28 |
| `win11-arm` | `3.0.2` | `2.9.1` | 2023-09-24 |
| `linux-x64` | `3.0.4` | `2.9.1` | 2023-10-11 |
| `linux-arm` | `2.7.4` | `2.9.1` | 2023-09-24 |
diff --git a/docz/docs/03-demos/42-engines/20-chakra.md b/docz/docs/03-demos/42-engines/20-chakra.md
index 63e04e8..f02a7fb 100644
--- a/docz/docs/03-demos/42-engines/20-chakra.md
+++ b/docz/docs/03-demos/42-engines/20-chakra.md
@@ -122,7 +122,7 @@ This demo was tested in the following deployments:
|:-------------|:-----------|:-----------|
| `darwin-x64` | `c3ead3f` | 2023-08-26 |
| `darwin-arm` | `c3ead3f` | 2023-10-19 |
-| `win10-x64` | `c3ead3f` | 2023-08-26 |
+| `win10-x64` | `c3ead3f` | 2023-10-28 |
| `linux-x64` | `c3ead3f` | 2023-10-11 |
:::
@@ -156,7 +156,7 @@ sudo pacman -S cmake clang
Install Visual Studio 2022 with the "Desktop Development with C++" workflow.
-All commands in this demo should be run in a Developer Command Prompt.
+All commands in this demo should be run in a "Native Tools Command Prompt".
@@ -366,7 +366,7 @@ If successful, the program will print the contents of the first sheet as CSV.
:::note
-This demo was last tested on 2023-08-26 against `ch` commit `c3ead3f`.
+This demo was last tested on 2023-10-28 against `ch` commit `c3ead3f`.
:::
@@ -376,10 +376,11 @@ file as a Base64 string and directly add it to an amalgamated script.
0) Download and extract the ChakraCore release ZIP. Copy the binary (`bin/ch`)
to your project folder.
-:::note pass
+:::tip pass
The ["Integration Example"](#integration-example) also builds the `ch` binary!
-It will typically be placed in the `ChakraCore/out/Test/` folder.
+It will typically be placed in the `ChakraCore/out/Test/` folder on Linux/macOS
+or `ChakraCore\Build\VcBuild\bin\x64_debug\` on x64 Windows.
:::
diff --git a/docz/docs/03-demos/42-engines/21-boa.md b/docz/docs/03-demos/42-engines/21-boa.md
index 3dca1db..29c0dca 100644
--- a/docz/docs/03-demos/42-engines/21-boa.md
+++ b/docz/docs/03-demos/42-engines/21-boa.md
@@ -14,14 +14,17 @@ more performant engine like [`v8`](/docs/demos/engines/v8#rust)
:::
-Boa is a pure-Rust JavaScript engine.
+[Boa](https://boajs.dev/) is a JavaScript engine written in Rust.
-The [SheetJS Standalone scripts](/docs/getting-started/installation/standalone)
-can be parsed and evaluated in a Boa context.
+[SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing
+data from spreadsheets.
+
+The ["Complete Example"](#integration-example) section creates a command-line
+tool for reading data from spreadsheets and generating CSV rows.
## Integration Details
-_Initialize Engine_
+### Initialize Boa
A JS context can be constructed in one line:
@@ -48,7 +51,10 @@ fn eval_code(c: &mut Context, code: &str) -> Result {
}
```
-_Load SheetJS Scripts_
+### Load SheetJS Scripts
+
+The [SheetJS Standalone scripts](/docs/getting-started/installation/standalone)
+can be parsed and evaluated in a Boa context.
Boa provides a special helper to read source code from a path:
@@ -116,7 +122,7 @@ This demo was tested in the following deployments:
|:-------------|:-----------|
| `darwin-x64` | 2023-08-31 |
| `darwin-arm` | 2023-10-20 |
-| `win10-x64` | 2023-08-31 |
+| `win10-x64` | 2023-10-28 |
| `win11-arm` | 2023-09-26 |
| `linux-x64` | 2023-10-11 |
| `linux-arm` | 2023-08-30 |