I think that expectation is just out of date (if not outright mistaken.) Yes, j.l.i was originally called "java.dyn", but prior to shipping *7* we renamed it to j.l.i precisely because it had turned into a general customizable linkage mechanism that was usable far beyond dynamic languages. (To wit, Java 8 lambdas got a significant linkage/capture boost from using invokedynamic.) So to claim it's "supposed to be" only for dynamic languages represents a significant "missing of the memo."

On 1/26/2016 3:31 PM, Martin Buchholz wrote:
There's a big "expectations" effect here.  j.l.invoke is "supposed to
be" for making dynamic languages less slow, not for making low-level,
ultra-non-dynamic operations faster.  Asking the Unsafe users of the
world to switch to dynamic VarHandle is like asking C programmers to
rewrite their code in perl 6 ... for performance!  It's the same
"srsly?" feeling one gets reading """We can currently use RPerl to
speed up low-magic Perl 5 code with over 300x performance gain."""

Reply via email to