Re: RFR: 8286781: Replace the deprecated/obsolete gethostbyname and inet_addr calls

2023-03-02 Thread Kim Barrett
On Thu, 2 Mar 2023 22:35:17 GMT, David Holmes  wrote:

> We can replace `gethostbyname`, which is deprecated on Windows and Linux, 
> with `getaddrinfo`. This API is available on all supported platforms and so 
> can be placed in shared code. @djelinski pointed out that `getaddrinfo` can 
> resolve both IP addresses and host names so the two step approach used in 
> `networkStream::connect` is not necessary and we can do away with 
> `os::get_host_by_name()` completely.
> 
> The build is updated to enable winsock deprecation warnings, and now we need 
> to use `ws2_32.lib` we can drop `wsock32.lib` (as it is basically a subset - 
> again thanks @djelinski ).
> 
> Testing
> - all Oracle builds in tiers 1-5
> - All GHA builds
> 
> The actual code change has to be manually tested because the code is only 
> used by Ideal Graph Printing to connect to the Ideal Graph Visualizer. I've 
> manually tested on Windows and Linux and @tobiasholenstein tested macOS.
> 
> Thanks.

Looks good.

-

Marked as reviewed by kbarrett (Reviewer).

PR: https://git.openjdk.org/jdk/pull/12842


Re: RFR: 8302189: Mark assertion failures noreturn

2023-03-02 Thread David Holmes
On Fri, 3 Mar 2023 04:04:25 GMT, Kim Barrett  wrote:

> Also 8302799: Refactor Debugging variable usage for noreturn crash reporting

A few initial comments while I try to digest this.

I don't use these particular debugging mechanism, neither Debugger nor 
BREAKPOINT, but it seems potentially problematic to me that the removed 
BREAKPOINTs happened after the error was reported, and IIUC the new mechanism 
will activate before the error is reported.

Thanks.

make/hotspot/lib/CompileJvm.gmk line 103:

> 101: DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value
> 102: 
> 103: DISABLED_WARNINGS_microsoft := 4624 4244 4291 4146 4127 4722

It is annoying that we don't document what these warnings are. :(

src/hotspot/share/utilities/debug.cpp line 85:

> 83:   if (is_enabled()) {
> 84: fatal("Multiple Debugging contexts");
> 85:   }

This seems too restrictive as you could hit different DebuggingContexts in 
different threads. ??

src/hotspot/share/utilities/debug.cpp line 290:

> 288:  private:
> 289:   ResourceMark _rm;
> 290:   DebuggingContext _debugging;

Why a different initialization syntax here?

-

PR: https://git.openjdk.org/jdk/pull/12845


Re: RFR: 8302189: Mark assertion failures noreturn

2023-03-02 Thread Kim Barrett
On Fri, 3 Mar 2023 04:04:25 GMT, Kim Barrett  wrote:

> Also 8302799: Refactor Debugging variable usage for noreturn crash reporting

make/hotspot/lib/CompileJvm.gmk line 103:

> 101: DISABLED_WARNINGS_xlc := tautological-compare shift-negative-value
> 102: 
> 103: DISABLED_WARNINGS_microsoft := 4624 4244 4291 4146 4127 4722

I forgot to mention this in the PR summary.  New warning suppression for
4722: 'function' : destructor never returns, potential memory leak
We have various destructors calling ShouldNotCallThis, ShouldNotReachHere,
or the like, which triggers this warning.  It might be possible to deal with
some (but not all) of those by deleting the destructor.  The warning doesn't
seem all that useful to us, so I just suppressed it.

-

PR: https://git.openjdk.org/jdk/pull/12845


RFR: 8302189: Mark assertion failures noreturn

2023-03-02 Thread Kim Barrett
Also 8302799: Refactor Debugging variable usage for noreturn crash reporting

-

Commit messages:
 - new implementation of Debugging
 - noreturn attributes

Changes: https://git.openjdk.org/jdk/pull/12845/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk=12845=00
  Issue: https://bugs.openjdk.org/browse/JDK-8302189
  Stats: 168 lines in 8 files changed: 128 ins; 19 del; 21 mod
  Patch: https://git.openjdk.org/jdk/pull/12845.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12845/head:pull/12845

PR: https://git.openjdk.org/jdk/pull/12845


Re: RFR: JDK-8302801: Remove fdlibm C sources [v3]

2023-03-02 Thread Joe Darcy
On Fri, 3 Mar 2023 01:02:40 GMT, Vladimir Kozlov  wrote:

> Hotspot changes are okay but I'm a bit confused about what the hotspot code 
> will now be used for?

I'm not 100% positive if the current __kernel_rem_pio2 code would be in use. 
IIRC, back when we used the fsin/fcos instructions to intrinsify sin/cos on the 
x87 FPU, to meet Java semantics we needed to do argument reduction into the 
range supported by fsin/fcos. Perhaps  __kernel_rem_pio2 is a hold-over from 
that time? I believe my recent sin/cos algorithms for instrincs wouldn't need 
to use these pathways.

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: JDK-8302801: Remove fdlibm C sources [v3]

2023-03-02 Thread Joe Darcy
On Fri, 3 Mar 2023 00:38:18 GMT, David Holmes  wrote:

> Actually this is really my lack of understanding about the current code: why 
> do we intrinsify `Math` but not `StrictMath`?

In brief, the Math methods are allowed implementation flexibility in terms of 
their algorithm but the StrictMath methods are not. The "interesting" 
StrictMath methods are required to use the FDLIBM algorithms.

(One exception is StrictMath.sqrt. Since sqrt is required to be correctly 
rounded, there is only one correct answer for any given argument and 
StrictMath.sqrt can be intrinsified to a hardware sqrt instruction just like 
Math.sqrt can.)

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/TypeKind.java line 45:

> 43: DoubleType("double", "D", 7),
> 44: /** a reference type */
> 45: ReferenceType("reference type", "A", -1),

Suggestion:

ReferenceType("reference type", "L", -1),

?
Otherwise `TypeKind.fromDescriptor(TypeKind.ReferenceType.descriptor())` will 
fail.

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/impl/NonterminalCodeBuilder.java
 line 46:

> 44: this.terminal = switch (parent) {
> 45: case ChainedCodeBuilder cb -> cb.terminal;
> 46: case BlockCodeBuilderImpl cb -> cb.terminal;

Suggestion:

case NonterminalCodeBuilder cb -> cb.terminal;

?

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: JDK-8302801: Remove fdlibm C sources [v3]

2023-03-02 Thread Vladimir Kozlov
On Fri, 3 Mar 2023 00:31:12 GMT, David Holmes  wrote:

> Hotspot changes are okay but I'm a bit confused about what the hotspot code 
> will now be used for?

`SharedRuntime::*` runtime math functions are used on platforms where there are 
no HW instructions or intrinsics (Zero VM). JIT compiled code may also call 
them in such case (or when intrinsics disabled with flag):
https://github.com/openjdk/jdk/blob/master/src/hotspot/share/opto/library_call.cpp#L1815

Consider them as default intrinsics for all platforms (since they are written 
in C). They are faster than interpreting bytecode.

They are also needed for results consistency - the same code is used by 
Interpreter and JITed code.

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/impl/AbstractDirectBuilder.java
 line 34:

> 32:  * AbstractDirectBuilder
> 33:  */
> 34: public class AbstractDirectBuilder {

Type variable `B` is unused.

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: JDK-8302801: Remove fdlibm C sources [v3]

2023-03-02 Thread David Holmes
On Thu, 2 Mar 2023 19:55:39 GMT, Joe Darcy  wrote:

>> While the review of https://github.com/openjdk/jdk/pull/12800 finishes up, I 
>> thought I'd get out for the review the next phase of the FDLIBM port: 
>> removing the FDLIBM C sources from the repo.
>> 
>> A repo with the changes for JDK-8302027 and this PR successful build on the 
>> default set of platform and successfully run tier 1 tests, which includes 
>> tests of the math library.
>> 
>> There are a few remaining references to the case-independent string "fdlibm" 
>> in the make directory and HotSpot sources. HotSpot contains a partial fork 
>> for FDLIBM (a tine of FDLIBM?) to use for intrinsics. The remaining make 
>> machinery contains logic to determine what set of gcc options can be used 
>> for the compile.
>> 
>> The intention of this change is to remove use of FDLIBM for the core 
>> libraries.
>
> Joe Darcy has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Respond to review feedback.

Actually this is really my lack of understanding about the current code: why do 
we intrinsify `Math` but not `StrictMath`?

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/impl/TransformImpl.java line 
63:

> 61: private static final Runnable NOTHING = () -> { };
> 62: 
> 63: interface FakeClassTransform extends ClassTransform {

Rename to `UnresolvedXxxTransform`? I think that is a better name, since it 
could appear in stack traces.

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: JDK-8302801: Remove fdlibm C sources [v3]

2023-03-02 Thread David Holmes
On Thu, 2 Mar 2023 19:55:39 GMT, Joe Darcy  wrote:

>> While the review of https://github.com/openjdk/jdk/pull/12800 finishes up, I 
>> thought I'd get out for the review the next phase of the FDLIBM port: 
>> removing the FDLIBM C sources from the repo.
>> 
>> A repo with the changes for JDK-8302027 and this PR successful build on the 
>> default set of platform and successfully run tier 1 tests, which includes 
>> tests of the math library.
>> 
>> There are a few remaining references to the case-independent string "fdlibm" 
>> in the make directory and HotSpot sources. HotSpot contains a partial fork 
>> for FDLIBM (a tine of FDLIBM?) to use for intrinsics. The remaining make 
>> machinery contains logic to determine what set of gcc options can be used 
>> for the compile.
>> 
>> The intention of this change is to remove use of FDLIBM for the core 
>> libraries.
>
> Joe Darcy has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Respond to review feedback.

Hotspot changes are okay but I'm a bit confused about what the hotspot code 
will now be used for?

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/CodeTransform.java line 91:

> 89: @Override
> 90: default ResolvedTransform resolve(CodeBuilder builder) {
> 91: return new TransformImpl.CodeTransformImpl(e -> accept(builder, 
> e),

Make `CodeTransformImpl` generic in the class file element, rename to say 
`ResolvedTransformImpl` and reuse for the other `XxxTransform`?

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/CodeBuilder.java line 165:

> 163:  * @return this builder
> 164:  */
> 165: default CodeBuilder transforming(CodeTransform transform, 
> Consumer handler) {

The functionality of this method, `transforming`, and 
`ClassfileBuilder::transform`, are in effect equivalent in their transforming: 
adding the results of transformed code to the builder. They differ in the 
source of code elements.

The latter's behaviour can be implemented using the former, with a  consumer 
that passes all elements of a code model to the builder e.g. `builder -> 
model.forEach(builder::with)`.

The difference in naming initially confused me. To me this suggests the method 
names should be the same? (perhaps with the transformer being consistently the 
last argument?).

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/CodeBuilder.java line 164:

> 162:  * generate the code.
> 163:  * @return this builder
> 164:  */

Suggestion:

/**
 * Apply a transform to the code built by a handler, directing results to 
this builder.
 *
 * @param transform the transform to apply to the code built by the handler
 * @param handler the handler that receives a {@linkplain CodeBuilder} to
 * build the code.
 * @return this builder
 */

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8286781: Replace the deprecated/obsolete gethostbyname and inet_addr calls

2023-03-02 Thread David Holmes
On Thu, 2 Mar 2023 22:35:17 GMT, David Holmes  wrote:

> We can replace `gethostbyname`, which is deprecated on Windows and Linux, 
> with `getaddrinfo`. This API is available on all supported platforms and so 
> can be placed in shared code. @djelinski pointed out that `getaddrinfo` can 
> resolve both IP addresses and host names so the two step approach used in 
> `networkStream::connect` is not necessary and we can do away with 
> `os::get_host_by_name()` completely.
> 
> The build is updated to enable winsock deprecation warnings, and now we need 
> to use `ws2_32.lib` we can drop `wsock32.lib` (as it is basically a subset - 
> again thanks @djelinski ).
> 
> Testing
> - all Oracle builds in tiers 1-5
> - All GHA builds
> 
> The actual code change has to be manually tested because the code is only 
> used by Ideal Graph Printing to connect to the Ideal Graph Visualizer. I've 
> manually tested on Windows and Linux and @tobiasholenstein tested macOS.
> 
> Thanks.

I forgot to mention I have no way to test on AIX so if someone were able to do 
that, that would be good. Thanks. I know it builds okay.

-

PR: https://git.openjdk.org/jdk/pull/12842


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/CodeBuilder.java line 93:

> 91:  * directly; they are passed to handlers by methods such as {@link
> 92:  * MethodBuilder#withCode(Consumer)} or to code transforms.  The elements 
> of a
> 93:  * code can be specified abstractly (by passing a {@link CodeElement} to 
> {@link

Suggestion:

 * code can be specified abstractly, by passing a {@link CodeElement} to {@link

-

PR: https://git.openjdk.org/jdk/pull/10982


RFR: 8286781: Replace the deprecated/obsolete gethostbyname and inet_addr calls

2023-03-02 Thread David Holmes
We can replace `gethostbyname`, which is deprecated on Windows and Linux, with 
`getaddrinfo`. This API is available on all supported platforms and so can be 
placed in shared code. @djelinski pointed out that `getaddrinfo` can resolve 
both IP addresses and host names so the two step approach used in 
`networkStream::connect` is not necessary and we can do away with 
`os::get_host_by_name()` completely.

The build is updated to enable winsock deprecation warnings, and now we need to 
use `ws2_32.lib` we can drop `wsock32.lib` (as it is basically a subset - again 
thanks @djelinski ).

Testing
- all Oracle builds in tiers 1-5
- All GHA builds

The actual code change has to be manually tested because the code is only used 
by Ideal Graph Printing to connect to the Ideal Graph Visualizer. I've manually 
tested on Windows and Linux and @tobiasholenstein tested macOS.

Thanks.

-

Commit messages:
 - 8286781: Replace the deprecated/obsolete gethostbyname and inet_addr calls

Changes: https://git.openjdk.org/jdk/pull/12842/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk=12842=00
  Issue: https://bugs.openjdk.org/browse/JDK-8286781
  Stats: 41 lines in 6 files changed: 13 ins; 17 del; 11 mod
  Patch: https://git.openjdk.org/jdk/pull/12842.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12842/head:pull/12842

PR: https://git.openjdk.org/jdk/pull/12842


Re: RFR: 8303480: Miscellaneous fixes to mostly invisible doc comments

2023-03-02 Thread Chris Plummer
On Thu, 2 Mar 2023 12:03:44 GMT, Pavel Rappo  wrote:

> Please review this superficial documentation cleanup that was triggered by 
> unrelated analysis of doc comments in JDK API.
> 
> The only effect that this multi-area PR has on the JDK API Documentation 
> (i.e. the observable effect on the generated HTML pages) can be summarized as 
> follows:
> 
> 
> diff -ur build/macosx-aarch64/images/docs-before/api/serialized-form.html 
> build/macosx-aarch64/images/docs-after/api/serialized-form.html
> --- build/macosx-aarch64/images/docs-before/api/serialized-form.html  
> 2023-03-02 11:47:44
> +++ build/macosx-aarch64/images/docs-after/api/serialized-form.html   
> 2023-03-02 11:48:45
> @@ -17084,7 +17084,7 @@
>   throws  href="java.base/java/io/IOException.html" title="class in 
> java.io">IOException,
>  ClassNotFoundException
>  readObject is called to restore the 
> state of the
> - (@code BasicPermission} from a stream.
> + BasicPermission from a stream.
>  
>  Parameters:
>  s - the ObjectInputStream from which data 
> is read
> 
> Notes
> -
> 
> * I'm not an expert in any of the affected areas, except for jdk.javadoc, and 
> I was merely after misused tags. Because of that, I would appreciate reviews 
> from experts in other areas.
> * I discovered many more issues than I included in this PR. The excluded 
> issues seem to occur in infrequently updated third-party code (e.g. 
> javax.xml), which I assume we shouldn't touch unless necessary.
> * I will update copyright years after (and if) the fix had been approved, as 
> required.

The SA changes (jdk.hotspot.agent) look fine.

-

Marked as reviewed by cjplummer (Reviewer).

PR: https://git.openjdk.org/jdk/pull/12826


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/impl/AbstractInstruction.java
 line 156:

> 154: @Override
> 155: public String toString() {
> 156: return String.format("Store[OP=%s, slot=%d]", this.opcode(), 
> slot());

A suggestion. I believe the `toString` output for bound and unbound 
instructions should be identical and it can composed solely from methods on the 
public instruction interface. There are some differences e.g. `Increment` and 
`Inc` for the unbound and bound increment instruction respectively.

If those assumptions are correct i recommend placing a static `toString` method 
on all unbound instructions that also have bound instructions, accepting the 
public instruction interface as an argument. Then the overridden 
`Object::toString` method defers to those. Thereby there is no duplication.
(Alas we cannot override `toString` on the instruction interface itself).

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8303480: Miscellaneous fixes to mostly invisible doc comments

2023-03-02 Thread Phil Race
On Thu, 2 Mar 2023 12:03:44 GMT, Pavel Rappo  wrote:

> Please review this superficial documentation cleanup that was triggered by 
> unrelated analysis of doc comments in JDK API.
> 
> The only effect that this multi-area PR has on the JDK API Documentation 
> (i.e. the observable effect on the generated HTML pages) can be summarized as 
> follows:
> 
> 
> diff -ur build/macosx-aarch64/images/docs-before/api/serialized-form.html 
> build/macosx-aarch64/images/docs-after/api/serialized-form.html
> --- build/macosx-aarch64/images/docs-before/api/serialized-form.html  
> 2023-03-02 11:47:44
> +++ build/macosx-aarch64/images/docs-after/api/serialized-form.html   
> 2023-03-02 11:48:45
> @@ -17084,7 +17084,7 @@
>   throws  href="java.base/java/io/IOException.html" title="class in 
> java.io">IOException,
>  ClassNotFoundException
>  readObject is called to restore the 
> state of the
> - (@code BasicPermission} from a stream.
> + BasicPermission from a stream.
>  
>  Parameters:
>  s - the ObjectInputStream from which data 
> is read
> 
> Notes
> -
> 
> * I'm not an expert in any of the affected areas, except for jdk.javadoc, and 
> I was merely after misused tags. Because of that, I would appreciate reviews 
> from experts in other areas.
> * I discovered many more issues than I included in this PR. The excluded 
> issues seem to occur in infrequently updated third-party code (e.g. 
> javax.xml), which I assume we shouldn't touch unless necessary.
> * I will update copyright years after (and if) the fix had been approved, as 
> required.

java.desktop changes are fine

-

Marked as reviewed by prr (Reviewer).

PR: https://git.openjdk.org/jdk/pull/12826


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/instruction/LoadInstruction.java
 line 66:

> 64:  * @param slot the local varaible slot to load from
> 65:  */
> 66: static LoadInstruction of(Opcode op, int slot) {

Should you validate that `slot` is compatible with `op`? (same for the 
StoreInstruction?)

src/java.base/share/classes/jdk/internal/classfile/instruction/NewObjectInstruction.java
 line 38:

> 36:  * of a {@link CodeModel}.
> 37:  */
> 38: public sealed interface NewObjectInstruction extends Instruction

Should we add a helper method on `CodeBuilder` that does the new + dup + invoke 
special  dance?

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/instruction/NewMultiArrayInstruction.java
 line 60:

> 58: static NewMultiArrayInstruction of(ClassEntry arrayTypeEntry,
> 59:int dimensions) {
> 60: return new 
> AbstractInstruction.UnboundNewMultidimensionalArrayInstruction(arrayTypeEntry,
>  dimensions);

Should we validate that the dimensionality of `arrayType` is greater than or 
equal to `dimensions`?

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/instruction/ExceptionCatch.java
 line 77:

> 75: static ExceptionCatch of(Label handler, Label tryStart, Label tryEnd,
> 76:  Optional catchTypeEntry) {
> 77: return new AbstractPseudoInstruction.ExceptionCatchImpl(handler, 
> tryStart, tryEnd, catchTypeEntry);

Suggestion:

return new AbstractPseudoInstruction.ExceptionCatchImpl(handler, 
tryStart, tryEnd, catchTypeEntry.orElse(null));

Then you only need one constructor for `ExceptionCatchImpl` and you don't need 
to disambiguate a call using a cast for a final argument that is `null` .

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v15]

2023-03-02 Thread Paul Sandoz
On Wed, 15 Feb 2023 14:12:21 GMT, Adam Sotona  wrote:

>> src/java.base/share/classes/jdk/internal/classfile/instruction/ConstantInstruction.java
>>  line 63:
>> 
>>> 61:  * aload_0}).
>>> 62:  */
>>> 63: sealed interface IntrinsicConstantInstruction extends 
>>> ConstantInstruction
>> 
>> I'm not super sure of the fine-grained distinction here. The constant pool 
>> variant is interesting (as you can ask for the associated constant entry) - 
>> but the distinction between intrinsics vs. argument seems rather weak.
>
> They significantly differ in instruction formats and instruction format 
> distinction is critical for some use cases.

I think this distinction is appropriate for the level of modeling. 
CodeBuilder::constantInstruction(ConstantDesc value) is very useful in 
selecting the most appropriate specific constant instruction.

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/instruction/ConstantInstruction.java
 line 41:

> 39:  * Models a constant-load instruction in the {@code code} array of a 
> {@code
> 40:  * Code} attribute, including "intrinsic constant" instructions (e.g., 
> {@code
> 41:  * aload_0}), "argument constant" instructions (e.g., {@code bipush}), 
> and "load

Suggestion:

 * iconst_0}), "argument constant" instructions (e.g., {@code bipush}), and 
"load

Otherwise we can refer to `aconst_null`

src/java.base/share/classes/jdk/internal/classfile/instruction/ConstantInstruction.java
 line 60:

> 58: /**
> 59:  * Models an "intrinsic constant" instruction (e.g., {@code
> 60:  * aload_0}).

Suggestion:

 * iconst_0}).

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: JDK-8302801: Remove fdlibm C sources [v3]

2023-03-02 Thread Brian Burkhalter
On Thu, 2 Mar 2023 19:55:39 GMT, Joe Darcy  wrote:

>> While the review of https://github.com/openjdk/jdk/pull/12800 finishes up, I 
>> thought I'd get out for the review the next phase of the FDLIBM port: 
>> removing the FDLIBM C sources from the repo.
>> 
>> A repo with the changes for JDK-8302027 and this PR successful build on the 
>> default set of platform and successfully run tier 1 tests, which includes 
>> tests of the math library.
>> 
>> There are a few remaining references to the case-independent string "fdlibm" 
>> in the make directory and HotSpot sources. HotSpot contains a partial fork 
>> for FDLIBM (a tine of FDLIBM?) to use for intrinsics. The remaining make 
>> machinery contains logic to determine what set of gcc options can be used 
>> for the compile.
>> 
>> The intention of this change is to remove use of FDLIBM for the core 
>> libraries.
>
> Joe Darcy has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Respond to review feedback.

Looks fine to me.

-

Marked as reviewed by bpb (Reviewer).

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/components/snippet-files/PackageSnippets.java
 line 149:

> 147: var instrumentorCodeMap = instrumentor.methods().stream()
> 148:   
> .filter(instrumentedMethodsFilter)
> 149:   
> .collect(Collectors.toMap(mm -> mm.methodName().stringValue() + 
> mm.methodType().stringValue(), mm -> mm.code().orElse(null)));

Should we be filtering out abstract methods before the `collect` and/or replace 
with:

mm -> mm.code().orElseThrow()

?

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: JDK-8302801: Remove fdlibm C sources [v3]

2023-03-02 Thread Joe Darcy
> While the review of https://github.com/openjdk/jdk/pull/12800 finishes up, I 
> thought I'd get out for the review the next phase of the FDLIBM port: 
> removing the FDLIBM C sources from the repo.
> 
> A repo with the changes for JDK-8302027 and this PR successful build on the 
> default set of platform and successfully run tier 1 tests, which includes 
> tests of the math library.
> 
> There are a few remaining references to the case-independent string "fdlibm" 
> in the make directory and HotSpot sources. HotSpot contains a partial fork 
> for FDLIBM (a tine of FDLIBM?) to use for intrinsics. The remaining make 
> machinery contains logic to determine what set of gcc options can be used for 
> the compile.
> 
> The intention of this change is to remove use of FDLIBM for the core 
> libraries.

Joe Darcy has updated the pull request incrementally with one additional commit 
since the last revision:

  Respond to review feedback.

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/12821/files
  - new: https://git.openjdk.org/jdk/pull/12821/files/481af9ad..417cb739

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=12821=02
 - incr: https://webrevs.openjdk.org/?repo=jdk=12821=01-02

  Stats: 5 lines in 1 file changed: 0 ins; 1 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/12821.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12821/head:pull/12821

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/components/snippet-files/PackageSnippets.java
 line 171:

> 169: 
> 170: //store stacked method 
> parameters into locals
> 171: var storeStack = new 
> LinkedList();

FWIW you can use an ArrayDeque + push + forEach, in the spirit of highlighting 
Deque over LinkedList for stack-based usage (since this is an example with 
visibility).

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/components/CodeRelabeler.java
 line 98:

> 96: @Override
> 97: public void accept(CodeBuilder cob, CodeElement coe) {
> 98: switch (coe) {

Missing case for`CharacterRange` instruction? I am not sure it makes any sense, 
if so perhaps add a comment as to why.

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: JDK-8302801: Remove fdlibm C sources [v2]

2023-03-02 Thread Joe Darcy
On Thu, 2 Mar 2023 19:19:20 GMT, Brian Burkhalter  wrote:

>> Joe Darcy has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Respond to review feedback and add description of transliteration process.
>
> src/java.base/share/classes/java/lang/StrictMath.java line 45:
> 
>> 43:  * href="https://www.netlib.org/fdlibm/;>{@code fdlibm}. These
>> 44:  * algorithms, which are written in the C programming language, are
>> 45:  * then to be understood to be transliterated into Java and executed
> 
> This change looks good (did not build and view javadoc).

I checked that the change rendered as desired in a local docs build.

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/instruction/CharacterRange.java
 line 42:

> 40:  * the setting of the {@link Classfile.Option#processDebug(boolean)} 
> option.
> 41:  */
> 42: public sealed interface CharacterRange extends PseudoInstruction

This and some other instructions with unbounded implementations do not have 
static `of` factory methods. Is that intended?

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: JDK-8302801: Remove fdlibm C sources [v2]

2023-03-02 Thread Alan Bateman
On Thu, 2 Mar 2023 18:31:54 GMT, Joe Darcy  wrote:

>> While the review of https://github.com/openjdk/jdk/pull/12800 finishes up, I 
>> thought I'd get out for the review the next phase of the FDLIBM port: 
>> removing the FDLIBM C sources from the repo.
>> 
>> A repo with the changes for JDK-8302027 and this PR successful build on the 
>> default set of platform and successfully run tier 1 tests, which includes 
>> tests of the math library.
>> 
>> There are a few remaining references to the case-independent string "fdlibm" 
>> in the make directory and HotSpot sources. HotSpot contains a partial fork 
>> for FDLIBM (a tine of FDLIBM?) to use for intrinsics. The remaining make 
>> machinery contains logic to determine what set of gcc options can be used 
>> for the compile.
>> 
>> The intention of this change is to remove use of FDLIBM for the core 
>> libraries.
>
> Joe Darcy has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Respond to review feedback and add description of transliteration process.

src/hotspot/share/runtime/sharedRuntimeTrig.cpp line 34:

> 32: // StrictMath. Avoiding the indirect call through function
> 33: // pointer out to libjava.so in SharedRuntime speeds these routines up
> 34: // by roughly 15% on multiple architectures.

These functions will no longer be in libjava so maybe the "Avoiding the 
indirect call ..." sentence should be dropped too.

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: JDK-8302801: Remove fdlibm C sources [v2]

2023-03-02 Thread Brian Burkhalter
On Thu, 2 Mar 2023 18:31:54 GMT, Joe Darcy  wrote:

>> While the review of https://github.com/openjdk/jdk/pull/12800 finishes up, I 
>> thought I'd get out for the review the next phase of the FDLIBM port: 
>> removing the FDLIBM C sources from the repo.
>> 
>> A repo with the changes for JDK-8302027 and this PR successful build on the 
>> default set of platform and successfully run tier 1 tests, which includes 
>> tests of the math library.
>> 
>> There are a few remaining references to the case-independent string "fdlibm" 
>> in the make directory and HotSpot sources. HotSpot contains a partial fork 
>> for FDLIBM (a tine of FDLIBM?) to use for intrinsics. The remaining make 
>> machinery contains logic to determine what set of gcc options can be used 
>> for the compile.
>> 
>> The intention of this change is to remove use of FDLIBM for the core 
>> libraries.
>
> Joe Darcy has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Respond to review feedback and add description of transliteration process.

src/java.base/share/classes/java/lang/StrictMath.java line 45:

> 43:  * href="https://www.netlib.org/fdlibm/;>{@code fdlibm}. These
> 44:  * algorithms, which are written in the C programming language, are
> 45:  * then to be understood to be transliterated into Java and executed

This change looks good (did not build and view javadoc).

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:31:06 GMT, Adam Sotona  wrote:

>> This is root pull request with Classfile API implementation, tests and 
>> benchmarks initial drop into JDK.
>> 
>> Following pull requests consolidating JDK class files parsing, generating, 
>> and transforming 
>> ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) will chain to 
>> this one.
>> 
>> Classfile API development is tracked at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
>> 
>> Development branch of consolidated JDK class files parsing, generating, and 
>> transforming is at:
>> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
>> 
>> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
>> API 
>> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>>  is also available.
>> 
>> Please take you time to review this non-trivial JDK addition.
>> 
>> Thank you,
>> Adam
>
> Adam Sotona has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   StackMapFrameInfo extracted to top level from StackMapTableAttribute

src/java.base/share/classes/jdk/internal/classfile/snippet-files/PackageSnippets.java
 line 157:

> 155:   if (!(ce instanceof 
> MethodModel mm
> 156: && 
> mm.methodName().stringValue().startsWith("debug")))
> 157:   classBuilder.with(ce);

Indentation is confusing (even though its less concise its probably better to 
use braces for all the examples):
Suggestion:

  classBuilder.with(ce);

-

PR: https://git.openjdk.org/jdk/pull/10982


Integrated: 8303442: Clean up w2k_lsa_auth linker parameters

2023-03-02 Thread Daniel Jeliński
On Wed, 1 Mar 2023 13:06:35 GMT, Daniel Jeliński  wrote:

> Please review this PR that upgrades winsock lib from version 1 (wsock32) to 
> version 2 (ws2_32) and removes unnecessary libs from the build.
> 
> With the winsock upgrade we should be able to avoid loading wsock32.dll at 
> runtime. Winsock is only needed for `htonl` function, and wsock32.dll 
> forwards that function to ws2_32 anyway.
> 
> All jgss/krb5 (jdk_security4) tests continue to pass.

This pull request has now been integrated.

Changeset: 843d632a
Author:Daniel Jeliński 
URL:   
https://git.openjdk.org/jdk/commit/843d632ad4bd372506dd4d1ea0cf4157cb668fc1
Stats: 3 lines in 1 file changed: 0 ins; 2 del; 1 mod

8303442: Clean up w2k_lsa_auth linker parameters

Reviewed-by: erikj

-

PR: https://git.openjdk.org/jdk/pull/12805


Integrated: 8303039: Utilize `coverageLevels.txt`

2023-03-02 Thread Naoto Sato
On Wed, 1 Mar 2023 19:50:56 GMT, Naoto Sato  wrote:

> This is a pre-requisite for supporting CLDR v43, where they combine `seeds` 
> locales with `common` locales 
> (https://cldr.unicode.org/index/downloads/cldr-43#h.7s25aqdv767e). In order 
> to have the same coverage level of locales, CLDRConverter tool needs to comb 
> through the locale files based on the `coverageLevels.txt` file, (and the 
> ones we already included as of v42). Confirmed the same set of locales is 
> generated before and after this modification.

This pull request has now been integrated.

Changeset: 0b635579
Author:Naoto Sato 
URL:   
https://git.openjdk.org/jdk/commit/0b6355794101bda9de623016ce88f8abbb314f63
Stats: 319 lines in 4 files changed: 315 ins; 1 del; 3 mod

8303039: Utilize `coverageLevels.txt`

Reviewed-by: iris, joehw

-

PR: https://git.openjdk.org/jdk/pull/12812


Re: RFR: JDK-8302801: Remove fdlibm C sources [v2]

2023-03-02 Thread Joe Darcy
On Thu, 2 Mar 2023 14:05:55 GMT, Erik Joelsson  wrote:

>> Joe Darcy has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Respond to review feedback and add description of transliteration process.
>
> make/autoconf/buildjdk-spec.gmk.in line 85:
> 
>> 83: JVM_LIBS := @OPENJDK_BUILD_JVM_LIBS@
>> 84: 
>> 85: FDLIBM_CFLAGS := @OPENJDK_BUILD_FDLIBM_CFLAGS@
> 
> If the hotspot build still needs `FDLIBM_CFLAGS`, then this line needs to 
> stay.

Okay; added back.

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: JDK-8302801: Remove fdlibm C sources [v2]

2023-03-02 Thread Joe Darcy
> While the review of https://github.com/openjdk/jdk/pull/12800 finishes up, I 
> thought I'd get out for the review the next phase of the FDLIBM port: 
> removing the FDLIBM C sources from the repo.
> 
> A repo with the changes for JDK-8302027 and this PR successful build on the 
> default set of platform and successfully run tier 1 tests, which includes 
> tests of the math library.
> 
> There are a few remaining references to the case-independent string "fdlibm" 
> in the make directory and HotSpot sources. HotSpot contains a partial fork 
> for FDLIBM (a tine of FDLIBM?) to use for intrinsics. The remaining make 
> machinery contains logic to determine what set of gcc options can be used for 
> the compile.
> 
> The intention of this change is to remove use of FDLIBM for the core 
> libraries.

Joe Darcy has updated the pull request incrementally with one additional commit 
since the last revision:

  Respond to review feedback and add description of transliteration process.

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/12821/files
  - new: https://git.openjdk.org/jdk/pull/12821/files/a1a12347..481af9ad

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=12821=01
 - incr: https://webrevs.openjdk.org/?repo=jdk=12821=00-01

  Stats: 36 lines in 5 files changed: 22 ins; 5 del; 9 mod
  Patch: https://git.openjdk.org/jdk/pull/12821.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12821/head:pull/12821

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: JDK-8302801: Remove fdlibm C sources

2023-03-02 Thread Joe Darcy
On Thu, 2 Mar 2023 07:12:01 GMT, Alan Bateman  wrote:

> This is a great milestone to get to! Does the comment at the top of 
> sharedRuntimeTrig.cpp need updating?

Updated several of the comments in the HotSpot sources and added a description 
of the transliteration process to StrictMath.

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8303039: Utilize `coverageLevels.txt` [v2]

2023-03-02 Thread Joe Wang
On Thu, 2 Mar 2023 01:03:20 GMT, Naoto Sato  wrote:

>> This is a pre-requisite for supporting CLDR v43, where they combine `seeds` 
>> locales with `common` locales 
>> (https://cldr.unicode.org/index/downloads/cldr-43#h.7s25aqdv767e). In order 
>> to have the same coverage level of locales, CLDRConverter tool needs to comb 
>> through the locale files based on the `coverageLevels.txt` file, (and the 
>> ones we already included as of v42). Confirmed the same set of locales is 
>> generated before and after this modification.
>
> Naoto Sato has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Explicitly filter coverage levels

Marked as reviewed by joehw (Reviewer).

-

PR: https://git.openjdk.org/jdk/pull/12812


Re: RFR: 8294982: Implementation of Classfile API [v13]

2023-03-02 Thread Paul Sandoz
On Thu, 2 Mar 2023 14:29:13 GMT, Adam Sotona  wrote:

>> I had the same observation as Maurizio.
>
> I've extracted `StackMapFrameInfo` to the top level and moved 
> `VerificationTypeInfo`, however it is still nested.
> Let me know if you think we should really avoid all nested or if info inside 
> info is OK.
> Thanks.

That seems reasonable (top level `StackMapFrameInfo` with nesting for less 
important stuff.)

-

PR: https://git.openjdk.org/jdk/pull/10982


Integrated: JDK-8303476: Add the runtime version in the release file of a JDK image

2023-03-02 Thread Mandy Chung
On Wed, 1 Mar 2023 20:28:14 GMT, Mandy Chung  wrote:

> `$JAVA_HOME/release` file currently includes `JAVA_VERSION`  which is the 
> version 
> number plus the pre-release identifier for example "21-ea".The build 
> number 
> and additional build information are useful in identifying the information 
> about a JDK image but not available.  This proposes to add a new entry in the 
> release file:
> 
> JAVA_RUNTIME_VERSION="$(VSTR)"
> 
> where `$(VSTR)` is the string represented by `Runtime::version()`.

This pull request has now been integrated.

Changeset: 32247c33
Author:Mandy Chung 
URL:   
https://git.openjdk.org/jdk/commit/32247c336a189a40f696626a2578c65535ef6376
Stats: 322 lines in 3 files changed: 173 ins; 149 del; 0 mod

8303476: Add the runtime version in the release file of a JDK image

Reviewed-by: erikj

-

PR: https://git.openjdk.org/jdk/pull/12813


Re: RFR: 8303039: Utilize `coverageLevels.txt` [v2]

2023-03-02 Thread Iris Clark
On Thu, 2 Mar 2023 01:03:20 GMT, Naoto Sato  wrote:

>> This is a pre-requisite for supporting CLDR v43, where they combine `seeds` 
>> locales with `common` locales 
>> (https://cldr.unicode.org/index/downloads/cldr-43#h.7s25aqdv767e). In order 
>> to have the same coverage level of locales, CLDRConverter tool needs to comb 
>> through the locale files based on the `coverageLevels.txt` file, (and the 
>> ones we already included as of v42). Confirmed the same set of locales is 
>> generated before and after this modification.
>
> Naoto Sato has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Explicitly filter coverage levels

Marked as reviewed by iris (Reviewer).

-

PR: https://git.openjdk.org/jdk/pull/12812


Re: RFR: 8295884: Implement IDE support for Eclipse [v33]

2023-03-02 Thread Julian Waters
> Eclipse is a popular and very well-known IDE in the world of Java 
> development, utilized widely in many contexts, by beginners and experienced 
> teams alike. Although a relatively lightweight IDE, it features surprisingly 
> powerful indexing and code analysis capabilities, as well as useful tools, 
> among which are make integration. While the tools it provides are not always 
> as sophisticated as other IDEs (IntelliJ IDEA will likely come to mind as one 
> such competitor), the simplicity of using it, as well as the reliability of 
> this rugged IDE makes up greatly for the slightly less advanced tooling. 
> Eclipse requires very little starting infrastructure in the workspace for all 
> these features and indexing support as well, which makes it a good candidate 
> for developing on the JDK.
> 
> This enhancement adds 4 extra targets to the make system for generating a 
> basic Eclipse Workspace that provides almost full indexing support for the 
> JDK, with varying levels as desired, from a minimalistic option only 
> including the Java Virtual Machine's source code, to generating a workspace 
> with both Java and C/C++ natures included, which allows for using Eclipse's 
> unique ability to quickly swap between Java and C/C++ mode to work on both 
> native and Java sources at the same time. Cross Compiling support is 
> available, and in its entirety the change touches very little of the existing 
> make system, barring its own Makefile within the ide subdirectory.
> 
> Indexing capabilities utilizing the enhancement:
>  src="https://user-images.githubusercontent.com/32636402/197784819-67ec7de4-7e27-4f33-b738-59b75a9e4403.PNG;>
>  src="https://user-images.githubusercontent.com/32636402/197784843-df8621a8-7b0a-42da-86f4-3afb92de0f71.PNG;>

Julian Waters has updated the pull request with a new target base due to a 
merge or a rebase. The pull request now contains 42 commits:

 - Workspace File
 - Merge remote-tracking branch 'upstream/master' into eclipse
 - classpaths now use templates
 - Register classpath and cproject
 - Merge remote-tracking branch 'upstream/master' into eclipse
 - Progress
 - Merge remote-tracking branch 'upstream/master' into eclipse
 - Formatting Cleanup
 - Proper Checks
 - Merge remote-tracking branch 'upstream/master' into eclipse
 - ... and 32 more: https://git.openjdk.org/jdk/compare/b51ea420...cbd0572f

-

Changes: https://git.openjdk.org/jdk/pull/10853/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk=10853=32
  Stats: 752 lines in 10 files changed: 750 ins; 0 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/10853.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10853/head:pull/10853

PR: https://git.openjdk.org/jdk/pull/10853


Re: RFR: 8294982: Implementation of Classfile API [v13]

2023-03-02 Thread Adam Sotona
On Wed, 1 Mar 2023 23:57:52 GMT, Paul Sandoz  wrote:

>> Every case has been considered individually, evaluated on use cases and pros 
>> and cons have been weighted. Unified approach across the whole API would be 
>> nice, however not so simple and not the highest priority.
>
> I had the same observation as Maurizio.

I've extracted `StackMapFrameInfo` to the top level and moved 
`VerificationTypeInfo`, however it is still nested.
Let me know if you think we should really avoid all nested or if info inside 
info is OK.
Thanks.

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v36]

2023-03-02 Thread Adam Sotona
> This is root pull request with Classfile API implementation, tests and 
> benchmarks initial drop into JDK.
> 
> Following pull requests consolidating JDK class files parsing, generating, 
> and transforming ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) 
> will chain to this one.
> 
> Classfile API development is tracked at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
> 
> Development branch of consolidated JDK class files parsing, generating, and 
> transforming is at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
> 
> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
> API 
> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>  is also available.
> 
> Please take you time to review this non-trivial JDK addition.
> 
> Thank you,
> Adam

Adam Sotona has updated the pull request incrementally with one additional 
commit since the last revision:

  StackMapFrameInfo extracted to top level from StackMapTableAttribute

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/10982/files
  - new: https://git.openjdk.org/jdk/pull/10982/files/13d78c96..074dd304

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=10982=35
 - incr: https://webrevs.openjdk.org/?repo=jdk=10982=34-35

  Stats: 225 lines in 6 files changed: 123 ins; 93 del; 9 mod
  Patch: https://git.openjdk.org/jdk/pull/10982.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10982/head:pull/10982

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: JDK-8302801: Remove fdlibm C sources

2023-03-02 Thread Erik Joelsson
On Thu, 2 Mar 2023 05:54:52 GMT, Joe Darcy  wrote:

> While the review of https://github.com/openjdk/jdk/pull/12800 finishes up, I 
> thought I'd get out for the review the next phase of the FDLIBM port: 
> removing the FDLIBM C sources from the repo.
> 
> A repo with the changes for JDK-8302027 and this PR successful build on the 
> default set of platform and successfully run tier 1 tests, which includes 
> tests of the math library.
> 
> There are a few remaining references to the case-independent string "fdlibm" 
> in the make directory and HotSpot sources. HotSpot contains a partial fork 
> for FDLIBM (a tine of FDLIBM?) to use for intrinsics. The remaining make 
> machinery contains logic to determine what set of gcc options can be used for 
> the compile.
> 
> The intention of this change is to remove use of FDLIBM for the core 
> libraries.

make/autoconf/buildjdk-spec.gmk.in line 85:

> 83: JVM_LIBS := @OPENJDK_BUILD_JVM_LIBS@
> 84: 
> 85: FDLIBM_CFLAGS := @OPENJDK_BUILD_FDLIBM_CFLAGS@

If the hotspot build still needs `FDLIBM_CFLAGS`, then this line needs to stay.

-

PR: https://git.openjdk.org/jdk/pull/12821


Re: RFR: 8303480: Miscellaneous fixes to mostly invisible doc comments

2023-03-02 Thread Sean Mullan
On Thu, 2 Mar 2023 12:03:44 GMT, Pavel Rappo  wrote:

> Please review this superficial documentation cleanup that was triggered by 
> unrelated analysis of doc comments in JDK API.
> 
> The only effect that this multi-area PR has on the JDK API Documentation 
> (i.e. the observable effect on the generated HTML pages) can be summarized as 
> follows:
> 
> 
> diff -ur build/macosx-aarch64/images/docs-before/api/serialized-form.html 
> build/macosx-aarch64/images/docs-after/api/serialized-form.html
> --- build/macosx-aarch64/images/docs-before/api/serialized-form.html  
> 2023-03-02 11:47:44
> +++ build/macosx-aarch64/images/docs-after/api/serialized-form.html   
> 2023-03-02 11:48:45
> @@ -17084,7 +17084,7 @@
>   throws  href="java.base/java/io/IOException.html" title="class in 
> java.io">IOException,
>  ClassNotFoundException
>  readObject is called to restore the 
> state of the
> - (@code BasicPermission} from a stream.
> + BasicPermission from a stream.
>  
>  Parameters:
>  s - the ObjectInputStream from which data 
> is read
> 
> Notes
> -
> 
> * I'm not an expert in any of the affected areas, except for jdk.javadoc, and 
> I was merely after misused tags. Because of that, I would appreciate reviews 
> from experts in other areas.
> * I discovered many more issues than I included in this PR. The excluded 
> issues seem to occur in infrequently updated third-party code (e.g. 
> javax.xml), which I assume we shouldn't touch unless necessary.
> * I will update copyright years after (and if) the fix had been approved, as 
> required.

security related changes look fine.

-

Marked as reviewed by mullan (Reviewer).

PR: https://git.openjdk.org/jdk/pull/12826


Re: RFR: 8294982: Implementation of Classfile API [v35]

2023-03-02 Thread Adam Sotona
> This is root pull request with Classfile API implementation, tests and 
> benchmarks initial drop into JDK.
> 
> Following pull requests consolidating JDK class files parsing, generating, 
> and transforming ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) 
> will chain to this one.
> 
> Classfile API development is tracked at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
> 
> Development branch of consolidated JDK class files parsing, generating, and 
> transforming is at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
> 
> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
> API 
> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>  is also available.
> 
> Please take you time to review this non-trivial JDK addition.
> 
> Thank you,
> Adam

Adam Sotona has updated the pull request incrementally with two additional 
commits since the last revision:

 - added comment to CodeAttribute::labelToBci
 - ClassReader::readXyzEntry methods throw IllegalArgumentException instead of 
ClassCastException

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/10982/files
  - new: https://git.openjdk.org/jdk/pull/10982/files/79ce1698..13d78c96

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=10982=34
 - incr: https://webrevs.openjdk.org/?repo=jdk=10982=33-34

  Stats: 22 lines in 3 files changed: 8 ins; 2 del; 12 mod
  Patch: https://git.openjdk.org/jdk/pull/10982.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10982/head:pull/10982

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v31]

2023-03-02 Thread Adam Sotona
On Wed, 1 Mar 2023 23:07:38 GMT, Paul Sandoz  wrote:

>> Adam Sotona has updated the pull request incrementally with four additional 
>> commits since the last revision:
>> 
>>  - renamed all remaining ConcreteXyzEntry to XyzEntryImpl
>>  - abstract implementations of RefEntry, RefsEntry and NamedEntry renamed to 
>> AbstractRefEntry, AbstractRefsEntry and AbstractNamedEntry
>>  - renamed ConcreteBootstrapMethodEntry to BootstrapMethodEntryImpl
>>  - ConcreteEntry renamed to AbstractPoolEntry
>
> src/java.base/share/classes/jdk/internal/classfile/ClassReader.java line 144:
> 
>> 142:  * constant pool size, or zero
>> 143:  * @throws ClassCastException if the index does not correspond to
>> 144:  * a module entry
> 
> Throwing `ClassCastException` is certainly convenient from an implementation 
> perspective, but I think it is better to throw `IllegalArgumentException`.

Fixed in all `ClassReader::readXyzEntry` methods, thanks.

> src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java 
> line 90:
> 
>> 88: private BootstrapMethodsAttribute bootstrapMethodsAttribute;
>> 89: 
>> 90: @SuppressWarnings("unchecked")
> 
> Is this needed?

not needed, removed, thanks

> src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java 
> line 115:
> 
>> 113: 
>> 114: // 4
>> 115: case TAG_CONSTANTDYNAMIC, TAG_FIELDREF, TAG_FLOAT, 
>> TAG_INTEGER, TAG_INTERFACEMETHODREF, TAG_INVOKEDYNAMIC, TAG_METHODREF, 
>> TAG_NAMEANDTYPE -> p += 4;
> 
> Break the line

fixed, thanks.

> src/java.base/share/classes/jdk/internal/classfile/impl/ClassReaderImpl.java 
> line 132:
> 
>> 130: this.cp = new PoolEntry[constantPoolCount];
>> 131: 
>> 132: p = metadataStart;
> 
> Redundant assignment (see line 127).

fixed, thanks.

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v31]

2023-03-02 Thread Adam Sotona
On Wed, 1 Mar 2023 23:43:55 GMT, Paul Sandoz  wrote:

>> Adam Sotona has updated the pull request incrementally with four additional 
>> commits since the last revision:
>> 
>>  - renamed all remaining ConcreteXyzEntry to XyzEntryImpl
>>  - abstract implementations of RefEntry, RefsEntry and NamedEntry renamed to 
>> AbstractRefEntry, AbstractRefsEntry and AbstractNamedEntry
>>  - renamed ConcreteBootstrapMethodEntry to BootstrapMethodEntryImpl
>>  - ConcreteEntry renamed to AbstractPoolEntry
>
> src/java.base/share/classes/jdk/internal/classfile/attribute/CodeAttribute.java
>  line 56:
> 
>> 54:  * @param label a marker for a position within this {@code 
>> CodeAttribute}
>> 55:  * @return position of the {@code Label} in the {@code codeArray}
>> 56:  */
> 
> Suggestion:
> 
> /**
>  * {@return the position of the {@code Label} in the {@code codeArray}}
>  * @param label a marker for a position within this {@code CodeAttribute}
>  */
> 
> Throws IAE if the label is not positioned in the code array?

All the dependent code expects -1 when the Label is not positioned in the code 
array.
Throwing IAE would require significant refactoring and may have performance 
effects.
I'll add a javadoc comment meanwhile.

-

PR: https://git.openjdk.org/jdk/pull/10982


RFR: 8303480: Miscellaneous fixes to mostly invisible doc comments

2023-03-02 Thread Pavel Rappo
Please review this superficial documentation cleanup that was triggered by 
unrelated analysis of doc comments in JDK API.

The only effect that this multi-area PR has on the JDK API Documentation (i.e. 
the observable effect on the generated HTML pages) can be summarized as follows:


diff -ur build/macosx-aarch64/images/docs-before/api/serialized-form.html 
build/macosx-aarch64/images/docs-after/api/serialized-form.html
--- build/macosx-aarch64/images/docs-before/api/serialized-form.html
2023-03-02 11:47:44
+++ build/macosx-aarch64/images/docs-after/api/serialized-form.html 
2023-03-02 11:48:45
@@ -17084,7 +17084,7 @@
  throws IOException,
 ClassNotFoundException
 readObject is called to restore the state 
of the
- (@code BasicPermission} from a stream.
+ BasicPermission from a stream.
 
 Parameters:
 s - the ObjectInputStream from which data is 
read

Notes
-

* I'm not an expert in any of the affected areas, except for jdk.javadoc, and I 
was merely after misused tags. Because of that, I would appreciate reviews from 
experts in other areas.
* I discovered many more issues than I included in this PR. The excluded issues 
seem to occur in infrequently updated third-party code (e.g. javax.xml), which 
I assume we shouldn't touch unless necessary.
* I will update copyright years after (and if) the fix had been approved, as 
required.

-

Commit messages:
 - Initial commit

Changes: https://git.openjdk.org/jdk/pull/12826/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk=12826=00
  Issue: https://bugs.openjdk.org/browse/JDK-8303480
  Stats: 75 lines in 39 files changed: 0 ins; 0 del; 75 mod
  Patch: https://git.openjdk.org/jdk/pull/12826.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12826/head:pull/12826

PR: https://git.openjdk.org/jdk/pull/12826


Re: RFR: 8294982: Implementation of Classfile API [v34]

2023-03-02 Thread Adam Sotona
> This is root pull request with Classfile API implementation, tests and 
> benchmarks initial drop into JDK.
> 
> Following pull requests consolidating JDK class files parsing, generating, 
> and transforming ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) 
> will chain to this one.
> 
> Classfile API development is tracked at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
> 
> Development branch of consolidated JDK class files parsing, generating, and 
> transforming is at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
> 
> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
> API 
> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>  is also available.
> 
> Please take you time to review this non-trivial JDK addition.
> 
> Thank you,
> Adam

Adam Sotona has updated the pull request incrementally with two additional 
commits since the last revision:

 - Update 
src/java.base/share/classes/jdk/internal/classfile/attribute/CodeAttribute.java
   
   Co-authored-by: Paul Sandoz 
 - Update src/java.base/share/classes/jdk/internal/classfile/ClassModel.java
   
   Co-authored-by: Paul Sandoz 

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/10982/files
  - new: https://git.openjdk.org/jdk/pull/10982/files/e674bada..79ce1698

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=10982=33
 - incr: https://webrevs.openjdk.org/?repo=jdk=10982=32-33

  Stats: 3 lines in 2 files changed: 0 ins; 1 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/10982.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10982/head:pull/10982

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v31]

2023-03-02 Thread Adam Sotona
On Wed, 1 Mar 2023 22:38:32 GMT, Paul Sandoz  wrote:

>> Adam Sotona has updated the pull request incrementally with four additional 
>> commits since the last revision:
>> 
>>  - renamed all remaining ConcreteXyzEntry to XyzEntryImpl
>>  - abstract implementations of RefEntry, RefsEntry and NamedEntry renamed to 
>> AbstractRefEntry, AbstractRefsEntry and AbstractNamedEntry
>>  - renamed ConcreteBootstrapMethodEntry to BootstrapMethodEntryImpl
>>  - ConcreteEntry renamed to AbstractPoolEntry
>
> src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java
>  line 167:
> 
>> 165: buf.patchInt(pos + 2, 4, attrLen - 6);
>> 166: buf.patchInt(pos + 6, 2, bsmSize);
>> 167: return true;
> 
> The if and else branch return true, factor out at the end of the method?

fixed, thanks.

> src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java
>  line 339:
> 
>> 337: }
>> 338: 
>> 339: private AbstractPoolEntry.Utf8EntryImpl tryFindUtf8(int hash, 
>> String target) {
> 
> Unused type variable `T`

fixed, thanks.

> src/java.base/share/classes/jdk/internal/classfile/impl/SplitConstantPool.java
>  line 488:
> 
>> 486: return methodHandleEntry(refKind, reference);
>> 487: }
>> 488: return internalAdd(new 
>> AbstractPoolEntry.MethodHandleEntryImpl(this, size, hash, refKind, 
>> (AbstractPoolEntry.AbstractMemberRefEntry) reference), hash);
> 
> Break the long line (same for two following methods).

fixed, thanks.

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v33]

2023-03-02 Thread Adam Sotona
> This is root pull request with Classfile API implementation, tests and 
> benchmarks initial drop into JDK.
> 
> Following pull requests consolidating JDK class files parsing, generating, 
> and transforming ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) 
> will chain to this one.
> 
> Classfile API development is tracked at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
> 
> Development branch of consolidated JDK class files parsing, generating, and 
> transforming is at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
> 
> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
> API 
> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>  is also available.
> 
> Please take you time to review this non-trivial JDK addition.
> 
> Thank you,
> Adam

Adam Sotona has updated the pull request incrementally with three additional 
commits since the last revision:

 - Update src/java.base/share/classes/jdk/internal/classfile/ClassReader.java
   
   Co-authored-by: Paul Sandoz 
 - Update 
src/java.base/share/classes/jdk/internal/classfile/impl/TemporaryConstantPool.java
   
   Co-authored-by: Paul Sandoz 
 - SplitConstantPool fixes

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/10982/files
  - new: https://git.openjdk.org/jdk/pull/10982/files/70ec5ec7..e674bada

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=10982=32
 - incr: https://webrevs.openjdk.org/?repo=jdk=10982=31-32

  Stats: 20 lines in 3 files changed: 10 ins; 2 del; 8 mod
  Patch: https://git.openjdk.org/jdk/pull/10982.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10982/head:pull/10982

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v31]

2023-03-02 Thread Adam Sotona
On Wed, 1 Mar 2023 21:36:41 GMT, Paul Sandoz  wrote:

>> Adam Sotona has updated the pull request incrementally with four additional 
>> commits since the last revision:
>> 
>>  - renamed all remaining ConcreteXyzEntry to XyzEntryImpl
>>  - abstract implementations of RefEntry, RefsEntry and NamedEntry renamed to 
>> AbstractRefEntry, AbstractRefsEntry and AbstractNamedEntry
>>  - renamed ConcreteBootstrapMethodEntry to BootstrapMethodEntryImpl
>>  - ConcreteEntry renamed to AbstractPoolEntry
>
> src/java.base/share/classes/jdk/internal/classfile/constantpool/ClassEntry.java
>  line 48:
> 
>> 46: default ConstantDesc constantValue() {
>> 47: return asSymbol();
>> 48: }
> 
> It seems possible to use this pattern consistently for 
> `ConstantDynamicEntry`, `MethodHandleEntry`, and `MethodTypeEntry`?
> 
> At first i thought why not make `asSymbol` a covariant override of 
> `constantValue`, but its not the same thing, since there are constant values 
> (subtypes of `ConstantValueEntry`) that are not symbols.

Yes, I've moved the default `constantValue` delegation to `asSymbol` from 
implementations up to the  `ConstantDynamicEntry`, `MethodHandleEntry`, and 
`MethodTypeEntry`.
Thanks.

> src/java.base/share/classes/jdk/internal/classfile/constantpool/ClassEntry.java
>  line 71:
> 
>> 69:  * @return the combined {@link List}
>> 70:  */
>> 71: static List adding(List base, 
>> List additions) {
> 
> This and all the other following static methods seem more like implementation 
> details rather than part of the public API?

I've searched over all use cases we have and found no direct use of these API 
methods, so I've removed them.
We may later re-open discussion about possible API to combine and deduplicate 
lists of entries and symbols, however this isolated solution really does not 
fit and does not serve any purpose.

> src/java.base/share/classes/jdk/internal/classfile/constantpool/ConstantPool.java
>  line 49:
> 
>> 47: import static jdk.internal.classfile.Classfile.TAG_STRING;
>> 48: import static jdk.internal.classfile.Classfile.TAG_UTF8;
>> 49: 
> 
> Unused imports, perhaps sweep through all classes (i think it can be done 
> over multiple packages with IntelliJ).

This and hopefully all other unused imports have been removed.
Thanks.

> src/java.base/share/classes/jdk/internal/classfile/constantpool/ConstantPoolBuilder.java
>  line 222:
> 
>> 220:  * @param typeEntry the member field or method descriptor
>> 221:  */
>> 222: NameAndTypeEntry natEntry(Utf8Entry nameEntry, Utf8Entry typeEntry);
> 
> I would be inclined to rename more literally as `nameAndTypeEntry`, which is 
> consistent with the naming convention in all other cases in this interface 
> AFAICT (edit: almost i also see `bsm`) . (FWIW i keep reading nat as "not a 
> type"!)

Good point, renamed.
Thanks.

> src/java.base/share/classes/jdk/internal/classfile/impl/AbstractPoolEntry.java
>  line 376:
> 
>> 374: } else if (o instanceof Utf8Entry u) {
>> 375: return equalsString(u.stringValue());
>> 376: }
> 
> Dead branch? since there is only one concrete implementation of `Utf8Entry`.

fixed, thanks.

> src/java.base/share/classes/jdk/internal/classfile/snippet-files/PackageSnippets.java
>  line 111:
> 
>> 109: Set dependencies = cm.elementStream()
>> 110: .filter(ce -> ce instanceof 
>> MethodModel)
>> 111: .flatMap(ce -> ((MethodModel) 
>> ce).elementStream())
> 
> You could potentially collapse this into a single `flatMap` and avoid the 
> cast:
> 
> .flatMap(ce -> ce instanceof MethodMethod mm ? mm.elementStream() : 
> Stream.empty())

fixed, thanks.

-

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8294982: Implementation of Classfile API [v32]

2023-03-02 Thread Adam Sotona
> This is root pull request with Classfile API implementation, tests and 
> benchmarks initial drop into JDK.
> 
> Following pull requests consolidating JDK class files parsing, generating, 
> and transforming ([JDK-8294957](https://bugs.openjdk.org/browse/JDK-8294957)) 
> will chain to this one.
> 
> Classfile API development is tracked at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-branch
> 
> Development branch of consolidated JDK class files parsing, generating, and 
> transforming is at:
> https://github.com/openjdk/jdk-sandbox/tree/classfile-api-dev-branch
> 
> Classfile API [JEP](https://bugs.openjdk.org/browse/JDK-8280389) and [online 
> API 
> documentation](https://htmlpreview.github.io/?https://raw.githubusercontent.com/openjdk/jdk-sandbox/classfile-api-javadoc-branch/doc/classfile-api/javadoc/java.base/jdk/internal/classfile/package-summary.html)
>  is also available.
> 
> Please take you time to review this non-trivial JDK addition.
> 
> Thank you,
> Adam

Adam Sotona has updated the pull request incrementally with five additional 
commits since the last revision:

 - ConstantPoolBuilder::natEntry renamed to nameAndTypeEntry
 - removed static implementation methods from ClassEntry
 - removed unused imports
 - fixed PackageSnipets
 - default constantValue delegating to asSymbol pulled from implementations to  
ConstantDynamicEntry, MethodHandleEntry and MethodTypeEntry

-

Changes:
  - all: https://git.openjdk.org/jdk/pull/10982/files
  - new: https://git.openjdk.org/jdk/pull/10982/files/1e95e508..70ec5ec7

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk=10982=31
 - incr: https://webrevs.openjdk.org/?repo=jdk=10982=30-31

  Stats: 363 lines in 47 files changed: 17 ins; 307 del; 39 mod
  Patch: https://git.openjdk.org/jdk/pull/10982.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10982/head:pull/10982

PR: https://git.openjdk.org/jdk/pull/10982


Re: RFR: 8302659: Modernize Windows native code for NetworkInterface [v5]

2023-03-02 Thread Daniel Jeliński
On Wed, 1 Mar 2023 18:55:05 GMT, Rich DiCroce  wrote:

>> Improves performance and correctness, as discussed on the net-dev mailing 
>> list.
>
> Rich DiCroce has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Revert flag change in ResolverConfigurationImpl

Marked as reviewed by djelinski (Committer).

-

PR: https://git.openjdk.org/jdk/pull/12593


Integrated: 8303355: The Depend plugin does fully recompile when primitive type changes

2023-03-02 Thread Jan Lahoda
On Wed, 1 Mar 2023 10:12:41 GMT, Jan Lahoda  wrote:

> The OpenJDK build is using a Plugin called Depend to avoid building Java code 
> unnecessarily. It has two parts, one is checking module APIs (and forces 
> rebuild of dependent modules if a dependency changes), and second takes 
> modified files in a module, and attempts to detect whether it is enough to 
> recompile these files, or if the whole module must be rebuilt.
> 
> There's a bug in the second part, it does not track changes in primitive 
> types, so e.g. a change of a type of a public field form `int` to `long` does 
> not cause recompile.
> 
> This patch fixes that by visiting the primitive types, and including them in 
> the hash computed for the given file.
> 
> There's also another problem - if a module is being recompiled from scratch 
> due to a change in a file hash, the new/updated file hashes are written 
> immediately. And if the compilation consequently fails, the state is not 
> compared to the original hash, but to the hash from the broken compilation, 
> which may lead to missing compilation of some files.
> 
> This patch moves the code to write the new hashes to the end of compilation, 
> and only do that when there were no compile-time errors during the 
> compilation.

This pull request has now been integrated.

Changeset: dbb562d3
Author:Jan Lahoda 
URL:   
https://git.openjdk.org/jdk/commit/dbb562d3b128094cb5bca55237e1331e83526adb
Stats: 113 lines in 2 files changed: 77 ins; 23 del; 13 mod

8303355: The Depend plugin does fully recompile when primitive type changes

Reviewed-by: erikj, vromero

-

PR: https://git.openjdk.org/jdk/pull/12801