-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
System.Private.CoreLib's fast up-to-date check is broken #68698
Comments
Tagging subscribers to this area: @hoyosjs Issue DetailsWhen building System.Runtime's src project, which depends on System.Private.CoreLib without making any changes to any of the assemblies, Systme.Private.CoreLib always incrementally builds:
This shouldn't happen as Visual Studio caches inputs and outputs and makes sure that a project's build isn't even triggered when nothing changed. cc @dotnet/runtime-infrastructure @trylek @agocke @jkotas
|
@drewnoakes @davkean is it possible to diagnose why the fast up-to-date check fails for System.Private.CoreLib via some knobs? |
I already found the relevant documentation: https://github.com/dotnet/project-system/blob/main/docs/up-to-date-check.md#sdk-style-projects.
|
Found the culprit. These two targets move the pdb from the build directory into a separate location and by that, invalidate the output: runtime/src/coreclr/Directory.Build.targets Lines 11 to 35 in 8656518
@trylek @agocke @jkotas does the pdb need to be moved or can it be copied instead? |
The comment there mentions that they'd otherwise be overwritten. Are any outputs being updated in place? Moves and updates in place both make incremental build harder. |
Yeah, each could be placed in a separate directory for its project, I think. I was just working around the NativeAOT/IL S.P.C collision. The broad view is having separate directories, instead of just for AOT |
If I have some time I would be willing to send a PR to fix this. @jkotas @agocke just to clarify, did you mean that the pdb should be placed into the |
Fixes dotnet#68698 CoreLib's fast up-to-date check was broken because the output pdb was moved into a different folder. Changing this to use a copy task instead and consolidate the two targets into one. I couldn't find a publicly exposed property that allows to change the pdb's output path, hence I decided to copy.
* Fix CoreLib fast up-to-date check Fixes #68698 CoreLib's fast up-to-date check was broken because the output pdb was moved into a different folder. Changing this to use a copy task instead and consolidate the two targets into one. I couldn't find a publicly exposed property that allows to change the pdb's output path, hence I decided to copy.
When building System.Runtime's src project, which depends on System.Private.CoreLib without making any changes to any of the assemblies, Systme.Private.CoreLib always incrementally builds:
This shouldn't happen as Visual Studio caches inputs and outputs and makes sure that a project's build isn't even triggered when nothing changed.
cc @dotnet/runtime-infrastructure @trylek @agocke @jkotas
The text was updated successfully, but these errors were encountered: