GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||||||||||||
GeezerVison is showing github.com — deps: update V8 to 14.6 by targos · Pull Request #61898 · nodejs/node Conversation
Member
PR for previous version: #61681
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactions
Collaborator
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
Member
Author
All reactions
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page.
This was referenced
|
There was an error while loading. Please reload this page.
|
Additionally, snapshot is no longer reproducible: Edit: not macOS-specific: https://github.com/nodejs/node/actions/runs/22221811293/job/64279253109 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Note that this changeset does not compile with GCC <14.1, unless the following patch is applied: diff --git a/deps/v8/src/objects/js-duration-format.cc b/deps/v8/src/objects/js-duration-format.cc index 41bdbc2cc6..c9ef451713 100644 --- a/deps/v8/src/objects/js-duration-format.cc +++ b/deps/v8/src/objects/js-duration-format.cc @@ -807,7 +807,7 @@ void OutputFractional(const char* type, int64_t integer, int32_t powerOfTen, // Pass in the value as int64_t and ask ICU to scale down. nfOpts = nfOpts.scale(icu::number::Scale::powerOfTen(-powerOfTen)); - int64_t factor = static_cast<int64_t>(std::powl(10, powerOfTen)); + int64_t factor = static_cast<int64_t>(std::pow(10.0L, powerOfTen)); int64_t bound = std::numeric_limits<int64_t>::max() / factor - 1; UErrorCode status = U_ZERO_ERROR; // Use faster ICU API formatInt if the value fit the precision int64_t, |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
FYI @joyeecheung |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
For what it's worth this branch seems to build ok with a RISC-V cross compiler too 👍🏻 (An experimental platform but I thought I'd mention it anyway ;-) ) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@nodejs/platform-windows Can you please have a look at the Windows build failure? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
There's still this REPL strict mode issue: #61898 (comment) @nodejs/repl |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
And the reproducible snapshot: #61898 (comment) @nodejs/startup (for lack of a more specific team) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
It's not so much a REPL issue as an issue with the VM global sandbox interceptors, introduced as a regression with 113b5cfbeb3dee1c81391d920e535cebe4792cc8. Previously, we were simulating CheckContextualStoreToJSGlobalObject-esque behaviour by rejecting interceptions on global proxy properties in strict mode if the receiver was not the global object. Now that we can no longer observe the receiver, that mechanism doesn't exist, and statements like (We should probably have VM tests for this.) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
We will either need to merge (or upstream) this, or change the GCC build requirement to >=14.1. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Would you like to try and upstream it? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
It would be easier if someone with existing Chromium contributor status did the honours, I'd rather not jump through the hoops for a one-liner! |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
|
Locally this fixes the snapshot reproducibility test for me See diffdiff --git a/deps/v8/src/builtins/builtins-proxy-gen.cc b/deps/v8/src/builtins/builtins-proxy-gen.cc index 0bc45bac300..f0047f044f2 100644 --- a/deps/v8/src/builtins/builtins-proxy-gen.cc +++ b/deps/v8/src/builtins/builtins-proxy-gen.cc @@ -63,6 +63,10 @@ TNode<JSProxy> ProxiesCodeStubAssembler::AllocateProxy( StoreObjectFieldNoWriteBarrier(proxy, JSProxy::kTargetOffset, target); StoreObjectFieldNoWriteBarrier(proxy, JSProxy::kHandlerOffset, handler); StoreObjectFieldNoWriteBarrier(proxy, JSProxy::kFlagsOffset, flags); +#if TAGGED_SIZE_8_BYTES + StoreObjectFieldNoWriteBarrier(proxy, JSProxy::kPaddingOffset, + Int32Constant(0)); +#endif return CAST(proxy); } diff --git a/deps/v8/src/heap/factory.cc b/deps/v8/src/heap/factory.cc index b6f6938450c..e0117df19f9 100644 --- a/deps/v8/src/heap/factory.cc +++ b/deps/v8/src/heap/factory.cc @@ -3945,6 +3945,9 @@ Handle<JSProxy> Factory::NewJSProxy(DirectHandle<JSReceiver> target, result->set_target(*target, SKIP_WRITE_BARRIER); result->set_handler(*handler, SKIP_WRITE_BARRIER); result->set_flags(JSProxy::IsRevocableBit::encode(revocable)); +#if TAGGED_SIZE_8_BYTES + result->set_padding(0); +#endif return handle(result, isolate()); } Uploaded https://chromium-review.googlesource.com/c/v8/v8/+/7666243 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Also uploaded https://chromium-review.googlesource.com/c/v8/v8/+/7666244 (IIUC, it was a libstdc++ issue fixed by https://gcc.gnu.org/pipermail/libstdc++/2023-February/055493.html) |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
I'll take a look. Thanks for the ping. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Will look into it. Thanks for the ping. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
So that snapshots with proxies can be reproducible. Refs: nodejs/node#61898 Change-Id: I01fac5e18c73cd482a1ae63750dbadf42a12e08a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7666243 Reviewed-by: Jakob Kummerow <[email protected]> Commit-Queue: Joyee Cheung <[email protected]> Cr-Commit-Position: refs/heads/main@{#105830}
|
@targos, here is the patch to enable building on Windows: v8-146-fix.patch. Two small changes were needed. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks @StefanStojanovic and @joyeecheung. I pushed your fixes. Let's see how it goes on GH runners. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
V8 CI: https://ci.nodejs.org/job/node-test-commit-v8-linux/nodes=rhel8-s390x,v8test=v8test/7144/ |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
PR-URL: #61898 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
PR-URL: #61898 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Major V8 updates are usually API/ABI incompatible with previous versions. This commit adapts NODE_MODULE_VERSION for V8 14.6. Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md PR-URL: #61898 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
PR-URL: #61898 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
It's causing linker errors with node.lib in node-gyp and potentially breaks other 3rd party tools Refs: #55784 PR-URL: #61898 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
GCC emits warnings because of the trailing backslashes. PR-URL: #61898 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
illumos pointers are VA48, can allocate from the top of the 64-bit range as well. PR-URL: #61898 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
In illumos, madvise(3C) now takes `void *` for its first argument post-illumos#14418, but uses `caddr_t` pre-illumos#14418. This fix will detect if the illumos mman.h file in use is pre-or-post-illumos#14418 so builds can work either way. PR-URL: #61898 Reviewed-By: Antoine du Hamel <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Chengzhong Wu <[email protected]>
Original commit message:
GCC 15 removed avx10.2-512 target
PiperOrigin-RevId: 823560321
Refs: google/highway@989a498
Fixes: #60566
PR-URL: #61898
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Filip Skokan <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
|
Landed in 9c4ca0a...fcff458 |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
V8 deprecates passing receiver to interceptor callbacks
There was an error while loading. Please reload this page.