> On Jan 19, 2018, at 2:24 PM, John Rose <john.r.r...@oracle.com> wrote:
> 
> On Jan 19, 2018, at 12:11 PM, Dan Smith <daniel.sm...@oracle.com> wrote:
>> 
>> To flesh the attribute idea out, here's a possible spec. Mentions 
>> CONSTANT_Dynamic for now, and would be modified in the future to name other 
>> constant types that allow cycles.
>> 
>> Is this a happy solution to the problems raised in previous discussions 
>> about constant cycles? Any new problems introduced?
> 
> Yes, this is about what I had in mind when I made the suggestion of an
> acyclicity proof.  It reads well and looks like it would do the job.  I like
> the touch of assigning zero to a missing condy; that gracefully covers
> the many non-recursive cases.
> 
> Like Karen, I assume this is not an addendum to the final "minimal condy"
> spec you sent out.

Nope, this isn't intended to be tied to condy. It's a separate effort.

The followup question is: when should we try to deliver it?

- SE 11: get it in when condy is introduced, avoid allowing any cyclical 
constant pools to escape into the wild
- Sometime soon after 11: address compatibility by easing into it, perhaps 
following the path of StackMapTable (optional at first)
- Next time we introduce a cyclical attribute: let condy be, don't disrupt 
anything until we need this check somewhere else

The SE 11 option has the advantage of avoiding future historical baggage (e.g., 
otherwise, to support 55.0 class files, the resolution-time check must remain 
in place forever). It has the disadvantage that it's late in the game to be 
introducing new JVM attributes.

—Dan

Reply via email to