-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
use sccache on Windows #3618
use sccache on Windows #3618
Conversation
3203544
to
b23ef73
Compare
Still not working after #3589... |
0442210
to
160dd1d
Compare
Well this is strange. Commenting out the
But |
Google Test sets the |
0e7a9f1
to
a0d34ab
Compare
Maybe it's time to switch to doctest. |
Requiring a tiny change to Google Test is IMO not a good reason to spend the effort switching away from it. But I am pretty wary of relying on Goolge-maintained software... |
a781ada
to
e992159
Compare
Using Ninja from the GH Actions VM image instead of downloading it from Chocolatey reduced the job time another 1.5-2 minutes, so now Windows jobs take 16-17 minutes. 🚀 Now, if GitHub Actions would get zstd working with caching on Windows... |
That broke sccache. google/googletest#3291
This saves about 1.5 minutes per job.
What was the reason for switching from clcache to cscache? Maybe clcache did not work for another reason that is fixed now as well. Is cmake able to verify if the sccache is patched? Is the PDB debugging still possible? It was originsl broken with /Zi, but I have read somwher that Microsoft has fixed it. Please verify if this fix already works for us. |
clcache is abandoned. Maybe it would work with the changes in this branch, but relying on unmaintained software is a bad idea. As far as I can tell, sccache is the only currently maintained compiler cache for MSVC. I double checked and the |
No, but the build still works with the unpatched sccache. It just doesn't cache. |
If clcache just works for us, there is no need for active development. I would prefer to use this, because it will introduce less hassle to a new contributor, compared to use a patched version of cscache. It is even more bad if users believe to use it, but waiting ages anyway because of the bug. |
Installing the patched sccache is no harder than clcache. Once the user has Rust installed, it is just:
and cargo does the rest. On GitHub Actions, building sccache takes 10 minutes the first time, then it is cached. This is practically the same as clcache, which also requires installing a language toolchain (Python) and running
But it doesn't, we don't know why, and I'm not wasting my time figuring out why unmaintained software doesn't work. I have already spent multiple days getting sccache working. |
All that will change when my PR for sccache is merged is the cargo command:
|
I am opposed to adding dependencies on unmaintained tools when there is a currently maintained alternative which is used by large projects (Firefox and Rustc). |
Merge? |
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.
Thanks for pushing this even further! LGTM
We have now a 9m 29s penalty for build sccache from source. |
https://github.com/actions/cache/blob/master/examples.md#rust---cargo |
The sccache build is already cached. GH Actions separates caches by branch so it may need to be rebuilt for the initial merge. But now it should take < 1 minute to restore from the cache. Using the hash of the Cargo.lock file would be a good idea. Currently the key is just the commit hash of sccache Git repository. Of course that won't scale when we use cargo for more binaries such as Aoide. |
No description provided.