Details

    • Type: New Feature
    • Status: Resolved
    • Priority: P3
    • Resolution: Fixed
    • Affects Version/s: 9
    • Fix Version/s: 9
    • Component/s: core-libs
    • Labels:
      None

      Description

      Overall issue for the design, implementation and test of VarHandles for JEP 193: Enhanced Volatiles.

      The implementation is integrated into the jdk9/dev repository.

      Any follow on work may, before integration into jdk9/dev, occur in the JDK 9 sandbox with the branch:

      $ hg clone http://hg.openjdk.java.net/jdk9/sandbox sandbox
      $ cd sandbox/
      $ sh ./get_source.sh
      $ sh ./common/bin/hgforest.sh up -r JEP-193-VarHandles-branch
      $ sh ./configure
      $ make images

      http://cr.openjdk.java.net/~psandoz/jdk9/varhandles/specdiff/overview-summary.html

        Issue Links

        1.
        VarHandles for instance fields Sub-task Resolved Paul Sandoz  
         
        2.
        VarHandles for static fields Sub-task Resolved Paul Sandoz  
         
        3.
        VarHandles for arrays Sub-task Resolved Paul Sandoz  
         
        4.
        VarHandles for ByteBuffers Sub-task Resolved Paul Sandoz  
         
        5.
        VarHandles for array views Sub-task Resolved Paul Sandoz  
         
        6.
        VarHandles API specification Sub-task Resolved Paul Sandoz  
         
        7.
        VarHandles unit tests Sub-task Resolved Paul Sandoz  
         
        8.
        VarHandles jcstress tests Sub-task Resolved Frank Yuan  
         
        9.
        Unsafe.getAcquire* and VarHandles.getAcquire Sub-task Resolved Aleksey Shipilev  
         
        10.
        MethodType[] VarHandle.types wastes memory Sub-task Resolved Paul Sandoz  
         
        11.
        Replace obj.getClass with Objects.requireNonNull Sub-task Resolved Aleksey Shipilev  
         
        12.
        C1 trouble in VarHandle.get tests Sub-task Resolved Aleksey Shipilev  
         
        13.
        C1 trouble in VarHandle.getObject tests Sub-task Resolved Aleksey Shipilev  
         
        14.
        Unsafe.setRelease/putOrdered* for all types Sub-task Resolved Aleksey Shipilev  
         
        15.
        VarHandle access methods should be marked with @HotspotIntrinsicCandidate Sub-task Resolved Aleksey Shipilev  
         
        16.
        Unsafe intrinsics overhaul for VarHandle.{getAcquire|setRelease} Sub-task Resolved Aleksey Shipilev  
         
        17.
        Introduce VH.{get|set}Relaxed, and rewire VH.{get|set} to use the default field access rules Sub-task Resolved Aleksey Shipilev  
         
        18.
        VH.{set|get}{Acquire|Release} for raw memory Sub-task Resolved Aleksey Shipilev  
         
        19.
        Add weak CAS, and acquire/release forms of CAS Sub-task Closed Aleksey Shipilev  
         
        20.
        C1 support for Unsafe.{getAcquire|setRelease} Sub-task Closed Aleksey Shipilev  
         
        21.
        VH.(get|set)Opaque implementations Sub-task Resolved Aleksey Shipilev  
         
        22.
        Better C1 handling for VarHandles.(get|set)Opaque Sub-task Closed Aleksey Shipilev  
         
        23.
        Proper implementation for VarHandle.compareAndExchange{Volatile, Acquire, Release} Sub-task Closed Aleksey Shipilev  
         
        24.
        Intrinsics for VarHandle.compareAndExchange{Volatile, Acquire, Release} Sub-task Resolved Aleksey Shipilev  
         
        25.
        Reference.reachabilityFence Sub-task Resolved Paul Sandoz  
         
        26.
        Implement VarHandles/Unsafe intrinsics on POWER Sub-task Resolved Martin Doerr  
         
        27.
        Integrate new internal Unsafe entry points, and basic intrinsic support for VarHandles Sub-task Resolved Aleksey Shipilev  
         
        28.
        ByteBuffer API and implementation enhancements for VarHandles Sub-task Resolved Paul Sandoz  
         
        29.
        Integrate VarHandles Sub-task Resolved Paul Sandoz  
         
        30.
        VarHandle factory-specific exceptions Sub-task Closed Paul Sandoz  
         
        31.
        VarHandle.AccessMode enum names should conform to code style Sub-task Resolved Paul Sandoz  
         
        32.
        Update VarHandle implementation to use @Stable arrays Sub-task Closed Paul Sandoz  
         
        33.
        VarHandle lookup access control tests Sub-task Closed Paul Sandoz  
         
        34.
        Result-boxed and result-less VarHandles are significantly penalized Sub-task Resolved Paul Sandoz  
         
        35.
        Use java.nio.ByteOrder instead of boolean value Sub-task Closed Paul Sandoz  
         
        36.
        Rename VarHandle.compareAndExchangeVolatile to VarHandle.compareAndExchange Sub-task Resolved Paul Sandoz  
         
        37.
        Add a VarHandle weakCompareAndSet with volatile semantics Sub-task Resolved Paul Sandoz  
         
        38.
        Exempt classes under java.util.concurrent from MH.Lookup restrictions Sub-task Closed Paul Sandoz  
         
        39.
        VarHandle implementation improvements Sub-task Resolved Paul Sandoz  
         
        40.
        [TESTBUG] VarHandles/Unsafe tests for weakCAS should allow spurious failures Sub-task Resolved Aleksey Shipilev  
         
        41.
        Unsafe.weakCompareAndSetVolatile entry points and intrinsics Sub-task Resolved Aleksey Shipilev  
         
        42.
        Unsafe.{get|set}Opaque should be single copy atomic Sub-task Resolved Aleksey Shipilev  
         
        43.
        MethodHandles.varHandleExactInvoker should perform exact checks Sub-task Resolved Paul Sandoz  
         
        44.
        Tests for invokeExact of handles produced from MethodHandles.varHandleExactInvoker Sub-task Resolved Paul Sandoz  
         
        45.
        Hook up Unsafe.weakCompareAndSetVolatile to VarHandles Sub-task Resolved Aleksey Shipilev  
         
        46.
        VarHandles/Unsafe should support sub-word atomic ops Sub-task Resolved Aleksey Shipilev  
         
        47.
        VarHandle float/double field/array access should support CAS/set/add atomics Sub-task Resolved Paul Sandoz 2016-06-30
         
        48.
        VarHandles should provide access bitwise atomics Sub-task Resolved Paul Sandoz  
         
        49.
        Remove VarHandle.addAndGet Sub-task Resolved Paul Sandoz  
         
        50.
        Add acquire/release variants for getAndSet and getAndAdd Sub-task Resolved Paul Sandoz  
         
        51.
        Rename weakCompareAndSetVolatile to weakCompareAndSet Sub-task Resolved Paul Sandoz  
         

          Activity

          Hide
          psandoz Paul Sandoz added a comment -
          The variable handle implementations for arrays will benefit from an intrinsic check index method, which helps ensure that Unsafe-based array access is similar to direct array access in terms of generated code
          Show
          psandoz Paul Sandoz added a comment - The variable handle implementations for arrays will benefit from an intrinsic check index method, which helps ensure that Unsafe-based array access is similar to direct array access in terms of generated code

            People

            • Assignee:
              psandoz Paul Sandoz
              Reporter:
              psandoz Paul Sandoz
            • Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Due:
                Created:
                Updated:
                Resolved: