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

Making V8 6.6 forward compatible with a later version #19354

Closed
targos opened this issue Mar 14, 2018 · 11 comments
Closed

Making V8 6.6 forward compatible with a later version #19354

targos opened this issue Mar 14, 2018 · 11 comments
Labels
discuss Issues opened for discussions and feedbacks. v8 engine Issues and PRs related to the V8 dependency.
Milestone

Comments

@targos
Copy link
Member

targos commented Mar 14, 2018

I am currently working on integrating V8 6.6 into node (see PR #19201). If everything goes well, this will be the version that we ship with Node 10.

I open this issue specifically to ask the V8 team if it would be useful, like we did last year for Node 8, to make V8 6.6 forward compatible with V8 6.7 (or even 6.8?).
Are there major API or ABI changes planned for those versions?

/cc @nodejs/v8

@targos targos added discuss Issues opened for discussions and feedbacks. v8 engine Issues and PRs related to the V8 dependency. labels Mar 14, 2018
@hashseed
Copy link
Member

I haven't had a look with this specifically in mind yet, but I think we had quite a few APIs that went from V8_DEPRECATE_SOON to V8_DEPRECATED.

@psmarshall could you take a look at what we need to do to make 6.6's API forward compatible so that we have the option to easily upgrade to 6.7 later?

@hashseed
Copy link
Member

hashseed commented Mar 14, 2018

Okay so I talked to @fhinkel, @ofrobots, and @psmarshall. And we have a plan. Let's look at the dates:

  • Node 10 initially releases on 30th April.
  • Node 10 reaches LTS on 1st October.
  • V8 6.6 turns stable on 17th April.
  • V8 6.7 branch cut is a bit before 12th April.
  • V8 6.9 turns stable on 4th September.

Source for Node.
Source for Chromium and by extension, V8.

So the furthest we can go before LTS is V8 6.9. I think it is realistic to aim for 6.8. We will, when 6.7 branch cuts, come up with a patch to float on V8 6.6 to make it ABI forward compatible to 6.7. This allows us to get the 6.7 ABI into the initial Node 10 release.

When V8 6.8 turns stable, we float a patch to make it ABI backwards compatible with 6.7.

So we will at least end up with V8 6.7, with the option to go as far as 6.9, but realistically targeting 6.8.

Note that BigInt is scheduled to ship with V8 6.7.

WDYT?

@targos
Copy link
Member Author

targos commented Mar 14, 2018

This sounds like a great plan. Thanks!

@seishun
Copy link
Contributor

seishun commented Mar 14, 2018

Note that BigInt is scheduled to ship with V8 6.7.

You mean without a flag?

@hashseed
Copy link
Member

Yup.

@seishun
Copy link
Contributor

seishun commented Mar 14, 2018

It would be great to ship V8 6.7 with Node 10, then.

@klimashkin
Copy link

klimashkin commented Apr 4, 2018

Instance class fields (public and private) also arrive in V8 6.7, behind the flag though. Not sure what is target stable release for them

@targos targos added this to the 10.0.0 milestone Apr 6, 2018
@psmarshall
Copy link
Contributor

psmarshall commented Apr 12, 2018

@MylesBorins
Hi all, I worked on the forward-compat patch from v8 6.6 to 6.7 today. This should make it possible to use v8 6.7 in Node 10 when it is ready, by keeping 6.6 and 6.7 ABI compatible. I was a bit cautious and where I wasn't sure whether something could cause ABI incompatibility, just patched it anyway.

psmarshall@3b7202a

@addaleax Maybe you could review the code?

@addaleax
Copy link
Member

@psmarshall Yup, looks like that’s ABI compatible to V8 master – thanks! I think you can go ahead and open a PR with it?

@psmarshall
Copy link
Contributor

Okey doke - here we go #19999

@targos
Copy link
Member Author

targos commented Apr 17, 2018

#19999 landed. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss Issues opened for discussions and feedbacks. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

No branches or pull requests

6 participants