I had two machines, one running Gentoo, one running Windows, and I would use distcc to enable me to use the Windows machine to help boost the compilation speed of Gentoo. I can't remember where the documentation was, but http://wikigentoo.ksiezyc.pl/HOWTO_Distcc_server_on_Windows.... seems to do a good job of capturing the general concept.
Distcc – distribute builds across multiple machines simultaneously (2006)
21–27 of 27 posts
Re: Distcc – distribute builds across multiple machines simultaneously (2006)
#22If you like distcc, perhaps you'd also like icecream https://github.com/icecc/icecream which I think is a bit easier to use.
I worked on adding distributed compilation to sccache [0]. Docs at [1] and [2]. Compared to existing tools, sccache supports: - local caching (like ccache) - remote caching e.g. to S3, or a LAN redis instance (unique afaik) - distributed compilation of C/C++ code (like distcc, icecream) - distributed compilation of Rust (unique afaik) - distributed compilation on Windows by cross compiling on Linux machines (unique a…
Re: Distcc – distribute builds across multiple machines simultaneously (2006)
#23Earlier quoted context omitted.
Not the same thing. distcc is a wrapper to a compiler that can work with any build system. Just use CC=distcc.
I don’t think anyone is claiming that Bazel is “the same thing” as distcc. But they both solve the problem of distributed builds.
Re: Distcc – distribute builds across multiple machines simultaneously (2006)
#24Earlier quoted context omitted.
I don’t think anyone is claiming that Bazel is “the same thing” as distcc. But they both solve the problem of distributed builds.
But unless you're already using Bazel, it's impractical to suggest "just use Bazel to distribute your builds" as doing so requires that you first migrate your build to Bazel. distcc, as noted, can be applied to an existing build regardless of the build tool used.
I think that if you’re reading a suggestion to “just use X” on Hacker News, the sensible thing to do is to evaluate the suggestion for your own. You don’t need to put a long list of caveats in front of every software recommendation. If your problem is, “My builds are slow, I want distributed builds,” then you should probably at least consider the two most popular solutions to that problem, which are Bazel and Distcc. Both with their drawbacks.
Re: Distcc – distribute builds across multiple machines simultaneously (2006)
#25Is distcc actually any faster than running the builds locally on a half decent machine? If I recall the latency associated with getting the file to the build machines often exceeded the local compilation duration. I remember being really excited about the idea, and really disappointed with the results.
One use that I can think of (never tried it myself, though in theory it should work) is if you are trying to cross compile for a processor architecture that doesn't have decent speed (many embedded chips), and the package you are compiling is difficult to cross compile (where the build script makes decisions based on the local environment or is otherwise to get to play nice with a cross compiler). In that case you ca…
Re: Distcc – distribute builds across multiple machines simultaneously (2006)
#26Does this cache build artifacts in any way? So if several developers are working on the same code-base, they can share build artifacts based on, like, the hash of the inputs? That would require reproducible builds, but that's probably not too tricky to achieve.
Re: Distcc – distribute builds across multiple machines simultaneously (2006)
#27Does this cache build artifacts in any way? So if several developers are working on the same code-base, they can share build artifacts based on, like, the hash of the inputs? That would require reproducible builds, but that's probably not too tricky to achieve.
We've built Crave.io to share build cache between developers without resorting to customer supplied NFS or other storage bottlenecks.