Linear implementation of Tarjan's algorithm

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Fri Nov 3 21:44:27 UTC 2017



On 03/11/17 19:59, B. Blaser wrote:
> So, we have to decide what 'loose-same-type' should really do to
> choose between the two suggestions and eventually fix 'Types.lub()'
> (and other places) to use strict-same-type instead, if necessary.
>
> What do you think?
Sure that's what I was getting at yesterday - there ought to be only one 
relationship for type equivalence, not two. I suspect getting there is 
gonna be painful, because of the compatibility concerns (this area is a 
mine field), but we should nevertheless strive to get there - both from 
an implementation sanity perspective and from a conformance perspective.

But this is orthogonal to performance, and more related to the general 
effort of bringing javac and JLS closer together - you might be aware 
that Dan has been filing quite a number of spec/javac issues on this 
topic - the full list can be viewed here:

https://bugs.openjdk.java.net/browse/JDK-8078095?jql=project%20%3D%20JDK%20AND%20labels%20%3D%20jls-types

Of these, I can see several entries that are at least partially related 
to the topic we've been discussing - example:

https://bugs.openjdk.java.net/browse/JDK-8024484

https://bugs.openjdk.java.net/browse/JDK-4949438

So, again, this is something that will require more of an holistic 
effort - doing a point-fix here has an high potential of increasing the 
level of entropy of the implementation in a very delicate area, so it's 
better to come up with a concrete and comprehensive plan before touching 
anything (otherwise the risk is keep chasing long bug tails).

Cheers
Maurizio


More information about the compiler-dev mailing list