-
-
Notifications
You must be signed in to change notification settings - Fork 363
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Amend the way Mill invokes Zinc to enable benefits from remote caching #2153
Comments
@adpi2 you might be able to help or offer guidance ? |
I think, disregarding any potential invalidation reasons, Mill is currently not abstracting away the absolute locations of the source files. Although we use For context, we discussed the "virtual source roots" idea in the context of |
Any chance the two changes can happen in parallel one another ? Theoretically, the assumption that zinc uses the workspace as virtual root could be implemented concurrently/earlier to a change in A change in the Zinc invocation would offer a significant improvement in some usecases, and intuitively it feels like it could happen without impacting the API surface of mill (I may be mistaken though) |
I agree with you. I just wanted to point out that any API and general design should take both usages into account. I think an internal conversion of sources located under A change to |
@Baccata, thanks for pinging me. I don't have a lot of experience with Mill or remote caching. But I fixed a few things around remote caching in sbt so, at least, I can share what I know about it. The main idea, is to create a single and local instance of The list of The single instance of
Here is the PR that introduced remote caching in sbt. Beware though that there were some bugs after this PR so it would also be useful to compare this first implementation with the current one. |
From what I gather, Zinc is currently invoked by mill in a way that prevents the compilation cache to be shared across machines (the fact that mill doesn't expose any utility tasks to do so is irrelevant to this issue). The following happens:
mill _.compile
from clone A of a projectout
folder from clone A to clone Bmill _.compile
from clone BTo be clear : mill's task graph is not really relevant to what I'm saying here : even if the mill cache files would be invalidated, I'd still expect Zinc to benefit from finding pre-computed .class files and a zinc file at the correct location in the out folder, and that currently doesn't seem to be the case.
I've dug some discussions from last year on this topic. This thread (and your comment) could be relevant : #1094 (comment)
The text was updated successfully, but these errors were encountered: