Skip to content
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

Add components to the coreclr native build #38571

Closed
jashook opened this issue Jun 29, 2020 · 9 comments
Closed

Add components to the coreclr native build #38571

jashook opened this issue Jun 29, 2020 · 9 comments

Comments

@jashook
Copy link
Contributor

jashook commented Jun 29, 2020

Currently it is possible on windows to build components of the build by rebuilding a specific vcxproj and this hack is the only way to build a subtree. This does not translate well to other platforms, or other generators like ninja.

Doing this work will allow building portions of the runtime. One could imagine for example build.sh -s clr.jit or build.sh -s clr.gc.

@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Jun 29, 2020
@jashook jashook removed the untriaged New issue has not been triaged by the area owner label Jun 29, 2020
@jashook
Copy link
Contributor Author

jashook commented Jun 29, 2020

/cc @jkoritzinsky

@janvorli
Copy link
Member

janvorli commented Jul 7, 2020

What would be the benefit of this? If you build the coreclr once, then making changes in say jit or gc rebuilds just that component and on Unix, the build skims over the up-to date components very quickly (in a matter of few seconds).

@MichalStrehovsky
Copy link
Member

the build skims over the up-to date components very quickly (in a matter of few seconds).

A few seconds for a no-op is still pretty annoying to wait for. When I'm doing crossgen2 work, I often only care about RyuJIT. Skipping the rest of the native build would save me minutes.

@janvorli
Copy link
Member

janvorli commented Jul 7, 2020

I meant that it skims over all the up to date components in a matter of seconds. So it is not clear to me how it would save minutes. Native part of build-runtime.sh when all components are up to date takes 7 seconds on my 8+ years old devbox.

@jashook
Copy link
Contributor Author

jashook commented Jul 7, 2020

Right the other bit is that this is the case on unix; however, unless you are familiar enough with the build system to open a specific vcxproj and rebuild that on windows. The rebuild cycle is less efficient.

@MichalStrehovsky
Copy link
Member

So it is not clear to me how it would save minutes.

Sorry, I should have split that into two paragraphs.

The second paragraph would start with the "When I'm doing crossgen2 work, I often only care about RyuJIT.". Being able to build just RyuJIT after a git pull would save me minutes - I rarely care about rebuilding DAC, VM and the other stuff. JIT has a well defined interface with the runtime so often rebuilding just that after a git pull produces a working product (and it's easy to detect when it doesn't because the JitInterface GUID changed). I have very little patience when it comes to CoreCLR build because I'm used to build times of managed code.

@janvorli
Copy link
Member

janvorli commented Jul 8, 2020

Ah, ok, makes sense then.

@jashook jashook added this to the Future milestone Jul 17, 2020
@AntonLapounov
Copy link
Member

I think this has been implemented by #49906. Should we close this?

@jkoritzinsky
Copy link
Member

Yes, this has been implemented.

@ghost ghost locked as resolved and limited conversation to collaborators May 28, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

6 participants