Hacker News new | past | comments | ask | show | jobs | submit login

I didn't say it is easy, just that there is still room for improvement.

So here go my couch coach ideas.

You already mentioned one possible improvement, I don't need to compile with all optimizations turned on on debug builds.

Secondly, combine JIT for development with AOT compilation for release deployment, e.g. Eiffel / .NET Native.

Thirdly, make use of a build cache across crates, including third party dependencies instead of building the whole world from scratch.

Combine that with an incremental compiler/linker, like Visual C++ does, where the team use Unreal, CryEngine, Windows, Office and other similar sized projects to measure build improvements.




Optimizations are not turned on for debug builds and never have been. The issue is that LLVM is still pretty heavyweight even when not optimizing. An entirely separate backend is needed.

As Steve mentioned, there is a global build cache already.

We have an incremental compiler. It's not as incremental as it could be, however.

We already have an extensive system, crater, that can measure build time improvements.


> Thirdly, make use of a build cache across crates, including third party dependencies instead of building the whole world from scratch.

This already exists and is easy to use: https://github.com/mozilla/sccache


Thanks for the heads up.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: