Reference implementation

Howard Lovatt howard.lovatt at
Thu Oct 29 09:04:25 PDT 2009

Wouldn't it be simpler to introduce a source statement in Coin, forget the
diamond operator, and get 7 out. Having introduced source, 8 can be
incompatible with previous Java versions (except at the JVM level),
wildcards dropped, generics reified, and type inference for methods and
declarations improved.

 -- Howard.

---------- Forwarded message ----------
From: Maurizio Cimadamore <Maurizio.Cimadamore at Sun.COM>
To: Reinier Zwitserloot <reinier at>
Date: Thu, 29 Oct 2009 15:13:21 +0000
Subject: Re: Reference implementation
Reinier Zwitserloot wrote:

> Actually, those 3 examples don't seem too bad for future expansion. Sure,
> reification is a hard nut to crack, but it always has been.
Just to clarify - I said that these 3 decisions have made reification
*nearly* impossible - not impossible at all. I guess that the length of your
proposal for dealing with cast speak for itself (if we need to kinda
workaround to the fact that now it's possible to write generic cast even
without reification support that means that the decision does jeopardize
further language evolution - e.g it prevents reified Java from using classic
syntax for casts - note that this problem does not occur with  instanceof).

As far as my other two issues - I'm not concerned about typing and safety -
what I'm concerned about is performances - if you have instances of Foo<#1>
or Foo<#1 extends Object & Comparable<? extends Object & Comparable < ... >
> are you sure that the VM could still perform decently? The Java subtyping
algorithm with generics and wildcards is complex enough that it suffices a
bit of twists and turns to make javac to run out of Stack (even in cases
where subtyping can be proved). What does that mean to have such a subtyping
test inside the JVM ? That's what I'm worried about.


More information about the coin-dev mailing list