Skip to content

Commit 8c489c2

Browse files
Merge pull request #506 from lightpanda-io/jsruntime
replace zig-js-runtime
2 parents 26ef8de + 1997693 commit 8c489c2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+7030
-4288
lines changed

.github/actions/install/action.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ runs:
5959
- name: install v8
6060
shell: bash
6161
run: |
62-
mkdir -p vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/debug
63-
ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/debug/libc_v8.a
62+
mkdir -p v8/build/${{inputs.arch}}-${{inputs.os}}/debug/ninja/obj/zig/
63+
ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a v8/build/${{inputs.arch}}-${{inputs.os}}/debug/ninja/obj/zig/libc_v8.a
6464
65-
mkdir -p vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/release
66-
ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a vendor/zig-js-runtime/vendor/v8/${{inputs.arch}}-${{inputs.os}}/release/libc_v8.a
65+
mkdir -p v8/build/${{inputs.arch}}-${{inputs.os}}/release/ninja/obj/zig/
66+
ln -s ${{ inputs.cache-dir }}/v8/libc_v8.a v8/build/${{inputs.arch}}-${{inputs.os}}/release/ninja/obj/zig/libc_v8.a
6767
6868
- name: libiconv
6969
shell: bash

.github/workflows/build.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
arch: ${{env.ARCH}}
3232

3333
- name: zig build
34-
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 -Dcpu=x86_64 -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
34+
run: zig build --release=safe -Doptimize=ReleaseSafe -Dcpu=x86_64 -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
3535

3636
- name: Rename binary
3737
run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }}
@@ -63,7 +63,7 @@ jobs:
6363
arch: ${{env.ARCH}}
6464

6565
- name: zig build
66-
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
66+
run: zig build --release=safe -Doptimize=ReleaseSafe -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
6767

6868
- name: Rename binary
6969
run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }}
@@ -95,7 +95,7 @@ jobs:
9595
arch: ${{env.ARCH}}
9696

9797
- name: zig build
98-
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
98+
run: zig build --release=safe -Doptimize=ReleaseSafe -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
9999

100100
- name: Rename binary
101101
run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }}
@@ -127,7 +127,7 @@ jobs:
127127
arch: ${{env.ARCH}}
128128

129129
- name: zig build
130-
run: zig build --release=safe -Doptimize=ReleaseSafe -Dengine=v8 -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
130+
run: zig build --release=safe -Doptimize=ReleaseSafe -Dgit_commit=$(git rev-parse --short ${{ github.sha }})
131131

132132
- name: Rename binary
133133
run: mv zig-out/bin/lightpanda lightpanda-${{ env.ARCH }}-${{ env.OS }}

.github/workflows/e2e-test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
- uses: ./.github/actions/install
4848

4949
- name: zig build release
50-
run: zig build -Doptimize=ReleaseSafe -Dengine=v8
50+
run: zig build -Doptimize=ReleaseSafe
5151

5252
- name: upload artifact
5353
uses: actions/upload-artifact@v4
@@ -86,7 +86,7 @@ jobs:
8686
- name: run puppeteer
8787
run: |
8888
python3 -m http.server 1234 -d ./public & echo $! > PYTHON.pid
89-
./lightpanda serve & echo $! > LPD.pid
89+
./lightpanda serve --gc_hints & echo $! > LPD.pid
9090
RUNS=100 npm run bench-puppeteer-cdp > puppeteer.out || exit 1
9191
cat /proc/`cat LPD.pid`/status |grep VmHWM|grep -oP '\d+' > LPD.VmHWM
9292
kill `cat LPD.pid` `cat PYTHON.pid`

.github/workflows/wpt.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555

5656
- uses: ./.github/actions/install
5757

58-
- run: zig build wpt -Dengine=v8 -- --safe --summary
58+
- run: zig build wpt -- --safe --summary
5959

6060
# For now WPT tests doesn't pass at all.
6161
# We accept then to continue the job on failure.
@@ -80,7 +80,7 @@ jobs:
8080
- uses: ./.github/actions/install
8181

8282
- name: json output
83-
run: zig build wpt -Dengine=v8 -- --safe --json > wpt.json
83+
run: zig build wpt -- --safe --json > wpt.json
8484

8585
- name: write commit
8686
run: |

.github/workflows/zig-test.yml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
- uses: ./.github/actions/install
5757

5858
- name: zig build debug
59-
run: zig build -Dengine=v8
59+
run: zig build
6060

6161
- name: upload artifact
6262
uses: actions/upload-artifact@v4
@@ -102,11 +102,8 @@ jobs:
102102

103103
- uses: ./.github/actions/install
104104

105-
- name: zig build unittest
106-
run: zig build unittest -freference-trace --summary all
107-
108105
- name: zig build test
109-
run: zig build test -Dengine=v8 -- --json > bench.json
106+
run: zig build test -- --json > bench.json
110107

111108
- name: write commit
112109
run: |

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ zig-out
44
/vendor/netsurf/out
55
/vendor/libiconv/
66
lightpanda.id
7+
/v8/

.gitmodules

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
[submodule "vendor/zig-js-runtime"]
2-
path = vendor/zig-js-runtime
3-
url = https://github.com/lightpanda-io/zig-js-runtime.git/
4-
branch = zig-0.14
51
[submodule "vendor/netsurf/libwapcaplet"]
62
path = vendor/netsurf/libwapcaplet
73
url = https://github.com/lightpanda-io/libwapcaplet.git/

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ RUN make install-libiconv && \
6161

6262
# download and install v8
6363
RUN curl --fail -L -o libc_v8.a https://github.com/lightpanda-io/zig-v8-fork/releases/download/${ZIG_V8}/libc_v8_${V8}_linux_${ARCH}.a && \
64-
mkdir -p vendor/zig-js-runtime/vendor/v8/${ARCH}-linux/release && \
65-
mv libc_v8.a vendor/zig-js-runtime/vendor/v8/${ARCH}-linux/release/libc_v8.a
64+
mkdir -p v8/build/${ARCH}-linux/release/ninja/obj/zig/ && \
65+
mv libc_v8.a v8/build/${ARCH}-linux/release/ninja/obj/zig/libc_v8.a
6666

6767
# build release
6868
RUN make build

Makefile

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
ZIG := zig
55
BC := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
6-
# option test filter make unittest F="server"
6+
# option test filter make test F="server"
77
F=
88

99
# OS and ARCH
@@ -47,7 +47,7 @@ help:
4747

4848
# $(ZIG) commands
4949
# ------------
50-
.PHONY: build build-dev run run-release shell test bench download-zig wpt unittest data
50+
.PHONY: build build-dev run run-release shell test bench download-zig wpt data get-v8 build-v8 build-v8-dev
5151

5252
zig_version = $(shell grep 'recommended_zig_version = "' "vendor/zig-js-runtime/build.zig" | cut -d'"' -f2)
5353

@@ -62,13 +62,13 @@ download-zig:
6262
## Build in release-safe mode
6363
build:
6464
@printf "\e[36mBuilding (release safe)...\e[0m\n"
65-
$(ZIG) build -Doptimize=ReleaseSafe -Dengine=v8 -Dgit_commit=$$(git rev-parse --short HEAD) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
65+
$(ZIG) build -Doptimize=ReleaseSafe -Dgit_commit=$$(git rev-parse --short HEAD) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
6666
@printf "\e[33mBuild OK\e[0m\n"
6767

6868
## Build in debug mode
6969
build-dev:
7070
@printf "\e[36mBuilding (debug)...\e[0m\n"
71-
@$(ZIG) build -Dengine=v8 -Dgit_commit=$$(git rev-parse --short HEAD) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
71+
@$(ZIG) build -Dgit_commit=$$(git rev-parse --short HEAD) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
7272
@printf "\e[33mBuild OK\e[0m\n"
7373

7474
## Run the server in debug mode
@@ -79,39 +79,47 @@ run: build
7979
## Run a JS shell in debug mode
8080
shell:
8181
@printf "\e[36mBuilding shell...\e[0m\n"
82-
@$(ZIG) build shell -Dengine=v8 || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
82+
@$(ZIG) build shell || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
8383

8484
## Run WPT tests
8585
wpt:
8686
@printf "\e[36mBuilding wpt...\e[0m\n"
87-
@$(ZIG) build wpt -Dengine=v8 -- --safe $(filter-out $@,$(MAKECMDGOALS)) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
87+
@$(ZIG) build wpt -- --safe $(filter-out $@,$(MAKECMDGOALS)) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
8888

8989
wpt-summary:
9090
@printf "\e[36mBuilding wpt...\e[0m\n"
91-
@$(ZIG) build wpt -Dengine=v8 -- --safe --summary $(filter-out $@,$(MAKECMDGOALS)) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
91+
@$(ZIG) build wpt -- --safe --summary $(filter-out $@,$(MAKECMDGOALS)) || (printf "\e[33mBuild ERROR\e[0m\n"; exit 1;)
9292

9393
## Test
9494
test:
95-
@printf "\e[36mTesting...\e[0m\n"
96-
@$(ZIG) build test -Dengine=v8 || (printf "\e[33mTest ERROR\e[0m\n"; exit 1;)
97-
@printf "\e[33mTest OK\e[0m\n"
95+
@TEST_FILTER='${F}' $(ZIG) build test -freference-trace --summary all
9896

99-
unittest:
100-
@TEST_FILTER='${F}' $(ZIG) build unittest -freference-trace --summary all
97+
## v8
98+
get-v8:
99+
@printf "\e[36mGetting v8 source...\e[0m\n"
100+
@$(ZIG) build get-v8
101+
102+
build-v8-dev:
103+
@printf "\e[36mBuilding v8 (dev)...\e[0m\n"
104+
@$(ZIG) build build-v8
105+
106+
build-v8:
107+
@printf "\e[36mBuilding v8...\e[0m\n"
108+
@$(ZIG) build -Doptimize=ReleaseSafe build-v8
101109

102110
# Install and build required dependencies commands
103111
# ------------
104112
.PHONY: install-submodule
105-
.PHONY: install-zig-js-runtime install-zig-js-runtime-dev install-libiconv
113+
.PHONY: install-libiconv
106114
.PHONY: _install-netsurf install-netsurf clean-netsurf test-netsurf install-netsurf-dev
107115
.PHONY: install-mimalloc install-mimalloc-dev clean-mimalloc
108116
.PHONY: install-dev install
109117

110118
## Install and build dependencies for release
111-
install: install-submodule install-zig-js-runtime install-libiconv install-netsurf install-mimalloc
119+
install: install-submodule install-libiconv install-netsurf install-mimalloc
112120

113121
## Install and build dependencies for dev
114-
install-dev: install-submodule install-zig-js-runtime-dev install-libiconv install-netsurf-dev install-mimalloc-dev
122+
install-dev: install-submodule install-libiconv install-netsurf-dev install-mimalloc-dev
115123

116124
install-netsurf-dev: _install-netsurf
117125
install-netsurf-dev: OPTCFLAGS := -O0 -g -DNDEBUG
@@ -194,14 +202,6 @@ ifneq ("$(wildcard vendor/libiconv/libiconv-1.17/Makefile)","")
194202
make clean
195203
endif
196204

197-
install-zig-js-runtime-dev:
198-
@cd vendor/zig-js-runtime && \
199-
make install-dev
200-
201-
install-zig-js-runtime:
202-
@cd vendor/zig-js-runtime && \
203-
make install
204-
205205
data:
206206
cd src/data && go run public_suffix_list_gen.go > public_suffix_list.zig
207207

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -221,17 +221,21 @@ Note: when Mimalloc is built in dev mode, you can dump memory stats with the
221221
env var `MIMALLOC_SHOW_STATS=1`. See
222222
[https://microsoft.github.io/mimalloc/environment.html](https://microsoft.github.io/mimalloc/environment.html).
223223

224-
**zig-js-runtime**
224+
**v8**
225225

226-
Our own Zig/Javascript runtime, which includes the v8 Javascript engine.
226+
First, get the tools necessary for building V8, as well as the V8 source code:
227227

228-
This build task is very long and cpu consuming, as you will build v8 from sources.
228+
```
229+
make get-v8
230+
```
231+
232+
Next, build v8. This build task is very long and cpu consuming, as you will build v8 from sources.
229233

230234
```
231-
make install-zig-js-runtime
235+
make build-v8
232236
```
233237

234-
For dev env, use `make install-zig-js-runtime-dev`.
238+
For dev env, use `make build-v8-dev`.
235239

236240
## Test
237241

0 commit comments

Comments
 (0)