Skip to content
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

[v16.x-backport] deps: update V8 to 9.4 #40285

Merged
merged 16 commits into from
Oct 4, 2021
Merged

Conversation

targos
Copy link
Member

@targos targos commented Oct 2, 2021

Backport of #39945 with the addition of two commits to keep ABI, API and ICU 68 compatibility:

  • deps: make V8 9.4 abi-compatible with 9.0
  • deps: restore minimum ICU version to 68

Diff with

git diff bcb9e9efb4...HEAD -- 'deps/v8/include/cppgc/common.h' 'deps/v8/include/libplatform/libplatform.h'  'deps/v8/include/libplatform/libplatform-export.h' 'deps/v8/include/libplatform/v8-tracing.h' 'deps/v8/include/v8.h' 'deps/v8/include/v8-internal.h' 'deps/v8/include/v8-platform.h' 'deps/v8/include/v8-profiler.h' 'deps/v8/include/v8-version.h' 'deps/v8/include/v8config.h' | gh gist create

https://gist.github.com/targos/76f2dae6cc1ab9c3a52a3502bfb80bec

This is the last V8 version that I'm able to keep compatible with 9.0 with reasonable amount of work. I do not plan to backport V8 9.5 and later to v16.x LTS.

/cc @nodejs/v8-update @addaleax

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. v16.x v8 engine Issues and PRs related to the V8 dependency. labels Oct 2, 2021
@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Oct 2, 2021

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

targos and others added 16 commits October 4, 2021 13:24
PR-URL: nodejs#40285
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
PR-URL: nodejs#40285
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Original commit message:

    [testrunner] delete ancient junit compatible format support

    Testrunner has ancient support for JUnit compatible XML output.

    This CL removes this old feature.

    R=mstarzinger@chromium.org,jgruber@chromium.org,jkummerow@chromium.org
    CC=​machenbach@chromium.org

    Bug: v8:8728
    Change-Id: I7e1beb011dbaec3aa1a27398a5c52abdd778eaf0
    Reviewed-on: https://chromium-review.googlesource.com/c/1430065
    Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
    Commit-Queue: Tamer Tas <tmrts@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59045}

Refs: v8/v8@bd019bd

PR-URL: nodejs#32116
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Fixes a compilation issue on some platforms

PR-URL: nodejs#32116
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
This should be semver-patch since actual invocation is version
conditional.

PR-URL: nodejs#32116
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
There is a bug in the most recent version of VS2015 that affects v8.h
and therefore prevents compilation of addons.

Refs: https://stackoverflow.com/q/38378693

PR-URL: nodejs#32116
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
PR-URL: nodejs#35415
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>

deps: patch for v8 on windows

PR-URL: nodejs#40010
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>

deps: patch v8 for vs2019 in std17

PR-URL: nodejs#40060
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
PR-URL: nodejs#37587
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
PR-URL: nodejs#38990
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Original commit message:

    [date] Fix Date#getMinutes() test failures

    After building V8 using Clang (./out/x64.release/v8_build_config.json
    says that "is_clang" is true), I could reproduce the referenced bug
    report locally. Replacing the getMinutes() calls with getUTCMinutes()
    calls fixed the test failure.

    Signed-off-by: Darshan Sen <raisinten@gmail.com>
    Bug: v8:11200
    Change-Id: Ia36be481f2c8728380d550ead856ef8e51b1069c
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3093362
    Reviewed-by: Toon Verwaest <verwaest@chromium.org>
    Commit-Queue: Toon Verwaest <verwaest@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#76367}

Refs: v8/v8@00bb1a7
Signed-off-by: Darshan Sen <darshan.sen@postman.com>

PR-URL: nodejs#39829
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Original commit message:

    [platform] Fix compilation on 32-bit Windows

    Use `extern "C"` to declare the __readfsdword function.
    Fixes error C2732 in the Node.js CI.

    Bug: chromium:796644
    Change-Id: If261985e65bfdade53ce06ff28afe0e2db402f7a
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3086457
    Reviewed-by: Clemens Backes <clemensb@chromium.org>
    Commit-Queue: Michaël Zasso <mic.besace@gmail.com>
    Cr-Commit-Position: refs/heads/master@{#76259}

Refs: v8/v8@bdcda72

Backport-PR-URL: nodejs#40285
PR-URL: nodejs#39945
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Original commit message:

    [rab/gsab] Fix missing assignment in BackingStore::Reallocate

    See nodejs#39945

    Bug: v8:11111
    Change-Id: I7271a907bf036c18a014b2a13ff5746db622456a
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3141581
    Reviewed-by: Leszek Swirski <leszeks@chromium.org>
    Commit-Queue: Marja Hölttä <marja@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#76670}

Refs: v8/v8@5681a65

Backport-PR-URL: nodejs#40285
PR-URL: nodejs#39945
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Original commit message:

    [compiler] Gracefully handle an unsupported situation

    ... by skipping the optimization instead of CHECK-failing.

    Bug: v8:12188
    Change-Id: I6709bf1c55506f3d12886efbfbb9934788cd02ce
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3148132
    Auto-Submit: Georg Neis <neis@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#76741}

Refs: v8/v8@9a60704

PR-URL: nodejs#40046
Fixes: nodejs#40030
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Revert "[api] Avoid handles for const API functions"
This reverts commit aee471b2ff5b1a9e622426454885b748d226535b.

Revert "[api] Remove deprecated [Shared]ArrayBuffer API"
This reverts commit 578f6be77fc5d8af975005c2baf918e7225abb62.

Revert "[Jobs]: Cleanup in v8 platform."
This reverts commit baf2b088dd9f585aa597459f30d71431171666e2.

Revert "Skip global registration of [Shared]ArrayBuffer backing stores"
This reverts commit fcdf35e6d70d51699ece063e25dc705e80673308.

Revert "[api] Remove previously deprecated Function::GetDisplayName()."
This reverts commit 6165fef8cc9dde52973e54c915e6905221b3f8fb.

Revert "[api] Remove deprecated Symbol::Name()"
This reverts commit bbc72ef6c7d6d8e2c4dd074d7713e5c841003163.

Revert API change for HeapProfiler::TakeHeapSnapshot
This reverts a small part of 7f52e4f92d3d3ded9a1701ee2f93966075ae5004.

Revert "[cpu-profiler] Reintroduce support for context filtering"
This reverts commit 0aacfb2a6ecbeda1d1d97ca113afd8253a1b9670.

Restore new argument for TakeHeapSnapshot method
This creates a new TakeHeapSnapshotV8_92 method with the signature from
7f52e4f92d3d3ded9a1701ee2f93966075ae5004.
It is necessary because the API is used internall by V8.

Silence irrelevant warning
V8 triggers it in the Name method.

Revert "[api] Add v8::metrics::LongTaskStats for the LongTasks UKM"
This reverts commit 521ae93bf652b0cc1fec1fdd788e3b80fb72a349.

Move cage_base isolate data field
Makes 3ada6f27404b4ffd6d3e97cf15be76672f60c10d ABI-compatible.

Revert ABI-breaking change in FunctionTemplate::SetCallHandler
Reverts part of a7980d43e030ba4bdb36813d4bc99f85982bf4ee and
ad4eab00e7ec96730eb2c1b6ddcef14ba2e4becd.

Revert "[api] Support PropertyAttribute in v8::Template::Set"
This reverts commit 22a32f11f7a39e4a73105608a51ebab0ad97960f.

Revert API change for FunctionTemplate::New
This reverts the API change of 5f82dbbe534635a8b1e93f27e8fd7e68c0eaf291.

Fix some reverts
- constness of internal APIs has not external effect
- restored API function must but adapted to moved internal API.

Revert "[api] Add API for off-thread code cache deserialization"
This reverts commit f888f48e4c65e3ccfd9fd831c71c1832b957c945.

Revert "[api] Implement signature checks using instance types"
This reverts commit 7df6678c32255ec5a1b1470f1e5a7e56b3b192fa.

Revert "[api] Remove deprecated APIs"
This reverts commit 390456678a8261827cd9a1b5f0c4dc8e4328af07.

PR-URL: nodejs#40285
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Refs: v8/v8@edac496

PR-URL: nodejs#39470
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Beth Griggs <bgriggs@redhat.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Backport-PR-URL: nodejs#40285
PR-URL: nodejs#39945
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
@targos targos merged commit f7c8274 into nodejs:v16.x-staging Oct 4, 2021
@targos
Copy link
Member Author

targos commented Oct 4, 2021

Landed in bcb9e9e...f7c8274

@targos targos deleted the v8-94-v16.x branch October 4, 2021 11:29
@targos targos added the semver-minor PRs that contain new features and should be released in the next minor version. label Oct 5, 2021
danielleadams added a commit that referenced this pull request Oct 5, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) #40280
    * tools:
      * update certdata.txt (Richard Lau) #40280
    * deps:
      * update `nghttp2` to v1.45.1 (thunder-coding) #40206
      * update V8 to 9.4.146.19 (Michaël Zasso) #40285

    PR-URL: #40319
danielleadams added a commit that referenced this pull request Oct 6, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) #40280
    * tools:
      * update certdata.txt (Richard Lau) #40280
    * deps:
      * update `nghttp2` to v1.45.1 (thunder-coding) #40206
      * update V8 to 9.4.146.19 (Michaël Zasso) #40285

    PR-URL: #40319
danielleadams added a commit to danielleadams/node that referenced this pull request Oct 7, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) nodejs#40280
    * tools:
      * update certdata.txt (Richard Lau) nodejs#40280
    * deps:
      * update `nghttp2` to v1.45.1 (thunder-coding) nodejs#40206
      * update V8 to 9.4.146.19 (Michaël Zasso) nodejs#40285

    PR-URL: nodejs#40319
danielleadams added a commit to danielleadams/node that referenced this pull request Oct 7, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) nodejs#40280
    * tools:
      * update certdata.txt (Richard Lau) nodejs#40280
    * deps:
      * update `nghttp2` to v1.45.1 (thunder-coding) nodejs#40206
      * update V8 to 9.4.146.19 (Michaël Zasso) nodejs#40285

    PR-URL: nodejs#40319
danielleadams added a commit to danielleadams/node that referenced this pull request Oct 7, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) nodejs#40280
    * tools:
      * update certdata.txt (Richard Lau) nodejs#40280
    * deps:
      * update `nghttp2` to v1.45.1 (thunder-coding) nodejs#40206
      * update V8 to 9.4.146.19 (Michaël Zasso) nodejs#40285

    PR-URL: nodejs#40319
danielleadams added a commit that referenced this pull request Oct 7, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) #40280
    * tools:
      * update certdata.txt (Richard Lau) #40280
    * deps:
      * update `nghttp2` to v1.45.1 (thunder-coding) #40206
      * update V8 to 9.4.146.19 (Michaël Zasso) #40285

    PR-URL: #40319
danielleadams added a commit to danielleadams/node that referenced this pull request Oct 8, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) nodejs#40280
    * deps:
      * upgrade npm to 8.0.0 (npm team) nodejs#40369
      * update `nghttp2` to v1.45.1 (thunder-coding) nodejs#40206
      * update V8 to 9.4.146.19 (Michaël Zasso) nodejs#40285
    * tools:
      * update certdata.txt (Richard Lau) nodejs#40280

    PR-URL: nodejs#40319
danielleadams added a commit that referenced this pull request Oct 8, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) #40280
    * deps:
      * upgrade npm to 8.0.0 (npm team) #40369
      * update `nghttp2` to v1.45.1 (thunder-coding) #40206
      * update V8 to 9.4.146.19 (Michaël Zasso) #40285
    * tools:
      * update certdata.txt (Richard Lau) #40280

    PR-URL: #40319
danielleadams added a commit that referenced this pull request Oct 8, 2021
    Notable changes:

    * crypto:
      * update root certificates (Richard Lau) #40280
    * deps:
      * upgrade npm to 8.0.0 (npm team) #40369
      * update `nghttp2` to v1.45.1 (thunder-coding) #40206
      * update V8 to 9.4.146.19 (Michaël Zasso) #40285
    * tools:
      * update certdata.txt (Richard Lau) #40280

    PR-URL: #40319
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. needs-ci PRs that need a full CI run. semver-minor PRs that contain new features and should be released in the next minor version. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants