> On Sep 1, 2018, at 5:14 PM, Simon Fraser <simon.fra...@apple.com> wrote:
>
> Unified sources allow you to get away without #including all the files you
> need in a .cpp file, because some earlier file in the group has probably
> already included them for you.
>
> This means that when you add a new file to the build, and the unified sources
> get shuffled around, you end up with a long list of build breakages, some
> platform-specific, that you can only fix by repeating EWS trials.

Yes.
We knew this was going to happen when evaluated the proposal before we switched
to unified sources. I believe you can find some discussion of it in webkit-dev.
> How can we solve this?
I don’t think we should try to solve it.
To me at the moment, this seems to be a minor irritation. Even without unified
sources, it’s common to get includes wrong for platforms other than the one you
are testing on and find this out only when building on EWS.
I would be OK having an EWS server that builds various platforms without
unified sources, but while it might help it might also hurt, adding more EWS
results to interpret for each patch, and also finding theoretical problems that
don’t affect any platform.
If there’s a tool that can figure out what files need to be included by
analyzing source code, and that works well enough to be practical, I’d love to
arrange it so that we can use that instead of having programmers have to write
their own include statements. I’ve long been interested in
<https://include-what-you-use.org <https://include-what-you-use.org/>> and
wondered whether we could use it, but it sort of does the opposite, and the
“multiple platforms” problem could well make even that tool impractical for us.
— Darin