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

deps: update V8 to 11.8 #49639

Closed
wants to merge 29 commits into from
Closed

deps: update V8 to 11.8 #49639

wants to merge 29 commits into from

Commits on Oct 10, 2023

  1. deps: update V8 to 11.8.172.13

    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    73ba853 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0fef29f View commit details
    Browse the repository at this point in the history
  3. src: update NODE_MODULE_VERSION to 120

    Major V8 updates are usually API/ABI incompatible with previous
    versions. This commit adapts NODE_MODULE_VERSION for V8 11.8.
    
    Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    23bbae2 View commit details
    Browse the repository at this point in the history
  4. deps: always define V8_EXPORT_PRIVATE as no-op

    dllexport introduces issues when compiling with MSVC.
    
    PR-URL: nodejs#47251
    Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
    Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Richard Lau <rlau@redhat.com>
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    ff43327 View commit details
    Browse the repository at this point in the history
  5. deps: silence irrelevant V8 warning

    PR-URL: nodejs#45579
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    PR-URL: nodejs#47251
    Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
    Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Richard Lau <rlau@redhat.com>
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    435c47d View commit details
    Browse the repository at this point in the history
  6. deps: disable V8 concurrent sparkplug compilation

    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 <rlau@redhat.com>
    Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
    Reviewed-By: Michael Dawson <midawson@redhat.com>
    Reviewed-By: Rich Trott <rtrott@gmail.com>
    Reviewed-By: James M Snell <jasnell@gmail.com>
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    6b80402 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    ec65678 View commit details
    Browse the repository at this point in the history
  8. deps: remove usage of a C++20 feature from V8

    We are not ready to compile with C++20 support yet.
    This is only a DCHECK that can be removed without affecting the behavior
    of release builds.
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    4b15fec View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    525ddd9 View commit details
    Browse the repository at this point in the history
  10. deps: V8: cherry-pick 1a3ecc2483b2

    Original commit message:
    
        Fix build issue, remove unneeded include uchar.h.
    
        Follow the conversation on:
        https://groups.google.com/g/v8-dev/c/nsbshwlmP3c.
    
        The `uchar.h` include is not necessary.
        It was added to get the definition of char16_t but that's an intrinsic
        type in C++.
    
        Change-Id: I0aaa11dba0be3ccad15b9e421f8bae71450d443b
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4823404
        Reviewed-by: Omer Katz <omerkatz@chromium.org>
        Commit-Queue: Eric Leese <leese@chromium.org>
        Reviewed-by: Eric Leese <leese@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#89787}
    
    Refs: v8/v8@1a3ecc2
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    dc935b6 View commit details
    Browse the repository at this point in the history
  11. deps: V8: cherry-pick 93b1a74cbc9b

    Original commit message:
    
        Reland "[api] allow v8::Data as internal field"
    
        This is a reland of commit 0aa622e12893e9921c01a34ce9507b544e599c4a
    
        The original patch tried to run a test that calls exit() in the
        fatal error handler in parallel, which would not work. This marked
        the test with TEST() to avoid running it in parallel.
    
        Original change's description:
        > [api] allow v8::Data as internal field
        >
        > Previously only v8::Value can be stored as internal fields.
        > In some cases, however, it's necessary for the embedder to
        > tie the lifetime of a v8::Data with the lifetime of a
        > JS object, and that v8::Data may not be a v8::Value, as
        > it can be something returned from the V8 API. One way to
        > keep the v8::Data alive may be to use a v8::Persistent<v8::Data>
        > but that can easily lead to leaks.
        >
        > This patch changes v8::Object::GetInternalField() and
        > v8::Object::SetInernalField() to accept v8::Data instead of just
        > v8::Value, so that v8::Data can kept alive by a JS object in
        > a way that the GC can be aware of to address this problem.
        > This is a breaking change for embedders
        > using v8::Object::GetInternalField() as it changes the return
        > type. Since most v8::Value subtypes only support direct casts
        > from v8::Value but not v8::Data, calls like
        >
        > object->GetInternalField(index).As<v8::External>()
        >
        > needs to be updated to cast the value to v8::Value first:
        >
        > object->GetInternalField(index).As<v8::Value>().As<v8::External>()
        >
        > Bug: v8:14120
        > Change-Id: I731c958d1756b9d5ee4a3e78813416cd60d1b7ca
        > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4707972
        > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
        > Commit-Queue: Joyee Cheung <joyee@igalia.com>
        > Cr-Commit-Position: refs/heads/main@{#89718}
    
        Bug: v8:14120
        Change-Id: I3e45d09b5c300d5eefc73e380ef21ac2bd61760c
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4834471
        Commit-Queue: Joyee Cheung <joyee@igalia.com>
        Reviewed-by: Camillo Bruni <cbruni@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#89824}
    
    Refs: v8/v8@93b1a74
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    b32f78b View commit details
    Browse the repository at this point in the history
  12. deps: V8: cherry-pick b5b5d6c31bb0

    Original commit message:
    
        Fix for no member named 'init_jmpbuf' on AIX
    
        In AIX, the system header file usr/include/sys/context.h file has jmpbuf redefined as __jmpbuf  which is creating the problem here.
    
        Change-Id: I4393e260092016315ac7559465684e3fdbba4900
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4868434
        Reviewed-by: Jakob Linke <jgruber@chromium.org>
        Commit-Queue: Milad Farazmand <mfarazma@redhat.com>
        Cr-Commit-Position: refs/heads/main@{#90087}
    
    Refs: v8/v8@b5b5d6c
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    b3b93c2 View commit details
    Browse the repository at this point in the history
  13. deps: V8: cherry-pick de9a5de2274f

    Original commit message:
    
        Ignore flags implied by --predictable during hash computation
    
        https://chromium-review.googlesource.com/c/v8/v8/+/4681766 added
        code to ignore --predictable during hash computation of flags
        in order to produce reproducible code cache. This turns out to
        be not enough since the flags implied by --predictable also
        need to be ignored for it to work. This patch makes sure that
        they are ignored.
    
        Change-Id: Ifa36641efe3ca105706fd293be46fc974055d2d4
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4851287
        Commit-Queue: Joyee Cheung <joyee@igalia.com>
        Reviewed-by: Leszek Swirski <leszeks@chromium.org>
        Reviewed-by: Patrick Thier <pthier@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#90022}
    
    Refs: v8/v8@de9a5de
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    aa82ccb View commit details
    Browse the repository at this point in the history
  14. deps: V8: cherry-pick 89b3702c92b0

    Original commit message:
    
        Reland^2 "[iterator-helpers] Unship due to incompat"
    
        This is a reland of commit bab67985346dbc0d566391ad561537b4554455b4
    
        Change since reland: A second breakage reported in chromium:1480783
    
        Original change's description:
        > Reland "[iterator-helpers] Unship due to incompat"
        >
        > This is a reland of commit 1a22cf9896d682a9dfca589f92ed97c7f875b8a2
        >
        > Change since revert: I mistakenly thought part of the finch
        > kill-switch playbook is to keep it enabled on ToT. It's actually
        > the opposite.
        >
        > Original change's description:
        > > [iterator-helpers] Unship due to incompat
        > >
        > > Bug: chromium:1474613, v8:13558
        > > Change-Id: Iccba26e5cd5dc1787172c78b6e4f6889ef67fcea
        > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4834350
        > > Reviewed-by: Adam Klein <adamk@chromium.org>
        > > Commit-Queue: Shu-yu Guo <syg@chromium.org>
        > > Cr-Commit-Position: refs/heads/main@{#89741}
        >
        > Bug: chromium:1474613, v8:13558
        > Change-Id: Idc421a114303f036622bff681c9fa252c9110b9d
        > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4843761
        > Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@chromium.org>
        > Auto-Submit: Shu-yu Guo <syg@chromium.org>
        > Commit-Queue: Shu-yu Guo <syg@chromium.org>
        > Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@chromium.org>
        > Cr-Commit-Position: refs/heads/main@{#89800}
    
        Bug: chromium:1474613, v8:13558
        Change-Id: Ia933c874508f1ec10ea4718c6378858cd5bec8f9
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4854732
        Reviewed-by: Rezvan Mahdavi Hezaveh <rezvan@chromium.org>
        Auto-Submit: Shu-yu Guo <syg@chromium.org>
        Commit-Queue: Rezvan Mahdavi Hezaveh <rezvan@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#89905}
    
    Refs: v8/v8@89b3702
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    95e9514 View commit details
    Browse the repository at this point in the history
  15. deps: V8: cherry-pick 8ec2651fbdd8

    Original commit message:
    
        fix: EmbeddedTargetOs on IBM i with Python 3.9
    
        For some context, Python 3.9 on IBM i returns "os400" for sys.platform
        instead of "aix". We used to build with Python 3.6 which returned "aix"
        as the platform
    
        When attempting to build Node.js with python 3.9 on IBM i we run into a
        build error.
    
        Ref: nodejs#48056
        Ref: nodejs#48056 (comment)
    
        I'm not quite sure where target_os is being passed down to the function ToEmbeddedTargetOs.
        It seems as though target_os is being generated from sys.platform or
        similar call from python as we started running into this issue after
        building with Python 3.9.
    
        This PR supersedes initial changes proposed in:
        https://chromium-review.googlesource.com/c/v8/v8/+/4259330
    
        This PR contains the minimal changes to successfully build Node.js (builds v8 as an internal dep)
        on IBM i with Python 3.9.
    
        Change-Id: I32d43197bce994a72a0d85091e91f80eeea4482d
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4846413
        Commit-Queue: Jakob Linke <jgruber@chromium.org>
        Reviewed-by: Michael Achenbach <machenbach@chromium.org>
        Reviewed-by: Jakob Linke <jgruber@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#89981}
    
    Refs: v8/v8@8ec2651
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    f5f62ef View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    e4f5a0f View commit details
    Browse the repository at this point in the history
  17. Configuration menu
    Copy the full SHA
    23e01d9 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    55e21e0 View commit details
    Browse the repository at this point in the history
  19. Configuration menu
    Copy the full SHA
    9485f89 View commit details
    Browse the repository at this point in the history
  20. Configuration menu
    Copy the full SHA
    62bd3f6 View commit details
    Browse the repository at this point in the history
  21. Configuration menu
    Copy the full SHA
    3a29541 View commit details
    Browse the repository at this point in the history
  22. Configuration menu
    Copy the full SHA
    e13172d View commit details
    Browse the repository at this point in the history
  23. Configuration menu
    Copy the full SHA
    4a15c7d View commit details
    Browse the repository at this point in the history
  24. test: adapt debugger tests to V8 11.4

    Accept a new `step` break message.
    pfaffe authored and targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    f030296 View commit details
    Browse the repository at this point in the history
  25. test: update flag to disable SharedArrayBuffer

    `--no-harmony-sharedarraybuffer` was removed from V8 but it's still
    possible to disable the feature with `--enable-sharedarraybuffer-per-context`.
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    e12e0ca View commit details
    Browse the repository at this point in the history
  26. Configuration menu
    Copy the full SHA
    1213ee4 View commit details
    Browse the repository at this point in the history
  27. test: adapt REPL test to V8 changes

    Syntax errors from `JSON.parse` contain more information and
    can now be printed on two lines if they are long.
    targos committed Oct 10, 2023
    Configuration menu
    Copy the full SHA
    11f1bde View commit details
    Browse the repository at this point in the history
  28. Configuration menu
    Copy the full SHA
    c37dcaa View commit details
    Browse the repository at this point in the history
  29. Configuration menu
    Copy the full SHA
    a74cdd8 View commit details
    Browse the repository at this point in the history