nodejs / CTC

Node.js Core Technical Committee & Collaborators
80 stars 27 forks source link

Call with V8 team, reloaded. #76

Closed hashseed closed 7 years ago

hashseed commented 7 years ago

I've been told that I should open a new issue for this.

Since the last meeting was reasonably well-received, and we did agree on repeating it, here's the Doodle link for the next one: http://doodle.com/poll/h8td28wnzt3kdmmr

@bmeurer wants to talk about performance pain points for Node. Other agenda items are welcome too.

hashseed commented 7 years ago

Looks like the fifth option, March 30th, 6am CET, is the winner. The Hangouts link is here.

I'm looking forward to this!

joshgav commented 7 years ago

Added to Foundation calendar, click here for this individual event.

Note that 6am CET is 9pm US Pacific the previous day (Wednesday).

hashseed commented 7 years ago

Thanks for updating the calendar!

mscdex commented 7 years ago

Wouldn't that be 10pm Pacific time?

joshgav commented 7 years ago

@mscdex

Wouldn't that be 10pm Pacific time?

Till the last Sunday in March, yes. On March 26, summer time begins. :tada:

hashseed commented 7 years ago

Some preliminary agenda items that we want to bring up.

If there are any other topics anyone is interested in, please add them.

Trott commented 7 years ago

Not to rehash this again and again, but the time is actually 6AM CEST and not CET, right? For the benefit of people using online convert-to-local-time utilities and whatnot...

hashseed commented 7 years ago

Correct. CEST 6am.

hashseed commented 7 years ago

This is now. https://staging.talkgadget.google.com/hangouts/_/google.com/node-ctc-v8

hashseed commented 7 years ago

Dumping meeting notes here. I may have confused who said what in some places. I was busy talking and typing.

Attendees

CTC: @trevnorris, @jasnell, @cjihrig, @Trott V8: @bmeurer, @hashseed

GYP to GN migration

The plan forward has been announced here as follow-up to previous meeting. V8 will introduce a GN wrapper to build the V8 build target. This can be used as alternative to the legacy GYP configs. The legacy GYP configs will then be removed from V8 upstream and need to be maintained by Node.js

@trevnorris: @jbergstroem, @indutny, @targos, and the build working group should be involved. @jasnell: What platforms does GN support? @hashseed: Ones supported by Chromium. In addition also PPC and MIPS. @jasnell: How hard is extending GN support? @hashseed: Have only gotten fuzzy answers from GN maintainers so far. May be fairly involved to set up GN configurations for platforms and toolchains. Devil is in the detail. @jasnell: Concern that niche platforms will require special maintenance soon. @jasnell: Any difference between binary produced by GN and GYP? @hashseed: There should be none. @hashseed: Maybe Node.js wants to get on track moving away from GYP altogether? @trevnorris: A lot of work would be involved here.

Contributing to Node.js

@hashseed: V8 has moved to a new compiling pipeline in 5.9. Some of the Javascript patterns in Node.js internal are tailored towards Crankshaft, and may regress with Turbofan. We want to address these issues by submitting PRs. This only applies to 5.9 and later. The window between Node.js officially updating to 5.9 and release is rather short, and we want to start working on this sooner. @jasnell: You could fork the Canary branch and hold off PRs to master until update to 5.9. @bmeurer shows example in the EventEmitter implementation. @bmeurer: We want to make sure Turbofan does not cause any regressions. Partly by replacing "Crankshaft-script" used in Node.js.

Some discussions on difficulties this brings to back merging fixes. Performance fixes due to new pipeline will need to be marked to not back merge.

@jasnell: Node 8 will stick with 5.7. Node 9 will get 5.9 or later. @hashseed: We could also simply accept regressions for now and fix them on master in the long run. @jasnell: Not preferable. Regressions should be fixed as early as possible. But waiting for 5.9 is what module implementers will need to do. @hashseed: V8 also maintains a vee-eight-lkgr branch. But unlike Canary it does not track Node master as closely. So it might make more sense to fork off Canary for these fixes. @jasnell: Make sure not to change the API signature during rewrite of internal JS. E.g. function length.

Benchmarking and Performance

@hashseed: There is a huge list of micro-benchmarks that run very long, unsuitable for CI. Is there anything else? @bmeurer: We track AcmeAir and Typescript compiler. Is there anything else representative of real workloads and not micro-benchmarks? Webpack, UglifyJS? @jasnell: @mscdex, @mhdawson, and the benchmarking working group are the right contacts

A list of things to improve in Node.js and V8 wrt performance:

refack commented 6 years ago

AFAICT the plan has two parts:

  1. one time effort for a GYP triggers GN tool that V8 can use to CI
  2. continuous effort to keep .gyp files in sync with .gn files

Who is responsible for (2)? /CC @targos

refack commented 6 years ago

/CC @seishun

MylesBorins commented 6 years ago

This should likely be opened on the tsc repo 😁

On Nov 3, 2017 2:42 PM, "Refael Ackermann" notifications@github.com wrote:

/CC @seishun https://github.com/seishun

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/nodejs/CTC/issues/76#issuecomment-341807047, or mute the thread https://github.com/notifications/unsubscribe-auth/AAecVywbiZ3JEEXsl_S93pcZnGPb-QdCks5sy2ywgaJpZM4MQFYj .

mhdawson commented 6 years ago

Agreed a new issue probably makes sense.