On Thu, 17 Oct 2024 22:44:05 GMT, Mandy Chung <mch...@openjdk.org> wrote:

>> The old core reflection implementation generates dynamic classes that are 
>> special cases in the VM to bypass bytecode verification to workaround 
>> various issues [1] [2] [3].
>> 
>> The old core reflection implementation was [removed in JDK 
>> 22](https://bugs.openjdk.org/browse/JDK-8305104).   It's time to remove 
>> these VM hacks along with the old implementation of  
>> `sun.reflect.ReflectionFactory::newConstructorForSerialization`.   
>> 
>> After this change, `jdk.internal.reflect.DelegatingClassLoader` no longer 
>> exists.   Hence the special metaspace for reflection is no longer needed.  
>> GTests will need to be updated when `Metaspace::ReflectionMetaspaceType` is 
>> removed.  Such clean up can be done separately (JDK-8342561).
>> 
>> [1] [JDK-4486457](https://bugs.openjdk.org/browse/JDK-4486457)
>> [2] [JDK-4474172](https://bugs.openjdk.org/browse/JDK-4474172)
>> [3] [JDK-6790209](https://bugs.openjdk.org/browse/JDK-6790209)
>
> Mandy Chung has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Remove unused classes

This is a most impressive example of C.D.E. (code deletion engineering).

I remember when this was written, as an accelerator for the JNI methods, long 
long before we had method handles to do the same thing more flexibly.  I think 
it was Ken Russell that did the work.  And of course I remember Mandy's newer 
work (3 years ago) fitting method handles into reflection (a move I applauded 
of course).

As it happens I was just reviewing the reflection implementation this week, to 
understand its interaction with upcoming Leyden changes to bootstrap sequences. 
 Of course I wondered, "when will we ever retire this older implementation?"  
Happily, that day has come.

Thanks Mandy!

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

Marked as reviewed by jrose (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/21571#pullrequestreview-2376932358

Reply via email to