Closed jackkoenig closed 7 months ago
I thought this was causing a lot of problems in my work codebase, but I don't actually think it is. I think it's something else in between 1.10.0-M1 and 1.10.0-M2. This particular issue is probably just "working as intended".
This particular issue is probably just "working as intended".
So is it ok to close this issue?
This is a regression in Zinc 1.10.0-M1, the behavior is correct in 1.9.6.
steps
Apply the following patch to the zinc git repository:
Run this test
problem
In the test, only
A
should be recompiled. This is the case (ie. correct) in Zinc 1.9.6, but not (ie. broken) in 1.10.0-M1 and 1.10.0-M2.I bisected the issue to this commit: https://github.com/sbt/zinc/commit/8f40c4154e240c3cc3760b79969123eaadda587e Considering the commit message is
Include mutual dependency in initial invalidation
, then maybe this is intended behavior, but it certainly is an over-compilation in cases like this one.expectation
It would be better if non-public API changes did not cause downstream recompilations even if there are circular dependencies.
notes