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