6 ms·
How many people would.use a cloud compiler? Let's set aside thecnicalities and assume it a real X5 improvements and all the files are mirrored seamlessly.
by embrassingstuff 6y ago
How many people would.use a cloud compiler?
Let's set aside thecnicalities and assume it a real X5 improvements and all the files are mirrored seamlessly.
- mhh__ 6y agoKen Thompson would be rolling in his grave if not for him being alive. I could see this having some use in an internal manner for things like game development where you have absolutely enormous codebases (as an abstraction above compile servers and similar).
- londons_explore 6y agoMBED already pioneered the cloud compiler. Their compiler did optimizations to produce (slightly) better code than any compiler you could buy. A lot of users were uneasy with it.
- compressedgas 6y agoMany already use one called distcc.
- boomlinde 6y agoIt's only at link time that object will depend on another, so you don't need a new compiler to support a "cloud" use case where any number of machines can work on compilation.
- cwzwarich 6y agoA lot of large C++ projects use link-time optimization, since it's the easiest way to get predictably good performance.
- mrich 6y agoIf you are referring to a caching distributed compile cluster, most companies with large codebases are using one (or should). It helps a lot and can make the difference between taking half a day for a scratch make (i.e. unusable) to getting down to 10 min. There are open-source ones but I'm also aware of at least two internal, custom-developed ones.
- jart 6y agohttps://github.com/bazelbuild/bazel/commit/ed7ced0018dc5c5ebd6fc8afc7158037ac1df00d https://github.com/bazelbuild/bazel/commit/ed7ced0018dc5c5eb... <-- would be better with DNSSEC though
- jingwen 6y agoMore here: https://docs.bazel.build/versions/master/remote-execution.html https://docs.bazel.build/versions/master/remote-execution.ht...
- ryanianian 6y agoicecream (icecc) is basically this. It’s “cloud” in that it’s distributed, but it requires surprisingly high bandwidth to the cluster, so it basically requires an office LAN connection. Or for your editor to be on that connection a la VSCode’s remote thing.
- notriddle 6y agoThis is probably the other big reason why "cloud compilers" are rare. Not much point in using one if you can compile the source locally more quickly than you can upload it.
- zarkov99 6y agoMy company would pay for that, up to $50/developer/month. Its a no brainier if you really get X5 speed improvements, not just for full builds but incremental as well. Of course there are tricky issues there, privacy, lock-in, how intrusive the scheme is, but the build tax in C++ has a very unappreciated impact on productivity, one that the C++ committee seems incapable of addressing.
- mrich 6y agoI think there is no cloud service for this precisely because companies mostly don't want to give out their source code. Although many already rent AWS instances for their devs :) In many companies the build cluster runs on the developers' workstations themselves, which has the benefit of fully using idling machines. The drawback is higher maintenance due to less reliability of such machines. Would your company accept internal hosting for such a cluster, i.e. paying for the hardware themselves?
- zarkov99 6y agoIn my particular case no, it would be too much hassle for a small business like ours (we are a remote only firm with only a few people). But I can imagine it would make sense when we grow.
- jeffbee 6y agoThere is no cloud service for that ... except Google Cloud Build.
- mrich 6y agoAre you aware of anyone using it for C++? I couldn't find any mention of C++ in the documentation nor via Googling (sure it will be possible but it seems to involve significant setup)
- jeffbee 6y agoI'm not really plugged in to the industry. I've used it with bazel cc_binary targets, so I know it works.
- pjmlp 6y agoBesides the cluster compilers used by C++. OpenJ9 for Java can use a cloud compiler, https://blog.openj9.org/2019/05/01/openj9-internship-making-jit-a-cloud-service/ https://blog.openj9.org/2019/05/01/openj9-internship-making-... .NET when AOT compiled for Windows Store uses cloud compilers, https://blogs.windows.com/windowsdeveloper/2015/08/20/net-native-what-it-means-for-universal-windows-platform-uwp-developers/ https://blogs.windows.com/windowsdeveloper/2015/08/20/net-na... And as of Android 10, the cloud compiler is everyone's phone, because PGO data gets uploaded to the play store and improved on each device feedback. https://android-developers.googleblog.com/2019/04/improving-app-performance-with-art.html https://android-developers.googleblog.com/2019/04/improving-...