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

v7.x: backport update to V8 5.5 #11029

Merged
merged 8 commits into from
Feb 7, 2017
Merged

Conversation

targos
Copy link
Member

@targos targos commented Jan 26, 2017

This is a backport of the update to V8 5.5 for v7.x.

Additions are:

  • Revert of the breaking UTF-8 decoder changes
  • Patches to recover ABI/API compatibility with V8 5.4
  • Patches to keep compatibility with all platforms supported by v7.x

/cc @nodejs/collaborators

CI: https://ci.nodejs.org/job/node-test-commit/7510
V8 tests: https://ci.nodejs.org/job/node-test-commit-v8-linux/543/

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • commit message follows commit guidelines
Affected core subsystem(s)

V8

@targos targos added semver-minor PRs that contain new features and should be released in the next minor version. v7.x v8 engine Issues and PRs related to the V8 dependency. labels Jan 26, 2017
@nodejs-github-bot nodejs-github-bot added v7.x v8 engine Issues and PRs related to the V8 dependency. labels Jan 26, 2017
@MylesBorins
Copy link
Contributor

MylesBorins commented Jan 26, 2017 via email

@ofrobots
Copy link
Contributor

This is heroic; kudos for putting it together!

@pi0 pi0 mentioned this pull request Jan 27, 2017
2 tasks
@misterdjules
Copy link

Thank you @targos!

@mcollina
Copy link
Member

Does this include #9730 as well? It might need to be reapplied.

@targos
Copy link
Member Author

targos commented Jan 27, 2017

@mcollina Yes it is included. Ref:v8/v8@a3197fa

@mcollina
Copy link
Member

Thanks!

@targos
Copy link
Member Author

targos commented Jan 31, 2017

@Trott
Copy link
Member

Trott commented Jan 31, 2017

Needs a rebase. Also, do any of the Collaborators giving this emoticon upvotes and positive comments feel comfortable enough approving it? 1500+ files changed. Personally, I wouldn't know where to begin to even spot-check this sort of thing before dropping in a rubber-stamp approval. Paging @nodejs/v8 for help.

@rom1504
Copy link

rom1504 commented Jan 31, 2017

@Trott if you look at all commits of this PR except "deps: update V8 to 5.5.372.40" then actually little changes were made ;)

@bricss
Copy link

bricss commented Jan 31, 2017

I believe that V8 dev team already approved it, also there is a pile of tests for this. Just merge it. 😃

@MylesBorins
Copy link
Contributor

MylesBorins commented Feb 1, 2017

I'm going to spend some time tomorrow getting the abi smoker up and running again. Thanks for the patience everyone :D

edit: I totally said tomorrow 5 days ago... totally for serious mean it this time

@MylesBorins
Copy link
Contributor

MylesBorins commented Feb 1, 2017

Rebased the rebuild job and fingers crossed it should be working

--> https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker-rebuild/3/

Will dig into results tomorrow

edit: the above was just the job that forces a rebuild of native modules, below is a job that builds with v7.5.0 and then tests with the node built from this PR

https://ci.nodejs.org/view/Node.js-citgm/job/citgm-abi-smoker/29/

edit:

citgm job of v7.5.0 for comparison

https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/561/

edit 2:

the rebuild job has some failures that are a bit concerning, the abi smoker has passed. Only failures are known flakes

edit 3:

citgm abi smoker with --rebuild: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-abi-smoker/30/

edit 4:

seems like running it with rebuild BROKE THE WORLD

https://ci.nodejs.org/view/Node.js-citgm/job/citgm-abi-smoker/30/testReport/

edit 5:

NVM the above rebuild was accidentally run on master and everything breaking was due to module version mismatch.

citgm-abi-smoker with rebuild with 5.5: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-abi-smoker/31/

citgm-rebuild-smoker on v7.5.0 for comparison: https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker-rebuild/4/

Copy link
Member

@addaleax addaleax left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LABICTM¹

¹ looks abi compatible to me 😄

/**
* Returns the number of wrappers that are still to be traced by the embedder.
*/
virtual size_t NumberOfWrappersToTrace() { return 0; }
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for my own understanding – it doesn’t make sense for addons to set an EmbedderHeapTracer, which is why we don’t care about these breakages, right?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose it is technically possible for an add-on to call Isolate::SetEmbedderHeapTracer() but I can't see that being useful: an add-on won't know how to trace objects it didn't create itself.

(Neither does core know about objects created by add-ons. This API doesn't seem all that usable inside the node ecosystem, it seems to assume the embedder is a single monolithic entity.)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bnoordhuis Thanks for confirming!

@@ -6857,8 +7460,6 @@ class V8_EXPORT V8 {
int* index);
static Local<Value> GetEternal(Isolate* isolate, int index);

static void RegisterExternallyReferencedObject(internal::Object** object,
internal::Isolate* isolate);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(ditto)

The issue is fixed upstream in V8. Thus we do not need this workaround
in REPL.

Fixes: nodejs#548
Refs: nodejs#9618

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
V8 5.5 is not ABI-compatible with 5.4.
Make the necessary changes to V8's header files so that native addons
compiled against a previous version of node can still be loaded..

* Remove new fields from {Indexed|Named}PropertyHandlerConfiguration.
* Revert "[tracing] Support ConvertableToTraceFormat argument type."
  * This reverts commit 4810f41a521227ccab4f231aa4a439d790428953 from V8.
* Remove tests for getOwnPropertyDescriptor and defineProperty interceptors.

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Refs: v8/v8@7c46245
Refs: v8/v8@aadb1c8

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
Refs: nodejs/v8#1

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
@targos targos merged commit fd04af1 into nodejs:v7.x-staging Feb 7, 2017
@dead-horse dead-horse mentioned this pull request Feb 8, 2017
9 tasks
italoacasas pushed a commit to italoacasas/node that referenced this pull request Feb 14, 2017
PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
italoacasas pushed a commit to italoacasas/node that referenced this pull request Feb 14, 2017
Fixes: nodejs#8323
Refs: nodejs#8343
Refs: nodejs#8317

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
italoacasas pushed a commit to italoacasas/node that referenced this pull request Feb 14, 2017
regress/regress-crbug-514081 allocates a 2G block of memory
and if there  are multiple variants running at the
same time this can lead to crashes, OOM kills or
the OS failing to allocate memory.  This patch
limits us to running a single variant of the test

Fixes: nodejs#6340
Refs: nodejs#6678

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
italoacasas pushed a commit to italoacasas/node that referenced this pull request Feb 14, 2017
With the upstream fix in V8, function declarations now
work fine in the vm module and the test is no longer failing.

Fixes: nodejs#548
Refs: https://codereview.chromium.org/2334733002
Refs: nodejs#9618

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
italoacasas pushed a commit to italoacasas/node that referenced this pull request Feb 14, 2017
The issue is fixed upstream in V8. Thus we do not need this workaround
in REPL.

Fixes: nodejs#548
Refs: nodejs#9618

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
italoacasas pushed a commit to italoacasas/node that referenced this pull request Feb 14, 2017
V8 5.5 is not ABI-compatible with 5.4.
Make the necessary changes to V8's header files so that native addons
compiled against a previous version of node can still be loaded..

* Remove new fields from {Indexed|Named}PropertyHandlerConfiguration.
* Revert "[tracing] Support ConvertableToTraceFormat argument type."
  * This reverts commit 4810f41a521227ccab4f231aa4a439d790428953 from V8.
* Remove tests for getOwnPropertyDescriptor and defineProperty interceptors.

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
italoacasas pushed a commit to italoacasas/node that referenced this pull request Feb 14, 2017
Refs: v8/v8@7c46245
Refs: v8/v8@aadb1c8

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
italoacasas pushed a commit to italoacasas/node that referenced this pull request Feb 14, 2017
Refs: nodejs/v8#1

PR-URL: nodejs#11029
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
italoacasas added a commit that referenced this pull request Feb 16, 2017
Notable changes:

* deps:
    * update V8 to 5.5 (Michaël Zasso) [#11029](#11029)
    * upgrade libuv to 1.11.0 (cjihrig) [#11094](#11094)
    * add node-inspect 1.10.2 (Jan Krems) [#10187](#10187)
* lib: build `node inspect` into `node` (Anna Henningsen) [#10187](#10187)
* crypto: Remove expired certs from CNNIC whitelist (Shigeki Ohtsu) [#9469](#9469)
* inspector: add --inspect-brk (Josh Gavant) [#11149](#11149)
* fs: allow WHATWG URL and file: URLs as paths (James M Snell) [#10739](#10739)
* src: support UTF-8 in compiled-in JS source files (Ben Noordhuis) [#11129](#11129)
* url: extend url.format to support WHATWG URL (James M Snell) [#10857](#10857)

PR-URL: #11185
italoacasas added a commit to italoacasas/node that referenced this pull request Feb 21, 2017
Notable changes:

* deps:
    * update V8 to 5.5 (Michaël Zasso) [nodejs#11029](nodejs#11029)
    * upgrade libuv to 1.11.0 (cjihrig) [nodejs#11094](nodejs#11094)
    * add node-inspect 1.10.4 (Jan Krems) [nodejs#10187](nodejs#10187)
    * upgrade zlib to 1.2.11 (Sam Roberts) [nodejs#10980](nodejs#10980)
* lib: build `node inspect` into `node` (Anna Henningsen) [nodejs#10187](nodejs#10187)
* crypto: Remove expired certs from CNNIC whitelist (Shigeki Ohtsu) [nodejs#9469](nodejs#9469)
* inspector: add --inspect-brk (Josh Gavant) [nodejs#11149](nodejs#11149)
* fs: allow WHATWG URL objects as paths (James M Snell) [nodejs#10739](nodejs#10739)
* src: support UTF-8 in compiled-in JS source files (Ben Noordhuis) [nodejs#11129](nodejs#11129)
* url: extend url.format to support WHATWG URL (James M Snell) [nodejs#10857](nodejs#10857)

PR-URL: nodejs#11185
italoacasas added a commit to italoacasas/node that referenced this pull request Feb 22, 2017
Notable changes:

* deps:
    * update V8 to 5.5 (Michaël Zasso) [nodejs#11029](nodejs#11029)
    * upgrade libuv to 1.11.0 (cjihrig) [nodejs#11094](nodejs#11094)
    * add node-inspect 1.10.4 (Jan Krems) [nodejs#10187](nodejs#10187)
    * upgrade zlib to 1.2.11 (Sam Roberts) [nodejs#10980](nodejs#10980)
* lib: build `node inspect` into `node` (Anna Henningsen) [nodejs#10187](nodejs#10187)
* crypto: Remove expired certs from CNNIC whitelist (Shigeki Ohtsu) [nodejs#9469](nodejs#9469)
* inspector: add --inspect-brk (Josh Gavant) [nodejs#11149](nodejs#11149)
* fs: allow WHATWG URL objects as paths (James M Snell) [nodejs#10739](nodejs#10739)
* src: support UTF-8 in compiled-in JS source files (Ben Noordhuis) [nodejs#11129](nodejs#11129)
* url: extend url.format to support WHATWG URL (James M Snell) [nodejs#10857](nodejs#10857)

PR-URL: nodejs#11185
imyller added a commit to imyller/meta-nodejs that referenced this pull request Mar 2, 2017
    Notable changes:

    * deps:
        * update V8 to 5.5 (Michaël Zasso) [#11029](nodejs/node#11029)
        * upgrade libuv to 1.11.0 (cjihrig) [#11094](nodejs/node#11094)
        * add node-inspect 1.10.4 (Jan Krems) [#10187](nodejs/node#10187)
        * upgrade zlib to 1.2.11 (Sam Roberts) [#10980](nodejs/node#10980)
    * lib: build `node inspect` into `node` (Anna Henningsen) [#10187](nodejs/node#10187)
    * crypto: Remove expired certs from CNNIC whitelist (Shigeki Ohtsu) [#9469](nodejs/node#9469)
    * inspector: add --inspect-brk (Josh Gavant) [#11149](nodejs/node#11149)
    * fs: allow WHATWG URL objects as paths (James M Snell) [#10739](nodejs/node#10739)
    * src: support UTF-8 in compiled-in JS source files (Ben Noordhuis) [#11129](nodejs/node#11129)
    * url: extend url.format to support WHATWG URL (James M Snell) [#10857](nodejs/node#10857)

    PR-URL: nodejs/node#11185

Signed-off-by: Ilkka Myller <[email protected]>
@targos targos deleted the v8-5.5-v7 branch June 1, 2017 07:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.