On 12 May 2017 at 17:31, David M. Lloyd <david.ll...@redhat.com> wrote: >>> 4. Make run-time cycle checking optional >> >> My opinion is that run-time cycles are inevitable. The proposed >> solutions (refactoring to API vs Impl) is not particularly good in an >> open source context. I'm also concerned that "requires static" >> (optional dependencies) also naturally leads to cycles >> >> But the question at this point is whether it is worth the effort to >> try and live without cycles for this release - after all, no-one wants >> cycles in their design. > > It's true, cycles sound bad. But as a point of fact, at run time they're > not demonstrably harmful, and in fact worrying overmuch about cycles > detracts from clean design principles: I have an ABI that conforms to a > particular behavioral contract; it should not matter how I meet that > contract (and in particular, whether I do so by way of a series of other > contracts that ultimately may be used by things which use *my* ABI is a > completely uninteresting distraction).
Just to be clear, of the five items listed, I think if just one were to be tackled, I'd choose this one. Because I think it will come up in real systems and because I basically agree that cycles at runtime should not be something that should be blocked by the JDK/JVM. Stephen