-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8361216: Do not fork javac in J2DBench ant build #26077
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
base: master
Are you sure you want to change the base?
Conversation
👋 Welcome back ecaspole! A progress list of the required criteria for merging this PR into |
@ericcaspole 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 66 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 |
@ericcaspole The following label 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 list. If you would like to change these labels, use the /label pull request command. |
Maybe we should drop the ant script and use only makefile which have a way to override default source/target? |
We only test back to 8 so we don't need to change it more often. But JDK 24/25 does not support source 7 so we should do something. I think JAVA_HOME with ant is simpler than specifying lots of vars to makefile but I don't have strong opinion. |
Where, how and why are this antscript or the The JDK build system builds the demos using |
I dont know the history of J2DBench or how its build was developed. It looks like J2DBench is not included in the JDK demos build. My goal here, if possible, is to make a build of it from the mainline repo that is JDK8 compatible, so we can use one jar for all perf testing from 8 onwards. Hopefully someone with some client history can comment. |
The long-term goal is to remove demos from mainline. Most have already been removed. The few that remains was used for client testing, iirc. They have not been updated since jdk8 and are unlikely to be. Can't you just build the jar from JDK8? Or if you need the code for testing, create a copy alongside your other tests? |
Could we move J2DBench under test next to micro/ ? It's not a demo, it's a benchmark but somehow it ended up under demos. It should remain available to contributors. |
It isn't a demo and it isn't a jtreg test. |
not true. They are updated regularly and I expect an enhancement to add some new feature testing some time in the next year. |
I kind of wonder if But all of that is for another day. This PR is about the ant build |
and don't get confused about the ant and make stuff. The JDK build does not and is not expected to build j2dbench |
@@ -39,12 +39,12 @@ | |||
<property name="dist" location="dist"/> | |||
<property name="resources" location="resources"/> | |||
|
|||
<condition property="source" value="7"> | |||
<condition property="source" value="8"> |
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 would be inconsistent with the Make target. It doesn't seem right to update just the ant-based target.
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.
Yes I realized that yesterday, I never actually looked at or used the Makefile before. I will update the Makefile so it least this PR in its own right is consistent, regardless of these other discussion points.
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.
I think we can just drop ant and leave the makefile as it is. The source/target settings are set to that low level to indicate that the source code should be compatible with older versions of the JDK. Currently, JDK 1.4 compatibility is still maintained.
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.
I think we can just drop ant and leave the makefile as it is. The source/target settings are set to that low level to indicate that the source code should be compatible with older versions of the JDK. Currently, JDK 1.4 compatibility is still maintained.
I have supposed that this PR exists because Eric wants to use ant. Eric ?
I think for today's mainline, not supporting jdk7 as an out of the box target isn't a huge problem.
Current javac doesn't support 7 as a target so it seems reasonable to me.
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.
Current javac doesn't support 7 as a target so it seems reasonable to me.
That's why the makefile was parameterized, to easily set the target and source options based on the currently used minimal supported version of javac. But we may change it with a comment that 1.4 still should be supported, or something like that.
I don't like how there is a separate build system like this. The fact that a resource does not need to be built everytime, but only when it is needed, is not a reason for it to not be built like everything else in the JDK source tree. If J2DBench is needed by developers, then the normal build system should be able to handle building that. Now this discussion is spinning away a bit from the original PR, but I'd like to better understand what purpose the remaining demos serve, and if they are really located in the right place. From what I can see we have these demos:
All the jfc demos are built by the normal JDK build system. But some of them also have additional build.xml files, and J2DBench also have a separate Makefile. |
The build.xml files are for people who use netbeans. And people don't want to have to have to build JDK in order to use J2DBench, nor is there any reason for the JDK build to compile it, so I don't think you should sweat that the JDK build system doesn't build it. |
But from another point of view, nothing prevents us from additionally building it as part of the JDK image or JDK test-image build, just to ensure it is buildable, and perhaps it would be useful to include it in the sanity test group simply to touch that code.(and other perf tests as well).
|
Build J2DBench in ant using JAVA_HOME, not using fork to possibly pick a different javac from the PATH.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/26077/head:pull/26077
$ git checkout pull/26077
Update a local copy of the PR:
$ git checkout pull/26077
$ git pull https://git.openjdk.org/jdk.git pull/26077/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 26077
View PR using the GUI difftool:
$ git pr show -t 26077
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/26077.diff
Using Webrev
Link to Webrev Comment