<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote">On Thu, Oct 12, 2017 at 2:53 PM, Keith Miller <span dir="ltr"><<a href="mailto:keith_miller@apple.com" target="_blank">keith_miller@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">Hello WebKittens,<div><br></div><div>As discussed previously, I’m preparing to start migrating WebCore to unified-source builds. I was originally going to move over in one step but I have since realized that is going to be super hard to rebase fast enough. Instead I’ll move WebCore over incrementally. I have a full build of webkit working locally with both CMake and Xcode. The debug build time on my MBP went from ~25min to ~9min. There are still a bunch of files that don’t work with unified sources (mostly .mm files) that I will try to fix later.</div><div><br></div><div>I had to make a bunch of source changes in order to get things to work (see: <a href="https://bugs.webkit.org/show_bug.cgi?id=178229" target="_blank">https://bugs.webkit.org/show_<wbr>bug.cgi?id=178229</a>):</div><div><br></div><div>1) Move all “using namespace <name>;” inside the WebCore namespace (they used to be in the global namespace) and change to "using WebCore::<type-name>;” in .mm files.</div><div>2) Move a bunch of the soft linking library/framework macros out of the .mm files since those caused name collision problems.</div><div>3) Fix minor other naming collisions.</div><div><br></div><div>It seems like we are already moving away from 2 with PAL so I’m hoping that’s not contentious.</div><div><br></div><div>The problem with 1 in a unified source world is generic names often collide with system header names. For example, WebCore has a Rect class and that collided with a system header type elsewhere. Thus, I propose that we change our style rules to forbid "using namespace” in the global scope and only allow them inside namespaces. We already have a stricter rule in headers so it doesn’t seem like a big change to apply this rule to .cpp files. Interestingly, it looks like JSC never followed the global namespace “using namespace" rule we currently have. Obviously, we’d need to update <a href="https://webkit.org/code-style-guidelines/" target="_blank">https://webkit.org/<wbr>code-style-guidelines/</a>, <wbr>regardless of our final style choice.</div></div></blockquote><div><br></div><div>Forbidding "using namespace" in the global scope seems fine. That's just a bad practice anyway.</div><div><br></div><div>- R. Niwa</div><div> </div></div></div></div>