RFR: 8292914: Drop the counter from lambda class names [v6]

Ioi Lam iklam at openjdk.org
Fri Feb 17 17:09:24 UTC 2023


On Thu, 16 Feb 2023 19:35:54 GMT, David M. Lloyd <duke at openjdk.org> wrote:

>> The class generated for lambda proxies is now defined as a hidden class. This means that the counter, which was used to ensure a unique class name and avoid clashes, is now redundant. In addition to performing redundant work, this also impacts build reproducibility for native image generators which might already have a strategy to cope with hidden classes but cannot cope with indeterminate definition order for lambda proxy classes.
>> 
>> This solves JDK-8292914 by making lambda proxy names always be stable without any configuration needed. This would also replace #10024.
>
> David M. Lloyd has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Use a unique index for the dumped lambda class instead of a time stamp

Java doesn't guarantee to use unique names even for "regular" classes. You can use two class loaders that load two completely different classes with the exact same name.

How does Graal and qbicc handle this?

-------------

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


More information about the core-libs-dev mailing list