Support Java 25 runtime compatibility#424
Open
robertpatrick wants to merge 1 commit into
Open
Conversation
Contributor
|
This sounds promising! On which platform, and with which exact command did you run the regression tests? |
Author
|
I ran this on my Mac laptop. Are there additional tests other than the CI tests Codex ran? Happy to run those if you point me in the right direction...
|
777dcbc to
4e8bac7
Compare
Author
|
@ohumbel I expanded the scope of the PR. I ran the following commands:
Let me know if there is anything else I can do to help. |
Contributor
@robertpatrick When running The same error both on Mac and Ubuntu, using Java 8: |
4e8bac7 to
a4d3939
Compare
Author
|
@ohumbel Sorry, I don't use Open JDK. PR updated, please try again. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #413
Summary
This PR updates Jython for runtime compatibility with JDK 25 while keeping the release built with the lowest supported JDK target. The release artifacts were built with JDK 8 and then tested on JDK 8, 11, 17, 21, and 25 from the same build output. No multi-release JAR was needed.
This builds on the already-merged jffi update from #409 and incorporates/adapts fixes from:
stdout.encoding/sun.stdout.encodinghandling on newer JDKsChanges
--enable-native-access=ALL-UNNAMED--sun-misc-unsafe-memory-access=allowjava.base/java.iojava.base/sun.nio.chEnable-Native-Access: ALL-UNNAMEDAdd-Opens: java.base/java.io java.base/sun.nio.chjython.test.java.optsso CI/test runs can pass Java proxy/system properties without editing build files.test-builtAnt target that runs the tests without calling developer-buildmodjytest failures propagate as process failures.test_mailbox.test_cleanrobust against stale deterministic tmp/foo and tmp/bar files.profile.propertiesintodist/javaliband adjust the bundled JIP profiler properties so the Java 8/11--profilelauncher tests produce output without noisy agent stack traces.Proxy-sensitive network tests
When an external HTTP proxy is configured, this PR skips only the network cases that cannot work through an HTTP proxy:
test_urllib2netexternal FTP test is skipped when an external HTTP proxy is configured because it requires direct FTP access. Neither FTP-over-HTTP-proxy support nor Java FTP proxy property support is implemented in this PR.test_ssl_jyraw external SSL socket tests are skipped because they open raw sockets and cannot use HTTP CONNECT.test_smtpnetraw external SMTP SSL tests are skipped because they require direct SMTP-over-SSL socket access.Higher-level external HTTPS tests were adjusted to use CONNECT where appropriate. Localhost/direct tests continue to run directly.
The relevant generic configuration surfaces for proxied test environments are:
jython.test.java.optssystem property:http.proxyHosthttp.proxyPorthttp.nonProxyHostshttps.proxyHosthttps.proxyPorthttps.nonProxyHosts.Validation
Release artifacts were built with JDK 8 using
ant clean full-build:dist/jython.jardist/jython-standalone.jardist/jython-installer.jarThe resulting artifacts still target JDK 8 bytecode/release metadata.
The regression matrix was run with:
ant testant test-builtant test-builtant test-builtant test-builtResults:
The two top-level skipped tests are existing resource-gated tests:
test_codecmaps_hk, requiresurlfetchtest_curses, requirescursesThey are not JDK 25 failures and are not proxy-related.
Additional focused checks used during development included JDK 25 command-line behavior, float behavior, imports, Java integration, subprocess/threading behavior, HTTP/URL handling, warning suppression,
test_mailboxcleanup, and JDK 21/JDK 25 socket/SSL behavior.