Skip to content

Commit 8f54791

Browse files
authored
👦🏻 Javet v5.0.0 (#524)
* Upgraded Node.js to `v24.8.0` ([2025-09-10](https://nodejs.org/en/blog/release/v24.8.0)) * Upgraded V8 to `v14.1.146.11` (2025-09-22) * Upgraded Visual Studio 2022 to [v17.14.15](https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.14.15) * Upgraded Android NDK to `r27d` * Switched from MSVC to Clang on Windows for Node.js mode * Switched from GCC to Clang on Linux for V8 mode * Fixed an extra latency in holding a lock in V8GuardDaemon * Renamed `isExperimentalPermission()` to `isPermission()` in `NodeFlags` * Renamed `setExperimentalPermission()` to `setPermission()` in `NodeFlags` * Removed temporal * Known issue: `getNearHeapLimitCallback()`, `setNearHeapLimitCallback()` break in Node.js mode
1 parent d21ae08 commit 8f54791

File tree

73 files changed

+1745
-1231
lines changed

Some content is hidden

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

73 files changed

+1745
-1231
lines changed

.github/workflows/android_node_build.yml

Lines changed: 4 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,20 @@ on:
88
workflow_dispatch:
99

1010
env:
11-
JAVET_NODE_VERSION: 22.19.0
12-
JAVET_VERSION: 4.1.7
11+
JAVET_NODE_VERSION: 24.8.0
12+
JAVET_VERSION: 5.0.0
1313
ROOT: /home/runner/work/Javet
1414

1515
jobs:
1616
build_javet_lib:
1717
strategy:
1818
matrix:
1919
include:
20-
- android_arch: arm
21-
android_abi: armeabi-v7a
22-
i18n_name: non-i18n
23-
cmake_flag:
24-
config_patch:
2520
- android_arch: arm64
2621
android_abi: arm64-v8a
2722
i18n_name: non-i18n
2823
cmake_flag:
2924
config_patch:
30-
- android_arch: x86
31-
android_abi: x86
32-
i18n_name: non-i18n
33-
cmake_flag:
34-
config_patch:
3525
- android_arch: x86_64
3626
android_abi: x86_64
3727
i18n_name: non-i18n
@@ -69,7 +59,7 @@ jobs:
6959
id: setup-ndk
7060
uses: nttld/setup-ndk@v1
7161
with:
72-
ndk-version: r27c
62+
ndk-version: r27d
7363
local-cache: false
7464

7565
- name: Setup Path
@@ -155,18 +145,11 @@ jobs:
155145
with:
156146
gradle-version: 8.10.2
157147

158-
- name: Prepare JNI Libs i18n
148+
- name: Prepare JNI Libs
159149
run: |
160150
mkdir -p android/javet-android/src/main/jniLibs/arm64-v8a
161151
mkdir -p android/javet-android/src/main/jniLibs/x86_64
162152
163-
- name: Prepare JNI Libs non-i18n
164-
run: |
165-
# mkdir -p android/javet-android/src/main/jniLibs/armeabi-v7a
166-
# mkdir -p android/javet-android/src/main/jniLibs/arm64-v8a
167-
# mkdir -p android/javet-android/src/main/jniLibs/x86
168-
# mkdir -p android/javet-android/src/main/jniLibs/x86_64
169-
170153
- name: Download Javet arm64 i18n
171154
uses: actions/download-artifact@v4
172155
with:
@@ -179,24 +162,12 @@ jobs:
179162
name: javet-android-node-x86_64-${{ env.JAVET_VERSION }}-i18n
180163
path: android/javet-android/src/main/jniLibs/x86_64
181164

182-
- name: Download Javet arm non-i18n
183-
uses: actions/download-artifact@v4
184-
with:
185-
name: javet-android-node-arm-${{ env.JAVET_VERSION }}-non-i18n
186-
path: android/javet-android/src/main/jniLibs/armeabi-v7a
187-
188165
- name: Download Javet arm64 non-i18n
189166
uses: actions/download-artifact@v4
190167
with:
191168
name: javet-android-node-arm64-${{ env.JAVET_VERSION }}-non-i18n
192169
path: android/javet-android/src/main/jniLibs/arm64-v8a
193170

194-
- name: Download Javet x86 non-i18n
195-
uses: actions/download-artifact@v4
196-
with:
197-
name: javet-android-node-x86-${{ env.JAVET_VERSION }}-non-i18n
198-
path: android/javet-android/src/main/jniLibs/x86
199-
200171
- name: Download Javet x86_64 non-i18n
201172
uses: actions/download-artifact@v4
202173
with:
@@ -226,21 +197,11 @@ jobs:
226197
with:
227198
name: javet-android-node-x86_64-${{ env.JAVET_VERSION }}-i18n
228199

229-
- name: Delete Javet arm non-i18n
230-
uses: geekyeggo/delete-artifact@v4
231-
with:
232-
name: javet-android-node-arm-${{ env.JAVET_VERSION }}-non-i18n
233-
234200
- name: Delete Javet arm64 non-i18n
235201
uses: geekyeggo/delete-artifact@v4
236202
with:
237203
name: javet-android-node-arm64-${{ env.JAVET_VERSION }}-non-i18n
238204

239-
- name: Delete Javet x86 non-i18n
240-
uses: geekyeggo/delete-artifact@v4
241-
with:
242-
name: javet-android-node-x86-${{ env.JAVET_VERSION }}-non-i18n
243-
244205
- name: Delete Javet x86_64 non-i18n
245206
uses: geekyeggo/delete-artifact@v4
246207
with:

.github/workflows/android_v8_build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ on:
88
workflow_dispatch:
99

1010
env:
11-
JAVET_V8_VERSION: 14.0.365.4
12-
JAVET_VERSION: 4.1.7
11+
JAVET_V8_VERSION: 14.1.146.11
12+
JAVET_VERSION: 5.0.0
1313
ROOT: /home/runner/work/Javet
1414

1515
jobs:
@@ -79,7 +79,7 @@ jobs:
7979
id: setup-ndk
8080
uses: nttld/setup-ndk@v1
8181
with:
82-
ndk-version: r27c
82+
ndk-version: r27d
8383
local-cache: false
8484

8585
- name: Setup Path

.github/workflows/linux_build_artifact.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ on:
1717
env:
1818
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
1919
DOCKERHUB_REPO_JAVET: ${{ secrets.DOCKERHUB_REPO_JAVET }}
20-
JAVET_NODE_VERSION: 22.19.0
21-
JAVET_V8_VERSION: 14.0.365.4
22-
JAVET_VERSION: 4.1.7
20+
JAVET_NODE_VERSION: 24.8.0
21+
JAVET_V8_VERSION: 14.1.146.11
22+
JAVET_VERSION: 5.0.0
2323

2424
jobs:
2525
javet_linux_x86_64:

.github/workflows/linux_build_node_v8_image.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ on:
2121
env:
2222
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
2323
DOCKERHUB_REPO_JAVET: ${{ secrets.DOCKERHUB_REPO_JAVET }}
24-
JAVET_NODE_VERSION: 22.19.0
25-
JAVET_V8_VERSION: 14.0.365.4
26-
JAVET_VERSION: 4.1.7
24+
JAVET_NODE_VERSION: 24.8.0
25+
JAVET_V8_VERSION: 14.1.146.11
26+
JAVET_VERSION: 5.0.0
2727

2828
# if we skip a job using a job level `if` condition, then any dependent jobs also don't run.
2929
# we can skip a step of the job, using a step level `if` condition.

.github/workflows/linux_x86_64_build.yml

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ on:
77
workflow_dispatch:
88

99
env:
10-
JAVET_NODE_VERSION: 22.19.0
11-
JAVET_V8_VERSION: 14.0.365.4
12-
JAVET_VERSION: 4.1.7
10+
JAVET_NODE_VERSION: 24.8.0
11+
JAVET_V8_VERSION: 14.1.146.11
12+
JAVET_VERSION: 5.0.0
1313
ROOT: /home/runner/work/Javet
1414

1515
jobs:
@@ -34,7 +34,7 @@ jobs:
3434

3535
- name: Setup Ubuntu
3636
run: |
37-
sudo apt-get install -y execstack
37+
sudo apt-get install -y execstack binutils
3838
3939
- name: Setup Python
4040
uses: actions/setup-python@v5
@@ -63,12 +63,6 @@ jobs:
6363
cd v8
6464
sed -i '/#include "src\/libplatform\//a #include <cstdlib>' src/libplatform/default-thread-isolated-allocator.cc
6565
sed -i '/bool KernelHasPkruFix()/a const char* env = std::getenv("JAVET_DISABLE_PKU"); if (env && std::strlen(env) > 0) { return false; }' src/libplatform/default-thread-isolated-allocator.cc
66-
ln -s /usr/lib/gcc/x86_64-linux-gnu/13 build/linux/debian_bullseye_amd64-sysroot/usr/lib/gcc/x86_64-linux-gnu/13
67-
ln -s /lib64 build/linux/debian_bullseye_amd64-sysroot/lib64
68-
mkdir -p build/linux/debian_bullseye_amd64-sysroot/lib/gcc/x86_64-linux-gnu
69-
ln -s /lib/gcc/x86_64-linux-gnu/13 build/linux/debian_bullseye_amd64-sysroot/lib/gcc/x86_64-linux-gnu/13
70-
mv build/linux/debian_bullseye_amd64-sysroot/lib/x86_64-linux-gnu x86_64-linux-gnu.x
71-
ln -s /lib/x86_64-linux-gnu build/linux/debian_bullseye_amd64-sysroot/lib/x86_64-linux-gnu
7266
mkdir -p out.gn.${{ matrix.name }}/x64.release
7367
cp ../../Javet/scripts/v8/gn/linux-x86_64-${{ matrix.name }}-args.gn out.gn.${{ matrix.name }}/x64.release/args.gn
7468
gn gen out.gn.${{ matrix.name }}/x64.release
@@ -92,6 +86,9 @@ jobs:
9286
cmake-version: '3.23.x'
9387

9488
- name: Build Javet JNI
89+
env:
90+
CC: ${{ env.ROOT }}/google/v8/third_party/llvm-build/Release+Asserts/bin/clang
91+
CXX: ${{ env.ROOT }}/google/v8/third_party/llvm-build/Release+Asserts/bin/clang
9592
run: |
9693
cd ${{ env.ROOT }}/Javet/cpp
9794
sh ./build-linux-x86_64.sh -DV8_DIR=${{ env.ROOT }}/google/v8 ${{ matrix.cmake_flag }}
@@ -130,7 +127,7 @@ jobs:
130127

131128
- name: Setup Ubuntu
132129
run: |
133-
sudo apt-get install -y execstack
130+
sudo apt-get install -y execstack binutils
134131
135132
- name: Setup Python
136133
uses: actions/setup-python@v5
@@ -143,6 +140,8 @@ jobs:
143140
git clone https://github.com/nodejs/node.git
144141
cd node
145142
git checkout v${{ env.JAVET_NODE_VERSION }}
143+
sed -i 's/__attribute__((tls_model(V8_TLS_MODEL)))/ /g' deps/v8/src/execution/isolate.h
144+
sed -i 's/__attribute__((tls_model(V8_TLS_MODEL)))/ /g' deps/v8/src/heap/local-heap.h
146145
python3 ${{ env.ROOT }}/Javet/scripts/python/patch_node_build.py -p ./
147146
./configure --enable-static ${{ matrix.node_flag }}
148147
python3 ${{ env.ROOT }}/Javet/scripts/python/patch_node_build.py -p ./

.github/workflows/macos_arm64_build.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ on:
77
workflow_dispatch:
88

99
env:
10-
JAVET_NODE_VERSION: 22.19.0
11-
JAVET_V8_VERSION: 14.0.365.4
12-
JAVET_VERSION: 4.1.7
10+
JAVET_NODE_VERSION: 24.8.0
11+
JAVET_V8_VERSION: 14.1.146.11
12+
JAVET_VERSION: 5.0.0
1313
ROOT: /Users/runner/work/Javet
1414

1515
jobs:
@@ -135,9 +135,6 @@ jobs:
135135
git clone https://github.com/nodejs/node.git
136136
cd node
137137
git checkout v${{ env.JAVET_NODE_VERSION }}
138-
sed -i '' '/-msse4\.1/d' deps/v8/third_party/abseil-cpp/absl/copts/copts.py
139-
sed -i '' '/-msse4\.1/d' deps/v8/third_party/abseil-cpp/absl/copts/GENERATED_AbseilCopts.cmake
140-
sed -i '' '/-msse4\.1/d' deps/v8/third_party/abseil-cpp/absl/copts/GENERATED_copts.bzl
141138
./configure --enable-static ${{ matrix.node_flag }}
142139
make -j4
143140
mv out out.${{ matrix.name }}

.github/workflows/macos_x86_64_build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ on:
77
workflow_dispatch:
88

99
env:
10-
JAVET_NODE_VERSION: 22.19.0
11-
JAVET_V8_VERSION: 14.0.365.4
12-
JAVET_VERSION: 4.1.7
10+
JAVET_NODE_VERSION: 24.8.0
11+
JAVET_V8_VERSION: 14.1.146.11
12+
JAVET_VERSION: 5.0.0
1313
ROOT: /Users/runner/work/Javet
1414

1515
jobs:

.github/workflows/windows_x86_64_build.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ on:
77
workflow_dispatch:
88

99
env:
10-
JAVET_NODE_VERSION: 22.19.0
11-
JAVET_V8_VERSION: 14.0.365.4
12-
JAVET_VERSION: 4.1.7
10+
JAVET_NODE_VERSION: 24.8.0
11+
JAVET_V8_VERSION: 14.1.146.11
12+
JAVET_VERSION: 5.0.0
1313
ROOT: D:\a\Javet
1414

1515
jobs:
@@ -168,7 +168,7 @@ jobs:
168168
- name: Build Javet JNI
169169
run: |
170170
cd ${{ env.ROOT }}\Javet\cpp
171-
.\build-windows.cmd -DNODE_DIR=${{ env.ROOT }}\node ${{ matrix.cmake_flag }}
171+
.\build-windows.cmd -DNODE_DIR=${{ env.ROOT }}\node -T ClangCL ${{ matrix.cmake_flag }}
172172
173173
- name: Upload the Artifact
174174
uses: actions/upload-artifact@v4

0 commit comments

Comments
 (0)