Don't trigger full rebuild if git is dirty#60023
Don't trigger full rebuild if git is dirty#60023IanButterworth merged 1 commit intoJuliaLang:masterfrom
Conversation
bdd9580 to
5ac34bb
Compare
5ac34bb to
77c040e
Compare
|
Would this mean that if you're working on Base, you would need to commit every time you want to rebuild? Perhaps an informative message would be helpful to avoid confused churning for the unaware. |
|
It's unrelated to that (although I didn't fully understand what you meant). It just means that the whole build is not dependent on the git dirty status. |
|
Have wanted this for a long time!! |
| @@ -38,8 +56,9 @@ git_time=$(git log -1 --pretty=format:%ct) | |||
| commit=$(git rev-parse HEAD) | |||
| commit_short=$(git rev-parse --short HEAD) | |||
| if [ -n "$(git status --porcelain)" ]; then | |||
There was a problem hiding this comment.
Could we instead change this to git status --porcelain ${COMPILER_SRCS} ${BASE_SRCS} ${STDLIB_SRCS} (these variables are defined during sysimage.mk), which seems like it should have the equivalent effect, but without the awkward build stickiness of this current implementation just failing to track a particular changed file, and now just generally does not correctly report whether the build was dirty (or not) when the sysimage was built?
There was a problem hiding this comment.
If a stdlib changes we don't need to rebuild the sysimage, right?
There was a problem hiding this comment.
Alternatively/secondly, could we move this file to only be included in the very last stage of building sys.so, so that it doesn't invalidate sysbase.so, even if the dirty bit did change?
There was a problem hiding this comment.
If a stdlib changes we don't need to rebuild the sysimage, right?
That variable is the source of files that are in the sysimage (SYSIMG_STDLIBS_SRCS vs INDEPENDENT_STDLIBS_SRCS)
(cherry picked from commit 6f2f7f5)
(cherry picked from commit 6f2f7f5)
(cherry picked from commit 6f2f7f5)
(cherry picked from commit 6f2f7f5)
(cherry picked from commit 6f2f7f5)
(cherry picked from commit 6f2f7f5)
Fixes #54652
Note no rebuild here, but the commit has the
*when dirty.On master this would've rebuild julia each time.
Then edited a test file.
Then reverted the edit.