groovy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Cédric Champeau <cedric.champ...@gmail.com>
Subject Regression in JDK 9?
Date Sat, 13 Jun 2015 16:36:40 GMT
I am currently investigating building Groovy on the latest JDK 9 b66. First
of all, I am making the changes on master, which means that only Groovy 2.5
will officially support JDK 9, does it sound ok for you guys?

First of all, I had to change some signatures in DGM for the JDK 9 generics
type checker to be happy. I think those changes make sense, and probably
the checker in previous versions of the JDK wasn't strict enough:
https://github.com/apache/incubator-groovy/commit/83d680877c44072c46bdf2212303398ac3b1276e

I also changed the Gradle wrapper to use a snapshot version of Gradle 2.6,
which fixes JDK 9 compatibility. This is also only done on master.

Now I have only one test currently failing:

 org.codehaus.groovy.ClosureAndInnerClassNodeStructureTest#testGetSimpleName

assert simpleNames == ['_foo_closure1', '_closure2']
       |           |
       [, ]        false

This looks like a pretty serious issue. Even if the error comes from our
side, which is unsure at this point, there's a breaking change in the way
the JDK returns the simple name of a class, and it directly impacts our
closures. If we changed the way we generate closure class names, it could
potentially fix the issue (not tested), but it would be both a breaking
change for Groovy, and wouldn't solve the fact that closure classes
compiled with earlier versions of the Groovy compiler wouldn't return a
correct simple name under JDK 9.

Cédric

Mime
View raw message