review request (L): 7032323: code changes for JSR 292 EG adjustments to API, through Public Review

Rémi Forax forax at univ-mlv.fr
Thu May 26 12:15:32 PDT 2011


On 05/26/2011 09:10 PM, Y. S. Ramakrishna wrote:
> John, you state that validity is not a stable property.
> Is invalidity a stable property, or not even that is.

yes, once invalidated a switch point can't be reverted to a valid state.
http://download.java.net/jdk7/docs/api/java/lang/invoke/SwitchPoint.html

> -- ramki
> (who doesn't yet know what a switchpoint is)

Rémi


> On 05/26/11 10:11, Tom Rodriguez wrote:
>> isValid looks fine.
>>
>> tom
>>
>> On May 26, 2011, at 1:31 AM, John Rose wrote:
>>
>>> On May 25, 2011, at 11:58 PM, Tom Rodriguez wrote:
>>>
>>>> Overall it seems ok.  A few minor oddities:
>>>>
>>>> MethodHandle.java
>>>>
>>>> variable arity is sometimes hyphenated.  It seems more correct without but be consistent.
>>> Replaced hyphen by space.
>>>
>>>> AdapterMethodHandle.java:
>>>>
>>>> The new value srcSlot appears unused.
>>> Right; it doesn't have any use.  Deleted.
>>>
>>>> Should this just go away:
>>>>
>>>> -        if (argCount<= 2)  return false;  // must be a swap, not a rotate
>>>> +        //if (argCount<= 2)  return false;  // must be a swap, not a rotate
>>> Yes.  Turns out that if you need to swap an int and a long, it has to be rendered as one or two rotates.
>>>
>>> Thanks, Tom.
>>>
>>> -- John
>>>
>>> P.S.  One more bit to review:  I might add the following to SwitchPoint.java, depending on what the EG says today.
>>>
>>>     /**
>>>      * Determines if this switchpoint is still valid.
>>>      *<p>
>>>      * Since invalidation is a global and immediate operation,
>>>      * this query must be sequenced with any
>>>      * other threads that could invalidate this switchpoint.
>>>      * It may therefore be expensive.
>>>      *<p>
>>>      * In addition, due to concurrent invalidations by other threads,
>>>      * a switchpoint may report itself as valid, and yet become
>>>      * invalid before the querying thread begins to act on the
>>>      * supposed validity.
>>>      * @return true if this switchpoint has never been invalidated
>>>      */
>>>     public boolean isValid() {
>>>         return (mcs.getTarget() == K_true);
>>>     }
>>>
>>>> tom
>>>>
>>>> On May 25, 2011, at 3:30 AM, John Rose wrote:
>>>>
>>>>> This is the last major bundle of changes for JDK 7.
>>>>> http://cr.openjdk.java.net/~jrose/7032323/webrev.00/
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev



More information about the mlvm-dev mailing list