Linking is the slowest part of D's compilation process– can we use mold to speed it up?
atila.neves at gmail.com
Fri Feb 26 13:23:06 UTC 2021
On Wednesday, 24 February 2021 at 23:53:34 UTC, deadalnix wrote:
> On Wednesday, 24 February 2021 at 22:12:46 UTC, Atila Neves
>> On Tuesday, 23 February 2021 at 14:41:59 UTC, James Lu wrote:
>> The linker can be a bottleneck, yes, especially since it
>> doesn't do work in parallel. But in my experience, if the
>> linker takes a while, compiling took a lot longer still. Of
>> course, any improvements in this area are welcome, and I hope
>> mold is production-ready as soon as possible.
> This is true for a fresh build, but often not the case for
> incremental builds, which dev often have to go through.
I only really care about incremental builds. Fresh builds should
be rare, and if they're not, I don't understand that workflow.
> This is because the work you have to do for sources grows with
> the size of the changeset, while the work you have to do link
> grows with the size of the project as a whole, changed or not.
> On large projects, it is very common that linking dominates
> incremental builds.
It can, yes, and any improvements there will be very welcome.
> zld is another interesting project that tries to do enable
> incremental linking: https://github.com/kubkon/zld
Nice. I wrote a D program once that used the linker as a server
and kept "sending" it object files that it kept on relinking, but
unfortunately that didn't speed anything up.
More information about the Digitalmars-d