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 5.5 #9618

Closed
wants to merge 6 commits into from
Closed

deps: update V8 to 5.5 #9618

wants to merge 6 commits into from

Conversation

targos
Copy link
Member

@targos targos commented Nov 15, 2016

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

V8

Description of change

This PR updates V8 to the current 5.5-lkgr branch.

/cc @nodejs/v8

Previous discussion: nodejs/v8#2

CI: https://ci.nodejs.org/job/node-test-pull-request/4849/
V8 CI: https://ci.nodejs.org/job/node-test-commit-v8-linux/417/
V8 CI: https://ci.nodejs.org/job/node-test-commit-v8-linux/422/

@targos targos added dont-land-on-v4.x wip Issues and PRs that are still a work in progress. v8 engine Issues and PRs related to the V8 dependency. labels Nov 15, 2016
@Fishrock123
Copy link
Contributor

As brought up in nodejs/v8#2 I'm quite skeptical this is a good idea until we get better hooks for native promises. (Which seemed to be the plan to get in before node version 8, where this was originally supposed to land.)

@mhdawson
Copy link
Member

CI run to validate across platforms: https://ci.nodejs.org/job/node-test-commit-v8-linux/421/

@ilkkao ilkkao mentioned this pull request Nov 15, 2016
@bnoordhuis
Copy link
Member

As brought up in nodejs/v8#2 I'm quite skeptical this is a good idea until we get better hooks for native promises.

That's a pretty cryptic comment on its own. I think the missing context is that 5.5 ships async/await without a flag?

@targos targos force-pushed the v8-5.5 branch 2 times, most recently from 637c4c3 to bc00ddd Compare November 17, 2016 12:23
@mhdawson
Copy link
Member

Looks like CI failures across the board.

@jbergstroem
Copy link
Member

Afaik smartos14 support is dropped for 5.5

@targos
Copy link
Member Author

targos commented Nov 26, 2016

Updated.

There are some new utf-8 fixes (1, 2) that make test/parallel/test-string-decoder fail. I'm sure that someone already mentioned it but I can't find the related issue.

Example failure:

test('utf-8', Buffer.from('F0B841', 'hex'), '\ufffd\ufffdA');
// AssertionError: Expected "\ufffd\ufffd\u41", but got "\ufffd\u41"

If I change the expected value, the error is inverted:

test('utf-8', Buffer.from('F0B841', 'hex'), '\ufffdA');
// AssertionError: Expected "\ufffd\u41", but got "\ufffd\ufffd\u41"

@ofrobots
Copy link
Contributor

@targos see discussion here: v8@af842a7#commitcomment-19855022

@targos targos force-pushed the v8-5.5 branch 2 times, most recently from 04d75fa to cef1cc9 Compare December 3, 2016 14:04
@targos
Copy link
Member Author

targos commented Dec 3, 2016

I'm turning the PR into a clean semver-major that can land on master. I'll then open another one to backport to v7.x.

@targos targos added semver-major PRs that contain breaking changes and should be released in the next major version. and removed dont-land-on-v4.x labels Dec 3, 2016
@targos
Copy link
Member Author

targos commented Dec 3, 2016

This is still in progress because of v8@af842a7#commitcomment-19855022

@targos
Copy link
Member Author

targos commented Dec 3, 2016

@nodejs/platform-smartos What are we going to do with SmartOS 14? The CI cannot be green because of the incompatibility with this platform.

@jbergstroem
Copy link
Member

@targos as far as I know, it is to be dropped for 55 and forward. I can look at skipping testing against smartos14 for a specific node version; for instance 7.3?

@misterdjules
Copy link

@targos FWIW, what @jbergstroem mentioned:

as far as I know, it is to be dropped for 55 and forward.

sounds good to me.

P.S: sorry for the delay, I was on vacation until today.

@mhdawson
Copy link
Member

CI run one more time: https://ci.nodejs.org/job/node-test-pull-request/6073/

targos added a commit that referenced this pull request Jan 26, 2017
PR-URL: #9618
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
targos added a commit that referenced this pull request Jan 26, 2017
V8 5.5 is not API/ABI compatible with 5.4.
This commit increments NODE_MODULE_VERSION by one.

Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
PR-URL: #9618
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
targos pushed a commit that referenced this pull request Jan 26, 2017
With the upstream fix in V8, function declarations now
work fine in the vm module and the test is no longer failing.

Refs: https://codereview.chromium.org/2334733002
Fixes: #548
PR-URL: #9618
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
targos added a commit that referenced this pull request Jan 26, 2017
The issue is fixed upstream in V8. Thus we do not need this workaround
in REPL.

Fixes: #548
PR-URL: #9618
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
targos pushed a commit that referenced this pull request Jan 26, 2017
V8 5.5 changed how invalid characters are handled and it now appears
to follow the WHATWG Encoding standard, where all of an invalid
character's bytes are replaced by a single replacement character
(\ufffd) instead of replacing each invalid byte with separate
replacement characters.

Example: the byte sequence 0xF0,0xB8,0x41 is decoded as '\ufffdA' in
V8 5.5, but is decoded as '\ufffd\ufffdA' in previous versions of V8.

PR-URL: #9618
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
@targos
Copy link
Member Author

targos commented Jan 26, 2017

Landed in a67a04d...24ef1e6. Thanks everyone!

@targos targos closed this Jan 26, 2017
@targos targos deleted the v8-5.5 branch January 26, 2017 21:48
@pi0
Copy link

pi0 commented Jan 27, 2017

@targos Congratulations and thanks for hard work :) So does it lands on 7.x semver-minor updates? And what is your ETA?
Thanks again :)
Update: It seems back-port is on progress here #11029 :))

@iddan
Copy link

iddan commented Jan 31, 2017

Is this means we can use async/await safely?

@kyrylkov
Copy link

@aniddan In nightly builds, yes. In Node 7.x not yet, be V8 5.5 wasn't backported yet (#11029)

@leodutra
Copy link

leodutra commented Feb 3, 2017

Will it be included in version 8 without flags?
Very well done @targos.

@kyrylkov
Copy link

kyrylkov commented Feb 3, 2017

@leodutra It is already in master branch, thus in Node.js 8

targos pushed a commit to targos/node that referenced this pull request Feb 7, 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 <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
targos added a commit to targos/node that referenced this pull request Feb 7, 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 <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
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 <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
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 <info@bnoordhuis.nl>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Myles Borins <myles.borins@gmail.com>
@joaocgreis
Copy link
Member

@targos https://github.com/nodejs/node/blob/master/BUILDING.md#unix still mentions Clang 3.4 as the required version. Do you know what the new required version is?

@targos
Copy link
Member Author

targos commented Mar 29, 2017

@joaocgreis I don't know what is the actual required version but since we dropped the workaround from #8343 it must be at least 3.4.2.

@jasnell jasnell mentioned this pull request Apr 4, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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.