New issue
Advanced search Search tips

Issue 761475 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 2017
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on: View detail
issue 764823
issue 775979
issue 764255

Blocking:
issue 713137



Sign in to add a comment

Make blink/platform support jumbo compilations

Project Member Reported by brat...@opera.com, Sep 1 2017

Issue description

blink/core, blink/bindings and blink/bindings already support jumbo compilation but blink/platform does not. Since blink/platform is 3% of the compilation effort pre-jumbo (6-7% with jumbo enabled) it too should support jumbo.

To do include:
* fixing some "using namespace WTF::Unicode"
* a macro conflict
* a few duplicate functions in platform/geometry 
* some random other name collisions. 

And of course to switch to jumbo_source_set in platform/BUILD.gn.

 

Comment 1 by brat...@opera.com, Sep 1 2017

Status: Started (was: Untriaged)

Comment 2 by brat...@opera.com, Sep 1 2017

Components: Blink>Internals
Labels: jumbo
Project Member

Comment 3 by bugdroid1@chromium.org, Sep 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0ca61beb9b0295961d963450dbea5fc021e7fa18

commit 0ca61beb9b0295961d963450dbea5fc021e7fa18
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Sep 01 19:50:47 2017

Undef local CONVOLVE_ONE_SAMPLE after use.

Since other code use equally named macros we get jumbo build collision
unless they are undefined (or renamed).

Bug:  761475 
Change-Id: I650fe9651a55e9fd682340f6160e2212de024f58
Reviewed-on: https://chromium-review.googlesource.com/647715
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499264}
[modify] https://crrev.com/0ca61beb9b0295961d963450dbea5fc021e7fa18/third_party/WebKit/Source/platform/audio/DirectConvolver.cpp
[modify] https://crrev.com/0ca61beb9b0295961d963450dbea5fc021e7fa18/third_party/WebKit/Source/platform/audio/SincResampler.cpp

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/caa01d95f44c5aa81a67d85d9495bb72bdbd1e64

commit caa01d95f44c5aa81a67d85d9495bb72bdbd1e64
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Sep 01 22:00:38 2017

Deduplicated the Determinant function in platform/geometry.

Both FloatQuad and FloatPolygon wants to calculate the
determinant/cross product between two FontSize objects and they each
had a copy of such a function. In Jumbo builds those two identical symbols
collided.

Bug:  761475 
Change-Id: I216b0ec2bf6fdb450ef81315692396fc395c3d6e
Reviewed-on: https://chromium-review.googlesource.com/647847
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499322}
[modify] https://crrev.com/caa01d95f44c5aa81a67d85d9495bb72bdbd1e64/third_party/WebKit/Source/platform/geometry/FloatPolygon.cpp
[modify] https://crrev.com/caa01d95f44c5aa81a67d85d9495bb72bdbd1e64/third_party/WebKit/Source/platform/geometry/FloatQuad.cpp
[add] https://crrev.com/caa01d95f44c5aa81a67d85d9495bb72bdbd1e64/third_party/WebKit/Source/platform/geometry/FloatShapeHelpers.h

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/499d3166266b9c1f3ed10020b2fe81c430c92979

commit 499d3166266b9c1f3ed10020b2fe81c430c92979
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Sep 04 04:08:58 2017

Removing unused "using namespace icu".

Having global "using namespace ..." complicates things, or prevents,
jumbo builds but this one seems completely unused anyway.

Bug:  761475 
Change-Id: I592035ec4030b575acbdbcf9ca11b24217380ed5
Reviewed-on: https://chromium-review.googlesource.com/647567
Commit-Queue: Kent Tamura <tkent@chromium.org>
Reviewed-by: Kent Tamura <tkent@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499433}
[modify] https://crrev.com/499d3166266b9c1f3ed10020b2fe81c430c92979/third_party/WebKit/Source/platform/text/LocaleICU.cpp

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/40e91b2327c2b00b55efda31e301f6cf649b112a

commit 40e91b2327c2b00b55efda31e301f6cf649b112a
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Sep 04 17:11:49 2017

Avoid using "using namespace ..." in global scope

With jumbo (unity builds, merged translation units) a
"using namespace WTF" or "using namespace Unicode"
statement intended for just the local translation unit will affect
many other translation units which causes various issues.

There is also (with the current implementation of jumbo) a warning
about such usage that will prevent things from compiling.

Without this patch this file will have to be manually excluded from
jumbo builds and I am trying to avoid such exclusion lists for
performance and maintenance.

Bug:  761475 
Change-Id: Ide7c7f90b2b2190362f279008e31dfcc31309ad7
Reviewed-on: https://chromium-review.googlesource.com/648407
Reviewed-by: Kent Tamura <tkent@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#499517}
[modify] https://crrev.com/40e91b2327c2b00b55efda31e301f6cf649b112a/third_party/WebKit/Source/platform/text/BidiCharacterRun.cpp
[modify] https://crrev.com/40e91b2327c2b00b55efda31e301f6cf649b112a/third_party/WebKit/Source/platform/text/Character.cpp
[modify] https://crrev.com/40e91b2327c2b00b55efda31e301f6cf649b112a/third_party/WebKit/Source/platform/text/CharacterEmoji.cpp
[modify] https://crrev.com/40e91b2327c2b00b55efda31e301f6cf649b112a/third_party/WebKit/Source/platform/text/TextBoundaries.cpp
[modify] https://crrev.com/40e91b2327c2b00b55efda31e301f6cf649b112a/third_party/WebKit/Source/platform/text/UnicodeUtilities.cpp

Project Member

Comment 7 by bugdroid1@chromium.org, Sep 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ec43380019b539495f08e81a500d326b9022d6de

commit ec43380019b539495f08e81a500d326b9022d6de
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Sep 04 17:16:49 2017

Avoid having two g_unique_id in blink/platform

In jumbo builds the two g_unique_id clashed so to avoid having to
exclude one of the files from jumbo builds, it's better to rename them.

With this patch they will be g_unique_media_stream_component_id and
g_unique_media_stream_descriptor_id instead. As a bonus that should help
when analyzing binaries if anyone ever encounter these symbols.

Bug:  761475 
Change-Id: Ib6c7120a4ff428bceaf1197441c1d8e271b63d18
Reviewed-on: https://chromium-review.googlesource.com/648409
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499518}
[modify] https://crrev.com/ec43380019b539495f08e81a500d326b9022d6de/third_party/WebKit/Source/platform/mediastream/MediaStreamComponent.cpp
[modify] https://crrev.com/ec43380019b539495f08e81a500d326b9022d6de/third_party/WebKit/Source/platform/mediastream/MediaStreamDescriptor.cpp

Project Member

Comment 8 by bugdroid1@chromium.org, Sep 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/069510bec27b760f1388ffb411b3e717b6529390

commit 069510bec27b760f1388ffb411b3e717b6529390
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Sep 07 09:16:50 2017

Merge two implementations of operator<<(FloatPoint3D)

There were two implementations of
TextStream& operator<<(TextStream& ts, const FloatPoint3D& p)
in filter serialization and while that is a minor issue, they caused
conflicts in jumbo builds so rather than excluding files from jumbo,
this moves the implementation to FloatPoint3D.h.

Bug:  761475 
Change-Id: I11eee18d33f3eb34b50fb5849bb0e72d6a9a8089
Reviewed-on: https://chromium-review.googlesource.com/651417
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500252}
[modify] https://crrev.com/069510bec27b760f1388ffb411b3e717b6529390/third_party/WebKit/Source/platform/geometry/FloatPoint3D.cpp
[modify] https://crrev.com/069510bec27b760f1388ffb411b3e717b6529390/third_party/WebKit/Source/platform/geometry/FloatPoint3D.h
[modify] https://crrev.com/069510bec27b760f1388ffb411b3e717b6529390/third_party/WebKit/Source/platform/graphics/filters/PointLightSource.cpp
[modify] https://crrev.com/069510bec27b760f1388ffb411b3e717b6529390/third_party/WebKit/Source/platform/graphics/filters/SpotLightSource.cpp

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/67cf82e154d777a951c124e5ce8e4a1b5dda24c7

commit 67cf82e154d777a951c124e5ce8e4a1b5dda24c7
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Sep 07 12:59:15 2017

Reuse an existing WebCoreFloatToSkScalar instead of copying it

There is one WebCoreFloatToSkScalar in platform/graphics/skia and one
in platform/geometry. This patch makes platform/geometry use the one in
platform/graphics/skia.

Bug:  761475 
Change-Id: I32c938c5d3ea08d2cf3e7bfc2a0ff469006268b0
Reviewed-on: https://chromium-review.googlesource.com/653159
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500285}
[modify] https://crrev.com/67cf82e154d777a951c124e5ce8e4a1b5dda24c7/third_party/WebKit/Source/platform/geometry/FloatPoint.cpp

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e8bbc6b9a1dd3a24bf81ca02c343bf0b2dd7391b

commit e8bbc6b9a1dd3a24bf81ca02c343bf0b2dd7391b
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Sep 07 14:33:14 2017

Removing global "using namespace" in platform Mac code

Importing namespaces into the global namespace causes issues in jumbo
builds. This patch removes some that were not even used and replace
some with explicit namespaces.

Bug:  761475 
Change-Id: Iaec529e8a4ea8a8572575fb546263946282d1c59
Reviewed-on: https://chromium-review.googlesource.com/654641
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500296}
[modify] https://crrev.com/e8bbc6b9a1dd3a24bf81ca02c343bf0b2dd7391b/third_party/WebKit/Source/platform/audio/Reverb.cpp
[modify] https://crrev.com/e8bbc6b9a1dd3a24bf81ca02c343bf0b2dd7391b/third_party/WebKit/Source/platform/mac/ScrollAnimatorMac.mm
[modify] https://crrev.com/e8bbc6b9a1dd3a24bf81ca02c343bf0b2dd7391b/third_party/WebKit/Source/platform/scroll/ScrollbarThemeMac.mm
[modify] https://crrev.com/e8bbc6b9a1dd3a24bf81ca02c343bf0b2dd7391b/third_party/WebKit/Source/platform/scroll/WebScrollbarTheme.mm

Project Member

Comment 11 by bugdroid1@chromium.org, Sep 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b59097f5bfb7f39e8bc06facc89c87a9c675407e

commit b59097f5bfb7f39e8bc06facc89c87a9c675407e
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Sep 07 14:35:09 2017

Deduplicate a couple of hash function in platform/fonts.

In jumbo builds the two implementations of AddToHash and
AddFloatToHash collided. The AddToHash implementations were identical
while AddFloatToHash were slightly different, but it seems better for
everyone to merge them to a single set of functions.

Bug:  761475 
Change-Id: I547b432970a4f4f03e2fea7af1e7bfdf400de149
Reviewed-on: https://chromium-review.googlesource.com/651418
Reviewed-by: Dominik Röttsches <drott@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500297}
[modify] https://crrev.com/b59097f5bfb7f39e8bc06facc89c87a9c675407e/third_party/WebKit/Source/platform/fonts/FontDescription.cpp
[modify] https://crrev.com/b59097f5bfb7f39e8bc06facc89c87a9c675407e/third_party/WebKit/Source/platform/fonts/opentype/FontSettings.cpp
[modify] https://crrev.com/b59097f5bfb7f39e8bc06facc89c87a9c675407e/third_party/WebKit/Source/platform/wtf/HashFunctions.h

Project Member

Comment 12 by bugdroid1@chromium.org, Sep 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e448db70ad35b52ffa86e4fa0425bba14e880a23

commit e448db70ad35b52ffa86e4fa0425bba14e880a23
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Sep 08 09:38:19 2017

Skip CharCategory alias since it was only used once

The CharCategory alias caused issues with jumbo builds. Too many
different interpretations of the symbol CharCategory triggered
compilation error. Since this alias really doesn't add any value,
it's easy to just drop it.

Bug:  761475 
Change-Id: I8473fda6104a520f1464a88d49ba73599ea5fc62
Reviewed-on: https://chromium-review.googlesource.com/654838
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500548}
[modify] https://crrev.com/e448db70ad35b52ffa86e4fa0425bba14e880a23/third_party/WebKit/Source/platform/text/Character.cpp

Project Member

Comment 13 by bugdroid1@chromium.org, Sep 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/86262ea4dfce87ff20e0dc78479cf062f6942363

commit 86262ea4dfce87ff20e0dc78479cf062f6942363
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Sep 11 10:24:07 2017

Avoid global "using namespace std"

Importing all of namespaces into the global level causes problems with
jumbo builds (and also coding style). This patch removes a few
using namespace std;
from WTF.

Bug:  761475 
Change-Id: Ibdb073db243c960058d06433666f24c6880f40a8
Reviewed-on: https://chromium-review.googlesource.com/657642
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500877}
[modify] https://crrev.com/86262ea4dfce87ff20e0dc78479cf062f6942363/third_party/WebKit/Source/platform/wtf/text/CString.cpp
[modify] https://crrev.com/86262ea4dfce87ff20e0dc78479cf062f6942363/third_party/WebKit/Source/platform/wtf/text/StringImpl.cpp
[modify] https://crrev.com/86262ea4dfce87ff20e0dc78479cf062f6942363/third_party/WebKit/Source/platform/wtf/text/TextCodecUTF16.cpp

Project Member

Comment 14 by bugdroid1@chromium.org, Sep 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/769d0e3570a4f836cff9821c87afbfec7c87c4e5

commit 769d0e3570a4f836cff9821c87afbfec7c87c4e5
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Sep 11 16:02:09 2017

Avoid implicit conversion to CGRect and CGSize.

Implicit conversion to CGRect and CGSize can create extra conversion paths
(if known) between various rect/size types. Such extra conversion paths
can make the compiler fail to compile because of ambiguity.

Since conversions between CGRect and CGSize and internal types are lossy
both ways (float <-> int), it's best to avoid them anyway except when
they are really needed so this patch makes the cast operators explicit.

Short term, the implicit conversions break jumbo builds since the compiler
there knows "too much" and gets confused.

Bug:  761475 
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I7b29fba20d4dd836015a594081f4e6256bd42732
Reviewed-on: https://chromium-review.googlesource.com/657645
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#500928}
[modify] https://crrev.com/769d0e3570a4f836cff9821c87afbfec7c87c4e5/third_party/WebKit/Source/core/paint/ThemePainterMac.mm
[modify] https://crrev.com/769d0e3570a4f836cff9821c87afbfec7c87c4e5/third_party/WebKit/Source/platform/geometry/IntRect.h
[modify] https://crrev.com/769d0e3570a4f836cff9821c87afbfec7c87c4e5/third_party/WebKit/Source/platform/geometry/IntSize.h
[modify] https://crrev.com/769d0e3570a4f836cff9821c87afbfec7c87c4e5/third_party/WebKit/Source/platform/mac/ThemeMac.mm
[modify] https://crrev.com/769d0e3570a4f836cff9821c87afbfec7c87c4e5/third_party/WebKit/Source/platform/scroll/ScrollbarThemeMac.mm

Comment 15 by brat...@opera.com, Sep 12 2017

Blockedon: 764255

Comment 16 by brat...@opera.com, Sep 13 2017

Blockedon: 764823
Project Member

Comment 17 by bugdroid1@chromium.org, Sep 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cbaa1d49e7b8df0035b2065543846bf1a7cdfabf

commit cbaa1d49e7b8df0035b2065543846bf1a7cdfabf
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Sep 15 09:08:10 2017

Support jumbo in blink/platform (-20.5 CPU minutes)

Supporting jumbo in blink/platform saves about 20.5 CPU minutes on
the reference hardware.

A few files are still excluded and that is tracked in referenced bugs.

R=haraken@chromium.org

Bug:  761475 
Change-Id: Ibdd1916f24c50c0ef2c62ca0b1c3b3e80643fb5d
Reviewed-on: https://chromium-review.googlesource.com/652998
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502211}
[modify] https://crrev.com/cbaa1d49e7b8df0035b2065543846bf1a7cdfabf/third_party/WebKit/Source/platform/BUILD.gn

Project Member

Comment 18 by bugdroid1@chromium.org, Sep 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/933546b14b70df955abb3d2e75accd5a5c989f09

commit 933546b14b70df955abb3d2e75accd5a5c989f09
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Sep 19 09:09:49 2017

Deduplicate some oilpan test utility functions.

Several utility functions existed in both HeapTest.cpp and
HeapCompactTest.cpp. This patch moves them to a shared file so that they
don't collide in jumbo builds. Also, less duplicate code is better.

Bug:  761475 
Change-Id: Ia5a4bb0b205646564ccec7e87150283837028191
Reviewed-on: https://chromium-review.googlesource.com/671267
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502806}
[modify] https://crrev.com/933546b14b70df955abb3d2e75accd5a5c989f09/third_party/WebKit/Source/platform/heap/BUILD.gn
[modify] https://crrev.com/933546b14b70df955abb3d2e75accd5a5c989f09/third_party/WebKit/Source/platform/heap/HeapCompactTest.cpp
[modify] https://crrev.com/933546b14b70df955abb3d2e75accd5a5c989f09/third_party/WebKit/Source/platform/heap/HeapTest.cpp
[add] https://crrev.com/933546b14b70df955abb3d2e75accd5a5c989f09/third_party/WebKit/Source/platform/heap/HeapTestUtilities.cpp
[add] https://crrev.com/933546b14b70df955abb3d2e75accd5a5c989f09/third_party/WebKit/Source/platform/heap/HeapTestUtilities.h

Project Member

Comment 19 by bugdroid1@chromium.org, Sep 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1077a721a02a24a142e58a7da1c2b33340bfd2fa

commit 1077a721a02a24a142e58a7da1c2b33340bfd2fa
Author: Daniel Bratell <bratell@opera.com>
Date: Tue Sep 19 09:13:49 2017

Support jumbo in blink/platform/loader (-2.5 CPU minutes)

Supporting jumbo in blink/platform/loader saves about 2.5 CPU minutes
of effort which is about 0.3% of the remaining build time. Not much
but it's only a few added characters.

Bug:  761475 
Change-Id: I3ca17ff6fefb04c43dd9571aea5e749bfe86b81d
Reviewed-on: https://chromium-review.googlesource.com/671231
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#502809}
[modify] https://crrev.com/1077a721a02a24a142e58a7da1c2b33340bfd2fa/third_party/WebKit/Source/platform/loader/BUILD.gn

Project Member

Comment 20 by bugdroid1@chromium.org, Sep 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/21f6df2a9bbb8c7bc60186c2ae1792b8361e1c5d

commit 21f6df2a9bbb8c7bc60186c2ae1792b8361e1c5d
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Sep 20 17:53:01 2017

Add jumbo_test template

We already support jumbo_source_set, jumbo_component and
jumbo_static_library so this is just another common template with a
non-default configuration.

This is needed in some form for jumbo in blink unittests.

Bug:  761475 
Change-Id: I443fedb4a41c43cf21102e2a2f8ced937961665c
Reviewed-on: https://chromium-review.googlesource.com/671369
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#503193}
[modify] https://crrev.com/21f6df2a9bbb8c7bc60186c2ae1792b8361e1c5d/build/config/jumbo.gni

Project Member

Comment 21 by bugdroid1@chromium.org, Sep 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9ac61227457752b101dde55b208212414144ad98

commit 9ac61227457752b101dde55b208212414144ad98
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Sep 21 15:29:24 2017

Make sure to include traits before testing them in tests.

It's possible to check traits without including their specialization
or doing an implicit instantiation but then you get the default
values which can be wrong (or you would not have had a specialization).
In jumbo builds this is noted because first you get an implicit
instantiation and then an explicit instantiation which is a C++ error.

Fix is to make the explicit instantiation before any implicit
instantiations can happen. I do wish this error wasn't so invisible. It's
the third or fourth detected through jumbo builds.

Bug:  761475 
Change-Id: Ifceb604e027ac8877764b584555007c854c74f03
Reviewed-on: https://chromium-review.googlesource.com/677383
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#503454}
[modify] https://crrev.com/9ac61227457752b101dde55b208212414144ad98/third_party/WebKit/Source/bindings/core/v8/IDLTypesTest.cpp

Project Member

Comment 22 by bugdroid1@chromium.org, Sep 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e4ff3e734c7a074cac36ba5dd7582d5c5852b70f

commit e4ff3e734c7a074cac36ba5dd7582d5c5852b70f
Author: Daniel Bratell <bratell@opera.com>
Date: Mon Sep 25 16:04:20 2017

Revert "Add jumbo_test template"

This reverts commit 21f6df2a9bbb8c7bc60186c2ae1792b8361e1c5d.

Reason for revert: This added a dependency between //build and //testing that complicates life for //v8. Need time to evaluate what the best fix it.

Original change's description:
> Add jumbo_test template
> 
> We already support jumbo_source_set, jumbo_component and
> jumbo_static_library so this is just another common template with a
> non-default configuration.
> 
> This is needed in some form for jumbo in blink unittests.
> 
> Bug:  761475 
> Change-Id: I443fedb4a41c43cf21102e2a2f8ced937961665c
> Reviewed-on: https://chromium-review.googlesource.com/671369
> Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
> Commit-Queue: Daniel Bratell <bratell@opera.com>
> Cr-Commit-Position: refs/heads/master@{#503193}

TBR=dpranke@chromium.org,bratell@opera.com,brucedawson@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  761475 
Change-Id: Ie58618afa061107ccb28e29cda6e1c50e91629ba
Reviewed-on: https://chromium-review.googlesource.com/681716
Reviewed-by: Daniel Bratell <bratell@opera.com>
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#504075}
[modify] https://crrev.com/e4ff3e734c7a074cac36ba5dd7582d5c5852b70f/build/config/jumbo.gni

Project Member

Comment 23 by bugdroid1@chromium.org, Oct 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8079324abd5962f932ea11fd192a2a14cee769a2

commit 8079324abd5962f932ea11fd192a2a14cee769a2
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 13 15:05:34 2017

Remove test that has been disabled since April 2013

StringOperatorsText.cpp tried to measure how many copies a string
concatenation does but has been disabled since April 2013 and was
ultimately broken September 2014. This patch removes it because it
uses a macro in a way that is incompatibile with jumbo.

Bug:  761475 
Change-Id: If224b7a7dac8660b1f50c2814deffcd2d664c0fe
Reviewed-on: https://chromium-review.googlesource.com/718703
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508704}
[modify] https://crrev.com/8079324abd5962f932ea11fd192a2a14cee769a2/third_party/WebKit/Source/platform/wtf/BUILD.gn
[modify] https://crrev.com/8079324abd5962f932ea11fd192a2a14cee769a2/third_party/WebKit/Source/platform/wtf/text/StringConcatenate.cpp
[modify] https://crrev.com/8079324abd5962f932ea11fd192a2a14cee769a2/third_party/WebKit/Source/platform/wtf/text/StringConcatenate.h
[delete] https://crrev.com/3f1f56fc404a9b081989a1c8a9956f5a4e616c7a/third_party/WebKit/Source/platform/wtf/text/StringOperatorsTest.cpp

Project Member

Comment 24 by bugdroid1@chromium.org, Oct 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4be86a070fb5978043df251e061d1e234ec73069

commit 4be86a070fb5978043df251e061d1e234ec73069
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 13 19:24:19 2017

Removed "using namespace" in BidiResolver.h

If this code uses "using namespace WTF::Unicode" there can be a
conflict for kLeftToRight which also exists in the Mac SDK (in
AVLTree.h). "using namespace" is also not allowed by the coding
standard, and in this case blocks a patch to jumbo compile platform
unit tests.

Bug:  761475 
Change-Id: I363dd452adb4ae7ddf7586c9f98a8869f4958c4f
Reviewed-on: https://chromium-review.googlesource.com/718701
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#508776}
[modify] https://crrev.com/4be86a070fb5978043df251e061d1e234ec73069/third_party/WebKit/Source/platform/text/BidiResolver.h

Project Member

Comment 25 by bugdroid1@chromium.org, Oct 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a2746bc31443102369bea08eb3cbb06de91a053b

commit a2746bc31443102369bea08eb3cbb06de91a053b
Author: Daniel Bratell <bratell@opera.com>
Date: Fri Oct 13 23:50:01 2017

Support jumbo builds in platform/wtf (-2 CPU minutes)

Support jumbo builds in platform/wtf for 2 CPU less effort when using
use_jumbo_build=true. This is about 0.3% of the remaining compilation
effort so don't expect any large change from this commit.

Bug:  761475 
Change-Id: Ie3c4b6a4a23783b36a2e333abff457509a4534d3
Reviewed-on: https://chromium-review.googlesource.com/678954
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508874}
[modify] https://crrev.com/a2746bc31443102369bea08eb3cbb06de91a053b/third_party/WebKit/Source/platform/wtf/BUILD.gn

Project Member

Comment 26 by bugdroid1@chromium.org, Oct 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/df98f8974b6cb64a1ddea1059d2175e766bf62ef

commit df98f8974b6cb64a1ddea1059d2175e766bf62ef
Author: Daniel Bratell <bratell@opera.com>
Date: Sun Oct 15 03:46:28 2017

Jumbo for blink/platform unit_tests (-9 CPU minutes)

This adds support for jumbo compilation (merging cc files into larger
translation units for faster compilations) in blink's platform
unit tests.

It shaves 9 CPU minutes from the compilation time which is roughly half
of the remaining time needed to compile blink/platform.

Bug:  761475 
Change-Id: Iaafdd9a4b00951a6274582a8e90707e7d3ee7028
Reviewed-on: https://chromium-review.googlesource.com/718203
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508947}
[modify] https://crrev.com/df98f8974b6cb64a1ddea1059d2175e766bf62ef/third_party/WebKit/Source/platform/BUILD.gn

Comment 27 by brat...@opera.com, Oct 18 2017

Blocking: 775979

Comment 28 by brat...@opera.com, Oct 18 2017

Blocking: -775979

Comment 29 by brat...@opera.com, Oct 18 2017

Blockedon: 775979
Project Member

Comment 30 by bugdroid1@chromium.org, Nov 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9b2e76ae94db2a12667b1941434c8b64adce8d6a

commit 9b2e76ae94db2a12667b1941434c8b64adce8d6a
Author: Daniel Bratell <bratell@opera.com>
Date: Wed Nov 22 19:58:52 2017

Add jumbo support for heap and heap unit_tests (-0.75 CPU minutes)

This adds support for jumbo compilation in oilpan which saves about
0.75 CPU minutes of effort (about 10% of blink/platform or 0.1% of the
total remaining compilation time).

Bug:  761475 
Change-Id: Id7606583d5a97e9f6692b756acc062c73b27dbe3
Reviewed-on: https://chromium-review.googlesource.com/693098
Commit-Queue: Daniel Bratell <bratell@opera.com>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518718}
[modify] https://crrev.com/9b2e76ae94db2a12667b1941434c8b64adce8d6a/third_party/WebKit/Source/platform/heap/BUILD.gn
[modify] https://crrev.com/9b2e76ae94db2a12667b1941434c8b64adce8d6a/third_party/WebKit/Source/platform/heap/PersistentTest.cpp

Project Member

Comment 31 by bugdroid1@chromium.org, Nov 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/82a5a1462f39de64ccb3c706616ac547f2b9cc92

commit 82a5a1462f39de64ccb3c706616ac547f2b9cc92
Author: Daniel Bratell <bratell@opera.com>
Date: Thu Nov 30 20:06:57 2017

Support jumbo in third_party/WebKit/Source/platform/instrumentation

Jumbo is a unity build system for Chromium, aimed at reducing
compilation times by merging cc files into larger
translation units.

This is 0.1% of the total build time so not very much but also
the final remaining part of blink/platform. And all the CPU
minutes add up.

Bug:  761475 
Change-Id: Id0643d869960a660a91a4f3a9a23b4585f9e0073
Reviewed-on: https://chromium-review.googlesource.com/785678
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Daniel Bratell <bratell@opera.com>
Cr-Commit-Position: refs/heads/master@{#520656}
[modify] https://crrev.com/82a5a1462f39de64ccb3c706616ac547f2b9cc92/third_party/WebKit/Source/platform/instrumentation/BUILD.gn

Comment 32 by brat...@opera.com, Dec 7 2017

Status: Fixed (was: Started)
It's all done!

Sign in to add a comment