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
8294368: Java incremental builds broken on Windows after JDK-8293116 #10560
Conversation
👋 Welcome back jvernee! A progress list of the required criteria for merging this PR into |
@JornVernee The following labels will be automatically applied to this pull request:
When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing lists. If you would like to change these labels, use the /label pull request command. |
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.
This looks like a good fix. I would probably have done it slightly differently to avoid the redundant copy when it's not needed, but I think this is good enough. Thanks for fixing it!
Thanks for the review, I've address your comments (35cc226). WRT the redundant copy. I wanted to avoid the use site having to have some |
You are indeed correct and having a single code path is also a desirable attribute. Had this been in a more performance sensitive location, I would have still preferred to avoid the copy, but I think once per Java compilation unit is rare enough to not be an issue, especially since it's just unnecessary on non-windows. |
@JornVernee This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been 11 new commits pushed to the
As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details. ➡️ To integrate this PR with the above commit message to the |
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.
Also verified that:
- changes to public interface trigger full recompilation
- changes that do not affect public interface cause minimal recompilation.
This was on Cygwin. LGTM!
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 a lot for fixing this, and sorry for trouble!
/integrate |
Going to push as commit 8ebebbc.
Your commit was automatically rebased without conflicts. |
@JornVernee Pushed as commit 8ebebbc. 💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored. |
This patch fixes incremental builds on Windows.
There are 2 parts to this:
convert
mode tofixpath.sh
for that. There's an extra target for generating the file with fixed paths. On non-windows platforms this is just a simplecp
of the file.javac
was using string-based path comparison. But, the paths fed by the build system and the paths used internally by javac could be in slightly different formats, meaning that files were not detected properly as changed. I switched toPath
-based comparison instead and that fixes the issue.Testing:
tested this manually by doing the following:
make clean
make images
java.base
make images
(incremental)<build>\jdk\modules\java.base\_the.java.base_batch.modfiles.fixed
make images
(incremental)<build>\jdk\modules\java.base\_the.java.base_batch.modfiles.fixed
make images
(incremental)I've tested the build on Windows and Linux (WSL) using the above steps.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk pull/10560/head:pull/10560
$ git checkout pull/10560
Update a local copy of the PR:
$ git checkout pull/10560
$ git pull https://git.openjdk.org/jdk pull/10560/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 10560
View PR using the GUI difftool:
$ git pr show -t 10560
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/10560.diff