forked from sheetjs/docs.sheetjs.com
		
	ARM64 Engine demo refresh
This commit is contained in:
		
							parent
							
								
									7f86e0b603
								
							
						
					
					
						commit
						f0e5193b74
					
				| @ -1,10 +1,6 @@ | ||||
| <?xml version="1.0"?> | ||||
| <?mso-application progid="Excel.Sheet"?> | ||||
| <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" | ||||
|  xmlns:o="urn:schemas-microsoft-com:office:office" | ||||
|  xmlns:x="urn:schemas-microsoft-com:office:excel" | ||||
|  xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" | ||||
|  xmlns:html="http://www.w3.org/TR/REC-html40"> | ||||
| <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> | ||||
|  <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> | ||||
|   <WindowHeight>10620</WindowHeight> | ||||
|   <WindowWidth>11020</WindowWidth> | ||||
| @ -24,21 +20,21 @@ | ||||
|    <Protection/> | ||||
|   </Style> | ||||
|   <Style ss:ID="s16"> | ||||
|    <Font ss:FontName="Arial" x:Family="Swiss" ss:Size="12" ss:Color="#1C1E21"/> | ||||
|    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#1C1E21"/> | ||||
|   </Style> | ||||
|   <Style ss:ID="s17"> | ||||
|    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#000000" | ||||
|     ss:Bold="1"/> | ||||
|    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#000000" ss:Bold="1"/> | ||||
|   </Style> | ||||
|   <Style ss:ID="s19"> | ||||
|    <Alignment ss:Horizontal="Center" ss:Vertical="Bottom"/> | ||||
|    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#000000" | ||||
|     ss:Bold="1"/> | ||||
|    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#000000" ss:Bold="1"/> | ||||
|   </Style> | ||||
|   <Style ss:ID="s20"> | ||||
|    <Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#467886" ss:Underline="Single"/> | ||||
|   </Style> | ||||
|  </Styles> | ||||
|  <Worksheet ss:Name="Engines"> | ||||
|   <Table ss:ExpandedColumnCount="8" ss:ExpandedRowCount="17" x:FullColumns="1" | ||||
|    x:FullRows="1" ss:DefaultColumnWidth="65" ss:DefaultRowHeight="16"> | ||||
|   <Table ss:ExpandedColumnCount="8" ss:ExpandedRowCount="17" x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="65" ss:DefaultRowHeight="16"> | ||||
|    <Column ss:Index="3" ss:Width="24"/> | ||||
|    <Column ss:Width="31"/> | ||||
|    <Column ss:Width="24"/> | ||||
| @ -62,7 +58,7 @@ | ||||
|     <Cell ss:StyleID="s17"><Data ss:Type="String">ARM</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/duktape#complete-example"><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">C</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -72,7 +68,7 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">V8</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/v8#complete-example"><Data ss:Type="String">V8</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">C++</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -82,27 +78,27 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Rhino</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/rhino#complete-example"><Data ss:Type="String">Rhino</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Java</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">JSC</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/jsc#complete-example"><Data ss:Type="String">JSC</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">C++</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Jint</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/jint#integration-example"><Data ss:Type="String">Jint</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">C#</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -112,7 +108,7 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Goja</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/goja#complete-example"><Data ss:Type="String">Goja</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Go</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -122,17 +118,17 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Nashorn</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/nashorn#complete-example"><Data ss:Type="String">Nashorn</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Java</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">QuickJS</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/quickjs#integration-example"><Data ss:Type="String">QuickJS</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">C</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -142,7 +138,7 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Hermes</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/hermes#integration-example"><Data ss:Type="String">Hermes</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">C++</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -152,7 +148,7 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">ChakraCore</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/chakra#integration-example"><Data ss:Type="String">ChakraCore</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">C++</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -162,7 +158,7 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String"></Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Boa</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/boa#complete-example"><Data ss:Type="String">Boa</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Rust</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -172,17 +168,17 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">JE</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/perl#complete-example"><Data ss:Type="String">JE</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Perl</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">JerryScript</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/jerryscript#integration-example"><Data ss:Type="String">JerryScript</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">C</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -192,24 +188,24 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">GraalJS</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/graaljs#complete-example"><Data ss:Type="String">GraalJS</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Java</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">MuJS</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/mujs#integration-example"><Data ss:Type="String">MuJS</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">C</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|   </Table> | ||||
|   <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> | ||||
| @ -238,8 +234,7 @@ | ||||
|   </WorksheetOptions> | ||||
|  </Worksheet> | ||||
|  <Worksheet ss:Name="Bindings"> | ||||
|   <Table ss:ExpandedColumnCount="8" ss:ExpandedRowCount="12" x:FullColumns="1" | ||||
|    x:FullRows="1" ss:DefaultColumnWidth="65" ss:DefaultRowHeight="16"> | ||||
|   <Table ss:ExpandedColumnCount="8" ss:ExpandedRowCount="12" x:FullColumns="1" x:FullRows="1" ss:DefaultColumnWidth="65" ss:DefaultRowHeight="16"> | ||||
|    <Column ss:Index="3" ss:Width="24"/> | ||||
|    <Column ss:Width="31"/> | ||||
|    <Column ss:Width="24"/> | ||||
| @ -263,47 +258,47 @@ | ||||
|     <Cell ss:StyleID="s17"><Data ss:Type="String">ARM</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/duktape#perl"><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Perl</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/duktape#php"><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">PHP</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/duktape#python"><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Python</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/duktape#zig"><Data ss:Type="String">Duktape</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Zig</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">V8</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/v8#rust"><Data ss:Type="String">V8</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Rust</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -313,7 +308,7 @@ | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">JSC</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/jsc#swift"><Data ss:Type="String">JSC</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Swift</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
| @ -323,7 +318,7 @@ | ||||
|     <Cell ss:StyleID="s16"/> | ||||
|    </Row> | ||||
|    <Row> | ||||
|     <Cell><Data ss:Type="String">ExecJS</Data></Cell> | ||||
|     <Cell ss:StyleID="s20" ss:HRef="/docs/demos/engines/rb#complete-example"><Data ss:Type="String">ExecJS</Data></Cell> | ||||
|     <Cell><Data ss:Type="String">Ruby</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|     <Cell ss:StyleID="s16"><Data ss:Type="String">✔</Data></Cell> | ||||
|  | ||||
| @ -193,7 +193,7 @@ This demo was tested in the following environments: | ||||
| | OS and Version | Architecture | Server   | Client   | Date       | | ||||
| |:---------------|:-------------|:---------|:---------|:-----------| | ||||
| | macOS 14.4     | `darwin-x64` | `5.0.0`  | `5.0.1`  | 2024-03-15 | | ||||
| | macOS 14.0     | `darwin-arm` | `4.14.1` | `3.12.0` | 2023-10-18 | | ||||
| | macOS 14.5     | `darwin-arm` | `5.1.0`  | `5.1.0`  | 2024-05-25 | | ||||
| | Windows 10     | `win10-x64`  | `5.1.0`  | `5.1.0`  | 2024-03-24 | | ||||
| | Windows 11     | `win11-arm`  | `4.14.1` | `3.12.0` | 2023-12-01 | | ||||
| | Linux (HoloOS) | `linux-x64`  | `5.0.0`  | `5.0.1`  | 2024-03-21 | | ||||
| @ -336,7 +336,11 @@ npx @neutralinojs/neu run | ||||
| })(); | ||||
| ``` | ||||
| 
 | ||||
| 9) Close the app and relaunch the app with `npx @neutralinojs/neu run` | ||||
| 9) Close the app. Run the app again: | ||||
| 
 | ||||
| ```bash | ||||
| npx @neutralinojs/neu run | ||||
| ``` | ||||
| 
 | ||||
| When the app loads, a table should show in the main screen. | ||||
| 
 | ||||
| @ -371,7 +375,11 @@ async function exportData() { | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| 11) Close the app and re-run with `npx @neutralinojs/neu run` | ||||
| 11) Close the app. Run the app again: | ||||
| 
 | ||||
| ```bash | ||||
| npx @neutralinojs/neu run | ||||
| ``` | ||||
| 
 | ||||
| When the app loads, click the "Import File" button and select a spreadsheet to | ||||
| see the contents. | ||||
| @ -398,8 +406,13 @@ save as `SheetJSNeu` will not automatically add the `.xlsx` extension! | ||||
| npx @neutralinojs/neu build | ||||
| ``` | ||||
| 
 | ||||
| Platform-specific programs will be created in the `dist` folder. For example, | ||||
| the `darwin-arm` program will be `./dist/sheetjs-neu/sheetjs-neu-mac_arm64` | ||||
| Platform-specific programs will be created in the `dist` folder: | ||||
| 
 | ||||
| | Platform     | Path to binary                             | | ||||
| |:-------------|:-------------------------------------------| | ||||
| | `darwin-arm` | `./dist/sheetjs-neu/sheetjs-neu-mac_arm64` | | ||||
| 
 | ||||
| Run the generated app and confirm that Presidential data is displayed. | ||||
| 
 | ||||
| [^1]: See [`nativeAllowList`](https://neutralino.js.org/docs/configuration/neutralino.config.json#nativeallowlist-string) in the NeutralinoJS documentation | ||||
| [^2]: See [`os.showOpenDialog`](https://neutralino.js.org/docs/api/os#osshowopendialogtitle-options) in the NeutralinoJS documentation | ||||
|  | ||||
| @ -48,7 +48,7 @@ This demo was tested in the following environments: | ||||
| |:---------------|:-------------|:------------|:-----------| | ||||
| | Windows 10     | `win10-x64`  | `v0.73.11`  | 2024-03-24 | | ||||
| | Windows 11     | `win11-x64`  | `v0.72.12`  | 2023-10-14 | | ||||
| | Windows 11     | `win11-arm`  | `v0.72.20`  | 2023-12-01 | | ||||
| | Windows 11     | `win11-arm`  | `v0.74.5`   | 2024-05-25 | | ||||
| | MacOS 14.4     | `darwin-x64` | `v0.73.22`  | 2024-03-24 | | ||||
| | MacOS 14.1.2   | `darwin-arm` | `v0.72.11`  | 2023-12-01 | | ||||
| 
 | ||||
| @ -424,10 +424,10 @@ setup instructions" to find instructions for manual installation. | ||||
| 
 | ||||
| ### Project Setup | ||||
| 
 | ||||
| 1) Create a new project using React Native `0.73.6`: | ||||
| 1) Create a new project using React Native `0.74.1`: | ||||
| 
 | ||||
| ```bash | ||||
| npx react-native init SheetJSWin --template react-native@0.73.6 | ||||
| npx react-native init SheetJSWin --template react-native@0.74.1 | ||||
| cd SheetJSWin | ||||
| ``` | ||||
| 
 | ||||
|  | ||||
| @ -102,10 +102,10 @@ This demo was last tested in the following deployments: | ||||
| | `darwin-x64` | `1.43.1` | 2024-05-08 | | ||||
| | `darwin-arm` | `1.43.6` | 2024-05-23 | | ||||
| | `win10-x64`  | `1.41.3` | 2024-03-24 | | ||||
| | `win11-x64`  | `1.37.2` | 2023-10-14 | | ||||
| | `win11-arm`  | `1.38.4` | 2023-12-01 | | ||||
| | `win11-x64`  | `1.43.6` | 2024-05-25 | | ||||
| | `win11-arm`  | `1.43.6` | 2024-05-25 | | ||||
| | `linux-x64`  | `1.41.3` | 2024-03-18 | | ||||
| | `linux-arm`  | `1.38.4` | 2023-12-01 | | ||||
| | `linux-arm`  | `1.43.6` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -90,7 +90,7 @@ This demo was tested in the following deployments: | ||||
| | Architecture | Version      | NodeJS    | Source    | Date       | | ||||
| |:-------------|:-------------|:----------|:----------|:-----------| | ||||
| | `darwin-x64` | `4.0.0-rc.4` | `14.15.3` | Pre-built | 2024-03-15 | | ||||
| | `darwin-arm` | `4.0.0-rc.2` | `18.18.0` | Compiled  | 2023-12-01 | | ||||
| | `darwin-arm` | `4.0.0-rc.6` | `18.20.3` | Compiled  | 2024-05-25 | | ||||
| | `win10-x64`  | `4.0.0-rc.4` | `14.15.3` | Pre-built | 2024-04-18 | | ||||
| | `win11-arm`  | `4.0.0-rc.2` | `20.10.0` | Compiled  | 2023-12-01 | | ||||
| | `linux-x64`  | `4.0.0-rc.4` | `14.15.3` | Pre-built | 2024-03-21 | | ||||
| @ -102,7 +102,7 @@ This demo was tested in the following deployments: | ||||
| | Architecture | Version | NodeJS   | Date       | | ||||
| |:-------------|:--------|:---------|:-----------| | ||||
| | `darwin-x64` | `5.8.1` | `18.5.0` | 2024-03-15 | | ||||
| | `darwin-arm` | `5.8.1` | `18.5.0` | 2023-12-01 | | ||||
| | `darwin-arm` | `5.8.1` | `18.5.0` | 2024-05-25 | | ||||
| | `win10-x64`  | `5.8.1` | `18.5.0` | 2024-04-18 | | ||||
| | `win11-arm`  | `5.8.1` | `18.5.0` | 2023-12-01 | | ||||
| | `linux-x64`  | `5.8.1` | `18.5.0` | 2024-03-21 | | ||||
| @ -114,7 +114,7 @@ This demo was tested in the following deployments: | ||||
| | Architecture | Version | NodeJS    | Date       | | ||||
| |:-------------|:--------|:----------|:-----------| | ||||
| | `darwin-x64` | `2.4.0` | `21.7.1`  | 2024-03-15 | | ||||
| | `darwin-arm` | `2.3.0` | `21.3.0`  | 2023-12-01 | | ||||
| | `darwin-arm` | `2.4.3` | `22.2.0`  | 2024-05-25 | | ||||
| | `win10-x64`  | `2.4.2` | `16.20.2` | 2024-04-18 | | ||||
| | `linux-x64`  | `2.4.0` | `21.7.1`  | 2024-03-21 | | ||||
| | `linux-arm`  | `2.3.0` | `21.3.0`  | 2023-12-01 | | ||||
| @ -372,7 +372,7 @@ This demo was last tested in the following deployments: | ||||
| | `darwin-x64` | `12.3.219.9`  | `0.88.0` | 2024-03-15 | | ||||
| | `darwin-arm` | `12.6.228.3`  | `0.92.0` | 2024-05-23 | | ||||
| | `win10-x64`  | `12.3.219.9`  | `0.88.0` | 2024-03-24 | | ||||
| | `win11-x64`  | `11.8.172.13` | `0.79.2` | 2023-10-14 | | ||||
| | `win11-x64`  | `12.6.228.3`  | `0.92.0` | 2024-05-23 | | ||||
| | `linux-x64`  | `12.3.219.9`  | `0.88.0` | 2024-03-18 | | ||||
| | `linux-arm`  | `12.0.267.8`  | `0.82.0` | 2023-12-01 | | ||||
| 
 | ||||
|  | ||||
| @ -422,7 +422,7 @@ If the InDesign version does not support UXP, a tooltip shows a message: | ||||
| 
 | ||||
| > This file is not executable by any supported script language. | ||||
| 
 | ||||
| It is strongly recommended to upgrade to InDesign 2023. | ||||
| [ExtendScript](#extendscript) should be used when UXP is not supported. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -133,7 +133,7 @@ This demo was tested in the following deployments: | ||||
| | `darwin-x64` | `2.7.0` | 2024-04-04 | | ||||
| | `darwin-arm` | `2.7.0` | 2024-05-23 | | ||||
| | `win10-x64`  | `2.7.0` | 2024-03-27 | | ||||
| | `win11-arm`  | `2.7.0` | 2023-12-01 | | ||||
| | `win11-arm`  | `2.7.0` | 2024-05-25 | | ||||
| | `linux-x64`  | `2.7.0` | 2024-03-21 | | ||||
| | `linux-arm`  | `2.7.0` | 2024-05-23 | | ||||
| 
 | ||||
| @ -404,11 +404,12 @@ file, prints CSV rows from the first worksheet, and creates a XLSB workbook. | ||||
| 
 | ||||
| This demo was tested in the following deployments: | ||||
| 
 | ||||
| | Architecture | Version | PHP Version | Date       | | ||||
| |:-------------|:--------|:------------|:-----------| | ||||
| | `darwin-x64` | `2.7.0` | `8.3.4`     | 2024-03-15 | | ||||
| | `darwin-arm` | `2.7.0` | `8.3.2`     | 2024-02-13 | | ||||
| | `linux-x64`  | `2.7.0` | `8.2.7`     | 2024-03-21 | | ||||
| | Architecture | Version | PHP      | Date       | | ||||
| |:-------------|:--------|:---------|:-----------| | ||||
| | `darwin-x64` | `2.7.0` | `8.3.4`  | 2024-03-15 | | ||||
| | `darwin-arm` | `2.7.0` | `8.3.2`  | 2024-02-13 | | ||||
| | `linux-x64`  | `2.7.0` | `8.2.7`  | 2024-03-21 | | ||||
| | `linux-arm`  | `2.7.0` | `8.2.18` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -441,6 +442,13 @@ extension=ffi | ||||
| If this line is prefixed with a `;`, remove the semicolon. If this line does not | ||||
| appear in the file, add it to the end. | ||||
| 
 | ||||
| :::note pass | ||||
| 
 | ||||
| On Linux and macOS, the file may be owned by the `root` user. If writing the | ||||
| file fails with a normal user account, use `sudo` to launch the text editor. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| 3) Build the Duktape shared library: | ||||
| 
 | ||||
| ```bash | ||||
| @ -543,6 +551,7 @@ This demo was tested in the following deployments: | ||||
| | `darwin-x64` | `2.7.0` | `3.12.2` | 2024-03-15 | | ||||
| | `darwin-arm` | `2.7.0` | `3.11.7` | 2024-02-13 | | ||||
| | `linux-x64`  | `2.7.0` | `3.11.3` | 2024-03-21 | | ||||
| | `linux-arm`  | `2.7.0` | `3.11.2` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -634,6 +643,37 @@ python3 SheetJSDuk.py pres.numbers | ||||
| If the program succeeded, the CSV contents will be printed to console and the | ||||
| file `sheetjsw.xlsb` will be created.  That file can be opened with Excel. | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| In some tests, the command failed with an `OSError` message. | ||||
| 
 | ||||
| The fix is to explicitly add `./` to the `lib` variable in `SheetJSDuk.py`: | ||||
| 
 | ||||
| <Tabs groupId="triple"> | ||||
|   <TabItem value="darwin-x64" label="MacOS"> | ||||
| 
 | ||||
| The name of the library is `libduktape.207.20700.so`: | ||||
| 
 | ||||
| ```python title="SheetJSDuk.py (change highlighted line)" | ||||
| # highlight-next-line | ||||
| lib = "./libduktape.207.20700.so" | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
|   <TabItem value="linux-x64" label="Linux"> | ||||
| 
 | ||||
| The name of the library is `libduktape.so.207.20700`: | ||||
| 
 | ||||
| ```python title="SheetJSDuk.py (change highlighted line)" | ||||
| # highlight-next-line | ||||
| lib = "./libduktape.so.207.20700" | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| </Tabs> | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| ### Zig | ||||
| 
 | ||||
| :::caution Zig support is considered experimental. | ||||
| @ -744,7 +784,9 @@ This demo was tested in the following deployments: | ||||
| | `darwin-x64` | `2.7.0` | `0.11.0` | 2024-03-10 | | ||||
| | `darwin-arm` | `2.7.0` | `0.12.0` | 2024-05-23 | | ||||
| | `win10-x64`  | `2.7.0` | `0.11.0` | 2024-03-10 | | ||||
| | `win11-arm`  | `2.7.0` | `0.12.0` | 2024-05-25 | | ||||
| | `linux-x64`  | `2.7.0` | `0.12.0` | 2024-04-25 | | ||||
| | `linux-arm`  | `2.7.0` | `0.12.0` | 2024-05-25 | | ||||
| 
 | ||||
| On Windows, due to incompatibilities between WSL and PowerShell, some commands | ||||
| must be run in WSL Bash. | ||||
| @ -764,7 +806,7 @@ project folder. | ||||
| <Tabs groupId="triple"> | ||||
|   <TabItem value="darwin-x64" label="MacOS"> | ||||
| 
 | ||||
| For Intel Mac: | ||||
| For X64 Mac: | ||||
| 
 | ||||
| ```bash | ||||
| curl -LO https://ziglang.org/download/0.12.0/zig-macos-x86_64-0.12.0.tar.xz | ||||
| @ -782,10 +824,20 @@ tar -xzf zig-macos-*.tar.xz | ||||
|   </TabItem> | ||||
|   <TabItem value="linux-x64" label="Linux"> | ||||
| 
 | ||||
| For X64 Linux: | ||||
| 
 | ||||
| ```bash | ||||
| curl -LO https://ziglang.org/download/0.12.0/zig-linux-x86_64-0.12.0.tar.xz | ||||
| xz -d zig-linux-x86_64-0.12.0.tar.xz | ||||
| tar -xf zig-linux-x86_64-0.12.0.tar | ||||
| xz -d zig-linux-*.tar.xz | ||||
| tar -xf zig-linux-*.tar | ||||
| ``` | ||||
| 
 | ||||
| For AArch64 Linux: | ||||
| 
 | ||||
| ```bash | ||||
| curl -LO https://ziglang.org/download/0.12.0/zig-linux-aarch64-0.12.0.tar.xz | ||||
| xz -d zig-linux-*.tar.xz | ||||
| tar -xf zig-linux-*.tar | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| @ -797,9 +849,18 @@ The following commands should be run within WSL bash. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| For X64 Windows: | ||||
| 
 | ||||
| ```bash | ||||
| curl -LO https://ziglang.org/download/0.12.0/zig-windows-x86_64-0.12.0.zip | ||||
| unzip zig-windows-x86_64-0.12.0.zip | ||||
| ``` | ||||
| 
 | ||||
| For ARM64 Windows: | ||||
| 
 | ||||
| ```bash | ||||
| curl -LO https://ziglang.org/download/0.12.0/zig-windows-aarch64-0.12.0.zip | ||||
| unzip zig-windows-aarch64-0.12.0.zip | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| @ -818,7 +879,7 @@ unzip zig-windows-x86_64-0.12.0.zip | ||||
|   <TabItem value="linux-x64" label="Linux"> | ||||
| 
 | ||||
| ```bash | ||||
| ./zig-linux-x86_64-0.12.0/zig init | ||||
| ./zig-*/zig init | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| @ -831,7 +892,7 @@ The following command should be run within Powershell. | ||||
| ::: | ||||
| 
 | ||||
| ```bash | ||||
| .\zig-windows-x86_64-0.12.0\zig.exe init | ||||
| .\zig-windows-*\zig.exe init | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| @ -902,7 +963,7 @@ curl -L -o src/main.zig https://docs.sheetjs.com/duk/main.zig | ||||
|   <TabItem value="linux-x64" label="Linux"> | ||||
| 
 | ||||
| ```bash | ||||
| ./zig-linux-x86_64-0.12.0/zig build run -- pres.numbers | ||||
| ./zig-*/zig build run -- pres.numbers | ||||
| ``` | ||||
| 
 | ||||
| :::caution pass | ||||
| @ -924,8 +985,10 @@ sudo pacman -Syu glibc linux-api-headers | ||||
|   </TabItem> | ||||
|   <TabItem value="win10-x64" label="Windows"> | ||||
| 
 | ||||
| This command should be run in PowerShell: | ||||
| 
 | ||||
| ```bash | ||||
| .\zig-windows-x86_64-0.12.0\zig.exe build run -- pres.numbers | ||||
| .\zig-windows-*\zig.exe build run -- pres.numbers | ||||
| ``` | ||||
| 
 | ||||
|   </TabItem> | ||||
| @ -956,6 +1019,7 @@ This demo was tested in the following deployments: | ||||
| | `darwin-x64` | `2.2.0` | 2024-03-15 | | ||||
| | `darwin-arm` | `2.2.0` | 2024-02-13 | | ||||
| | `linux-x64`  | `2.2.0` | 2024-03-21 | | ||||
| | `linux-arm`  | `2.2.0` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -125,10 +125,10 @@ This demo was tested in the following deployments: | ||||
| | V8 Version    | Platform     | OS Version    | Compiler         | Date       | | ||||
| |:--------------|:-------------|:--------------|:-----------------|:-----------| | ||||
| | `12.4.253`    | `darwin-x64` | macOS 14.4    | `clang 15.0.0`   | 2024-03-15 | | ||||
| | `12.1.283`    | `darwin-arm` | macOS 14.1.2  | `clang 15.0.0`   | 2023-12-01 | | ||||
| | `12.7.130`    | `darwin-arm` | macOS 14.5    | `clang 15.0.0`   | 2024-05-25 | | ||||
| | `12.5.48`     | `win10-x64`  | Windows 10    | `CL 19.39.33523` | 2024-03-24 | | ||||
| | `12.5.48`     | `linux-x64`  | HoloOS 3.5.17 | `gcc 13.1.1`     | 2024-03-21 | | ||||
| | `11.8.82`     | `linux-arm`  | Debian 12     | `gcc 12.2.0`     | 2023-12-01 | | ||||
| | `12.7.130`    | `linux-arm`  | Debian 12     | `gcc 12.2.0`     | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -162,7 +162,7 @@ cd /usr/local/lib | ||||
| 
 | ||||
| :::note pass | ||||
| 
 | ||||
| If this step throws a permission error, run: | ||||
| If this step throws a permission error, run the following commands: | ||||
| 
 | ||||
| ```bash | ||||
| sudo mkdir -p /usr/local/lib | ||||
| @ -226,7 +226,7 @@ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git | ||||
| 
 | ||||
| :::note pass | ||||
| 
 | ||||
| If this step throws a permission error, run: | ||||
| If this step throws a permission error, run the following commands and retry: | ||||
| 
 | ||||
| ```bash | ||||
| sudo mkdir -p /usr/local/lib | ||||
| @ -406,11 +406,11 @@ The recommended fix is to delete the referenced folder and re-run `gclient sync` | ||||
| </Tabs> | ||||
| 
 | ||||
| 
 | ||||
| 5) Checkout the desired version. The following command pulls `12.5.48`: | ||||
| 5) Checkout the desired version. The following command pulls `12.7.130`: | ||||
| 
 | ||||
| 
 | ||||
| ```bash | ||||
| git checkout tags/12.5.48 -b sample | ||||
| git checkout tags/12.7.130 -b sample | ||||
| ``` | ||||
| 
 | ||||
| :::caution pass | ||||
| @ -418,14 +418,14 @@ git checkout tags/12.5.48 -b sample | ||||
| The official documentation recommends: | ||||
| 
 | ||||
| ```bash | ||||
| git checkout refs/tags/12.5.48 -b sample -t | ||||
| git checkout refs/tags/12.7.130 -b sample -t | ||||
| ``` | ||||
| 
 | ||||
| This command failed in local testing: | ||||
| 
 | ||||
| ``` | ||||
| E:\v8\v8>git checkout refs/tags/12.5.48 -b sample -t | ||||
| fatal: cannot set up tracking information; starting point 'refs/tags/12.5.48' is not a branch | ||||
| E:\v8\v8>git checkout refs/tags/12.7.130 -b sample -t | ||||
| fatal: cannot set up tracking information; starting point 'refs/tags/12.7.130' is not a branch | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| @ -502,6 +502,37 @@ Run the build: | ||||
| ninja -C out.gn/arm64.release.sample v8_monolith | ||||
| ``` | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| When this demo was last tested, an assertion failed: | ||||
| 
 | ||||
| ``` | ||||
| ../../src/base/small-vector.h: In instantiation of ‘class v8::base::SmallVector<std::pair<const v8::internal::compiler::turboshaft::PhiOp*, const v8::internal::compiler::turboshaft::OpIndex>, 16>’: | ||||
| ../../src/compiler/turboshaft/loop-unrolling-reducer.h:577:11:   required from here | ||||
| ../../src/base/macros.h:215:55: error: static assertion failed: T should be trivially copyable | ||||
|   215 |   static_assert(::v8::base::is_trivially_copyable<T>::value, \ | ||||
|       |                                                       ^~~~~ | ||||
| ../../src/base/small-vector.h:25:3: note: in expansion of macro ‘ASSERT_TRIVIALLY_COPYABLE’ | ||||
|    25 |   ASSERT_TRIVIALLY_COPYABLE(T); | ||||
|       |   ^~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
| ``` | ||||
| 
 | ||||
| The build passed after disabling the assertions: | ||||
| 
 | ||||
| ```cpp title="src/base/small-vector.h (edit highlighted lines)" | ||||
|  class SmallVector { | ||||
|    // Currently only support trivially copyable and trivially destructible data | ||||
|    // types, as it uses memcpy to copy elements and never calls destructors. | ||||
|    // highlight-start | ||||
|    //ASSERT_TRIVIALLY_COPYABLE(T); | ||||
|    //static_assert(std::is_trivially_destructible<T>::value); | ||||
|    // highlight-end | ||||
| 
 | ||||
|   public: | ||||
|    static constexpr size_t kInlineSize = kSize; | ||||
| ``` | ||||
| ::: | ||||
| 
 | ||||
|   </TabItem> | ||||
|   <TabItem value="win10-x64" label="Windows"> | ||||
| 
 | ||||
| @ -587,11 +618,24 @@ ld: multiple errors: unknown file type in '/Users/test/dev/v8/v8/out.gn/x64.rele | ||||
| 
 | ||||
| ```bash | ||||
| g++ -I. -Iinclude samples/hello-world.cc -o hello_world -fno-rtti -lv8_monolith \ | ||||
|     -lv8_libbase -lv8_libplatform -ldl -Lout.gn/arm64.release.sample/obj/ -pthread \ | ||||
|     -ldl -Lout.gn/arm64.release.sample/obj/ -pthread \ | ||||
|     -std=c++17 -DV8_COMPRESS_POINTERS=1 -DV8_ENABLE_SANDBOX | ||||
| ./hello_world | ||||
| ``` | ||||
| 
 | ||||
| :::info pass | ||||
| 
 | ||||
| In older V8 versions, the flags `-lv8_libbase -lv8_libplatform` were required. | ||||
| 
 | ||||
| Linking against `libv8_libbase` or `libv8_libplatform` in V8 version `12.4.253` | ||||
| elicited linker errors: | ||||
| 
 | ||||
| ``` | ||||
| ld: multiple errors: unknown file type in '/Users/test/dev/v8/v8/out.gn/x64.release.sample/obj/libv8_libplatform.a'; unknown file type in '/Users/test/dev/v8/v8/out.gn/x64.release.sample/obj/libv8_libbase.a' | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|   </TabItem> | ||||
|   <TabItem value="linux-x64" label="Linux x64"> | ||||
| 
 | ||||
| @ -864,10 +908,10 @@ This demo was last tested in the following deployments: | ||||
| | Architecture | V8 Crate | Date       | | ||||
| |:-------------|:---------|:-----------| | ||||
| | `darwin-x64` | `0.89.0` | 2024-04-04 | | ||||
| | `darwin-arm` | `0.82.0` | 2023-12-01 | | ||||
| | `darwin-arm` | `0.92.0` | 2024-05-25 | | ||||
| | `win10-x64`  | `0.89.0` | 2024-03-24 | | ||||
| | `linux-x64`  | `0.91.0` | 2024-04-25 | | ||||
| | `linux-arm`  | `0.82.0` | 2023-12-01 | | ||||
| | `linux-arm`  | `0.92.0` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| --- | ||||
| title: Java + Rhino | ||||
| title: Taming Data with Rhino | ||||
| sidebar_label: Java + Rhino | ||||
| pagination_prev: demos/bigdata/index | ||||
| pagination_next: solutions/input | ||||
| --- | ||||
| @ -11,11 +12,11 @@ import CodeBlock from '@theme/CodeBlock'; | ||||
| 
 | ||||
| Rhino is an ES3+ engine in Java. | ||||
| 
 | ||||
| The [SheetJS Standalone scripts](/docs/getting-started/installation/standalone) | ||||
| can be parsed and evaluated in a Rhino context. | ||||
| [SheetJS](https://sheetjs.com) is a JavaScript library for reading and writing | ||||
| data from spreadsheets. | ||||
| 
 | ||||
| This demo wraps workbooks and sheets into separate Java classes.  The final | ||||
| result is a JAR. | ||||
| The ["Complete Example"](#complete-example) section includes a complete Java | ||||
| command-line tool for reading data from spreadsheets and printing CSV rows. | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| @ -30,8 +31,19 @@ This demo was tested in the following deployments: | ||||
| | OpenJDK | Rhino    | Date       | | ||||
| |:--------|:---------|:-----------| | ||||
| | 22      | `1.7.14` | 2024-04-04 | | ||||
| | 21.0.2  | `1.7.14` | 2024-04-25 | | ||||
| | 17.0.10 | `1.7.14` | 2024-03-25 | | ||||
| | 21.0.3  | `1.7.15` | 2024-05-24 | | ||||
| | 20.0.2  | `1.7.15` | 2024-05-25 | | ||||
| | 19.0.2  | `1.7.15` | 2024-05-25 | | ||||
| | 18.0.2  | `1.7.15` | 2024-05-25 | | ||||
| | 17.0.11 | `1.7.15` | 2024-05-25 | | ||||
| | 16.0.1  | `1.7.15` | 2024-05-25 | | ||||
| | 15.0.10 | `1.7.15` | 2024-05-25 | | ||||
| | 14.0.2  | `1.7.15` | 2024-05-25 | | ||||
| | 13.0.14 | `1.7.15` | 2024-05-25 | | ||||
| | 12.0.2  | `1.7.15` | 2024-05-25 | | ||||
| | 11.0.22 | `1.7.15` | 2024-05-25 | | ||||
| | 10.0.2  | `1.7.15` | 2024-05-25 | | ||||
| | 9       | `1.7.15` | 2024-05-25 | | ||||
| | 1.8.0   | `1.7.14` | 2024-04-25 | | ||||
| 
 | ||||
| ::: | ||||
| @ -49,6 +61,9 @@ context.setOptimizationLevel(-1); | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| The [SheetJS Standalone scripts](/docs/getting-started/installation/standalone) | ||||
| can be parsed and evaluated in a Rhino context. | ||||
| 
 | ||||
| Binary strings can be passed back and forth. | ||||
| 
 | ||||
| _Initialize Rhino_ | ||||
| @ -144,7 +159,7 @@ cd sheetjs-java | ||||
| 2) Download the Rhino JAR and rename to `rhino.jar`: | ||||
| 
 | ||||
| ``` | ||||
| curl -L -o rhino.jar https://repo1.maven.org/maven2/org/mozilla/rhino/1.7.14/rhino-1.7.14.jar | ||||
| curl -L -o rhino.jar https://repo1.maven.org/maven2/org/mozilla/rhino/1.7.15/rhino-1.7.15.jar | ||||
| ``` | ||||
| 
 | ||||
| 3) Download the SheetJS Standalone script and the test file. Save both files in | ||||
|  | ||||
| @ -9,6 +9,9 @@ import Tabs from '@theme/Tabs'; | ||||
| import TabItem from '@theme/TabItem'; | ||||
| import CodeBlock from '@theme/CodeBlock'; | ||||
| 
 | ||||
| export const r = {style: {color:"red"}}; | ||||
| export const B = {style: {fontWeight:"bold"}}; | ||||
| 
 | ||||
| [JavaScriptCore](https://developer.apple.com/documentation/javascriptcore) (JSC) | ||||
| is the JavaScript engine powering the Safari web browser. | ||||
| 
 | ||||
| @ -389,6 +392,7 @@ This demo was tested in the following environments: | ||||
| | `darwin-x64` | `7618.1.15.14.7` | 2024-04-24 | | ||||
| | `darwin-arm` | `7618.2.12.11.7` | 2024-05-24 | | ||||
| | `linux-x64`  | `7618.1.15.14.7` | 2024-04-24 | | ||||
| | `linux-arm`  | `7618.2.12.11.7` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -503,10 +507,50 @@ env CFLAGS="-Wno-error=dangling-reference -Wno-dangling-reference" CXXFLAGS="-Wn | ||||
| cd .. | ||||
| ``` | ||||
| 
 | ||||
| :::danger pass | ||||
| :::caution pass | ||||
| 
 | ||||
| When this was last tested on the Steam Deck, the build ran for 24 minutes! | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| :::danger pass | ||||
| 
 | ||||
| When this demo was last tested on ARM64, there was a dangling pointer error: | ||||
| 
 | ||||
| <pre> | ||||
| <span {...B}>WebKitBuild/JSCOnly/Release/WTF/Headers/wtf/SentinelLinkedList.h:61:55: <span {...r}>error:</span></span> storing the address of local variable <span {...B}>‘toBeRemoved’</span> in <span {...B}>‘{"*"}MEM[(struct BasicRawSentinelNode {"*"} const &)this_4(D) + 96].WTF::BasicRawSentinelNode<JSC::CallLinkInfoBase>::m_next’</span> [<span style={{...r.style,...B.style}}>-Werror=dangling-pointer=</span>] | ||||
| {"   61 |"}     void setNext(BasicRawSentinelNode* next) {"{"} <span style={{...r.style,...B.style}}>m_next = next</span>; {"}"} | ||||
| {"      |"}                                                <span {...r}>~~~~~~~^~~~~~</span> | ||||
| </pre> | ||||
| 
 | ||||
| The error can be suppressed with a preprocessor pragma: | ||||
| 
 | ||||
| ```cpp title="WebKitBuild/JSCOnly/Release/WTF/Headers/wtf/SentinelLinkedList.h (add highlighted lines)" | ||||
|     BasicRawSentinelNode() = default; | ||||
| 
 | ||||
| // highlight-start | ||||
| #pragma GCC diagnostic push | ||||
| #pragma GCC diagnostic ignored "-Wdangling-pointer" | ||||
| // highlight-end | ||||
| 
 | ||||
|     void setPrev(BasicRawSentinelNode* prev) { m_prev = prev; } | ||||
|     void setNext(BasicRawSentinelNode* next) { m_next = next; } | ||||
| 
 | ||||
| // highlight-next-line | ||||
| #pragma GCC diagnostic pop | ||||
| 
 | ||||
| 
 | ||||
|     T* prev() const { return static_cast<T*>(PtrTraits::unwrap(m_prev)); } | ||||
| ``` | ||||
| 
 | ||||
| After patching the header, JSC must be built without WebAssembly or JIT support: | ||||
| 
 | ||||
| ```bash | ||||
| cd WebKit-WebKit-7618.2.12.11.7 | ||||
| env CFLAGS="-Wno-error=dangling-reference -Wno-dangling-reference" CXXFLAGS="-Wno-error=dangling-reference -Wno-dangling-reference" Tools/Scripts/build-webkit --jsc-only --cmakeargs="-Wno-error -DENABLE_STATIC_JSC=ON -DUSE_THIN_ARCHIVES=OFF -DCMAKE_C_FLAGS=\"-Wno-error -Wno-dangling-reference\" -DCMAKE_CXX_FLAGS=-Wno-error -Wno-dangling-reference"  --make-args="-j1 -Wno-error -Wno-error=dangling-reference" -j1 --no-jit --no-webassembly | ||||
| cd .. | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|   </TabItem> | ||||
|  | ||||
| @ -161,14 +161,14 @@ System.IO.File.WriteAllBytes("SheetJSJint.xlsb", outfile); | ||||
| 
 | ||||
| This demo was tested in the following deployments: | ||||
| 
 | ||||
| | Architecture | Jint Version      | Date       | | ||||
| |:-------------|:------------------|:-----------| | ||||
| | `darwin-x64` | `3.0.1`           | 2024-03-15 | | ||||
| | `darwin-arm` | `3.0.0-beta-2056` | 2023-12-01 | | ||||
| | `win10-x64`  | `3.1.0`           | 2024-04-17 | | ||||
| | `win11-arm`  | `3.0.0-beta-2056` | 2023-12-01 | | ||||
| | `linux-x64`  | `3.1.0`           | 2024-04-25 | | ||||
| | `linux-arm`  | `3.0.0-beta-2056` | 2023-12-01 | | ||||
| | Architecture | Jint    | Date       | | ||||
| |:-------------|:--------|:-----------| | ||||
| | `darwin-x64` | `3.0.1` | 2024-03-15 | | ||||
| | `darwin-arm` | `3.1.2` | 2024-05-25 | | ||||
| | `win10-x64`  | `3.1.0` | 2024-04-17 | | ||||
| | `win11-arm`  | `3.1.2` | 2024-05-25 | | ||||
| | `linux-x64`  | `3.1.0` | 2024-04-25 | | ||||
| | `linux-arm`  | `3.1.2` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| @ -248,7 +248,7 @@ dotnet run | ||||
| 
 | ||||
| ```bash | ||||
| dotnet nuget add source https://www.myget.org/F/jint/api/v3/index.json | ||||
| dotnet add package Jint --version 3.1.0 | ||||
| dotnet add package Jint --version 3.1.2 | ||||
| ``` | ||||
| 
 | ||||
| To verify Jint is installed, replace `Program.cs` with the following: | ||||
|  | ||||
| @ -97,9 +97,9 @@ This demo was tested in the following deployments: | ||||
| | `darwin-x64` | `e401ed4`  | `1.21.7`   | 2024-04-25 | | ||||
| | `darwin-arm` | `ccbae20`  | `1.22.3`   | 2024-05-23 | | ||||
| | `win10-x64`  | `e401ed4`  | `1.22.1`   | 2024-03-24 | | ||||
| | `win11-arm`  | `b396bb4`  | `1.21.1`   | 2023-12-01 | | ||||
| | `win11-arm`  | `ccbae20`  | `1.22.3`   | 2024-05-25 | | ||||
| | `linux-x64`  | `e401ed4`  | `1.22.1`   | 2024-03-21 | | ||||
| | `linux-arm`  | `b396bb4`  | `1.21.4`   | 2023-12-01 | | ||||
| | `linux-arm`  | `ccbae20`  | `1.19.8`   | 2024-05-25 | | ||||
| 
 | ||||
| At the time of writing, Goja did not have proper version numbers. Versions are | ||||
| identified by Git commit hashes. | ||||
|  | ||||
| @ -106,7 +106,7 @@ This demo was tested in the following deployments: | ||||
| | OpenJDK | Nashorn         | Date       | | ||||
| |:--------|:----------------|:-----------| | ||||
| | 22      | 15.4 standalone | 2024-03-23 | | ||||
| | 21.0.2  | 15.4 standalone | 2024-03-23 | | ||||
| | 21.0.3  | 15.4 standalone | 2024-05-24 | | ||||
| | 20.0.2  | 15.4 standalone | 2024-03-23 | | ||||
| | 19.0.2  | 15.4 standalone | 2024-03-23 | | ||||
| | 18.0.2  | 15.4 standalone | 2024-03-23 | | ||||
|  | ||||
| @ -266,9 +266,9 @@ This demo was tested in the following deployments: | ||||
| | `darwin-x64` | `6a89d7c`  | 2024-03-15 | | ||||
| | `darwin-arm` | `d378a9f`  | 2024-05-23 | | ||||
| | `win10-x64`  | `9e561d5`  | 2024-03-04 | | ||||
| | `win11-arm`  | `03cc5ec`  | 2023-12-01 | | ||||
| | `win11-arm`  | `d378a9f`  | 2024-05-25 | | ||||
| | `linux-x64`  | `3b45d15`  | 2024-04-25 | | ||||
| | `linux-arm`  | `03cc5ec`  | 2023-12-01 | | ||||
| | `linux-arm`  | `d378a9f`  | 2024-05-25 | | ||||
| 
 | ||||
| When the demo was tested, `d378a9f` was the HEAD commit on the `master` branch. | ||||
| 
 | ||||
|  | ||||
| @ -367,7 +367,7 @@ This demo was tested in the following deployments: | ||||
| | `darwin-x64` | `d070c74`  | 2024-04-25 | | ||||
| | `darwin-arm` | `d070c74`  | 2024-05-23 | | ||||
| | `linux-x64`  | `d217af8`  | 2024-03-21 | | ||||
| | `linux-arm`  | `84732b3`  | 2023-12-01 | | ||||
| | `linux-arm`  | `d070c74`  | 2024-05-25 | | ||||
| 
 | ||||
| The main Hermes source tree does not have Windows support. The `hermes-windows` | ||||
| fork, which powers React Native for Windows, does have built-in support[^5] | ||||
| @ -405,6 +405,12 @@ On Debian and Ubuntu: | ||||
| sudo apt install cmake git ninja-build libicu-dev python zip libreadline-dev | ||||
| ``` | ||||
| 
 | ||||
| :::note pass | ||||
| 
 | ||||
| When using virtual machines, Linux builds require at least 8 GB memory. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| </details> | ||||
| 
 | ||||
| 1) Make a project directory: | ||||
|  | ||||
| @ -71,13 +71,15 @@ 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` | 2023-12-01 | | ||||
| | `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` | 2023-12-01 | | ||||
| | `win11-arm`  | `3.0.2`  | `2.9.1` | 2024-05-25 | | ||||
| | `linux-x64`  | `3.0.5`  | `2.9.1` | 2024-03-21 | | ||||
| | `linux-arm`  | `2.7.4`  | `2.9.1` | 2023-12-01 | | ||||
| | `linux-arm`  | `3.1.2`  | `2.9.1` | 2024-05-25 | | ||||
| 
 | ||||
| **Note: The Windows 11 ARM64 test used the Ruby version that ships with WSL.** | ||||
| When the demo was last tested, there was no official Ruby release for Windows | ||||
| on ARM. The `win11-arm` test was run in WSL. The `win10-x64` test used the | ||||
| official Ruby for Windows x64 release. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -123,9 +123,21 @@ This demo was tested in the following deployments: | ||||
| | `darwin-x64` | `0.18.0` | 2024-04-25 | | ||||
| | `darwin-arm` | `0.18.0` | 2024-05-23 | | ||||
| | `win10-x64`  | `0.18.0` | 2024-04-25 | | ||||
| | `win11-arm`  | `0.17.3` | 2023-12-01 | | ||||
| | `win11-arm`  | `0.18.0` | 2024-05-25 | | ||||
| | `linux-x64`  | `0.18.0` | 2024-03-21 | | ||||
| | `linux-arm`  | `0.17.3` | 2023-12-01 | | ||||
| | `linux-arm`  | `0.18.0` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| 0) Install Rust. | ||||
| 
 | ||||
| :::caution pass | ||||
| 
 | ||||
| Boa `0.18.0` requires Rust version `1.67` or later. | ||||
| 
 | ||||
| Debian 12 (Bullseye) ships with Rust version `1.63.0`. | ||||
| 
 | ||||
| It is strongly recommended to install Rust from the official distribution. | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -102,14 +102,21 @@ write_file("SheetJE.fods", $fods); | ||||
| 
 | ||||
| :::note Tested Deployments | ||||
| 
 | ||||
| This demo was tested on 2024-02-13 against JE 0.066 | ||||
| This demo was tested in the following deployments: | ||||
| 
 | ||||
| | Architecture | Version | Date       | | ||||
| |:-------------|:--------|:-----------| | ||||
| | `darwin-x64` | `0.066` | 2024-02-13 | | ||||
| | `darwin-arm` | `0.066` | 2024-05-25 | | ||||
| | `linux-x64`  | `0.066` | 2024-02-13 | | ||||
| | `linux-arm`  | `0.066` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| 1) Install `JE` through CPAN: | ||||
| 1) Install `JE` and `File::Slurp` through CPAN: | ||||
| 
 | ||||
| ```bash | ||||
| cpan install JE | ||||
| cpan install JE File::Slurp | ||||
| ``` | ||||
| 
 | ||||
| 2) Download the [ExtendScript build](/docs/getting-started/installation/extendscript): | ||||
|  | ||||
| @ -36,12 +36,12 @@ This demo was tested in the following environments: | ||||
| 
 | ||||
| | Architecture | Commit    | Date       | | ||||
| |:-------------|:----------|:-----------| | ||||
| | `darwin-x64` | `47bd5d4` | 2024-04-25 | | ||||
| | `darwin-arm` | `ef4cb2b` | 2023-12-08 | | ||||
| | `darwin-x64` | `35465ed` | 2024-05-25 | | ||||
| | `darwin-arm` | `35465ed` | 2024-05-25 | | ||||
| | `win10-x64`  | `47bd5d4` | 2024-04-14 | | ||||
| | `win11-arm`  | `ef4cb2b` | 2023-12-08 | | ||||
| | `win11-arm`  | `35465ed` | 2024-05-25 | | ||||
| | `linux-x64`  | `cefd391` | 2024-03-21 | | ||||
| | `linux-arm`  | `ef4cb2b` | 2023-12-08 | | ||||
| | `linux-arm`  | `35465ed` | 2024-05-25 | | ||||
| 
 | ||||
| The Windows tests were run in WSL. | ||||
| 
 | ||||
| @ -413,17 +413,6 @@ as a Base64 string and directly add it to an amalgamated script. | ||||
| 
 | ||||
| 0) Build the library and command line tool with required options. | ||||
| 
 | ||||
| :::info pass | ||||
| 
 | ||||
| The "Integration Example" builds JerryScript. The CLI test must be run from the | ||||
| repo folder. | ||||
| 
 | ||||
| ```bash | ||||
| cd jerryscript | ||||
| ``` | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
| If the "Integration Example" was not tested, run the following commands: | ||||
| 
 | ||||
| ```bash | ||||
| @ -432,6 +421,12 @@ cd jerryscript | ||||
| python3 tools/build.py --error-messages=ON --logging=ON --mem-heap=8192 --cpointer-32bit=ON | ||||
| ``` | ||||
| 
 | ||||
| If the "Integration Example" was tested, enter the `jerryscript` folder: | ||||
| 
 | ||||
| ```bash | ||||
| cd jerryscript | ||||
| ``` | ||||
| 
 | ||||
| 1) Download the SheetJS Standalone script, shim script and test file. Move all | ||||
| three files to the `jerryscript` cloned repo directory: | ||||
| 
 | ||||
|  | ||||
| @ -54,9 +54,12 @@ This demo was tested in the following deployments: | ||||
| 
 | ||||
| | OpenJDK | GraalJS | Date       | | ||||
| |:--------|:--------|:-----------| | ||||
| | 22      | 24.0.0  | 2024-03-23 | | ||||
| | 21.0.2  | 24.0.0  | 2024-03-23 | | ||||
| | 17.0.8  | 24.0.1  | 2024-05-23 | | ||||
| | 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 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
| @ -322,9 +322,10 @@ This demo was tested in the following deployments: | ||||
| 
 | ||||
| | Architecture | Version | Date       | | ||||
| |:-------------|:--------|:-----------| | ||||
| | `darwin-x64` | `1.3.4` | 2024-04-21 | | ||||
| | `darwin-x64` | `1.3.4` | 2024-05-25 | | ||||
| | `darwin-arm` | `1.3.4` | 2024-05-23 | | ||||
| | `linux-x64`  | `1.3.4` | 2024-04-21 | | ||||
| | `linux-arm`  | `1.3.4` | 2024-05-25 | | ||||
| 
 | ||||
| ::: | ||||
| 
 | ||||
|  | ||||
										
											Binary file not shown.
										
									
								
							| Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 102 KiB | 
							
								
								
									
										17
									
								
								tests/engines-boa.sh
									
									
									
									
									
										Executable file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										17
									
								
								tests/engines-boa.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,17 @@ | ||||
| #!/bin/bash | ||||
| # https://docs.sheetjs.com/docs/demos/engines/boa | ||||
| 
 | ||||
| cd /tmp | ||||
| rm -rf sheetjs-boa | ||||
| 
 | ||||
| cargo new sheetjs-boa | ||||
| cd sheetjs-boa | ||||
| cargo run; echo $? | ||||
| 
 | ||||
| cargo add boa_engine | ||||
| 
 | ||||
| curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js | ||||
| curl -LO https://sheetjs.com/pres.xlsx | ||||
| 
 | ||||
| curl -L -o src/main.rs https://docs.sheetjs.com/boa/main.rs | ||||
| cargo run --release; echo $? | ||||
							
								
								
									
										13
									
								
								tests/engines-execjs.sh
									
									
									
									
									
										Executable file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										13
									
								
								tests/engines-execjs.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,13 @@ | ||||
| #!/bin/bash | ||||
| # https://docs.sheetjs.com/docs/demos/engines/rb | ||||
| cd /tmp | ||||
| rm -rf sheetjs-rb | ||||
| mkdir -p sheetjs-rb | ||||
| cd sheetjs-rb | ||||
| 
 | ||||
| curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js | ||||
| curl -LO https://sheetjs.com/pres.numbers | ||||
| 
 | ||||
| curl -LO https://docs.sheetjs.com/execjs/ExecSheetJS.rb | ||||
| 
 | ||||
| ruby ExecSheetJS.rb pres.numbers; echo $? | ||||
							
								
								
									
										20
									
								
								tests/engines-goja.sh
									
									
									
									
									
										Executable file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										20
									
								
								tests/engines-goja.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,20 @@ | ||||
| #!/bin/bash | ||||
| # https://docs.sheetjs.com/docs/demos/engines/goja | ||||
| 
 | ||||
| cd /tmp | ||||
| rm -rf SheetGoja | ||||
| 
 | ||||
| mkdir SheetGoja | ||||
| cd SheetGoja | ||||
| go mod init SheetGoja | ||||
| go get github.com/dop251/goja | ||||
| 
 | ||||
| curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/shim.min.js | ||||
| curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js | ||||
| curl -LO https://sheetjs.com/pres.numbers | ||||
| 
 | ||||
| curl -LO https://docs.sheetjs.com/goja/SheetGoja.go | ||||
| 
 | ||||
| go build SheetGoja.go | ||||
| 
 | ||||
| ./SheetGoja pres.numbers | ||||
							
								
								
									
										38
									
								
								tests/engines-graaljs.sh
									
									
									
									
									
										Executable file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										38
									
								
								tests/engines-graaljs.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,38 @@ | ||||
| #!/bin/bash | ||||
| # https://docs.sheetjs.com/docs/demos/engines/graaljs | ||||
| cd /tmp | ||||
| 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://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js | ||||
| curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/shim.min.js | ||||
| curl -LO https://sheetjs.com/pres.xlsx | ||||
| 
 | ||||
| curl -LO https://docs.sheetjs.com/nashorn/SheetJSNashorn.java | ||||
| 
 | ||||
| for n in {17..22}; 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 | ||||
| 
 | ||||
|   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 | ||||
|   cd - | ||||
| done | ||||
							
								
								
									
										22
									
								
								tests/engines-hermes.sh
									
									
									
									
									
										Executable file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										22
									
								
								tests/engines-hermes.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,22 @@ | ||||
| #!/bin/bash | ||||
| # https://docs.sheetjs.com/docs/demos/engines/hermes | ||||
| 
 | ||||
| cd /tmp | ||||
| rm -rf sheetjs-hermes | ||||
| mkdir -p sheetjs-hermes | ||||
| cd sheetjs-hermes | ||||
| 
 | ||||
| curl -LO https://docs.sheetjs.com/hermes/Makefile | ||||
| curl -LO https://docs.sheetjs.com/hermes/sheetjs-hermes.cpp | ||||
| 
 | ||||
| make init | ||||
| 
 | ||||
| make sheetjs-hermes | ||||
| 
 | ||||
| curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js | ||||
| curl -LO https://sheetjs.com/pres.numbers | ||||
| 
 | ||||
| cp ./build_release/API/hermes/libhermes.* . | ||||
| cp ./build_release/jsi/libjsi.* . | ||||
| 
 | ||||
| ./sheetjs-hermes pres.numbers; echo $? | ||||
							
								
								
									
										37
									
								
								tests/engines-jerryscript.sh
									
									
									
									
									
										Executable file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										37
									
								
								tests/engines-jerryscript.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,37 @@ | ||||
| #!/bin/bash | ||||
| # https://docs.sheetjs.com/docs/demos/engines/jerryscript | ||||
| cd /tmp | ||||
| rm -rf SheetJSJerry | ||||
| mkdir -p SheetJSJerry | ||||
| cd SheetJSJerry | ||||
| 
 | ||||
| git clone --depth=1 https://github.com/jerryscript-project/jerryscript.git | ||||
| cd jerryscript | ||||
| python3 tools/build.py --error-messages=ON --logging=ON --mem-heap=8192 --cpointer-32bit=ON | ||||
| cd .. | ||||
| 
 | ||||
| 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 | ||||
| curl -LO https://sheetjs.com/pres.xlsx | ||||
| 
 | ||||
| # Integration Example | ||||
| curl -LO https://docs.sheetjs.com/jerryscript/sheetjs.jerry.c | ||||
| 
 | ||||
| gcc -o sheetjs.jerry -Ijerryscript/jerry-ext/include -Ijerryscript/jerry-math/include -Ijerryscript/jerry-core/include sheetjs.jerry.c -ljerry-core -ljerry-ext -ljerry-port -lm -Ljerryscript/build/lib -Wno-pointer-sign | ||||
| ./sheetjs.jerry pres.xlsx; echo $? | ||||
| 
 | ||||
| # CLI Test | ||||
| node -e "fs.writeFileSync('payload.js', 'var payload = \"' + fs.readFileSync('pres.xlsx').toString('base64') + '\";')" | ||||
| 
 | ||||
| cat >global.js <<EOF | ||||
| var global = (function(){ return this; }).call(null); | ||||
| var console = { log: function(x) { print(x); } }; | ||||
| EOF | ||||
| 
 | ||||
| cat >jerry.js <<EOF | ||||
| var wb = XLSX.read(payload, {type:'base64'}); | ||||
| console.log(XLSX.utils.sheet_to_csv(wb.Sheets[wb.SheetNames[0]])); | ||||
| EOF | ||||
| 
 | ||||
| cat global.js xlsx.full.min.js payload.js jerry.js > xlsx.jerry.js | ||||
| jerryscript/build/bin/jerry xlsx.jerry.js; echo $? | ||||
							
								
								
									
										26
									
								
								tests/engines-mujs.sh
									
									
									
									
									
										Executable file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										26
									
								
								tests/engines-mujs.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,26 @@ | ||||
| #!/bin/bash | ||||
| # https://docs.sheetjs.com/docs/demos/engines/mujs | ||||
| 
 | ||||
| cd /tmp | ||||
| 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 | ||||
| make release | ||||
| cd .. | ||||
| 
 | ||||
| cp mujs-1.3.4/build/release/libmujs.a mujs-1.3.4/mujs.h . | ||||
| 
 | ||||
| curl -LO https://docs.sheetjs.com/mujs/SheetJSMu.c | ||||
| 
 | ||||
| gcc -o SheetJSMu SheetJSMu.c -L. -lmujs -lm -lc -std=c89 -Wall | ||||
| 
 | ||||
| curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/shim.min.js | ||||
| curl -LO https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js | ||||
| curl -LO https://sheetjs.com/pres.xlsb | ||||
| 
 | ||||
| ./SheetJSMu pres.xlsb | ||||
							
								
								
									
										54
									
								
								tests/engines-rhino.sh
									
									
									
									
									
										Executable file
									
								
							
							
								
								
								
								
								
									
									
								
							
						
						
									
										54
									
								
								tests/engines-rhino.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,54 @@ | ||||
| #!/bin/bash | ||||
| # https://docs.sheetjs.com/docs/demos/engines/rhino | ||||
| 
 | ||||
| cd /tmp | ||||
| rm -rf sheetjs-java | ||||
| mkdir -p sheetjs-java | ||||
| cd sheetjs-java | ||||
| 
 | ||||
| curl -L -o rhino.jar https://repo1.maven.org/maven2/org/mozilla/rhino/1.7.15/rhino-1.7.15.jar | ||||
| 
 | ||||
| curl -LO https://cdn.sheetjs.com/xlsx-0.20.2/package/dist/xlsx.full.min.js | ||||
| curl -LO https://docs.sheetjs.com/pres.xlsx | ||||
| 
 | ||||
| curl -LO https://docs.sheetjs.com/rhino/SheetJSRhino.zip | ||||
| unzip SheetJSRhino.zip | ||||
| 
 | ||||
| cat >SheetJSRhino.java <<EOF | ||||
| /* sheetjs (C) 2013-present  SheetJS -- https://sheetjs.com */ | ||||
| /* vim: set ts=2: */ | ||||
| import com.sheetjs.SheetJS; | ||||
| import com.sheetjs.SheetJSFile; | ||||
| import com.sheetjs.SheetJSSheet; | ||||
| 
 | ||||
| public class SheetJSRhino { | ||||
|   public static void main(String args[]) throws Exception { | ||||
|     try { | ||||
|       SheetJS sjs = new SheetJS(); | ||||
| 
 | ||||
|       /* open file */ | ||||
|       SheetJSFile xl = sjs.read_file(args[0]); | ||||
| 
 | ||||
|       /* get sheetnames */ | ||||
|       String[] sheetnames = xl.get_sheet_names(); | ||||
|       System.err.println(sheetnames[0]); | ||||
| 
 | ||||
|       /* convert to CSV */ | ||||
|       SheetJSSheet sheet = xl.get_sheet(0); | ||||
|       String csv = sheet.get_csv(); | ||||
|       System.out.println(csv); | ||||
|     } catch(Exception e) { throw e; } finally { SheetJS.close(); } | ||||
|   } | ||||
| } | ||||
| EOF | ||||
| 
 | ||||
| for n in 1.8 {9..22}; do | ||||
| 	export JAVA_HOME=`/usr/libexec/java_home -v $n` | ||||
| 	java -version | ||||
|   find . -name \*.class | while read x; do rm $x; done | ||||
| 
 | ||||
|   javac -cp ".:rhino.jar" SheetJSRhino.java | ||||
|   jar -cf SheetJS.jar SheetJSRhino.class com/sheetjs/*.class xlsx.full.min.js | ||||
| 
 | ||||
|   java -cp ".:SheetJS.jar:rhino.jar" SheetJSRhino pres.xlsx | ||||
| done | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user