Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • platforms: x64 Linux, x64 Mac OS X, Windows
  • no support for value class with no instance fields
  • no support for atomic fields containing value types
  • no support for @Contended value type fields
  • static fields are not flattenable
  • no AOT, CDS, ZGC, serviceability agent
  • -Xint and C2 only, no C1, no tiered-compilation, no Graal
  • unsafe field and array accessor APIs are not supported for value types
    • VarHandles support value types
      • however: they do not enforce immutability  or non-nullability for value types
        • note that immutable types can be copied, so updates may not be seen
    • low-level unsafe APIs are UNSAFE and will not be changed to support value types
    • risks: If a value type has been flattened in a container, unsafe does not know the layout
      • getObject could return the first flattened element rather than the expected reference
  • interpreter is not optimized, focus is on JIT optimization
  • Please provide additional USE CASES for optimizations
  • Working on additional test cases

Future Possibilities

...

  • LW1 updates: 
    • fix bugs, add optimizations and support for additional minor features
  • LWX:
    • Addition of significant feature support
    • Addition of language level syntax and semantics
    • Eventually a preview with an openjdk release
    • Expect specialized generics and support for primitives as value types will have their own early access cycles 

How to Try L-World Value Types

...

Target Audience

  • Power users  - Java/JVM Language, Framework, Library authors/experts
    • who are comfortable with early experimental software
    • who recognize that everything in the experiment - the model, the classfile extensions, the byte codes is likely to change
    • who want to contribute to early exploration of Value Types
    • who will not build any products based on these prototypes
  • Who are willing to provide feedback to the developers on a subset of Value Type features
  • Who will provide use cases for the development team to experiment with optimizations

...