[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [jdt-core-dev] Current state of BETA_JAVA8

Hello !

With the JDT/Core team back to being fully staffed up and the "burden"
of concurrent training/consulting/mentoring/patch reviews for 5 engineers
diminishing by the day as people are ramping up, the JDT/Core team
has made excellent progress on the two majors JSRs for Java 8 -

In the last six weeks,  we closed some sizeable projects:

   - Semantic analysis for lambda & reference expressions
   - Control/Data flow analysis for lambda & reference expressions
   - DOM/AST support for type annotations.

Various other projects are near completion stage and under review
and testing. There is a lot more intensely complex & challenging work
(overload resolution & type inference) that needs to be scheduled and
tackled  head on - we are on it.

One major area of challenge is the *very* unfinished state of *specification*
concerning the incredibly complex part (we are almost at a stage where only
double PhDs in math & comp.sc can qualify for Java compiler writers !)
of JSR335 - Part G - Type inference. Some key sections have only "To do"
place holders in them at this point. We are in the process of engaging
with the expert group to address this particular concern.

I'll post updates here on a once in 4/6 weeks basis - but folks
interested in finer granularity should subscribe and listen in on
https://bugs.eclipse.org/bugs/show_bug.cgi?id=380190 and its

Eclipse & git savvy eager-beaver users are welcome to try out the branch.
If you do a few points to bear in mind:

(1) Branch name is BETA_JAVA8:
(2) You will have to manually configure the project settings to be 1.8
as there is no UI support yet for configuring/setting up a 1.8 project.
(3) If you experiment with JSR335 constructs, you will see a slew of
errors from the DOM/AST converter - this converter is not in place and
can spew out class cast exceptions, NPEs etc - None of these should matter
for experimenting/playing with JSR335/JSR308 constructs.
(4) No code generation support, overload resolution support in the presence
of lambdas, nested generic method calls etc - You can't actually run any
useful programs yet
(5) There is no UI support - so don't expect refactorings, quick fixes etc
to work in the presence of Java 8 constructs.
(6) Lastly and most importantly, this is in no shape to be used for development
(even on a Java 7 basis), only for experimental assessment of the shape of
things. As the modified source files call out - This implementation made
available for testing and evaluation purposes only. The code is not compatible
with any specification of the JCP.
(7) Bug reports are welcome

I thank the entire JDT/Core for all the enthusiasm and energy levels. I
also want to call out the very active engagement from two volunteers from the
community - Stephan Herrmann who is well known to the JDT/Core consumers
for his sustained efforts on null analysis and Jesper Moller, who has started
contributing a stream of good quality patches for various issues - some of them