RetroLambda

From APIDesign

(Difference between revisions)
Jump to: navigation, search
Current revision (10:22, 18 July 2021) (edit) (undo)
 
(One intermediate revision not shown.)
Line 1: Line 1:
-
https://github.com/orfjackal/retrolambda
+
[[RetroLambda]] project [https://github.com/orfjackal/retrolambda on github] is capable to convert [[JDK]]8's usage of [[InvokeDynamic]] in [[Closure|lambdas]] to normal static method invocations. [[Bck2Brwsr]] was using [[RetroLambda]] since [[Bck2Brwsr 0.10]] to successfully bring [[Closure|Lambdas]] to browsers.
-
[[RetroLambda]] project is capable to convert [[JDK]]8's usage of [[InvokeDynamic]] in [[Closure|lambdas]] to normal static method invocations.
+
However it turned out that there are significant flaws using [[RetroLambda]] in long running processes like [[Groovy]]. [[RetroLambda]] relies on reflection to '''static final private''' field and such change only works before the code gets compiled to native. That's usually true, if the hack is applied sooner than the code warms up. However that is not the case with [[Gradle]] daemon. As such [[Bck2Brwsr 0.50]] is rewriting the code to avoid [[RetroLambda]] altogether.
-
 
+
-
[[Bck2Brwsr]] was using [[RetroLambda]] since [[Bck2Brwsr 0.10]] to successfully bring [[Closure|Lambdas]] to browsers. However it turned out that there are significant flaws using [[RetroLambda]] in long running processes like [[Groovy]]. [[RetroLambda]] relies on reflection to '''static final private''' field and such change only works before the code gets compiled to native. That's usually true, if the hack is applied sooner than the code warms up. However that is not the case with [[Gradle]] daemon. As such [[Bck2Brwsr 0.50]] is rewriting the code to avoid [[RetroLambda]] altogether.
+

Current revision

RetroLambda project on github is capable to convert JDK8's usage of InvokeDynamic in lambdas to normal static method invocations. Bck2Brwsr was using RetroLambda since Bck2Brwsr 0.10 to successfully bring Lambdas to browsers.

However it turned out that there are significant flaws using RetroLambda in long running processes like Groovy. RetroLambda relies on reflection to static final private field and such change only works before the code gets compiled to native. That's usually true, if the hack is applied sooner than the code warms up. However that is not the case with Gradle daemon. As such Bck2Brwsr 0.50 is rewriting the code to avoid RetroLambda altogether.

Personal tools
buy