-
-
Notifications
You must be signed in to change notification settings - Fork 31.4k
deps: update V8 to 13.7 #58064
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
deps: update V8 to 13.7 #58064
Conversation
Review requested:
|
Debug build fails on my mac:
|
These two JSPI CLs might need to be included if not already part of this change, for ppc64 and s390x: |
@anonrig any idea why macOS fails to build on GitHub actions (simdutf-related error)? I didn't get this error locally. |
@miladfarca thanks for the heads up. I believe both commits are included already. |
I'm not sure. @lemire any suggestions to why simdutf is failing on macOS? https://github.com/nodejs/node/actions/runs/14713137908/job/41290246774?pr=58064 |
I believe that macos builds are going to be dependent on Xcode >=16.3, as V8 now depends on simdutf features that are contingent on This might necessitate changing the build image to macos-15. |
I see, thanks @Renegade334. I think the easiest for now is to revert https://chromium-review.googlesource.com/c/v8/v8/+/6449193, since it touches a feature that's in development and behind a flag. |
It looks like something is broken on the release builds too.
|
Some tests with a log in
|
Major V8 updates are usually API/ABI incompatible with previous versions. This commit adapts NODE_MODULE_VERSION for V8 13.7. Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
PR-URL: nodejs#54077 Reviewed-By: Jiawen Geng <[email protected]> Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Joyee Cheung <[email protected]> Reviewed-By: Marco Ippolito <[email protected]> Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
PR-URL: nodejs#53134 Refs: nodejs#52809 Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: James M Snell <[email protected]> PR-URL: nodejs#55014 Reviewed-By: Matteo Collina <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]>
It's causing linker errors with node.lib in node-gyp and potentially breaks other 3rd party tools PR-URL: nodejs#56238 Refs: nodejs#55784 Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> PR-URL: nodejs#55014 Reviewed-By: Matteo Collina <[email protected]>
GCC emits warnings because of the trailing backslashes.
illumos pointers are VA48, can allocate from the top of the 64-bit range as well.
It introduces process hangs on some platforms because Node.js doesn't tear down V8 correctly. Disable it while we work on a solution. Refs: nodejs#47297 Refs: https://bugs.chromium.org/p/v8/issues/detail?id=13902 PR-URL: nodejs#47450 Reviewed-By: Richard Lau <[email protected]> Reviewed-By: Yagiz Nizipli <[email protected]> Reviewed-By: Michael Dawson <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
V8 removed support for it. Refs: v8/v8@9565a9a
Refs: v8/v8@1c9f59c Refs: v8/v8@b1c5eba Refs: v8/v8@b3054f7 Refs: v8/v8@f81e87e Refs: v8/v8@dc0e305 Refs: v8/v8@41d42ce
Build Node.js with simdutf version from V8. Refs: v8/v8@d629051 Refs: v8/v8@616c875 Refs: v8/v8@e3204d5 Refs: v8/v8@e8293d2 Refs: v8/v8@aeb2220 Refs: v8/v8@5621164 Co-authored-by: Abdirahim Musse <[email protected]>
The API was removed from V8.
This reverts commit 6857dbc.
New V8 version includes more information about regular expressions.
We depend on V8's version of simdutf now.
The location of some third-party code has changed.
`Isolate::AdjustAmountOfExternalAllocatedMemory` is deprecated. Refs: v8/v8@7dc4c18
The `--expose_externalize_string` flag adds a new global.
As V8 is moving towards built-in CppHeap creation, change the management so that the automatic CppHeap creation on Node.js's end is also enforced at Isolate creation time. 1. If embedder uses NewIsolate(), either they use IsolateSettings::cpp_heap to specify a CppHeap that will be owned by V8, or if it's not configured, Node.js will create a CppHeap that will be owned by V8. 2. If the embedder uses SetIsolateUpForNode(), IsolateSettings::cpp_heap will be ignored (as V8 has deprecated attaching CppHeap post-isolate-creation). The embedders need to ensure that the v8::Isolate has a CppHeap attached while it's still used by Node.js, preferably using v8::CreateParams. See https://issues.chromium.org/issues/42203693 for details. In future version of V8, this CppHeap will be created by V8 if not provided, and we can remove our own "if no CppHeap provided, create one" code in NewIsolate().
The order of these calls is important. When the Isolate is disposed, it may still post tasks to the platform, so it must still be registered for the task runner to be found from the map. After the isolate is torn down, we need to remove it from the map before we can free the address, so that when another Isolate::Allocate() is called, that would not be allocated to the same address and be registered on an existing map entry.
simdutf's `atomic_binary_to_base64` requires `std::atomic_ref`. `std::atomic_ref` is only available in LLVM 19, which is only available in Xcode 16.3, which is only available on macOS 15. Refs: llvm/llvm-project#76647 Refs: v8/v8@e3cddbe
It depends on `std::atomic_ref`, which is not available in Xcode 16.1. Refs: v8/v8@6d6c1e6
Notable changes:
Might replace #57753
I removed a bunch of compat patches including all of those for MSVC and armv7.