Uh oh!
There was an error while loading. Please reload this page.
build,win,v8: allow precompiling objects-inl.h - #21772
Conversation
This makes compiling v8_base much faster on Windows. Sharding is disabled because the header would have to be precompiled for each shard but is only once. The library is much smaller, so sharding is unnecessary. This is enabled by default, but disabled for CI and releases.
joaocgreis
commented
Jul 11, 2018
refack
commented
Jul 11, 2018
👍 (I was just reading a post about the improvements in PCH and was wondering how we could benefit from that :) I'm just confused about the positive/negative naming, especially Line 980 in 342dab7 IMHO if we want this to be the default, the flag should be consistently /CC @nodejs/build-files |
refack
commented
Jul 11, 2018
AFAIK we now maintain |
targos
commented
Jul 12, 2018
We own |
jasnell
commented
Jul 12, 2018
Sidenote: given that we own |
targos
commented
Jul 12, 2018
@jasnell We didn't do that for our other dependencies. There are no issues with |
refack
commented
Jul 12, 2018
@targos IMHO there the small issue of "implicit assumption by other collaborators" as seen above... It's not obvious who is in charge of those files... (I'll try to submit a PR for moving those, and we could discuss further) |
refack
commented
Jul 12, 2018
RE CI: linter job was stuck. Other jobs are green & other linter jobs are green. |
joaocgreis
commented
Jul 16, 2018
@refack updated to use positive naming only |
Trott
commented
Jul 24, 2018
Trott
commented
Jul 24, 2018
I imagine it would be very useful to have this in place before Code-and-Learn in October. @nodejs/code-and-learn |
Trott
commented
Jul 24, 2018
/ping @mcollina@trevnorris |
mcollina
left a comment
There was a problem hiding this comment.
Rubberstamp LGTM with green CI.
Trott
commented
Jul 25, 2018
@refack Does this look OK to you? |
Trott
commented
Jul 25, 2018
Maybe @digitalinfinity@kfarnung@bzoz might have opinions too. |
kfarnung
commented
Jul 25, 2018
I don't see any issues here. ChakraCore already uses PCH on Windows, so node-chakracore can just ignore this flag. |
This makes compiling v8_base much faster on Windows. Sharding is disabled because the header would have to be precompiled for each shard but is only once. The library is much smaller, so sharding is unnecessary. This is enabled by default, but disabled for CI and releases. PR-URL: nodejs#21772 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Kyle Farnung <kfarnung@microsoft.com> Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Trott
commented
Jul 27, 2018
Landed in 48e5b35. |
This makes compiling v8_base much faster on Windows. Sharding is disabled because the header would have to be precompiled for each shard but is only once. The library is much smaller, so sharding is unnecessary. This is enabled by default, but disabled for CI and releases. PR-URL: #21772 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Kyle Farnung <kfarnung@microsoft.com> Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
This makes compiling
v8_basemuch faster on Windows. On my machine, the total node build time drops from 25m29.597s to 10m58.554s.This is enabled by default when using calling
vcbuildwithoutreleaseorbuild-release(similar toltcg). All node tests pass, but this force-includesobjects-inl.hin every file forv8_base, so it is possible that this causes subtle issues and is thus disabled in CI and for releases. This includes onlyobjects-inl.hto minimize the chance for issues, it is already included in many files. Adding other headers only improves the build time in the order of seconds.Sharding is disabled because the header would have to be precompiled for each shard but is only once. The library is much smaller, so sharding is not necessary with this either way.
Can the changes in
v8.gypbe floated on top of V8 updates, or does this need to be submitted upstream? Are we maintaining the gyp files? (cc @nodejs/v8-update)cc @nodejs/platform-windows
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes