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

Latest v8 fixes #150

Closed
wants to merge 51 commits into from
Closed

Latest v8 fixes #150

wants to merge 51 commits into from

Conversation

mmarchini
Copy link

Fixes broken build with latest V8 commit.

nodejs-ci and others added 30 commits March 3, 2020 00:56
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/node#26685
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
PR-URL: nodejs/node#26685
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Patch V8 (compiler/js-heap-broker.cc) to remove the use of an optional
property, which is a fairly new C++ feature, since that requires a newer
XCode version than the minimum requirement in BUILDING.md and thus
breaks CI.

PR-URL: nodejs/node#29694
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
This commit updates V8's postmortem metadata generation script
to support V8 7.8.

The following metadata has changed:

- v8dbg_class_JSDate__value__Object
  - The postmortem metadata generation script needed to be
    updated. No action should be required by postmortem tools.

- v8dbg_class_JSRegExp__source__Object
  - The postmortem metadata generation script needed to be
    updated. No action should be required by postmortem tools.

PR-URL: nodejs/node#29694
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
This commit updates V8's postmortem metadata
generation script. This commit re-exposes the
v8dbg_class_UncompiledData__inferred_name__String
constant after it moved to Torque.

PR-URL: nodejs/node#30020
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Fixes a compilation issue on some platforms

PR-URL: nodejs/node#27375
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
This should be semver-patch since actual invocation is version
conditional.

PR-URL: nodejs/node#27375
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
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/node#30020
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Co-authored-by: Ujjwal Sharma <usharma1998@gmail.com>
These methods will be removed in V8 8.1, hence we need to stop
overriding them.
until a16b2c7eef289ddb1007193c1772b7c5f74190cc
until bed702fa07fae0d450b3907b29b4e21d1f41d0b8
This commit updates V8's postmortem metadata generation
script to re-expose the
v8dbg_class_Map__constructor_or_backpointer__Object
constant.
The following metadata has changed in V8:

- v8dbg_class_ConsString__first_offset__int
  - Use v8dbg_class_ConsString__first__String instead.
  - Refs: v8/v8@b38dfaf

- v8dbg_class_ConsString__second_offset__int
  - Use v8dbg_class_ConsString__second__String instead.
  - Refs: v8/v8@b38dfaf

- v8dbg_class_Map__constructor_or_backpointer__Object
  - This constant has not changed, but the postmortem metadata generation
    script required an update.

- v8dbg_class_SlicedString__offset_offset__int
  - Use v8dbg_class_SlicedString__offset__SMI instead.
  - Refs: v8/v8@b38dfaf

- v8dbg_class_ThinString__actual_offset__int
  - Use v8dbg_class_ThinString__actual__String instead.
  - Refs: v8/v8@b38dfaf
This commit updates v8abbr.h to use the updated metadata.
until 6bd85fc611dc66d08e6f0708c1b62bf4df3c1216
until 2f205f5a3343b37d3125af88efd925ab300a290e
until 221f4068d34da39726cfd0ac4d746a02e33edde5
until bc0c25b4a0cd29d12bb5acb800b85dbb265580cb
until 15ec4a09d35b31bad7c30db3b639a34e07646317
Fixes the following warning times a gazillion:

    <command-line>: warning: ISO C++11 requires whitespace after the
    macro name
It only uses adler32() and only in one place that's arguably not very
performance critical so simplify the build by building just adler32.c
and nothing else.
Bump minimum version of ICU needed to build node to 65.

Refs: v8/v8@74bf96e
targos and others added 17 commits March 3, 2020 00:57
until ae066800c904eac3dd77f7de442e1b24f873484e
until cfb2d89a9283c4dff0e77463e4da8c3f71890ca1
V8 is about to increase the max TypedArray length to 2**32-1, which
Node inherits as Buffer.kMaxLength. Some tests relied on values greater
than the previous max length (2**31-1) to throw errors; this updates
those tests for the new max length.
Serialization support of WasmModuleObjects will be removed in
https://crrev.com/c/2013110, thus we need to stop testing for that.
until f22c213304ec3542df87019aed0909b7dafeaa93
until 72fc962b4db88af63a50e8f0b0a33313eb2e08ff
The {SetExpectInlineWasm} method is deprecated and non-functional since
V8 v8.1.
Thus node should stop calling it, so that it can be fully removed in a
future v8 version.
until fe6bd3019d47c8522e2cad2bb52fd82dce906485
until 4c7c6f732cb607676bec1c9acb570e91ddfc507d
This removes uses of the "IsWebAssemblyCompiledModule" method, which is
deprecated in V8 v8.1 and will be removed in v8.2.
We could replace it by "IsWasmModuleObject", but since it's unused in
node anyway, I just remove the definition.
Co-authored-by: Ben Noordhuis <info@bnoordhuis.nl>
tools/v8_gypfiles/v8.gyp Outdated Show resolved Hide resolved
@targos
Copy link
Member

targos commented Mar 8, 2020

Does the new target need to enable C++ exceptions? It doesn't look like it from a quick glance at the GN change.

Can you please add until b09fc8490a077d1965bfbe91f65b7d9130c2f75e to the commit message?
We usually note the last commit to be able to easily see the diff for the next update.

Here's how I check for upstream changes:

cd path/to/v8/clone
git pull
git diff $LATEST_UNTIL_SHA...origin/lkgr **/*.gn* # port relevant changes to gyp files
git log $LATEST_UNTIL_SHA...origin/lkgr **/*.gn* # copy first commit SHA and paste into gypfile update commit message

Co-Authored-By: Michaël Zasso <targos@protonmail.com>
@mmarchini
Copy link
Author

Ok, we should probably just remove v8_uninitialized, they removed it upstream: https://chromium-review.googlesource.com/c/v8/v8/+/2091474

These commands are great, thank you for sharing!

@mmarchini
Copy link
Author

Just rebased canary-base again and it seems like this commit is not necessary anymore on lkgr. Since it has things it shouldn't (like the C++ exception flags), can we just drop it? Or would you rather land it and revert (for git log purposes)?

I dropped it for now on canary-base, let me know how you want to proceed.

@nodejs-ci nodejs-ci force-pushed the canary branch 4 times, most recently from 7891c55 to 24edde6 Compare March 15, 2020 06:56
@mmarchini mmarchini closed this Mar 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet