-
Notifications
You must be signed in to change notification settings - Fork 2.5k
[RFC] Enable usage of rust-sccache for cargo builds #41617
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
Conversation
| x86_64*|i686*|arm*|aarch64*) hostmakedepends+=" rust-sccache" ;; | ||
| *) ;; | ||
| esac | ||
| fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really don't like implicit build-style dependencies, especially with logic like this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I agree it's not the cleanest. But isn't it explicit since XBPS_SCCACHE is opt-in?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With ppc support being dropped from void, don't need the arch checking logic - so this is as "clean" as it's going to be.
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
ca7095b to
cf39655
Compare
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
cf39655 to
ab97e5a
Compare
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
ddee717 to
39fd2ae
Compare
|
Does this make sccache co-exist with ccache? I'm using ccache globally inside & outside of void-packages with different cache directories and would like to enable sccache for cargo builds only (or better, Rust codes only, so I can re-use existing Fortran/C/C++ cache in ccache). Is this possible? |
|
Yes,it only modifies the Rust build helper and stores it's stuff at /hostdir/sccache |
|
That makes a lot of sense, I'm a bit hesitated to adopt sccache globally due to hit rate but it sounds reasonable to try it in packaging. |
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
39fd2ae to
1202729
Compare
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
426c3c9 to
c633881
Compare
|
Pull Requests become stale 90 days after last activity and are closed 14 days after that. If this pull request is still relevant bump it or assign it. |
Reviving #30702 - I tested the changes in this PR: YES
I have been using this for almost a week and it has reduced build times for rust packages quite considerably in my laptop. I have addressed some of the questions/suggestions from the reviews of the previous PR.
Although not the most scientific benchmark, I noted the build times from the cargo output while packaging 4 templates across iterations. In the first two iterations, all of them ran without sccache with an older version of the template to get a baseline without the interference of the crates being downloaded. Third iteration was with same old versions but with sccache enabled which created the cache of all 4 packages combined. Finally, last iteration with the full cache and the latest version of the templates - a typical scenario while updating a package. The difference between the second and the fourth iterations are as follows:
I will add docs for README later if there is consensus to merge this eventually.