JSR 335 seems outdated, not aligned with implementation
Evgeny Mandrikov
mandrikov at gmail.com
Mon Dec 10 12:56:45 PST 2012
Hi Brian,
First of all - thanks for your quick answer.
Maybe my sentences were too strict. So I'll try to put this a bit
differently: I'm ready to be an early adopter and spend time by following
changes in specs. My question was more about how to be notified about such
changes without digging too much into codebase of OpenJDK. E.g. when
planned to update specs to reflect recent changes?
On Mon, Dec 10, 2012 at 3:50 PM, Brian Goetz <brian.goetz at oracle.com> wrote:
> I think you have a mistaken assumption, that there is some part of JSR-335
> that is "done" and that the other parts are "not caught up." The actual
> situation is that everything is in active development -- the design, the
> specs, the compiler implementation, the libraries, and the third-party IDEs
> like IntelliJ that are valiently keeping up with a moving target.
>
> It sounds like you are not ready to be an early adopter -- which is fine.
> Stay tuned here to track how the spec and implementation are evolving, and
> for a hint as to when they start settling. But if you want to start
> blazing a trail now, you'll find support here.
>
> Thanks for checking in!
>
>
> On 12/10/2012 4:07 AM, Evgeny Mandrikov wrote:
>
>> Hi,
>>
>> I'm one of developers of Sonar ( http://www.sonarsource.org/ ). And
>> looking
>> at the fact that IntelliJ IDEA 12 already supports Java 8, I wanted to
>> update our Java analyzer to also support changes in language, more
>> precisely JSR-335 (lambda expressions, method and constructor references,
>> default methods).
>>
>> Of course I started from specs, but quickly realized that they are
>> different from what was implemented in OpenJDK Lambda project. For
>> example:
>> Part G: Default Methods - InterfaceMethodBody contains "default", whereas
>> in reality it is part of modifiers. And maybe this is not the only one
>> difference. Aleksey Shipilev confirmed that spec is a bit outdated and
>> suggested to ask this question here (
>> https://twitter.com/shipilev/**status/277898648753410049<https://twitter.com/shipilev/status/277898648753410049>). So my first
>> question - is it possible to align specification with an
>> implementation? Otherwise too risky to do an early adoption.
>>
>> The second question relates to the fact that Java Language Specification (
>> http://docs.oracle.com/javase/**specs/<http://docs.oracle.com/javase/specs/>) contains two grammars - one for
>> exposition (chapters 4, 6-10, 14 and 15) and another one, which is better
>> suited to implementation (chapter 18). Seems that JSR-335 describes
>> changes
>> only in the first one. Even if they are pretty similar it would be great
>> to
>> know changes in the second one. Is it possible? This question relates to
>> the fact that it took me quite some time to understand how left-recursion
>> can be resolved between grammar rules "method reference" and "primary".
>> I'm
>> pretty sure that this problem was solved in reference implementation, but
>> details of solution not exposed in the specification.
>>
>> Thanks in advance.
>>
>>
>>
--
Best regards,
Evgeny Mandrikov aka Godin <http://godin.net.ru>
http://twitter.com/_godin_
More information about the lambda-dev
mailing list