Joseph D. Darcy
Joe.Darcy at Sun.COM
Thu Oct 29 09:20:17 PDT 2009
No Howard, your source statement was discussed extensively on this list
(see the archives) and it is not a silver bullet and is not going to be
part of JDK 7, no matter how many times you bring it up or in how many
Howard Lovatt wrote:
> 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 zwitserloot.com>
> 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