--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTAP4t-XpNe3O4GWbvNq5r%2BHdwObcUvMJ%2BvOQjdbDDYZBQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTBrDJq6EVRND5E%3D1wuvEPjXKyOv9qOPZ8%3DMP2%2BJOvYAFQ%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTAP4t-XpNe3O4GWbvNq5r%2BHdwObcUvMJ%2BvOQjdbDDYZBQ%40mail.gmail.com.
we've reached the conclusion that the way jumbo is currently implemented
it interferes too much with the way people frequently write C++ code; you have to work around jumbo-specific conflicts in a way that can be awkward, unnatural, or otherwise unnecessary
We plan to remove support a week from now, on August 22nd.
On Thu, Aug 15, 2019 at 5:24 PM 'Dirk Pranke' via Chromium-dev <chromi...@chromium.org> wrote:we've reached the conclusion that the way jumbo is currently implementedIs there an alternative implementation that would be better?
it interferes too much with the way people frequently write C++ code; you have to work around jumbo-specific conflicts in a way that can be awkward, unnatural, or otherwise unnecessaryCan you give specific examples? I've seen the occasional request to rename conflicting anonymous namespace functions, but I've never found anyone who considered this to be interfering in an unreasonable way.
We plan to remove support a week from now, on August 22nd.That's soon. Is there a pressing need to turn down the jumbo build before everyone is successfully onboarded to Goma?
On Fri, Aug 16, 2019 at 9:22 AM Avi Drissman <a...@chromium.org> wrote:On Thu, Aug 15, 2019 at 5:24 PM 'Dirk Pranke' via Chromium-dev <chromi...@chromium.org> wrote:we've reached the conclusion that the way jumbo is currently implementedIs there an alternative implementation that would be better?I believe that bra...@opera.com and some others had some suggested changes to Clang that might've been able to make things work more transparently, but the Clang team was reluctant to adopt them because it wasn't standard C++ and wasn't sure how important or useful (or perhaps even effective) the changes would've been. Perhaps bratell@ can say more here.
I think there is a hope that in the long run C++ Modules will be the way to generally address the problem that jumbo addresses, but we have no plausible timeline for adopting modules in Chromium that I am aware of, and it's an unproven (and I believe still not-fully-standardized) technology, at least for a cross-platform project like Chromium.it interferes too much with the way people frequently write C++ code; you have to work around jumbo-specific conflicts in a way that can be awkward, unnatural, or otherwise unnecessaryCan you give specific examples? I've seen the occasional request to rename conflicting anonymous namespace functions, but I've never found anyone who considered this to be interfering in an unreasonable way.I don't have specific examples on hand I can point at, but I suspect there are others on the list who could. I believe a common problem that people objected to was header pollution, e.g., a header that was safe when included from one C++ file would get effectively included into another file and cause problems. I think this was/is particularly a problem with third-party headers like zlib or the Windows APIs.We plan to remove support a week from now, on August 22nd.That's soon. Is there a pressing need to turn down the jumbo build before everyone is successfully onboarded to Goma?The decision was that Jumbo is and has been an ongoing source of pain, and that we've waited as long as we were willing to wait.-- Dirk
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTCMjv6emtxSXt7kFrT5Mjga0QwymD6Md176_45R_59msg%40mail.gmail.com.
--
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAA2pCLd1gvt8wBFYNSD49gkqB87FQYeKkNoNKbxWo3FeXJk6FA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTA2tPLoDUSrq3x5E%3DabPCHpqGEQ%2BReAGj2-4LVwZcY%2B0g%40mail.gmail.com.
Christian
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTCUt1W9p7YLX%2B_%3DSrP%2BEfWgbsZdA1Sf3Jxc8XjtRPBa1g%40mail.gmail.com.
---- Dirk
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTCMjv6emtxSXt7kFrT5Mjga0QwymD6Md176_45R_59msg%40mail.gmail.com.
From: Yoav Weiss Sent: Samstag, 17. August 2019 10:25 To: Dirk Pranke Reply To: yo...@yoav.ws Cc: Avi Drissman; chromium-dev Subject: Re: [chromium-dev] We're removing support for the jumbo build |
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTAf9BR7MEsqG8X3h%2B9sTv1fCfOFTQA7bW%3DaBR%2Bi1s-rNw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAHqYdcb8o6Q%3DcbsabX18NgFhc2DFqAHUZ-Odfj8t1%2BSNfzQrZw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/op.z6rdh4mkrbppqq%40cicero2.linkoping.osa.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAJTZ7LK0uoJ6Zg9XWvCXqgjKmAS1YQ1zjktjFcGG0Yc%2B4rpAVA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAKFU2SB0DSU%3DxUdDVK8PBdc_-nHXDpzGfTUgJQ-6nQM41gHptw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPG_qM6H-Zg3EU0pL4vFbmSe4k4iTjXfc7rXte%3DrhZhbW%2BTGyg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPG_qM6H-Zg3EU0pL4vFbmSe4k4iTjXfc7rXte%3DrhZhbW%2BTGyg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CA%2BapAgGEav0jLFvvSBNwMs7T4zWxfNLai%2B-QZFExP0m-UQRV6w%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAM%3DNeDgZGaSqFc_XnXxEKWYQQaMCXpJrJqPBoP7XtmCBU1ik_g%40mail.gmail.com.
+1 to what Gab and Alex said.It feels like this may have been a well-intentioned decision made with misleading anecdata. If that's possible, I'd love for the eng leads to reconsider.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAAHOzFAwcYjPOX%2BN%2BgfSBJLQDhSw1J3NddOmVg-cVCfgzF%2BDKw%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTAP4t-XpNe3O4GWbvNq5r%2BHdwObcUvMJ%2BvOQjdbDDYZBQ%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CA%2BapAgGEav0jLFvvSBNwMs7T4zWxfNLai%2B-QZFExP0m-UQRV6w%40mail.gmail.com.
As far as the one-week notice being too short goes, I think that's fair criticism and I apologize.I set a short deadline because I didn't think having a timeline for investigating alternatives would be all that useful, since there's not an obvious alternative to what jumbo does, particularly if you can't use a compile farm like Goma (e.g., because you're working offline or on a slow or metered network).However, I suppose it could be useful to keep jumbo around for a time while people helped contribute to Goma to make it be more useful in other environments (either to set up their own goma clusters or to make our Goma/RBE-based service easier to use), so perhaps I was mistaken in this thinking, too.
On Mon, Aug 19, 2019 at 6:42 PM Dirk Pranke <dpr...@google.com> wrote:As far as the one-week notice being too short goes, I think that's fair criticism and I apologize.I set a short deadline because I didn't think having a timeline for investigating alternatives would be all that useful, since there's not an obvious alternative to what jumbo does, particularly if you can't use a compile farm like Goma (e.g., because you're working offline or on a slow or metered network).However, I suppose it could be useful to keep jumbo around for a time while people helped contribute to Goma to make it be more useful in other environments (either to set up their own goma clusters or to make our Goma/RBE-based service easier to use), so perhaps I was mistaken in this thinking, too.Thanks for listening. Highly appreciated! :)I think there's another angle to consider when talking about Goma vs. jumbo - sustainability.As jumbo builds require ~3x less CPU power, applying (something like) them to everyone could have a significant impact on reducing our GCP bill (disclaimer: I don't know if the Chrome team is actually charged and if that argument actually makes sense for us. It definitely makes sense for other orgs).It would also mean that the project's CO2 footprint would be significantly smaller, at least when it comes to computing infrastructure.
I have also tripped over the jumbo build a number of times. Beyond the simple name changes, the biggest source of pain I've encountered is in template specialization, and in particular the ClassProperty related ones. See https://chromium-review.googlesource.com/c/chromium/src/+/786190/ for more information. If you get the macro order wrong, the compiler errors are rather inscrutable.
On Mon, Aug 19, 2019 at 12:07 PM 'Peter Kasting' via Chromium-dev <chromi...@chromium.org> wrote:+1 to what Gab and Alex said.It feels like this may have been a well-intentioned decision made with misleading anecdata. If that's possible, I'd love for the eng leads to reconsider.I think it would be hard to get good data and quantify the impact but I made an attempt when we started discussing costs of jumbo support. I looked at the number of non-bot references to jumbo in CL descriptions and comments over a six month period and found that there were 254 CLs with either. Many of the CL comments were people uploading new patchsets when they realized there was a symbol collision. I'm not sure how much time is lost when people need to do this (maybe a CQ cycle? so 50 minutes at the 50th %ile?) but maybe others can estimate.Here is a spreadsheet with the data if you want to look through yourself:
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAF8qwaDHMNSDE0jcaCdT8oawZ1LK4rRrrKewTZph-CT5CbLzYQ%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTAP4t-XpNe3O4GWbvNq5r%2BHdwObcUvMJ%2BvOQjdbDDYZBQ%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTBrDJq6EVRND5E%3D1wuvEPjXKyOv9qOPZ8%3DMP2%2BJOvYAFQ%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTAf9BR7MEsqG8X3h%2B9sTv1fCfOFTQA7bW%3DaBR%2Bi1s-rNw%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAHqYdcb8o6Q%3DcbsabX18NgFhc2DFqAHUZ-Odfj8t1%2BSNfzQrZw%40mail.gmail.com.
--/* Opera Software, Linköping, Sweden: CEST (UTC+2) */
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/op.z6rdh4mkrbppqq%40cicero2.linkoping.osa.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAJTZ7LK0uoJ6Zg9XWvCXqgjKmAS1YQ1zjktjFcGG0Yc%2B4rpAVA%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAKFU2SB0DSU%3DxUdDVK8PBdc_-nHXDpzGfTUgJQ-6nQM41gHptw%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPG_qM6H-Zg3EU0pL4vFbmSe4k4iTjXfc7rXte%3DrhZhbW%2BTGyg%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CA%2BapAgGEav0jLFvvSBNwMs7T4zWxfNLai%2B-QZFExP0m-UQRV6w%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev+unsubscribe@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAM%3DNeDgZGaSqFc_XnXxEKWYQQaMCXpJrJqPBoP7XtmCBU1ik_g%40mail.gmail.com.
Hi folks,
Just to jump in on this thread and provide my perspective...
First of all, I definitely recognize the benefits jumbo has brought to the project and the community. I'm aware of how large our project is and how costly it is to do a fresh build (without Goma). I'm really excited that we are taking steps to make Goma more available, both with it being open source and with an instance that Google is making available to the community. Also the investments we've made in speeding up Clang really help too. There is more we can be doing.
When it came to the jumbo build specifically, I definitely tripped over a couple issues relatively quickly in the past month or so, and they surprised me. One was the anonymous namespace issue already mentioned in this thread. The other was macro pollution. In both cases, the failure mode was mysterious and perplexing. The errors I was seeing on the jumbo try bot made no sense considering the .cc file I was working with. So, I had to learn about jumbo build, and I probably spent more time than I'm willing to admit debugging these issues.
In the case of the anonymous namespace issue, I really didn't know what was going on. I "fixed" the issue by making the function declared in the anonymous namespace a static class method instead. I didn't think of trying to just rename it. It didn't occur to me that name collision was the problem. I just went the static class method route and moved on. Maybe I should have spent more time investigating. But it left me with a bad taste as I knew I was making code just a little bit less optimal.
In the case of the macro pollution, I asked around, and I was told that I could exclude certain .cc files from the jumbo build. I tried that, but the jumbo try bot kept failing. The error I was seeing had moved to a different .cc file. Looking at the error more closely, the issue was a macro defined via zlib.h conflicting with a header file from mojo/. I tried excluding more .cc files. Still no good. Finally, I set my CL aside, and opened up a fresh branch to try to make zlib not export this particular macro. CL here: https://chromium-review.googlesource.com/c/chromium/src/+/1709871
Now, arguably the second CL is just a good thing for the project irrespective of jumbo. I felt good about that change for that reason. But, again, I spent a lot of time across these two issues, and as an engineer feeling like I already have to know so many things in order to be productive on this project, this was just one more thing that I had to learn. Not great. How many other people are struggling similarly?
I asked others about the jumbo build. Is it really worth this kind of cost? How much of this kind of cost are people seeing? Erik Staab as he posted did a basic grep across the comments on gerrit and found about 2 per work day happening in the past 6 months. That seems like a good amount of accumulated cost, and it is hard to see how that can be a good thing for the project.
As Dirk mentions below, the eng review group got together with Dirk and a few others to discuss. Honestly, the only real question was when, not if, we should disable support for jumbo. Again, thanks to Goma availability and the speed-ups on Clang, the situation is not as bad as it once was. That gave us confidence that we could move forward with this change. Now, when it comes to timeframe, I agree we should be flexible in supporting the community through this change. Making an instance of Goma available to the community is a new thing, and we should give people time to adjust. I suggest that we extend the deprecation timeline by one month from Dirk’s original post.
Thanks,
-Darin
Hi all,--
We have decided to remove support for the jumbo (aka unity) build configuration from the project.
We are very conscious of the fact that Chromium is very expensive and slow to compile, and that that represents a real barrier to contributing.
However, based on the experience we've gained with this configuration over the past many months it's been supported, we've reached the conclusion that the way jumbo is currently implemented, it interferes too much with the way people frequently write C++ code; you have to work around jumbo-specific conflicts in a way that can be awkward, unnatural, or otherwise unnecessary. As a result, we feel that the cost to the project of maintaining jumbo is not worth the benefit it is providing.
We continue to invest in other approaches to reducing build time. We've released the Goma build accelerator code and hope to continue making it easier to use for others. We are also working to enable our Goma clusters for external contributors (anyone who has tryjob access) who don't have their own build acceleration tools. We're starting with Linux support now and will have more to share on that soon. If you are interested in getting access to this system, please fill out this form. We're also working on Clang and LLVM and have made significant improvements this year to cycle time as a result, and we expect to continue to do so for the foreseeable future.
We plan to remove support a week from now, on August 22nd.
Please let me know if you have questions about this.
-- Dirk
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/op.z6tqr0uyrbppqq%40cicero2.linkoping.osa.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAP0-QpttiRPnLSu2BM8BE51b8LhrBR%2BqWqHZxi_a7Rewc38FmA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CACfMsGHfkYJqP%2BFX%3DB7yRiVQZ1o5eOM2AQgH%3DWat13_LsVU%2B-A%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAP0-QpujCWNCY%2BUK7GNei08FRaE07TYo3STa705uwzotkzegEQ%40mail.gmail.com.
PK
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTAP4t-XpNe3O4GWbvNq5r%2BHdwObcUvMJ%2BvOQjdbDDYZBQ%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTBrDJq6EVRND5E%3D1wuvEPjXKyOv9qOPZ8%3DMP2%2BJOvYAFQ%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTAf9BR7MEsqG8X3h%2B9sTv1fCfOFTQA7bW%3DaBR%2Bi1s-rNw%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAHqYdcb8o6Q%3DcbsabX18NgFhc2DFqAHUZ-Odfj8t1%2BSNfzQrZw%40mail.gmail.com.
--/* Opera Software, Linköping, Sweden: CEST (UTC+2) */
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/op.z6rdh4mkrbppqq%40cicero2.linkoping.osa.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAJTZ7LK0uoJ6Zg9XWvCXqgjKmAS1YQ1zjktjFcGG0Yc%2B4rpAVA%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAKFU2SB0DSU%3DxUdDVK8PBdc_-nHXDpzGfTUgJQ-6nQM41gHptw%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAPG_qM6H-Zg3EU0pL4vFbmSe4k4iTjXfc7rXte%3DrhZhbW%2BTGyg%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAAHOzFAwcYjPOX%2BN%2BgfSBJLQDhSw1J3NddOmVg-cVCfgzF%2BDKw%40mail.gmail.com.
--/* Opera Software, Linköping, Sweden: CEST (UTC+2) */
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/1003670c-8fa4-4113-8168-f999176e4faa%40chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAEoffTAhdzxPqJsASMBp5hXHp74jb%2BFR52Si%2B_MEKY5vxV3c%3Dw%40mail.gmail.com.
We talked about jumbo as a community-supported option up-thread a bit, but, to repeat and go into a bit more detail ...The primary objection to jumbo (as I understand it) is not the annoyance of supporting another build config, but rather that the changes that you have to make are not changes that you would normally make and that they make the code worse. Supporting jumbo as an FYI config won't help this, because you'd still have to make the changes.
I guess I am wondering, what kind of analysis was done on these comments? Were they broken up into types/impact? Would you be willing to share more to help the community understand, given the large impact this seems like it will have on their productivity and ability to contribute? The majority of the CLs also are one-off "get jumbo working" type of CLs, and I saw many written and reviewed by folks at opera incurring zero cost on Google engineers really.
estaab@ did the analysis, but I don't know how much more he did beyond reading the CL descriptions; he would have to say.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAN60yaJkRfAJ_fvzBkA7%2BbqruhmMB7c%3Dux-6FMxysBTx4ADQ_w%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAP0-QpvJjR9z%3DBmgBH9LzQG7s955PzW%2BfyC-BxkMm4xJgZHzTQ%40mail.gmail.com.
From my perspective, it is imperative for this project that we fight to reduce landmines. I'm very committed to reducing the complexity associated with trying to work on Chromium. I see jumbo working counter to this goal, and that's why I have pushed for its deprecation.
Fortunately, Goma is now available both as open source so others can stand up their own servers (and my understanding is that some people certainly have) but Google has also made available Goma servers for folks in the community to utilize.
Goma doesn't have to be the only answer of course. We should also be working to make Chromium less costly to build and to continue our efforts to make our tools faster and more efficient.
On Wed, Sep 25, 2019 at 2:26 PM Darin Fisher <da...@chromium.org> wrote:From my perspective, it is imperative for this project that we fight to reduce landmines. I'm very committed to reducing the complexity associated with trying to work on Chromium. I see jumbo working counter to this goal, and that's why I have pushed for its deprecation.Does that argument still apply if jumbo is an off-by-default config on an FYI bot? At that point the primary impacts are(a) Maintenance burden on the people who use it (which we have to see if it will be borne)(b) Codebase impact from jumbo-supporting changesThe original argument was that making jumbo FYI was a non-starter because (b) was negative. The argument on this thread was that (b) is actually a net positive.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAP0-QpvJjR9z%3DBmgBH9LzQG7s955PzW%2BfyC-BxkMm4xJgZHzTQ%40mail.gmail.com.
On Thu, 26 Sep 2019 at 08:42, Peter Kasting <pkas...@google.com> wrote:On Wed, Sep 25, 2019 at 2:26 PM Darin Fisher <da...@chromium.org> wrote:From my perspective, it is imperative for this project that we fight to reduce landmines. I'm very committed to reducing the complexity associated with trying to work on Chromium. I see jumbo working counter to this goal, and that's why I have pushed for its deprecation.Does that argument still apply if jumbo is an off-by-default config on an FYI bot? At that point the primary impacts are(a) Maintenance burden on the people who use it (which we have to see if it will be borne)(b) Codebase impact from jumbo-supporting changesThe original argument was that making jumbo FYI was a non-starter because (b) was negative. The argument on this thread was that (b) is actually a net positive.On (b), I wrote an email to this thread dated August 19 where I looked at a handful of CLs doing renames to support Jumbo, showing I think clear examples of taking names that are perfectly clear in context being renamed to overly long names that are redundant given the context (e.g. "LoadProtoFromDisk" in a file called safety_tips_component_installer.cc renamed to "LoadSafetyTipsProtoFromDisk"). In the worst case, the renames are done by someone who doesn't have an understanding of the code they're changing (they are just trying to quickly fix a broken Jumbo build), and the new names are misleading, as in my second example renaming "DoesAndroidSupportMaskableIcons" to "DoesAndroidSupportMaskableIconsForWebApk".Obviously these are some cherry-picked examples, and we could have a table side-by-side of renames that improved the clarity of the code versus renames that made it worse. I just want to point out that having globally unique names doesn't always make the code clearer. Maybe it is still a net positive.Since Jumbo builds effectively nullify the utility of anonymous namespaces, I think we should decide to have one or the other. It doesn't make sense allowing anonymous namespaces in the codebase if every time we commit code where two objects in different files have the same name, someone comes along with a CL to rename them apart. If we do decide that it's a net positive to force all names to be globally unique, we should just outlaw anonymous namespaces; then the name collision errors come from the C++ language and not from an FYI bot later on. The corollary is that if we think anonymous namespaces are a valuable enough language feature to allow in our codebase, then we shouldn't accept CLs for the sole purpose of renaming everything in them to be globally unique.
I looked through the list of jumbo related commits when this thread was initially posted but I will repeat what I said back then since it's been a month:
The list *greatly* overestimates the amount of maintenance jumbo needs. Only 10-20% of the commits listed were doing immediate fixes needed for jumbo. The rest were commits such as work on variable shadowing that mentioned jumbo as a potential benefactor of fewer shadowed variables or commits done to support non-default jumbo configurations (specifically an extreme test I had where I compiled as much code as possible together).
If jumbo maintenance is a problem, it would be good to first try to reduce the maintenance cost but no such attempt was done. At least none that involved me. I only learned of this decision and urgent concern that jumbo was too expensive after the decision was made which too me made it look like a decision made in haste. That the supporting data also did not support the decision only strengthens that belief.
I'm not claiming that jumbo is a zero cost feature. Absolutely not. I've done dozens of commits the last couple of years to fix jumbo breakage on untested platforms/configurations, but that is very little compared to the time it has saved, even for me as the main maintainer.
And goma is better, but it doesn't seem to be ready yet. It has to be ready and available to be a replacement. As far as I know, the open source server is very very hard to get running, and neither Mac nor Windows support is there yet.
I had hoped that things would have changed since during the delay but I've seen no signs of that at all and therefore I think it makes sense to push it further until the replacement is available.
/Daniel
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAAHOzFCZisamAPLHJ_Lz9GW_n8DO266kw5n7WqAhL2hoeLNzcQ%40mail.gmail.com.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAP0-QptkJVGggJjc5NSjQRYrhVEH1RWQs8eB4qPioWazWVCkZA%40mail.gmail.com.
I think that is a bit of an understatement.
This doubles, triples or quadruples the compile time for people working on Mac and Windows, and then it was insanely long from the beginning. It's especially frustrating since Mac and Windows are the platforms that suffer from the weakest generic build acceleration tools.
It seems to me that things are done in the wrong order. First the
replacement, then the removal of the old system, that would be the
recommended order.
/Daniel
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAP0-Qpt8Ho5aBiXYbhNPt2N-d-CwucuJbDq0Mk_ZqDjdOLX6%2BQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/2c910beb-aee1-22ba-add2-b29890a2c4d4%40gmail.com.
Hi,
And Windows is an important platform for Chrome and various companies here. We have very few alternatives :- Throwing several thousands dollars to get an average build time with a beefy computer- Throwing even more expensive dollars into systems like incredibuild.
For macOS it’s even worst since buying powerful hardware is prohibitive. However we mitigated this with icecream and cross compilation on Linux nodes. It’s not optimal and icecream has a lot of limitations but it does the job.
I think ideally the community would love to see a roadmap or plan for GOMA not just for public GOMA but similarly for companies that would be interested to deploy their own internal GOMA (therefore we would appreciate if Google shares the pieces to get an head start to support sharing the build on Windows or MacOS).
Dear Dirk,When I started using Jumbo, compiling cost on laptop decreased from 4h to about 1h.Currently I see 81_000 files without Jumbo.This is more than sad, that instead of cleaning project rules (I mean - providing such rules, which could decrease amount of conflicts you were mentioning) and instead of making Jumbo more widely used in more configs it was just removed.I understand, that complexity of project grows, but if (I will repeat: if) Google needs help from community with this, I'm sure, that asking for this was more than enough and you could do it.
You should think also about environmental effect of your decision - time, energy usage, etc.This decision unfortunately means, that worse is replacing better and I'm thinking, if you just lack people in team or you don't have resources or what is real reason of this decision (key word - real).
With kind regards,Marcin Wiącek
On Thursday, August 15, 2019 at 11:25:02 PM UTC+2, Dirk Pranke wrote:Hi all,
We have decided to remove support for the jumbo (aka unity) build configuration from the project.
We are very conscious of the fact that Chromium is very expensive and slow to compile, and that that represents a real barrier to contributing.
However, based on the experience we've gained with this configuration over the past many months it's been supported, we've reached the conclusion that the way jumbo is currently implemented, it interferes too much with the way people frequently write C++ code; you have to work around jumbo-specific conflicts in a way that can be awkward, unnatural, or otherwise unnecessary. As a result, we feel that the cost to the project of maintaining jumbo is not worth the benefit it is providing.
We continue to invest in other approaches to reducing build time. We've released the Goma build accelerator code and hope to continue making it easier to use for others. We are also working to enable our Goma clusters for external contributors (anyone who has tryjob access) who don't have their own build acceleration tools. We're starting with Linux support now and will have more to share on that soon. If you are interested in getting access to this system, please fill out this form. We're also working on Clang and LLVM and have made significant improvements this year to cycle time as a result, and we expect to continue to do so for the foreseeable future.
We plan to remove support a week from now, on August 22nd.
Please let me know if you have questions about this.
-- Dirk
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/56591d89-3b1f-4c26-8cb5-aef193178cab%40chromium.org.
I just want to highlight (based on the long conversation above), this is not a question of insufficient resources to enforce the rules Jumbo requires (e.g., names in anonymous namespaces and preprocessor directives cannot conflict even across files), it's that we don't want our codebase to be constrained by those rules.
Have a look at the email from Darin in this thread dated 26 September (beginning "I just want to clarify some things about this decision"). That explains a bunch of the problems that arise from the Jumbo build. (The short version is, C++ isn't designed for this; Jumbo violates the rules of C++ causing compiler errors and in some cases behavioural differences which can catch engineers off guard if they are using a regular C++ compiler toolchain.)
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/215622cb-b257-4fa7-ae4e-dc6947db43d3%40chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
Dear Dirk,When I started using Jumbo, compiling cost on laptop decreased from 4h to about 1h.Currently I see 81_000 files without Jumbo.This is more than sad, that instead of cleaning project rules (I mean - providing such rules, which could decrease amount of conflicts you were mentioning) and instead of making Jumbo more widely used in more configs it was just removed.
I understand, that complexity of project grows, but if (I will repeat: if) Google needs help from community with this, I'm sure, that asking for this was more than enough and you could do it.You should think also about environmental effect of your decision - time, energy usage, etc.
This decision unfortunately means, that worse is replacing better and I'm thinking, if you just lack people in team or you don't have resources or what is real reason of this decision (key word - real).
With kind regards,Marcin Wiącek
On Thursday, August 15, 2019 at 11:25:02 PM UTC+2, Dirk Pranke wrote:Hi all,
We have decided to remove support for the jumbo (aka unity) build configuration from the project.
We are very conscious of the fact that Chromium is very expensive and slow to compile, and that that represents a real barrier to contributing.
However, based on the experience we've gained with this configuration over the past many months it's been supported, we've reached the conclusion that the way jumbo is currently implemented, it interferes too much with the way people frequently write C++ code; you have to work around jumbo-specific conflicts in a way that can be awkward, unnatural, or otherwise unnecessary. As a result, we feel that the cost to the project of maintaining jumbo is not worth the benefit it is providing.
We continue to invest in other approaches to reducing build time. We've released the Goma build accelerator code and hope to continue making it easier to use for others. We are also working to enable our Goma clusters for external contributors (anyone who has tryjob access) who don't have their own build acceleration tools. We're starting with Linux support now and will have more to share on that soon. If you are interested in getting access to this system, please fill out this form. We're also working on Clang and LLVM and have made significant improvements this year to cycle time as a result, and we expect to continue to do so for the foreseeable future.
We plan to remove support a week from now, on August 22nd.
Please let me know if you have questions about this.
-- Dirk
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/56591d89-3b1f-4c26-8cb5-aef193178cab%40chromium.org.
There was a small patch, I think two years ago now, which created a
mechanism for "resetting" the anonymous namespace. By using that between
each translation unit in a jumbo chunk, you avoided almost all
compatibility problems. The patch was small but I think it was
considered non-compatible with the path people wanted clang to take.
Mostyn will know more about it.
That would be a more maintainable alternative to building full support
for parallel compilation of translation units into clang.
/Daniel
On 2019-11-26 12:30, Hans Wennborg wrote:
> Just wanted to reply to the "I would personally like to see Clank
> support this sort of thing directly" part. (I assume you meant Clang
> and not Clank :-)
>
> We (the Chrome toolchain team) looked into it, but the combination of
> re-using the redundant parsing and semantic analysis across different
> source files, while at the same time keeping them apart enough to
> respect C++ semantics is hard, and something we're working on at the
> moment.
>
> But we are well aware the build times for Chromium are really bad, and
> reducing them is a top priority for us.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/869f7944-fc38-be23-b1b8-da78a130a219%40gmail.com.
On Tue, Nov 26, 2019 at 10:34 PM Daniel Bratell <brat...@gmail.com> wrote:There was a small patch, I think two years ago now, which created a
mechanism for "resetting" the anonymous namespace. By using that between
each translation unit in a jumbo chunk, you avoided almost all
compatibility problems. The patch was small but I think it was
considered non-compatible with the path people wanted clang to take.
Mostyn will know more about it.
That would be a more maintainable alternative to building full support
for parallel compilation of translation units into clang.
/DanielI linked to the clang-dev thread and my lightning talk slides earlier in this thread:The clang plugin + clang patch only needed two trivial updates to apply and build on the tip of master just now:
This was my test case, making //net build in jumbo mode:Without the plugin: https://chromium-review.googlesource.com/c/chromium/src/+/966523With the plugin: https://chromium-review.googlesource.com/c/chromium/src/+/962062
Yes, I did mean Clang :)On Wed, 27 Nov 2019 at 10:42, Mostyn Bramley-Moore <mos...@vewd.com> wrote:On Tue, Nov 26, 2019 at 10:34 PM Daniel Bratell <brat...@gmail.com> wrote:There was a small patch, I think two years ago now, which created a
mechanism for "resetting" the anonymous namespace. By using that between
each translation unit in a jumbo chunk, you avoided almost all
compatibility problems. The patch was small but I think it was
considered non-compatible with the path people wanted clang to take.
Mostyn will know more about it.
That would be a more maintainable alternative to building full support
for parallel compilation of translation units into clang.
/DanielI linked to the clang-dev thread and my lightning talk slides earlier in this thread:The clang plugin + clang patch only needed two trivial updates to apply and build on the tip of master just now:That's pretty great!This was my test case, making //net build in jumbo mode:Without the plugin: https://chromium-review.googlesource.com/c/chromium/src/+/966523With the plugin: https://chromium-review.googlesource.com/c/chromium/src/+/962062I'm curious that changes are still required. Looks like your Clang patch means the compiler can deal with name conflicts in anonymous namespaces and macro definitions, but you still need to make some changes to Chrome to make Jumbo builds happy.Even though you have to make much fewer changes, having to make any changes could still be a problem. The whole problem here is that engineers who aren't building with Jumbo may not realise they're breaking the Jumbo build, because Jumbo imposes requirements on Chrome outside of the C++ language. Ideally, it would be a transparent compiler optimization.It looks like, for example in crypto_secret_boxer.cc you had to rename the static const kAEAD due to a name conflict? So perhaps Clang doesn't support static name conflicts across files, unlike anonymous namespaces. You also had to add some #includes and add a reinterpret_cast; I'm not sure why those would have been necessary.
Perhaps you can make a list of "ways in which Clang + your patch + Jumbo build violates C++ semantics" and work on burning those down to 0.
Perhaps you can make a list of "ways in which Clang + your patch + Jumbo build violates C++ semantics" and work on burning those down to 0.Jumbo builds themselves don't change C++ semantics, they just change the size of the compilation unit and increase the chance of conflicts and ambiguity between code that is normally compiled separately. Jumbo+this plugin only change the semantics of two things, but in such a way that is consistent with non-jumbo builds (limit anonymous namespaces and macros defined in top-level source files to a pretend top-level-file scope).
Sure, they probably are, but that doesn't change the fact that they're necessary, which means you're creating a secondary language "C++ with Jumbo" which has different semantics to C++. That means when the rest of us write regular C++ code, we might break the "C++ with Jumbo" build which is compiling a different programming language to what we're writing.Also, as I've argued way back earlier in the year (on this thread), I don't think changes like #4 are good. Having to change a variable called "kNonceSize" which is perfectly meaningful within the context of this one file, to "kQuicNonceSize" adds redundant information to the variable name, which doesn't benefit the readability of the code. You're just doing that because of a cross-file naming conflict.Perhaps you can make a list of "ways in which Clang + your patch + Jumbo build violates C++ semantics" and work on burning those down to 0.Jumbo builds themselves don't change C++ semantics, they just change the size of the compilation unit and increase the chance of conflicts and ambiguity between code that is normally compiled separately. Jumbo+this plugin only change the semantics of two things, but in such a way that is consistent with non-jumbo builds (limit anonymous namespaces and macros defined in top-level source files to a pretend top-level-file scope).That is changing the semantics though. The C++ language specification defines what a compilation unit is, and specifies under what circumstances two variables with the same name are allowed, and under what circumstances they aren't. Jumbo is modifying the compiler toolchain to change the definition of a compilation unit, and thus decreasing the set of circumstances where name collisions are allowed. In effect, Jumbo creates a new programming language that is very very similar to C++, but not quite the same.Your patch seems to narrow the gap, moving the language closer and closer to C++, but still not quite the same.The fundamental problem is that we (the Chromium authors overall) want to write C++, not some very slightly different language. So ideally we would be able to modify Clang so that it compiles the project much faster, but with the exact same semantics as C++ as specified.
Perhaps you can make a list of "ways in which Clang + your patch + Jumbo build violates C++ semantics" and work on burning those down to 0.Jumbo builds themselves don't change C++ semantics, they just change the size of the compilation unit and increase the chance of conflicts and ambiguity between code that is normally compiled separately. Jumbo+this plugin only change the semantics of two things, but in such a way that is consistent with non-jumbo builds (limit anonymous namespaces and macros defined in top-level source files to a pretend top-level-file scope).That is changing the semantics though. The C++ language specification defines what a compilation unit is, and specifies under what circumstances two variables with the same name are allowed, and under what circumstances they aren't. Jumbo is modifying the compiler toolchain to change the definition of a compilation unit, and thus decreasing the set of circumstances where name collisions are allowed. In effect, Jumbo creates a new programming language that is very very similar to C++, but not quite the same.Your patch seems to narrow the gap, moving the language closer and closer to C++, but still not quite the same.The fundamental problem is that we (the Chromium authors overall) want to write C++, not some very slightly different language. So ideally we would be able to modify Clang so that it compiles the project much faster, but with the exact same semantics as C++ as specified.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/CAHqYdcb1x1gBs%3D%2Bisqz%3Dxx6rA8UqKZpye6F9WM-HnqMuYDoAdA%40mail.gmail.com.
The fundamental problem is that we (the Chromium authors overall) want to write C++, not some very slightly different language. So ideally we would be able to modify Clang so that it compiles the project much faster, but with the exact same semantics as C++ as specified.
--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/179f78b5-77d2-42c4-8af8-bf95be1068d7%40chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to chromi...@chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/b2f84e3a-7af1-4b28-8174-cad3c7f2da2d%40chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/b2f84e3a-7af1-4b28-8174-cad3c7f2da2d%40chromium.org.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/e02dc41a-1f64-48cb-b220-b11332ce3577%40chromium.org.
To view this discussion on the web visit https://groups.google.com/a/chromium.org/d/msgid/chromium-dev/e02dc41a-1f64-48cb-b220-b11332ce3577%40chromium.org.