Close to 0.2 draft?
nathan.bryant at linkshare.com
Mon May 10 10:03:51 PDT 2010
One starts to wonder, why not just move to Scala -- there's much more
that needs to be added to Java in order to build a coherent combination
of features around lambdas. And now these delays, which affect not just
users of ParallelArray but everyone who wants to build neatly
refactored, testable software in Java.
Seems like nobody's proposing to add declaration-site variance in Java
=> means FunctionN<T, ...> interfaces will not subtype the way they
should. Nor is there specialization for primitives. (Scala's
@specialized is broken for all but toy classes, but at least it's moving
in the right direction)
No JVM-level recognition that an object is a closure, and can hence be
eliminated, as it can be with Scala's closure elimination (if the HOF
can also be inlined.) The JVM seems to add something like an unavoidable
machine word access to every polymorphic call site, even if they are
supposedly inline-cached and not megamorphic, even inside a loop. Result
that I've seen is approximately a 2x slowdown on toy microbenchmarks
like "sum an array of integers" if implemented with any form of closures
other than something that can be @inline'd in Scala. (And even in Scala,
most HOF's are virtual hence can't be inlined.) I for one would like to
see usable inlining in a language that /encourages/ the use of closures
in every for loop.
From: lambda-dev-bounces at openjdk.java.net
[mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Neal Gafter
Sent: Monday, May 10, 2010 12:27 PM
To: Alexander Buckley; lambda-dev
Subject: Close to 0.2 draft?
It's been nearly three months since the 0.15 draft, and it is now less
two weeks before the TL (Tools and Languages) final integration
openjdk7 feature complete. If you've made progress on the specification
implementation, we would very much appreciate it being shared with us.
not, perhaps we can help. If Oracle has decided that this feature is no
longer important for JDK7, that would be good to know too. Whatever is
happening, silence sends the wrong message.
More information about the lambda-dev