-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
[GR-59263][Native Image] JDK23+ jdk.internal.org.jline* does not work for Windows #9884
Comments
I'll try to adjust it with |
Hi @Karm, Thank you for reaching out to us about this! |
Any chance sharing what is GR-44085 about, please? is it relevant? |
Hi @Karm, Yes for sure! Basically that is just an identifier for the ticket that our dev team is working on. Once they have updates regarding this I'll make sure to keep you informed. |
Hi @selhagani, the comment in graal/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/ServiceLoaderFeature.java Lines 116 to 117 in f51c7c3
indicates that GR-44085 tracks some console-providers-related issue which might be related to this issue.
We understand that this is the internal tracker, but we would really appreciate if you could share any non-confidential parts of it. What we would like to know is what is this issue about, what have been tried, and whether there is any info that could potenially help us resolve related issues. Thank you |
Describe the Issue
Hello,
As I have been debugging build time issues:
I noticed this runtime issue where terminal escape sequences are ignored in a terminal that cannot handle those and would require Kernel32 API native API calls to e.g. set colors.
Consider this Java code:
CMDER https://cmder.app/
Cmder terminal understands ESC sequences, so it interprets them and it works nicely both in HotSpot and native:
CMD
Good old
cmd
terminal you find on all Windows does not understand ESC sequences and it requires new JDK internal JLine (formerly standalone lib) to interpret ESC codes (e.g. WindowsAnsiWriter.java) into Kernel32 API calls with which one can control the terminal.The bug is that while HotSpot does this, native-image does not go this FFM code path, does not call to Windows Kernel32 API and just dumps the bytes to the terminal:
JDK21 Optional
For JDK 21 HotSpot, you can switch the jline capability on like this:
Agent
The difference between what the native agent generates as reachability json is quite subtle:
CMDER
CMD
Reproduce it
CI
You need an actual terminal. If you merely run it in a CI headless, there is no terminal to talk to.
I will keep digging...
WIP
Using the latest version of GraalVM can resolve many issues.
GraalVM Version
and
Operating System and Version
Windows 2019 Server
The text was updated successfully, but these errors were encountered: