On Sunday, 18 September 2016 at 09:10:41 UTC, Johan Engelen wrote:
I think LDC has the same problems (template instances are emitted in the first module not the one that needed the instantiation?). Knowing this, you may be able to set up a case where things break, but I think it would have to involve recompilation with a different set of sources than the first compile. E.g. `ldc2 -c a.d b.d c.d` first, then `ldc2 -c b.d c.d`, and then trying to link. Which probably doesn't work well without caching either... We should deprecate non-singleobj compiles.

Yes, it's difficult to make that work correctly when the object cache is outside of the compiler. Maybe archives would provide a good way to build a better incremental rebuild support into the compiler. At least with dmd's multiobj archives, template instances become their own object file. It's definitely worth to put some more thought into how we can leverage parallel builds and incremental rebuilds.


Reply via email to