-
-
Notifications
You must be signed in to change notification settings - Fork 31.4k
deps: update V8 to 13.6 (bis) #58070
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?
Conversation
Major V8 updates are usually API/ABI incompatible with previous versions. This commit adapts NODE_MODULE_VERSION for V8 13.6. Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
PR-URL: nodejs#54077 Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
PR-URL: nodejs#53134 Refs: nodejs#52809 Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> PR-URL: nodejs#55014 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
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 <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> PR-URL: nodejs#55014 Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
GCC emits warnings because of the trailing backslashes.
Review requested:
|
illumos pointers are VA48, can allocate from the top of the 64-bit range as well.
Original commit message: [api] add Isolate::Deinitialize() and Isolate::Free() This allows embedders to mirror the isolate disposal routine with an initialization routine that uses Isolate::Allocate(). ``` v8::Isolate* isolate = v8::Isolate::Allocate(); // Use the isolate address as a key. v8::Isolate::Initialize(isolate, params); isolate->Deinitialize(); // Remove the entry keyed by isolate address. v8::Isolate::Free(isolate); ``` Previously, the only way to dispose the isolate bundles the de-initialization and the freeing of the address together in v8::Isolate::Dispose(). This is inadequate for embedders like Node.js that uses the isolate address as a key to manage the task runner associated with it, if another thread gets an isolate allocated at the aligned address before the other thread finishes cleanup for the isolate previously allocated at the same address, and locking on the entire disposal can be too risky since it may post GC tasks that in turn requires using the isolate address to locate the task runner. It's a lot simpler to handle the issue if the disposal process of the isolate can mirror the initialization of it and split into two routines. Refs: nodejs#57753 (comment) Refs: nodejs#30850 Bug: 412943769 Change-Id: I3865c27395aded3a6f32de74d96d0698b2d891b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6480071 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/main@{#99890} Refs: v8/v8@954187b
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 <abdirahim.musse@ibm.com>
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.
We still have this consistent macOS test failure on GitHub actions:
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #58070 +/- ##
==========================================
- Coverage 90.21% 89.64% -0.57%
==========================================
Files 630 630
Lines 186391 186416 +25
Branches 36610 36290 -320
==========================================
- Hits 168146 167106 -1040
- Misses 11066 12086 +1020
- Partials 7179 7224 +45 🚀 New features to boost your workflow:
|
Now there are failing https://ci.nodejs.org/job/node-test-commit-linux-containered/50344/ |
And timeouts too while building addons on Windows |
It passed in https://ci.nodejs.org/job/node-test-pull-request/66495/ and https://ci.nodejs.org/job/node-test-commit/79461/ so could come from the diff? |
Same as #57753, without compatibility patches for MSVC and armv7.
Notable changes: