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 12.7 #53651

Closed
wants to merge 22 commits into from
Closed

deps: update V8 to 12.7 #53651

wants to merge 22 commits into from

Commits on Jul 17, 2024

  1. deps: update V8 to 12.7.224.16

    targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    0ec8f7e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cb87c17 View commit details
    Browse the repository at this point in the history
  3. src: update NODE_MODULE_VERSION to 129

    Major V8 updates are usually API/ABI incompatible with previous
    versions. This commit adapts NODE_MODULE_VERSION for V8 12.7.
    
    Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
    targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    e1f2d3a 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 Jul 17, 2024
    Configuration menu
    Copy the full SHA
    65381db View commit details
    Browse the repository at this point in the history
  5. 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 Jul 17, 2024
    Configuration menu
    Copy the full SHA
    714adc2 View commit details
    Browse the repository at this point in the history
  6. deps: avoid compilation error with ASan

    Refs: https://bugs.chromium.org/p/v8/issues/detail?id=14221
    PR-URL: nodejs#49639
    Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
    targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    4092105 View commit details
    Browse the repository at this point in the history
  7. deps: patch V8 to avoid duplicated zlib symbol

    PR-URL: nodejs#49639
    Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
    targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    5ec28ae View commit details
    Browse the repository at this point in the history
  8. deps: silence internal V8 deprecation warning

    PR-URL: nodejs#52293
    Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Richard Lau <rlau@redhat.com>
    targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    9957c27 View commit details
    Browse the repository at this point in the history
  9. deps: patch V8 to support compilation with MSVC

    After enabling -std:c++20 on Windows, patch is now much smaller.
    
    PR-URL: nodejs#52465
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Michael Dawson <midawson@redhat.com>
    StefanStojanovic authored and targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    b745131 View commit details
    Browse the repository at this point in the history
  10. deps: V8: revert CL 5331688

    On Windows debug builds, it is not allowed to dereference empty
    iterators.
    
    Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5331688
    PR-URL: nodejs#52465
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Michael Dawson <midawson@redhat.com>
    targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    5a387cb View commit details
    Browse the repository at this point in the history
  11. deps: fix FP16 bitcasts.h

    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>
    StefanStojanovic authored and targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    98d6836 View commit details
    Browse the repository at this point in the history
  12. deps: V8: cherry-pick a3cc8522a4c8

    Original commit message:
    
        [riscv] avoid cpu probing in li_ptr
    
        CPU probing is an expensive thing to do and we should avoid doing it upon every li_ptr call.
    
        Fixes performance regresion bisected in riscv-forks/electron#1
    
        Change-Id: Ib5ff89b2a730e08de6735123ae60adeffe811ed8
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5612950
        Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
        Reviewed-by: Yahan Lu <yahan@iscas.ac.cn>
        Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#94349}
    
    Refs: v8/v8@a3cc852
    PR-URL: nodejs#53412
    Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
    Reviewed-By: Michaël Zasso <targos@protonmail.com>
    Reviewed-By: Richard Lau <rlau@redhat.com>
    Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
    Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
    Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
    kxxt authored and targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    b23f333 View commit details
    Browse the repository at this point in the history
  13. deps: V8: cherry-pick e061cf9970d9

    Original commit message:
    
        [arraybuffers] initialize max byte length of empty array buffers
    
        Without initializing the max byte length field, any empty array
        buffer captured in the snapshot can make the snapshot unreproducible.
    
        Refs: nodejs#53579
    
        Change-Id: I2489ab2e57ecbb405ec431a87d0acc92822b777c
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5662576
        Reviewed-by: Marja Hölttä <marja@chromium.org>
        Commit-Queue: Marja Hölttä <marja@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#94754}
    
    Refs: v8/v8@e061cf9
    PR-URL: nodejs#53755
    Fixes: nodejs#53579
    Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
    Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
    joyeecheung authored and targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    e8c5877 View commit details
    Browse the repository at this point in the history
  14. deps: V8: cherry-pick 058870cfbea6

    Original commit message:
    
        [heap] Fix allocation tracker line end retrieval
    
        Tests in NodeJS with DCHECK enabled were failing because of two
        different problems:
        - One was that we were also disallowing heap allocations in the
        serialization stage. But NodeJS tests process the heap snapshot
        result in JS, so all those were broken.
        - But, also, the code that would retrieve from line ends would assume
        all the scripts populated line ends in the snapshot. But this was
        wrong. To fix it, this patch adds another storage of the line ends
        in the allocation tracker. This storage needs to keep weak references
        to the scripts so we do not leak the line ends data when scripts are
        disposed.
    
        This change keeps a weak reference to the scripts so, when they are
        freed, the line ends cache is also freed as it is not useful anymore.
    
        Node issue: nodejs/node-v8#282
    
        Change-Id: I4314d707903175f0005893e9aa06d3ae52fc57f8
        Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5531355
        Commit-Queue: José Dapena Paz <jdapena@igalia.com>
        Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
        Reviewed-by: Simon Zünd <szuend@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#94418}
    
    Refs: v8/v8@058870c
    targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    9a1d10d View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    40547b0 View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    21cd02d View commit details
    Browse the repository at this point in the history
  17. build: disable ICF for mksnapshot

    Refs: https://chromium-review.googlesource.com/c/v8/v8/+/5447267
    Co-authored-by: Michaël Zasso <targos@protonmail.com>
    LeszekSwirski and targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    127ada7 View commit details
    Browse the repository at this point in the history
  18. Configuration menu
    Copy the full SHA
    740edbf View commit details
    Browse the repository at this point in the history
  19. tools: update V8 gypfiles for 12.6

    targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    d0137e2 View commit details
    Browse the repository at this point in the history
  20. src: remove dependency on wrapper-descriptor-based CppHeap

    As V8 has moved away from wrapper-descriptor-based CppHeap, this
    patch:
    
    1. Create the CppHeap without using wrapper descriptors.
    2. Deprecates node::SetCppgcReference() in favor of
       v8::Object::Wrap() since the wrapper descriptor is no longer
       relevant. It is still kept as a compatibility layer for addons
       that need to also work on Node.js versions without
       v8::Object::Wrap().
    joyeecheung authored and targos committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    09bf343 View commit details
    Browse the repository at this point in the history

Commits on Jul 18, 2024

  1. build: update abseil files

    Add/remove abseil files introduced by V8 12.7 update found by:
    ```
    git diff-tree --no-commit-id --name-status 0ec8f7e -r | grep '^[AD].*abseil.*'
    ```
    richardlau committed Jul 18, 2024
    Configuration menu
    Copy the full SHA
    a8deb42 View commit details
    Browse the repository at this point in the history

Commits on Jul 19, 2024

  1. Configuration menu
    Copy the full SHA
    a29cf0b View commit details
    Browse the repository at this point in the history