17 points | by newman314 a day ago
2 comments
What's the rationale not to try incremental linking ? Is it such an incredibly complex problem that it likely induces performance overhead killing the optimization itself ?
You might be interested in the following discussions on this topic [0].
In general, the complexity ime is at least,
1. It can make builds non-deterministic (meaning potentially unreproducible, which is table stakes for most "release" builds today)
2. It can make Link time code optimization (LTO) hard(er)
3. It requires tracking of changes (to know when to relink), that means either some external system or integration with the compiler
At least 3. introduces a good chunk of complexity. There is also the minor issue that modern linkers are fast enough-ish without incremental linking.
[0]: https://news.ycombinator.com/item?id=13672120
What's the rationale not to try incremental linking ? Is it such an incredibly complex problem that it likely induces performance overhead killing the optimization itself ?
You might be interested in the following discussions on this topic [0].
In general, the complexity ime is at least,
1. It can make builds non-deterministic (meaning potentially unreproducible, which is table stakes for most "release" builds today)
2. It can make Link time code optimization (LTO) hard(er)
3. It requires tracking of changes (to know when to relink), that means either some external system or integration with the compiler
At least 3. introduces a good chunk of complexity. There is also the minor issue that modern linkers are fast enough-ish without incremental linking.
[0]: https://news.ycombinator.com/item?id=13672120