Migration of Integer to inline

Kirk Pepperdine kirk.pepperdine at gmail.com
Sat Dec 21 16:55:09 UTC 2019



> On Dec 21, 2019, at 12:38 AM, Brian Goetz <brian.goetz at oracle.com> wrote:
> 
> If we can successfully migrate Integer to be a value type, the cache goes away, since the instances no longer have identity.

+1, can Santa deliver this for Christmas?

Kind regards,
Kirk

> 
> On 12/20/2019 6:11 PM, Mateusz Romanowski wrote:
>> Thanks for quick response.
>> 
>> As for Integer::new, some people (including me once) might still use the constructor to bypass the IntegerCache.
>> 
>> The migration story could then include some Integer::valueOfUncached factory for such usages.
>> 
>> I would love to see such method introduced with the constructor being made synthetic (JDK-8236444).
>> 
>> Cheers.
>> 
>> 
>> W dniu piątek, 20 grudnia 2019 Brian Goetz <brian.goetz at oracle.com <mailto:brian.goetz at oracle.com>> napisał(a):
>> >
>> >
>> >> If non-Object abstract class as superclass of inline class is allowed, the
>> >> migration story for Optional seems easy.
>> >> It would be the same for Integer, if only there were no pesky public
>> >> Integer::new...
>> >
>> > These constructors have been deprecated since Java 9; and there has been IDE support for migrating invocations of these to the appropriate factory methods for at least a dozen years.  It is reasonable to deprecate them for removal.
>> >
>> > As with `new Object()`, it is also possible to take heroic measures to relink `new Ljava/lang/Integer;` bytecodes to instantiate some other type, though we're not ready to plunk for that yet (it's more complicated than for Object.)
>> >
>> > Bytecode weaving (perhaps even at load time, with an agent) is indeed a possible means of rewriting these dusty jars.
>> >
>> >>
>> >> Could you share any preliminary thoughts how the classfiles (found in
>> >> *dusty* jars) that use the Integer constructor would be treated?
>> >>
>> >> Is it feasible to have the bytecode weaved to replace the new-dup-init
>> >> sequence during class loading?
>> >>
>> >> Thanks,
>> >> Mateusz
>> >
>> > 
> 



More information about the valhalla-dev mailing list