RFR: 8344706: Compiler Implementation of Compact Source Files and Instance Main Methods [v3]
Stuart Marks
smarks at openjdk.org
Wed Apr 9 16:57:40 UTC 2025
On Wed, 9 Apr 2025 10:46:40 GMT, Alan Bateman <alanb at openjdk.org> wrote:
>> Jan Lahoda has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Rewrite bits about charset decoding, removing mention of "internal objects."
>
> src/java.base/share/classes/java/lang/IO.java line 42:
>
>> 40: * {@code System.in} into characters. The charset used for decoding is specified by the
>> 41: * {@link System#getProperties stdin.encoding} property. If this property is not present,
>> 42: * or if the charset it names cannot be loaded, then UTF-8 is used instead.
>
> stdout.encoding and stderr.encoding are specified (in System.getProperties) to lead to unspecified behavior if started with either property set to a value other than UTF-8. We should work through the issues of introducing stdin.encoding as soon as we can, esp. the redirect cases and whether there is use cases for setting any of these properties on the command line.
Yes, believe it or not, I am still studying this...
> src/java.base/share/classes/java/lang/IO.java line 47:
>
>> 45: * Decoding may buffer additional bytes beyond those that have been decoded to characters
>> 46: * returned to the application. After the first call to one of the {@code readln} methods,
>> 47: * any subsequent use of {@code System.in} results in unspecified behavior.
>
> I wonder if we should add a note about mixing API usage into System.in too. There are tutorials and books that show examples build on System.in that will add buffering on that input source.
Might be a good idea. I'll handle this separately. I don't want it to refer to a Preview API. I'll probably just use Scanner and InputStreamReader as examples.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24438#discussion_r2035772247
PR Review Comment: https://git.openjdk.org/jdk/pull/24438#discussion_r2035773250
More information about the compiler-dev
mailing list