x64
This commit is contained in:
parent
014c28c5f5
commit
a4ad3195f5
@ -17,8 +17,8 @@ an open source object-relational database system.
|
||||
data from spreadsheets.
|
||||
|
||||
This demo uses SheetJS to exchange data between spreadsheets and PostgreSQL
|
||||
databases. We'll explore how to use save tables from a database to spreadsheets
|
||||
and how to add data from spreadsheets into a database.
|
||||
databases. We'll explore how to save tables from a database to spreadsheets and
|
||||
how to add data from spreadsheets into a database.
|
||||
|
||||
:::caution pass
|
||||
|
||||
@ -215,7 +215,7 @@ On macOS, install the `postgresql` formula with Homebrew:
|
||||
brew install postgresql@16
|
||||
```
|
||||
|
||||
The last few lines of the installer explains how to start the database:
|
||||
The last few lines of the installer explain how to start the database:
|
||||
|
||||
```text
|
||||
Or, if you don't want/need a background service you can just run:
|
||||
|
@ -6,6 +6,8 @@ pagination_next: demos/bigdata/index
|
||||
---
|
||||
|
||||
import current from '/version.js';
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
import CodeBlock from '@theme/CodeBlock';
|
||||
|
||||
export const b = {style: {color:"blue"}};
|
||||
@ -44,7 +46,7 @@ This demo covers Stata extensions. For directly processing Stata DTA files, the
|
||||
|
||||
:::note Tested Deployments
|
||||
|
||||
This demo was last tested by SheetJS users on 2023 November 05.
|
||||
This demo was last tested by SheetJS users on 2023 November 15.
|
||||
|
||||
:::
|
||||
|
||||
@ -120,8 +122,8 @@ can be loaded in Duktape by reading the source from the filesystem.
|
||||
|
||||
:::info pass
|
||||
|
||||
This demo was tested in Windows x64. The path names and build commands will
|
||||
differ in other platforms and operating systems.
|
||||
This demo was tested in Windows x64 and macOS x64. The path names and build
|
||||
commands will differ in other platforms and operating systems.
|
||||
|
||||
:::
|
||||
|
||||
@ -137,6 +139,33 @@ import excel "sheetjs.tmp.xlsx", firstrow
|
||||
|
||||
### Create Plugin
|
||||
|
||||
<Tabs groupId="os">
|
||||
<TabItem value="unix" label="Linux/MacOS">
|
||||
|
||||
0) Ensure a compatible C compiler (Xcode on macOS) is installed.
|
||||
|
||||
1) Open Stata and run the following command:
|
||||
|
||||
```stata
|
||||
pwd
|
||||
```
|
||||
|
||||
The output will be the default data directory. On macOS this is typically
|
||||
`~/Documents/Stata`
|
||||
|
||||
2) Open a terminal window and create a project folder `sheetjs-stata` within the
|
||||
Stata data directory:
|
||||
|
||||
```bash
|
||||
# `cd` to the Stata data directory
|
||||
cd ~/Documents/Stata
|
||||
mkdir sheetjs-stata
|
||||
cd sheetjs-stata
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
0) Ensure "Windows Subsystem for Linux" (WSL) and Visual Studio are installed.
|
||||
|
||||
1) Open a new "x64 Native Tools Command Prompt" window and create a project
|
||||
@ -154,6 +183,9 @@ cd sheetjs-stata
|
||||
bash
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
3) Download [`stplugin.c`](https://www.stata.com/plugins/stplugin.c) and
|
||||
[`stplugin.h`](https://www.stata.com/plugins/stplugin.h) from the Stata website:
|
||||
|
||||
@ -162,7 +194,8 @@ curl -LO https://www.stata.com/plugins/stplugin.c
|
||||
curl -LO https://www.stata.com/plugins/stplugin.h
|
||||
```
|
||||
|
||||
4) Still within WSL, install Duktape:
|
||||
4) Download Duktape. In Windows, the following commands should be run in WSL. In
|
||||
macOS, the commands should be run in the same Terminal session.
|
||||
|
||||
```bash
|
||||
curl -LO https://duktape.org/duktape-2.7.0.tar.xz
|
||||
@ -170,13 +203,29 @@ tar -xJf duktape-2.7.0.tar.xz
|
||||
mv duktape-2.7.0/src/*.{c,h} .
|
||||
```
|
||||
|
||||
5) Still within WSL, download the demo source
|
||||
[`cleanfile.c`](https://docs.sheetjs.com/stata/cleanfile.c):
|
||||
5) Download [`cleanfile.c`](https://docs.sheetjs.com/stata/cleanfile.c).
|
||||
|
||||
In Windows, the following commands should be run in WSL. In macOS, the commands
|
||||
should be run in the same Terminal session.
|
||||
|
||||
```bash
|
||||
curl -LO https://docs.sheetjs.com/stata/cleanfile.c
|
||||
```
|
||||
|
||||
<Tabs groupId="os">
|
||||
<TabItem value="unix" label="Linux/MacOS">
|
||||
|
||||
6) Observe that macOS does not need a "Linux Subsystem" and move to Step 7.
|
||||
|
||||
7) Build the plugin:
|
||||
|
||||
```bash
|
||||
gcc -shared -fPIC -DSYSTEM=APPLEMAC stplugin.c duktape.c cleanfile.c -lm -std=c99 -Wall -ocleanfile.plugin
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
6) Exit WSL:
|
||||
|
||||
```bash
|
||||
@ -191,8 +240,23 @@ The window will return to the command prompt.
|
||||
cl /LD cleanfile.c stplugin.c duktape.c
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Install Plugin
|
||||
|
||||
<Tabs groupId="os">
|
||||
<TabItem value="unix" label="Linux/MacOS">
|
||||
|
||||
8) Copy the plugin to the Stata data directory:
|
||||
|
||||
```bash
|
||||
cp cleanfile.plugin ../
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
8) Copy the DLL to `cleanfile.plugin` in the Stata data directory. For example,
|
||||
with a shared data directory `c:\data`:
|
||||
|
||||
@ -201,9 +265,26 @@ mkdir c:\data
|
||||
copy cleanfile.dll c:\data\cleanfile.plugin
|
||||
```
|
||||
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
### Download SheetJS Scripts
|
||||
|
||||
9) Move to the `c:\data` directory
|
||||
<Tabs groupId="os">
|
||||
<TabItem value="unix" label="Linux/MacOS">
|
||||
|
||||
9) Move to the Stata data directory:
|
||||
|
||||
```bash
|
||||
cd ..
|
||||
```
|
||||
|
||||
10) Observe that macOS does not need a "Linux Subsystem" and move to Step 11.
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
9) Move to the `c:\data` directory:
|
||||
|
||||
```powershell
|
||||
cd c:\data
|
||||
@ -215,7 +296,13 @@ cd c:\data
|
||||
bash
|
||||
```
|
||||
|
||||
11) Within WSL, download SheetJS scripts and the test file.
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
11) Download SheetJS scripts and the test file.
|
||||
|
||||
In Windows, the following commands should be run in WSL. In macOS, the commands
|
||||
should be run in the same Terminal session.
|
||||
|
||||
<CodeBlock language="bash">{`\
|
||||
curl -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/shim.min.js
|
||||
@ -223,14 +310,6 @@ curl -LO https://cdn.sheetjs.com/xlsx-${current}/package/dist/xlsx.full.min.js
|
||||
curl -LO https://sheetjs.com/pres.numbers`}
|
||||
</CodeBlock>
|
||||
|
||||
12) Exit WSL:
|
||||
|
||||
```bash
|
||||
exit
|
||||
```
|
||||
|
||||
The window will return to the command prompt.
|
||||
|
||||
### Stata Test
|
||||
|
||||
:::note pass
|
||||
@ -239,15 +318,32 @@ The screenshot in the introduction shows the result of steps 13 - 19
|
||||
|
||||
:::
|
||||
|
||||
13) Open Stata
|
||||
12) If it is not currently running, start the Stata application.
|
||||
|
||||
14) Move to the `c:\data` directory in Stata:
|
||||
<Tabs groupId="os">
|
||||
<TabItem value="unix" label="Linux/MacOS">
|
||||
|
||||
13) Run the following command in Stata:
|
||||
|
||||
```stata
|
||||
dir
|
||||
```
|
||||
|
||||
Inspect the output and confirm that `cleanfile.plugin` is listed.
|
||||
|
||||
</TabItem>
|
||||
<TabItem value="win" label="Windows">
|
||||
|
||||
13) Move to the `c:\data` directory in Stata:
|
||||
|
||||
```stata
|
||||
cd c:\data
|
||||
```
|
||||
|
||||
15) Load the `cleanfile` plugin:
|
||||
</TabItem>
|
||||
</Tabs>
|
||||
|
||||
14) Load the `cleanfile` plugin:
|
||||
|
||||
```stata
|
||||
program cleanfile, plugin
|
||||
|
@ -124,7 +124,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| V8 Version | Platform | OS Version | Compiler | Date |
|
||||
|:--------------|:-------------|:--------------|:-----------------|:-----------|
|
||||
| `11.8.82` | `darwin-x64` | macOS 13.5.1 | `clang 14.0.3` | 2023-08-26 |
|
||||
| `12.1.131` | `darwin-x64` | macOS 14.1 | `clang 15.0.0` | 2023-11-15 |
|
||||
| `12.0.175` | `darwin-arm` | macOS 14.0 | `clang 15.0.0` | 2023-10-20 |
|
||||
| `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 |
|
||||
@ -811,9 +811,9 @@ This demo was last tested in the following deployments:
|
||||
|
||||
| Architecture | V8 Crate | Date |
|
||||
|:-------------|:---------|:-----------|
|
||||
| `darwin-x64` | `0.75.1` | 2023-08-26 |
|
||||
| `darwin-x64` | `0.81.0` | 2023-11-14 |
|
||||
| `darwin-arm` | `0.79.2` | 2023-10-18 |
|
||||
| `win10-x64` | `0.79.2` | 2023-10-09 |
|
||||
| `win10-x64` | `0.81.0` | 2023-11-14 |
|
||||
| `linux-x64` | `0.79.2` | 2023-10-11 |
|
||||
| `linux-arm` | `0.75.1` | 2023-08-30 |
|
||||
|
||||
|
@ -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-2053`.
|
||||
on version `3.0.0-beta-2055`.
|
||||
|
||||
:::
|
||||
|
||||
@ -163,7 +163,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Jint Version | Date |
|
||||
|:-------------|:------------------|:-----------|
|
||||
| `darwin-x64` | `3.0.0-beta-2051` | 2023-09-16 |
|
||||
| `darwin-x64` | `3.0.0-beta-2055` | 2023-11-14 |
|
||||
| `darwin-arm` | `3.0.0-beta-2051` | 2023-09-26 |
|
||||
| `win10-x64` | `3.0.0-beta-2053` | 2023-10-28 |
|
||||
| `win11-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-2053
|
||||
dotnet add package Jint --version 3.0.0-beta-2055
|
||||
```
|
||||
|
||||
To verify Jint is installed, replace `Program.cs` with the following:
|
||||
|
@ -362,7 +362,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Git Commit | Date |
|
||||
|:-------------|:-----------|:-----------|
|
||||
| `darwin-x64` | `70af78b` | 2023-08-27 |
|
||||
| `darwin-x64` | `84732b3` | 2023-11-14 |
|
||||
| `darwin-arm` | `2b4f949` | 2023-10-18 |
|
||||
| `linux-x64` | `2b4f949` | 2023-10-11 |
|
||||
| `linux-arm` | `70af78b` | 2023-08-27 |
|
||||
@ -429,6 +429,38 @@ curl -LO https://docs.sheetjs.com/hermes/sheetjs-hermes.cpp
|
||||
make init
|
||||
```
|
||||
|
||||
:::caution pass
|
||||
|
||||
During the most recent macOS x64 test, the build failed due to Ninja issues:
|
||||
|
||||
```
|
||||
CMake Error at CMakeLists.txt:64 (project):
|
||||
Running
|
||||
|
||||
'/usr/local/lib/depot_tools/ninja' '--version'
|
||||
|
||||
failed with:
|
||||
|
||||
depot_tools/ninja.py: Could not find Ninja in the third_party of the current project, nor in your PATH.
|
||||
```
|
||||
|
||||
This is due to a conflict with the Ninja version that ships with `depot_tools`.
|
||||
|
||||
Since `depot_tools` typically is added before other folders in the system `PATH`
|
||||
variable, it is strongly recommended to rename the `ninja` binary, build the
|
||||
Hermes libraries, and restore the `ninja` binary:
|
||||
|
||||
```bash
|
||||
# Rename `ninja`
|
||||
mv /usr/local/lib/depot_tools/ninja /usr/local/lib/depot_tools/ninja_tmp
|
||||
# Build Hermes
|
||||
make init
|
||||
# Restore `ninja`
|
||||
mv /usr/local/lib/depot_tools/ninja_tmp /usr/local/lib/depot_tools/ninja
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
5) Build the application:
|
||||
|
||||
```bash
|
||||
|
@ -70,7 +70,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Platform | Ruby | ExecJS | Date |
|
||||
|:-------------|:---------|:--------|:-----------|
|
||||
| `darwin-x64` | `2.7.6` | `2.9.1` | 2023-09-24 |
|
||||
| `darwin-x64` | `2.6.10` | `2.9.1` | 2023-11-14 |
|
||||
| `darwin-arm` | `2.7.4` | `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 |
|
||||
|
@ -131,7 +131,7 @@ This demo was tested in the following deployments:
|
||||
|
||||
| Architecture | Commit | Date |
|
||||
|:-------------|:----------|:-----------|
|
||||
| `darwin-x64` | `a588e49` | 2023-09-22 |
|
||||
| `darwin-x64` | `bc408b1` | 2023-11-14 |
|
||||
| `linux-x64` | `a588e49` | 2023-10-11 |
|
||||
|
||||
:::
|
||||
@ -221,6 +221,9 @@ ready, it will read the bundled test data and print the contents as CSV.
|
||||
build/bin/jerry xlsx.jerry.js; echo $?
|
||||
```
|
||||
|
||||
If successful, the contents of the test file will be displayed in CSV rows. The
|
||||
status code `0` will be printed after the rows.
|
||||
|
||||
</details>
|
||||
|
||||
### Jint
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Note: The official Hermes documentation includes zero guidance on embedding.
|
||||
# Tested against commit 2b4f949f6ff4d1de03fbad0dbef9b744153e0adb
|
||||
# Tested against commit 84732b3ce6a859cbc6a20112437c81154f111fe7
|
||||
|
||||
MYCC=llvm-g++
|
||||
POSTAMBLE=-framework CoreFoundation
|
||||
@ -64,5 +64,5 @@ sheetjs-hermes: sheetjs-hermes.cpp init
|
||||
|
||||
.PHONY: init
|
||||
init:
|
||||
if [ ! -e hermes ]; then git clone https://github.com/facebook/hermes.git; cd hermes; git checkout 2b4f949f6ff4d1de03fbad0dbef9b744153e0adb; cd ..; fi
|
||||
if [ ! -e hermes ]; then git clone https://github.com/facebook/hermes.git; cd hermes; git checkout 84732b3ce6a859cbc6a20112437c81154f111fe7; cd ..; fi
|
||||
if [ ! -e build_release ]; then cmake -S hermes -B build_release -G Ninja -DCMAKE_BUILD_TYPE=Release; cmake --build ./build_release; fi
|
Loading…
Reference in New Issue
Block a user