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 6.4 #17489

Closed
wants to merge 10 commits into from
Closed

deps: update V8 to 6.4 #17489

wants to merge 10 commits into from

Conversation

targos
Copy link
Member

@targos targos commented Dec 6, 2017

@targos targos added wip Issues and PRs that are still a work in progress. semver-major PRs that contain breaking changes and should be released in the next major version. labels Dec 6, 2017
@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. v8 engine Issues and PRs related to the V8 dependency. labels Dec 6, 2017
@MylesBorins
Copy link
Contributor

MylesBorins commented Dec 6, 2017

Failures in the V8 CI looks related to a test runner change

08:07:26 run-tests.py: error: no such option: --noi18n

edit:

Benchmark machine is showing a different failure

07:52:29 In file included from ../src/setup-isolate-full.cc:7:
07:52:29 .././src/base/logging.h:8:10: fatal error: 'cstring' file not found
07:52:29 #include <cstring>
07:52:29          ^~~~~~~~~
07:52:29 In file included from ../src/base/cpu.cc:5:
07:52:29 In file included from .././src/base/cpu.h:16:
07:52:29 In file included from .././src/base/base-export.h:8:
07:52:29 .././include/v8config.h:16:11: fatal error: 'features.h' file not found
07:52:29 # include <features.h>
07:52:29           ^~~~~~~~~~~~
07:52:29 In file included from ../src/base/bits.cc:5:
07:52:29 .././src/base/bits.h:9:10: fatal error: 'type_traits' file not found
07:52:29 #include <type_traits>
07:52:29          ^~~~~~~~~~~~~
07:52:29 In file included from ../src/base/debug/stack_trace.cc:5:
07:52:29 .././src/base/debug/stack_trace.h:13:10: fatal error: 'iosfwd' file not found
07:52:29 #include <iosfwd>
07:52:29          ^~~~~~~~
07:52:29 1 error generated.
07:52:29 In file included from ../src/base/division-by-constant.cc:5:
07:52:29 In file included from .././src/base/division-by-constant.h:10:
07:52:29 In file included from .././src/base/base-export.h:8:
07:52:29 .././include/v8config.h:16:11: fatal error: 'features.h' file not found
07:52:29 # include <features.h>
07:52:29           ^~~~~~~~~~~~
07:52:29 make[2]: *** [/home/iojs/build/workspace/node-test-commit-v8-linux/nodes/benchmark/v8test/v8test/deps/v8/out/x64.release/obj.target/v8_libbase/src/base/cpu.o] Error 1
07:52:29 make[2]: *** Waiting for unfinished jobs....

@MylesBorins
Copy link
Contributor

Windows failures are expected, we will no longer support VS2015 with the 6.4 release. We need to update CI to account for this

ARM failures are all infra related

@MylesBorins
Copy link
Contributor

/cc @nodejs/build for the benchmark failures that look gcc related

@targos
Copy link
Member Author

targos commented Dec 7, 2017

@targos
Copy link
Member Author

targos commented Dec 15, 2017

@targos targos force-pushed the v8-6.4 branch 2 times, most recently from 30eceaa to 847f7ce Compare December 15, 2017 14:37
@targos
Copy link
Member Author

targos commented Dec 15, 2017

@targos
Copy link
Member Author

targos commented Dec 19, 2017

i18n issue is fixed.

Compilation is still consistently failing on the benchmark machine. Does anyone understand this?

https://ci.nodejs.org/job/node-test-commit-v8-linux/1125/

@bnoordhuis
Copy link
Member

It looks as if the bundled clang is looking in the wrong place for system headers. Does this patch help?

diff --git a/Makefile b/Makefile
index 992af02768..5b8cdfd685 100644
--- a/Makefile
+++ b/Makefile
@@ -29,6 +29,7 @@ ifdef ENABLE_V8_TAP
   TAP_V8_BENCHMARKS := --junitout $(PWD)/v8-benchmarks-tap.xml
 endif
 
+V8_BUILD_OPTIONS += GYPFLAGS="-Dclang=0"
 V8_TEST_OPTIONS = $(V8_EXTRA_TEST_OPTIONS)
 ifdef DISABLE_V8_I18N
   V8_TEST_OPTIONS += --noi18n

@targos
Copy link
Member Author

targos commented Dec 19, 2017

@bnoordhuis
Copy link
Member

08:18:36 === All tests succeeded

\o/

@targos
Copy link
Member Author

targos commented Dec 20, 2017

@bnoordhuis Is it something that I should keep in this PR (if so, can you please help me to write the commit message?) or should it be only set for the affected build bot?

@bnoordhuis
Copy link
Member

I'd keep it. Google's bundled clang is not useful to us because that's not what our users use to compile node.js. As to the commit log: maybe this?

build: compile v8 using system compiler

Stop using the copy of clang that is bundled with Google's build tools and start using the compiler that is installed on the buildbots. It stopped working on one of the machines because it looked in the wrong place for system headers and is not representative of how users build Node.js on their systems.

@targos
Copy link
Member Author

targos commented Dec 20, 2017

@targos
Copy link
Member Author

targos commented Dec 20, 2017

Marking as blocked until V8 6.4 is stable (Jan 23rd, 2018).

@targos targos added blocked PRs that are blocked by other issues or PRs. and removed wip Issues and PRs that are still a work in progress. labels Dec 20, 2017
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
PR-URL: nodejs#17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
PR-URL: nodejs#17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
Major V8 updates are usually API/ABI incompatible with previous
versions. This commit adapts NODE_MODULE_VERSION for V8 6.4.

Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md

PR-URL: nodejs#17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
It is necessary to enable more C++ features in order to build V8 6.4.

PR-URL: nodejs#17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
The option was removed in [1] to use compiler option instead.

[1]: v8/v8@0b9acc2

PR-URL: nodejs#17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
Stop using the copy of clang that is bundled with Google's build tools
and start using the compiler that is installed on the buildbots.
It stopped working on one of the machines because it looked in the
wrong place for system headers and is not representative of how users
build Node.js on their systems.

PR-URL: nodejs#17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
This commit renames V8DBG_CLASS_MAP__INSTANCE_ATTRIBUTES__INT
to V8DBG_CLASS_MAP__INSTANCE_TYPE__UINT16_T following upstream changes.

PR-URL: nodejs#17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
This commit updates the following postmortem metadata constants:

- v8dbg_class_Map__inobject_properties_or_constructor_function_index__int
  - This is now
    v8dbg_class_Map__inobject_properties_start_or_constructor_function_index__char
    as of
    v8/v8@61bf2cc
- v8dbg_class_Map__instance_attributes__int
  - This is now v8dbg_class_Map__instance_type__uint16_t as of
    v8/v8@c00bb6d
    and
    v8/v8@cb46310
- v8dbg_class_Map__instance_size__int
  - This is now v8dbg_class_Map__instance_size_in_words__char as of
    v8/v8@61bf2cc

Refs: nodejs/node-v8#34

PR-URL: nodejs#17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
PR-URL: nodejs#17489
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
Original commit message:

    [api,modules] Allow GetModuleNamespace on unevaluated modules.

    Bug: v8:7217
    Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
    Change-Id: I97b067254355eb91e12b92eba92631cbc3ce8000
    Reviewed-on: https://chromium-review.googlesource.com/839280
    Commit-Queue: Georg Neis <neis@chromium.org>
    Reviewed-by: Adam Klein <adamk@chromium.org>
    Cr-Commit-Position: refs/heads/master@{nodejs#50395}

Backport-PR-URL: nodejs#17489
PR-URL: nodejs#18038
Refs: v8/v8@0c35b72
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
4c4af64 accidentally dropped the significant whitespace from this test
when it was landed. Add the whitespace back.

Refs: nodejs#17489
PR-URL: nodejs#18360
Reviewed-By: Kyle Farnung <kfarnung@microsoft.com>
MayaLekova pushed a commit to MayaLekova/node that referenced this pull request May 8, 2018
Some whitespace was lost when nodejs#17489 landed. While I restored the one
file causing the V8-CI to fail, I missed the remaining changes from
Myles. This changes restores all whitespace differences with upstream.

PR-URL: nodejs#18366
Refs: nodejs#18360
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
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. semver-major PRs that contain breaking changes and should be released in the next major version. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.