Hi Rémi,
> - if you want the bytecode getstatic to access the field, here you need the VM
> to be changed, it's in the roadmap for the VM but not yet implemented
I wish we could still access the constants with bytecode getstatic, which is
simple enough for us to use and read, but I do not know which version of Java
will support the feature. Luckily, no rush to have the native lazy constants
support, we can wait ;-)
Thanks for your suggestions and detailed explaination.
Cheers,
Daniel.Sun
On 2020/01/12 15:19:08, Remi Forax <[email protected]> wrote:
> Several things to know:
> - you can rewrite all access to a field marked @Lazy to use a constant
> dynamic,
> that part can already be implemented. If you want to keep the compatibility
> with Java 8, it means that you have to have two translations one for Java
> 11+
> and one for Java 10-.
> - if you want the bytecode getstatic to access the field, here you need the VM
> to be changed, it's in the roadmap for the VM but not yet implemented
> - you don't care about getstatic because you can simulate it with an indy*
> (which means that even with @CompileStatic you will use indy)
> in that case you can implement it but it means that all codes that use
> a combination of @Lazy + @CompileStatic has to be recompiled.
>
> Rémi
>
> * there is actually no support of ldc constantdynamic in java.lang.invoke.
>
>
> ----- Mail original -----
> > De: "sunlan" <[email protected]>
> > À: "dev" <[email protected]>
> > Envoyé: Dimanche 12 Janvier 2020 13:34:22
> > Objet: About native support for lazy constants
>
> > Hi all,
> >
> > I read an article[1] about the new features of Java 11 just now, and
> > find "JEP 309: Dynamic Class-File Constants"[2] can help us implement lazy
> > constants elegantly, e.g. `@Lazy static final Object SOME_LAZY_CONST =
> > <heavy lifts>`. The feature is very useful, so I propose to add *native*
> > support for lazy constants in some future version of Groovy.
> >
> > Any thoughts?
> >
> > Cheers,
> > Daniel.Sun
> > [1]
> > https://javabeginnerstutorial.com/core-java-tutorial/java-11-new-features/
> > [2] https://openjdk.java.net/jeps/309
> >
> >
> >
> > -----
> > Apache Groovy committer & PMC member
> > Blog: http://blog.sunlan.me
> > Twitter: @daniel_sun
> >
> > --
> > Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html
> r
>