Re: [webkit-dev] New EWS Non-Unified builder

2021-05-04 Thread Michael Catanzaro via webkit-dev
On Mon, May 3 2021 at 12:21:57 PM -0700, Sam Weinig via webkit-dev 
 wrote:
So, does anyone have any recent measurements of clean build times 
with and without unified sources enabled? If so, what is the current 
delta?


That would be painful to check, because you would first have to fix all 
the current non-unified build failures. If somebody wants to spend all 
day chasing the current round of build failures, I would be interested 
to see the measurements



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-05-03 Thread Sam Weinig via webkit-dev
Hi,

I am curious about the current state of our knowledge about the various 
benefits we are gaining from Unified Source. I think it is important to 
reevaluate it from time to time to ensure we are still getting the benefits we 
want (as there are some not so insignificant downsides). I know when it was 
introduced, it was a win for clean builds but I don’t believe there have been 
any recent measurements.

So, does anyone have any recent measurements of clean build times with and 
without unified sources enabled? If so, what is the current delta?

- Sam

> On Apr 28, 2021, at 11:45 PM, dpino via webkit-dev 
>  wrote:
> 
> Hi everyone,
> 
> In Igalia we have been discussing the need of deploying a new builder
> which builds WebKit using non-unified sources, and we know that at least
> the folks at Sony are also in favor.
> 
> One side effect of Unified Source building is that it hides compilation
> errors. The kinds of errors that usually get hidden by unified builds
> are missing headers inclusions and missing definitions of functions
> declared inline; the latter being tricky to debug because it results in
> mysterious linker errors. This is caused by unified builds stashing
> several .cpp files together for compilation, so the definitions and
> header inclusions done in one “leak” into the others. As for missing
> header inclusion errors, a source file might include a header definition
> as a co-lateral effect of being stashed together with another file that
> indeed includes the missing header.
> 
> These hidden compilation errors may arise later at some point if unified
> source files are stashed together in a different manner.
> 
> The current situation is requiring periodical maintenance. You can check
> build fixes commits due to unified source compilation with:
> 
>$ git log --pretty=short --grep "Non-unified"
> 
> Here are some examples:
>https://bugs.webkit.org/show_bug.cgi?id=222652
>https://bugs.webkit.org/show_bug.cgi?id=222755
>https://bugs.webkit.org/show_bug.cgi?id=221701
> 
> A new builder which builds WebKit with non-unified Source will highly
> help to improve this situation. Compilation errors will be detected as
> soon as possible and will save a lot of time not only for the developers
> who are currently doing this manual maintenance but for anyone who would
> like to build WebKit, and may stumble on compilation errors accidentally
> introduced due to unified sources.
> 
> While correct compilation of the codebase can only be guaranteed with
> non-unified source builds, we do not propose switching the current EWS
> compilation builders to non-unified because it's slower and the EWS
> LayoutTests and API test bots use the products built by the EWS builders
> — we do not want to delay getting results from those. That's why we are
> proposing a new builder: it will run on parallel, resulting in no
> slowdown for the other EWS builders, which will keep using unified
> builds.
> 
> How this new builder will impact developers? The EWS LayoutTest bots
> take at least 1 hour to complete a build. We think that as long as this
> new EWS Non-Unified builder is within that time budget, this new EWS
> wont' slow down development speed.
> 
> Thoughts?
> 
> Best regards,
> 
> Diego
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-05-01 Thread Ryosuke Niwa via webkit-dev
On Fri, Apr 30, 2021 at 10:16 AM Alexey Proskuryakov via webkit-dev <
webkit-dev@lists.webkit.org> wrote:

> These points from my yesterday email remain without responses:
>
> 1. Cannot have an EWS without corresponding post-commit queue.
>

Yeah, we should first add a bot.

2. It doesn't appear like we looked into whether there are any ways to
> mitigate the problem other that this most costly one.


The reason build may break when a new file is added or removed is because
all existing files shift. We could mitigate this if we always added a new
file at the end of existing unified build files, and always left an empty
spot when removing a file. I believe we don't unify files across top-level
directories so I could imagine, for example, we can say that we always add
a file at the end of Sources.txt per top-level directory. We could then
periodically sort files lexicologically with an understanding that this
will require a lot of build fixes to be applied at the same time.

For ports that don't use unified builds, one solution might be to create
wrapper translation units or unified header files. Say we're compiling
A.cpp and B.cpp as Unified1.cpp, then we'd basically create the union of
header files included in A.cpp and B.cpp and put into Unified1.h. Then this
port will build wrapper translation units A-unified.cpp and B-unified.cpp
each of which respectively includes A.cpp and B.cpp as well as Unified1.h.

- R. Niwa

> 30 апр. 2021 г., в 8:43 AM, Darin Adler via webkit-dev <
> webkit-dev@lists.webkit.org> написал(а):
>
>
> > OK. I acknowledge my view on this is different from the others
> commenting here, perhaps because of different ideas about what is hard and
> requires expertise. I won’t stand in the way of changes you want to make.
> You know my view now.
> >
> > — Darin
> > ___
> > webkit-dev mailing list
> > webkit-dev@lists.webkit.org
> > https://lists.webkit.org/mailman/listinfo/webkit-dev
>
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
>
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-05-01 Thread Ryosuke Niwa via webkit-dev
On Thu, Apr 29, 2021 at 9:18 PM Darin Adler via webkit-dev <
webkit-dev@lists.webkit.org> wrote:

> > On Apr 29, 2021, at 9:06 PM, Tim Horton via webkit-dev <
> webkit-dev@lists.webkit.org> wrote:
> >
> > it is definitely highly annoying
>
> It’s possible that where my thinking differs from others on this is that I
> don’t think shifting annoying work from one set of commits (the ones adding
> a new file) to a different set (the ones unknowingly adding need for a new
> include for non-unified builds) is a significant improvement. Adding more
> EWS bubbles has a cost.
>

One key benefit of keeping non-unified builds working is that it would make
build brokerage more predictable. Today, when you're adding, removing, or
renaming an existing new file, it may compile just fine on the particular
port / platform you're using locally yet can still cause a build failure in
other ports / platforms since different ports / platforms almost always
compile a different set of translation units. If we kept unified builds
always working, then the build failure will happen more consistently,
making it easier to detect before uploading a patch instead of after
observing EWS failures or worse after landing commits because EWS didn't
have coverage.

Every time someone new starts working on the WebKit project, the topic of
mysterious build failures caused by the unified build system comes up as a
topic. It's yet another random thing a new developer would have to learn.
Anything we can do to reduce the total amount of random knowledge someone
has to have to have to be productive in the WebKit project is a positive
change in my opinion.

- R. Niwa
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-30 Thread Myles C. Maxfield via webkit-dev
This seems to be a discussion around “when is doing things lazily valuable.” If 
the work will always have to be done eventually, then doing it lazily is worse 
than doing it up front. But of the work has a significant chance of never being 
needed to be done, then doing it lazily is better.

I think one could make a case that, on an infinite timescale, fixing a file’s 
includes will always have to be done, because it will always, eventually, one 
day, cause breakage.

> On Apr 30, 2021, at 8:44 AM, Darin Adler via webkit-dev 
>  wrote:
> 
> OK. I acknowledge my view on this is different from the others commenting 
> here, perhaps because of different ideas about what is hard and requires 
> expertise. I won’t stand in the way of changes you want to make. You know my 
> view now.
> 
> — Darin
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-30 Thread Alexey Proskuryakov via webkit-dev
(Re-sending from correct address)

These points from my yesterday email remain without responses:

1. Cannot have an EWS without corresponding post-commit queue.

2. It doesn't appear like we looked into whether there are any ways to mitigate 
the problem other that this most costly one.

- Alexey

> 30 апр. 2021 г., в 8:43 AM, Darin Adler via webkit-dev 
>  написал(а):
> 
> OK. I acknowledge my view on this is different from the others commenting 
> here, perhaps because of different ideas about what is hard and requires 
> expertise. I won’t stand in the way of changes you want to make. You know my 
> view now.
> 
> — Darin
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-30 Thread Darin Adler via webkit-dev
OK. I acknowledge my view on this is different from the others commenting here, 
perhaps because of different ideas about what is hard and requires expertise. I 
won’t stand in the way of changes you want to make. You know my view now.

— Darin
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-30 Thread Carlos Alberto Lopez Perez via webkit-dev
On 30/04/2021 06:17, Darin Adler via webkit-dev wrote:
>> On Apr 29, 2021, at 9:06 PM, Tim Horton via webkit-dev 
>>  wrote:
>>
>> it is definitely highly annoying
> 
> It’s possible that where my thinking differs from others on this is that I 
> don’t think shifting annoying work from one set of commits (the ones adding a 
> new file) to a different set (the ones unknowingly adding need for a new 
> include for non-unified builds) is a significant improvement.

I think the issue is not about shifting the work from one sets of commit
to another, but about shifting the work from one developer that is
knowledgable on the code to other that maybe is not.

When you work on a patch, knowing what your includes should be on your
patch is easy if the include-breakage is related with the code you are
touching because you are understanding the code you are working on.

But when totally unrelated code breaks because of your patch, then is
not so easy to quickly fix the issue. At least for those of us that
don't know everything about the internals of WebKit.

Is also not hard, but it would be much easier to fix for the person that
introduced that code since they were familiar with it.

So meanwhile the person that wrote that code would have identified the
include that was missing in X time, I would need X*100 time because I
first need to understand what is going on, and then understand the bare
minimum of the unrelated code that broke to identify the issue, to
finally start hunting down via greps the missing include file. And this
assumes you are already familiar with this issue of missing include
files happening randomly, because otherwise the first time you discover
this you will spend even more time wondering what is happening.


> Adding more EWS bubbles has a cost.
> 

Indeed.
But if it saves time to developers working on the codebase (which I
truly believe it does) then I think it really outweighs the cost IMHO.
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Darin Adler via webkit-dev
> On Apr 29, 2021, at 9:06 PM, Tim Horton via webkit-dev 
>  wrote:
> 
> it is definitely highly annoying

It’s possible that where my thinking differs from others on this is that I 
don’t think shifting annoying work from one set of commits (the ones adding a 
new file) to a different set (the ones unknowingly adding need for a new 
include for non-unified builds) is a significant improvement. Adding more EWS 
bubbles has a cost.

Keep in mind that I am just as passionate as the next person about getting 
includes “right”. I’m just not sure that this would be a step in the right 
direction.

— Darin
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Tim Horton via webkit-dev


> On Apr 29, 2021, at 9:02 PM, Darin Adler  wrote:
> 
>> On Apr 29, 2021, at 9:01 PM, Tim Horton  wrote:
>> 
>> This is a huge problem for people on the Apple platforms using the Xcode 
>> projects. Nearly every time someone adds a file they have to add random 
>> headers to unrelated code.
> 
> OK, sorry, I must be out of touch with the rest of you about how difficult 
> this is. I’ve done that many times, and it was always easy for me.

I'm not saying it's hard (depending on your familiarity with the code that 
breaks, or if it's one of those 'using namespace' situations, or something even 
more subtle), but it is definitely highly annoying, and judging by the number 
of times I (and I'm sure others too) have had to explain what's up to other 
people it seems like "huge" is a only-maybe-slightly-overstated estimate :) 
Maybe others disagree!

> — Darin

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Tim Horton via webkit-dev


> On Apr 29, 2021, at 7:15 PM, Darin Adler via webkit-dev 
>  wrote:
> 
>> On Apr 29, 2021, at 12:04 PM, Ross Kirsling via webkit-dev 
>>  wrote:
>> 
>> Yeah, I think it's important to clarify that nobody is "using 
>> non-Unified-Source building for their development", at least to my 
>> knowledge. Being broken by the shifting sands of unified sources is an 
>> everybody problem (or at the very least an "everybody that builds via CMake 
>> problem", which is ultimately an everybody problem).
> 
> How is this a bigger problem in CMake than for people on the Apple platforms 
> who are using Xcode projects? Can we create greater parity between the two?

I don't follow. This is a huge problem for people on the Apple platforms using 
the Xcode projects. Nearly every time someone adds a file they have to add 
random headers to unrelated code. 

> — Darin
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Darin Adler via webkit-dev
> On Apr 29, 2021, at 9:01 PM, Tim Horton  wrote:
> 
> This is a huge problem for people on the Apple platforms using the Xcode 
> projects. Nearly every time someone adds a file they have to add random 
> headers to unrelated code.

OK, sorry, I must be out of touch with the rest of you about how difficult this 
is. I’ve done that many times, and it was always easy for me.

— Darin
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Darin Adler via webkit-dev
> On Apr 29, 2021, at 12:04 PM, Ross Kirsling via webkit-dev 
>  wrote:
> 
> Yeah, I think it's important to clarify that nobody is "using 
> non-Unified-Source building for their development", at least to my knowledge. 
> Being broken by the shifting sands of unified sources is an everybody problem 
> (or at the very least an "everybody that builds via CMake problem", which is 
> ultimately an everybody problem).

How is this a bigger problem in CMake than for people on the Apple platforms 
who are using Xcode projects? Can we create greater parity between the two?

— Darin
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread dpino via webkit-dev
On 2021-04-29 20:07, BJ Burg wrote:

> Given that there is some disagreement as to whether this is even a
> problem at all, perhaps we could try it out for a while. Diego, do you
> have the resources to set up an EWS bot in this configuration?
> 

Yes, we have two workers ready for this new EWS Non-Unified builder. The
target platform is WPE. There's also a patch with the configuration
changes at https://bugs.webkit.org/show_bug.cgi?id=225045 The patch is
currently being tested in the UAT.

Diego
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Adrian Perez de Castro via webkit-dev
On Thu, 29 Apr 2021 19:04:55 + Ross Kirsling via webkit-dev 
 wrote:

> Yeah, I think it's important to clarify that nobody is "using
> non-Unified-Source building for their development", at least to my
> knowledge. Being broken by the shifting sands of unified sources is an
> everybody problem (or at the very least an "everybody that builds via CMake
> problem", which is ultimately an everybody problem).

This is pretty accurate. I do have a build directory configured manually
as non-unified so I can get its “compile_commands.json” to point tooling
at (mainly clangd, for code completion and linting), but actual builds I
do them with the “build-webkit” script.

Another situation in which I explicitly opt-in to non-unified builds is
around the time we make a release branch for the GTK and WPE ports; get
to solve the non-unified build issues and then land the patches in the
release branch as well. The goal here is to make sure that what we release
can be built non-unified, which means header includes and whatnot are
correct (at least for these ports) and we can have the confidence that
people doing cross-builds (where the set of files in each unified build
compilation unit can shift) will not have problems with the builds.

Before I did the above we used to have complaints and distributions
sometimes carrying odd patches playing whack-a-mole to get builds done
instead of properly fixing things.

Cheers,
—Adrián

 
> 
> From: Alex Christensen via webkit-dev 
> Sent: Thursday, April 29, 2021 11:03 AM
> To: Darin Adler 
> Cc: webkit-dev@lists.webkit.org 
> Subject: Re: [webkit-dev] New EWS Non-Unified builder
> 
> I don’t see the goal as “keep non-Unified-Source building” but rather 
> “prevent unrelated build fixes when we add another file later”.  Right now 
> when we add a new file we often have to sprinkle includes, declarations, and 
> other build fixes in files unrelated to the current change.  If we had a bot 
> building without unification we would be informed at the time we write the 
> problematic code.
> 
> > On Apr 29, 2021, at 9:55 AM, Darin Adler via webkit-dev 
> >  wrote:
> >
> > Given the issue is that there are people that are using non-Unified-Source 
> > building for their development, the best fix is to add post-commit and EWS 
> > builders for one of those platforms. I do not support the idea of adding an 
> > additional builder just to “keep non-Unified-Source building” if no 
> > actively-supported platform is not choosing that build style.
> >
> > Specifically, if Sony people are most affected by this, I suggest we find a 
> > way to add Sony PlayStation post-commit and EWS builders.
> >
> > I am not convinced that we should add some kind of abstract “correct 
> > compilation” that is a separate builder.
> >
> > — Darin
> > ___
> > webkit-dev mailing list
> > webkit-dev@lists.webkit.org
> > https://lists.webkit.org/mailman/listinfo/webkit-dev
> 
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev


pgpstgQfzBoDJ.pgp
Description: PGP signature
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Adrian Perez de Castro via webkit-dev
On Thu, 29 Apr 2021 15:56:31 + Don Olmstead via webkit-dev 
 wrote:

> When the Mac CMake build is in a working state I'd request an EWS that is 
> Non-Unified as well since Mac builds cover more code.

This would be a great addition, I agree. While I don't have a Mac around,
I can try and spare some cycles helping out with CMake Mac to get the build
in shape :)

Cheers,
—Adrian


> -Original Message-
> From: Alex Christensen via webkit-dev  
> Sent: Thursday, April 29, 2021 8:16 AM
> To: dpino 
> Cc: webkit-dev@lists.webkit.org
> Subject: Re: [webkit-dev] New EWS Non-Unified builder
> 
> I’d be excited to have this.  Those build failures have been bothering me 
> ever since we started using unified builds.  We would have a way to see more 
> problems in our code that are currently hidden.
> 
> > On Apr 28, 2021, at 11:45 PM, dpino via webkit-dev 
> >  wrote:
> > 
> > Hi everyone,
> > 
> > In Igalia we have been discussing the need of deploying a new builder 
> > which builds WebKit using non-unified sources, and we know that at 
> > least the folks at Sony are also in favor.
> > 
> > One side effect of Unified Source building is that it hides 
> > compilation errors. The kinds of errors that usually get hidden by 
> > unified builds are missing headers inclusions and missing definitions 
> > of functions declared inline; the latter being tricky to debug because 
> > it results in mysterious linker errors. This is caused by unified 
> > builds stashing several .cpp files together for compilation, so the 
> > definitions and header inclusions done in one “leak” into the others. 
> > As for missing header inclusion errors, a source file might include a 
> > header definition as a co-lateral effect of being stashed together 
> > with another file that indeed includes the missing header.
> > 
> > These hidden compilation errors may arise later at some point if 
> > unified source files are stashed together in a different manner.
> > 
> > The current situation is requiring periodical maintenance. You can 
> > check build fixes commits due to unified source compilation with:
> > 
> >$ git log --pretty=short --grep "Non-unified"
> > 
> > Here are some examples:
> >
> > https://urldefense.com/v3/__https://bugs.webkit.org/show_bug.cgi?id=222652__;!!JmoZiZGBv3RvKRSx!t22i0IAUrm1zV3LCteGHgJVUHzashK_F9tqjACa4ZTS_y9h8CnFZ7s60jhM-e_2Uo6c$
> >  
> >
> > https://urldefense.com/v3/__https://bugs.webkit.org/show_bug.cgi?id=222755__;!!JmoZiZGBv3RvKRSx!t22i0IAUrm1zV3LCteGHgJVUHzashK_F9tqjACa4ZTS_y9h8CnFZ7s60jhM-cnURaLI$
> >  
> >
> > https://urldefense.com/v3/__https://bugs.webkit.org/show_bug.cgi?id=22
> > 1701__;!!JmoZiZGBv3RvKRSx!t22i0IAUrm1zV3LCteGHgJVUHzashK_F9tqjACa4ZTS_
> > y9h8CnFZ7s60jhM-qQl-arU$
> > 
> > A new builder which builds WebKit with non-unified Source will highly 
> > help to improve this situation. Compilation errors will be detected as 
> > soon as possible and will save a lot of time not only for the 
> > developers who are currently doing this manual maintenance but for 
> > anyone who would like to build WebKit, and may stumble on compilation 
> > errors accidentally introduced due to unified sources.
> > 
> > While correct compilation of the codebase can only be guaranteed with 
> > non-unified source builds, we do not propose switching the current EWS 
> > compilation builders to non-unified because it's slower and the EWS 
> > LayoutTests and API test bots use the products built by the EWS 
> > builders — we do not want to delay getting results from those. That's 
> > why we are proposing a new builder: it will run on parallel, resulting 
> > in no slowdown for the other EWS builders, which will keep using 
> > unified builds.
> > 
> > How this new builder will impact developers? The EWS LayoutTest bots 
> > take at least 1 hour to complete a build. We think that as long as 
> > this new EWS Non-Unified builder is within that time budget, this new 
> > EWS wont' slow down development speed.
> > 
> > Thoughts?
> > 
> > Best regards,
> > 
> > Diego
> > ___
> > webkit-dev mailing list
> > webkit-dev@lists.webkit.org
> > https://urldefense.com/v3/__https://lists.webkit.org/mailman/listinfo/
> > webkit-dev__;!!JmoZiZGBv3RvKRSx!t22i0IAUrm1zV3LCteGHgJVUHzashK_F9tqjAC
> > a4ZTS_y9h8CnFZ7s60jhM-gSTmLtg$
> 
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://urldefense.com/v3/__https:/

Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Ross Kirsling via webkit-dev
Yeah, I think it's important to clarify that nobody is "using 
non-Unified-Source building for their development", at least to my knowledge. 
Being broken by the shifting sands of unified sources is an everybody problem 
(or at the very least an "everybody that builds via CMake problem", which is 
ultimately an everybody problem).

Ross

From: Alex Christensen via webkit-dev 
Sent: Thursday, April 29, 2021 11:03 AM
To: Darin Adler 
Cc: webkit-dev@lists.webkit.org 
Subject: Re: [webkit-dev] New EWS Non-Unified builder

I don’t see the goal as “keep non-Unified-Source building” but rather “prevent 
unrelated build fixes when we add another file later”.  Right now when we add a 
new file we often have to sprinkle includes, declarations, and other build 
fixes in files unrelated to the current change.  If we had a bot building 
without unification we would be informed at the time we write the problematic 
code.

> On Apr 29, 2021, at 9:55 AM, Darin Adler via webkit-dev 
>  wrote:
>
> Given the issue is that there are people that are using non-Unified-Source 
> building for their development, the best fix is to add post-commit and EWS 
> builders for one of those platforms. I do not support the idea of adding an 
> additional builder just to “keep non-Unified-Source building” if no 
> actively-supported platform is not choosing that build style.
>
> Specifically, if Sony people are most affected by this, I suggest we find a 
> way to add Sony PlayStation post-commit and EWS builders.
>
> I am not convinced that we should add some kind of abstract “correct 
> compilation” that is a separate builder.
>
> — Darin
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread BJ Burg via webkit-dev
I'm in favor of a non-Unified EWS builder. It seems it would largely prevent 
the current situation where I have to add random headers to make my patch 
build, usually after the patch has been reviewed and revised. This "surprise, 
someone forgot a header" situation has no effect on our production builds, but 
it does affect engineering velocity quite a bit when multiple patches are being 
juggled.

Just as it's easier to fix style checker problems before committing, it's 
easier to address missing includes before committing. And I am not aware of a 
better way to improve the situation, other than to add some basic pre-commit 
checks.

Given that there is some disagreement as to whether this is even a problem at 
all, perhaps we could try it out for a while. Diego, do you have the resources 
to set up an EWS bot in this configuration?

BJ Burg (they/them)


> On Apr 28, 2021, at 11:45 PM, dpino via webkit-dev 
>  wrote:
> 
> Hi everyone,
> 
> In Igalia we have been discussing the need of deploying a new builder
> which builds WebKit using non-unified sources, and we know that at least
> the folks at Sony are also in favor.
> 
> One side effect of Unified Source building is that it hides compilation
> errors. The kinds of errors that usually get hidden by unified builds
> are missing headers inclusions and missing definitions of functions
> declared inline; the latter being tricky to debug because it results in
> mysterious linker errors. This is caused by unified builds stashing
> several .cpp files together for compilation, so the definitions and
> header inclusions done in one “leak” into the others. As for missing
> header inclusion errors, a source file might include a header definition
> as a co-lateral effect of being stashed together with another file that
> indeed includes the missing header.
> 
> These hidden compilation errors may arise later at some point if unified
> source files are stashed together in a different manner.
> 
> The current situation is requiring periodical maintenance. You can check
> build fixes commits due to unified source compilation with:
> 
>$ git log --pretty=short --grep "Non-unified"
> 
> Here are some examples:
>https://bugs.webkit.org/show_bug.cgi?id=222652
>https://bugs.webkit.org/show_bug.cgi?id=222755
>https://bugs.webkit.org/show_bug.cgi?id=221701
> 
> A new builder which builds WebKit with non-unified Source will highly
> help to improve this situation. Compilation errors will be detected as
> soon as possible and will save a lot of time not only for the developers
> who are currently doing this manual maintenance but for anyone who would
> like to build WebKit, and may stumble on compilation errors accidentally
> introduced due to unified sources.
> 
> While correct compilation of the codebase can only be guaranteed with
> non-unified source builds, we do not propose switching the current EWS
> compilation builders to non-unified because it's slower and the EWS
> LayoutTests and API test bots use the products built by the EWS builders
> — we do not want to delay getting results from those. That's why we are
> proposing a new builder: it will run on parallel, resulting in no
> slowdown for the other EWS builders, which will keep using unified
> builds.
> 
> How this new builder will impact developers? The EWS LayoutTest bots
> take at least 1 hour to complete a build. We think that as long as this
> new EWS Non-Unified builder is within that time budget, this new EWS
> wont' slow down development speed.
> 
> Thoughts?
> 
> Best regards,
> 
> Diego
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Alex Christensen via webkit-dev
I don’t see the goal as “keep non-Unified-Source building” but rather “prevent 
unrelated build fixes when we add another file later”.  Right now when we add a 
new file we often have to sprinkle includes, declarations, and other build 
fixes in files unrelated to the current change.  If we had a bot building 
without unification we would be informed at the time we write the problematic 
code.

> On Apr 29, 2021, at 9:55 AM, Darin Adler via webkit-dev 
>  wrote:
> 
> Given the issue is that there are people that are using non-Unified-Source 
> building for their development, the best fix is to add post-commit and EWS 
> builders for one of those platforms. I do not support the idea of adding an 
> additional builder just to “keep non-Unified-Source building” if no 
> actively-supported platform is not choosing that build style.
> 
> Specifically, if Sony people are most affected by this, I suggest we find a 
> way to add Sony PlayStation post-commit and EWS builders.
> 
> I am not convinced that we should add some kind of abstract “correct 
> compilation” that is a separate builder.
> 
> — Darin
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Darin Adler via webkit-dev
Given the issue is that there are people that are using non-Unified-Source 
building for their development, the best fix is to add post-commit and EWS 
builders for one of those platforms. I do not support the idea of adding an 
additional builder just to “keep non-Unified-Source building” if no 
actively-supported platform is not choosing that build style.

Specifically, if Sony people are most affected by this, I suggest we find a way 
to add Sony PlayStation post-commit and EWS builders.

I am not convinced that we should add some kind of abstract “correct 
compilation” that is a separate builder.

— Darin
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Alexey Proskuryakov via webkit-dev
Hi,

Do we have a post-commit non-unified builder? Starting with EWS wouldn't seem 
like a workable plan to me, as breakages would creep in anyway, and it's really 
hard to notice and isolate those from EWS results alone.

Giving all WebKit developers the responsibility to support more build 
configurations, particularly ones that are not required for any shipping 
product, terrifies me. I can see how unpredictable per platform build failures 
when files are added or removed are a downside of our unified builds. This 
doesn't seem like an intrinsic part of unified builds though. Can we do 
anything to make reshuffling the files more controlled, so that build failures 
happen predictably when one is willing to deal with them?

- Alexey

> 28 апр. 2021 г., в 11:45 PM, dpino via webkit-dev 
>  написал(а):
> 
> Hi everyone,
> 
> In Igalia we have been discussing the need of deploying a new builder
> which builds WebKit using non-unified sources, and we know that at least
> the folks at Sony are also in favor.
> 
> One side effect of Unified Source building is that it hides compilation
> errors. The kinds of errors that usually get hidden by unified builds
> are missing headers inclusions and missing definitions of functions
> declared inline; the latter being tricky to debug because it results in
> mysterious linker errors. This is caused by unified builds stashing
> several .cpp files together for compilation, so the definitions and
> header inclusions done in one “leak” into the others. As for missing
> header inclusion errors, a source file might include a header definition
> as a co-lateral effect of being stashed together with another file that
> indeed includes the missing header.
> 
> These hidden compilation errors may arise later at some point if unified
> source files are stashed together in a different manner.
> 
> The current situation is requiring periodical maintenance. You can check
> build fixes commits due to unified source compilation with:
> 
>$ git log --pretty=short --grep "Non-unified"
> 
> Here are some examples:
>https://bugs.webkit.org/show_bug.cgi?id=222652
>https://bugs.webkit.org/show_bug.cgi?id=222755
>https://bugs.webkit.org/show_bug.cgi?id=221701
> 
> A new builder which builds WebKit with non-unified Source will highly
> help to improve this situation. Compilation errors will be detected as
> soon as possible and will save a lot of time not only for the developers
> who are currently doing this manual maintenance but for anyone who would
> like to build WebKit, and may stumble on compilation errors accidentally
> introduced due to unified sources.
> 
> While correct compilation of the codebase can only be guaranteed with
> non-unified source builds, we do not propose switching the current EWS
> compilation builders to non-unified because it's slower and the EWS
> LayoutTests and API test bots use the products built by the EWS builders
> — we do not want to delay getting results from those. That's why we are
> proposing a new builder: it will run on parallel, resulting in no
> slowdown for the other EWS builders, which will keep using unified
> builds.
> 
> How this new builder will impact developers? The EWS LayoutTest bots
> take at least 1 hour to complete a build. We think that as long as this
> new EWS Non-Unified builder is within that time budget, this new EWS
> wont' slow down development speed.
> 
> Thoughts?
> 
> Best regards,
> 
> Diego
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Don Olmstead via webkit-dev
When the Mac CMake build is in a working state I'd request an EWS that is 
Non-Unified as well since Mac builds cover more code.

-Original Message-
From: Alex Christensen via webkit-dev  
Sent: Thursday, April 29, 2021 8:16 AM
To: dpino 
Cc: webkit-dev@lists.webkit.org
Subject: Re: [webkit-dev] New EWS Non-Unified builder

I’d be excited to have this.  Those build failures have been bothering me ever 
since we started using unified builds.  We would have a way to see more 
problems in our code that are currently hidden.

> On Apr 28, 2021, at 11:45 PM, dpino via webkit-dev 
>  wrote:
> 
> Hi everyone,
> 
> In Igalia we have been discussing the need of deploying a new builder 
> which builds WebKit using non-unified sources, and we know that at 
> least the folks at Sony are also in favor.
> 
> One side effect of Unified Source building is that it hides 
> compilation errors. The kinds of errors that usually get hidden by 
> unified builds are missing headers inclusions and missing definitions 
> of functions declared inline; the latter being tricky to debug because 
> it results in mysterious linker errors. This is caused by unified 
> builds stashing several .cpp files together for compilation, so the 
> definitions and header inclusions done in one “leak” into the others. 
> As for missing header inclusion errors, a source file might include a 
> header definition as a co-lateral effect of being stashed together 
> with another file that indeed includes the missing header.
> 
> These hidden compilation errors may arise later at some point if 
> unified source files are stashed together in a different manner.
> 
> The current situation is requiring periodical maintenance. You can 
> check build fixes commits due to unified source compilation with:
> 
>$ git log --pretty=short --grep "Non-unified"
> 
> Here are some examples:
>
> https://urldefense.com/v3/__https://bugs.webkit.org/show_bug.cgi?id=222652__;!!JmoZiZGBv3RvKRSx!t22i0IAUrm1zV3LCteGHgJVUHzashK_F9tqjACa4ZTS_y9h8CnFZ7s60jhM-e_2Uo6c$
>  
>
> https://urldefense.com/v3/__https://bugs.webkit.org/show_bug.cgi?id=222755__;!!JmoZiZGBv3RvKRSx!t22i0IAUrm1zV3LCteGHgJVUHzashK_F9tqjACa4ZTS_y9h8CnFZ7s60jhM-cnURaLI$
>  
>
> https://urldefense.com/v3/__https://bugs.webkit.org/show_bug.cgi?id=22
> 1701__;!!JmoZiZGBv3RvKRSx!t22i0IAUrm1zV3LCteGHgJVUHzashK_F9tqjACa4ZTS_
> y9h8CnFZ7s60jhM-qQl-arU$
> 
> A new builder which builds WebKit with non-unified Source will highly 
> help to improve this situation. Compilation errors will be detected as 
> soon as possible and will save a lot of time not only for the 
> developers who are currently doing this manual maintenance but for 
> anyone who would like to build WebKit, and may stumble on compilation 
> errors accidentally introduced due to unified sources.
> 
> While correct compilation of the codebase can only be guaranteed with 
> non-unified source builds, we do not propose switching the current EWS 
> compilation builders to non-unified because it's slower and the EWS 
> LayoutTests and API test bots use the products built by the EWS 
> builders — we do not want to delay getting results from those. That's 
> why we are proposing a new builder: it will run on parallel, resulting 
> in no slowdown for the other EWS builders, which will keep using 
> unified builds.
> 
> How this new builder will impact developers? The EWS LayoutTest bots 
> take at least 1 hour to complete a build. We think that as long as 
> this new EWS Non-Unified builder is within that time budget, this new 
> EWS wont' slow down development speed.
> 
> Thoughts?
> 
> Best regards,
> 
> Diego
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://urldefense.com/v3/__https://lists.webkit.org/mailman/listinfo/
> webkit-dev__;!!JmoZiZGBv3RvKRSx!t22i0IAUrm1zV3LCteGHgJVUHzashK_F9tqjAC
> a4ZTS_y9h8CnFZ7s60jhM-gSTmLtg$

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://urldefense.com/v3/__https://lists.webkit.org/mailman/listinfo/webkit-dev__;!!JmoZiZGBv3RvKRSx!t22i0IAUrm1zV3LCteGHgJVUHzashK_F9tqjACa4ZTS_y9h8CnFZ7s60jhM-gSTmLtg$
 
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New EWS Non-Unified builder

2021-04-29 Thread Alex Christensen via webkit-dev
I’d be excited to have this.  Those build failures have been bothering me ever 
since we started using unified builds.  We would have a way to see more 
problems in our code that are currently hidden.

> On Apr 28, 2021, at 11:45 PM, dpino via webkit-dev 
>  wrote:
> 
> Hi everyone,
> 
> In Igalia we have been discussing the need of deploying a new builder
> which builds WebKit using non-unified sources, and we know that at least
> the folks at Sony are also in favor.
> 
> One side effect of Unified Source building is that it hides compilation
> errors. The kinds of errors that usually get hidden by unified builds
> are missing headers inclusions and missing definitions of functions
> declared inline; the latter being tricky to debug because it results in
> mysterious linker errors. This is caused by unified builds stashing
> several .cpp files together for compilation, so the definitions and
> header inclusions done in one “leak” into the others. As for missing
> header inclusion errors, a source file might include a header definition
> as a co-lateral effect of being stashed together with another file that
> indeed includes the missing header.
> 
> These hidden compilation errors may arise later at some point if unified
> source files are stashed together in a different manner.
> 
> The current situation is requiring periodical maintenance. You can check
> build fixes commits due to unified source compilation with:
> 
>$ git log --pretty=short --grep "Non-unified"
> 
> Here are some examples:
>https://bugs.webkit.org/show_bug.cgi?id=222652
>https://bugs.webkit.org/show_bug.cgi?id=222755
>https://bugs.webkit.org/show_bug.cgi?id=221701
> 
> A new builder which builds WebKit with non-unified Source will highly
> help to improve this situation. Compilation errors will be detected as
> soon as possible and will save a lot of time not only for the developers
> who are currently doing this manual maintenance but for anyone who would
> like to build WebKit, and may stumble on compilation errors accidentally
> introduced due to unified sources.
> 
> While correct compilation of the codebase can only be guaranteed with
> non-unified source builds, we do not propose switching the current EWS
> compilation builders to non-unified because it's slower and the EWS
> LayoutTests and API test bots use the products built by the EWS builders
> — we do not want to delay getting results from those. That's why we are
> proposing a new builder: it will run on parallel, resulting in no
> slowdown for the other EWS builders, which will keep using unified
> builds.
> 
> How this new builder will impact developers? The EWS LayoutTest bots
> take at least 1 hour to complete a build. We think that as long as this
> new EWS Non-Unified builder is within that time budget, this new EWS
> wont' slow down development speed.
> 
> Thoughts?
> 
> Best regards,
> 
> Diego
> ___
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev