Please read: __ByValue is no more. Use `value' as the modifier to signal a value class.

Srikanth srikanth.adayapalam at oracle.com
Wed Sep 26 08:05:32 UTC 2018


Hello Valhalla developers/users,

With the change set below, value classes are declared using the modifier 
"value". __ByValue as a token/modifier has ceased to exist.

I have combed through the tests in all components and have changed them 
suitably.

The token `value' continues to be a legal identifier of course and is 
treated preferentially as a modifier only where the grammar would allow 
the modifier to be accepted.

At the moment, I have withdrawn the support for local value classes to 
simplify scanning/parsing. (Local anonymous classes can continue to be 
value classes (new value Iface() {})

I will raise a ticket for handling local value classes - I don't have a 
compelling use case for this and originally added support for it only as 
a matter of routine. I will tackle this ticket in due course.

Thanks!
Srikanth



On Wednesday 26 September 2018 01:26 PM, srikanth.adayapalam at oracle.com 
wrote:
> Changeset: 17d7bd13a39e
> Author:    sadayapalam
> Date:      2018-09-26 13:26 +0530
> URL:       http://hg.openjdk.java.net/valhalla/valhalla/rev/17d7bd13a39e
>
> 8211142: [lworld] Change value class modifier token from "__ByValue" to "value"
>
> ! src/java.compiler/share/classes/javax/lang/model/element/Modifier.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java
> ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/Tokens.java
> ! src/jdk.jshell/share/classes/jdk/jshell/CompletenessAnalyzer.java
> ! test/benchmarks/src/main/java/oracle/micro/valhalla/lworld/types/Value1.java
> ! test/benchmarks/src/main/java/oracle/micro/valhalla/lworld/types/Value2.java
> ! test/benchmarks/src/main/java/oracle/micro/valhalla/lworld/types/Value8.java
> ! test/benchmarks/src/main/java/oracle/micro/valhalla/lworld/util/HashMapIteratorCursor.java
> ! test/benchmarks/src/main/java/oracle/micro/valhalla/lworld/util/HashMapValueCursor.java
> ! test/benchmarks/src/main/java/oracle/micro/valhalla/lworld/util/HashMapValueEntry.java
> ! test/benchmarks/src/main/java/oracle/micro/valhalla/lworld/util/HashMapValueTotal.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/MyValue1.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/MyValue2.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/MyValue3.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/MyValue4.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/SimpleValueType.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/TestBimorphicInlining.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/TestIntrinsics.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/TestLWorld.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/TestNativeClone.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/TestNewAcmp.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/TestOptimizeKlassCmp.java
> ! test/hotspot/jtreg/compiler/valhalla/valuetypes/TestUnloadedValueTypeArray.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/Empty.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/IntValue.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/JumboValue.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/Long8Value.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/ObjectMethods.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/Person.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/Point.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/QuickeningTest.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/Test8186715.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/TestValue1.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/TestValue2.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/TestValue3.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/TestValue4.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/VDefaultTest.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/VWithFieldTest.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueOops.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeArray.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeCreation.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeDensity.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueTypeGenerator.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/ValueWithJni.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/classfileparser/cfpTests.jcod
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/consistency/ValuePoint.java
> ! test/hotspot/jtreg/runtime/valhalla/valuetypes/verifier/verifierTests.jcod
> ! test/jdk/java/lang/invoke/VarHandles/Value.java
> ! test/jdk/valhalla/valuetypes/Line.java
> ! test/jdk/valhalla/valuetypes/NonFlattenValue.java
> ! test/jdk/valhalla/valuetypes/Point.java
> ! test/jdk/valhalla/valuetypes/ValueArray.java
> ! test/jdk/valhalla/valuetypes/ValueBootstrapMethods.java
> ! test/jdk/valhalla/valuetypes/ValueTypesAttributeTest.java
> ! test/langtools/tools/javac/annotations/typeAnnotations/failures/common/arrays/DeclarationAnnotation.out
> ! test/langtools/tools/javac/diags/examples/GenericParameterizationWithValueType.java
> ! test/langtools/tools/javac/diags/examples/ValueInstanceFieldExpectedHere.java
> ! test/langtools/tools/javac/diags/examples/ValuesNotSupported.java
> ! test/langtools/tools/javac/diags/examples/WithFieldOperatorDisallowed.java
> ! test/langtools/tools/javac/valhalla/lworld-values/AnonymousValueType.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CanonicalCtorTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CastNullCheckTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ChainedAssignmentTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckClone.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckClone.out
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckCyclicMembership.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckDefaultFlattenable.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckEqualityIdiom.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckEquals.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckExtends.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckExtends.out
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckFinal.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckFinalize.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckFlattenableCycles.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckFlattenableSyntheticFields.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckIdentityHash.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckIdentityHash01.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckMakeDefault.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckMakeDefault.out
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckMultiDimensionalArrayStore.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckNullAssign.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckNullCastable.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckSeparateCompile0.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckStaticFinalAssign.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckSync.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckSynchronized.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckThisLeak.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckThisLeakVBC.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckValueFactoryWithReference.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckValueModifier.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CheckValueModifier.out
> ! test/langtools/tools/javac/valhalla/lworld-values/ConstantPropagationTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/CtorChain.java
> ! test/langtools/tools/javac/valhalla/lworld-values/DocLintSyntheticsTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/EmptyValueTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/EmptyValueTest.out
> ! test/langtools/tools/javac/valhalla/lworld-values/FinalFieldTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/FlattenableFlagFromClass.java
> ! test/langtools/tools/javac/valhalla/lworld-values/FlattenableFlagTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/FlattenableNegativeTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/IllegalByValueTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/IllegalByValueTest.out
> ! test/langtools/tools/javac/valhalla/lworld-values/IllegalByValueTest2.java
> ! test/langtools/tools/javac/valhalla/lworld-values/IllegalByValueTest2.out
> ! test/langtools/tools/javac/valhalla/lworld-values/InferredValueParameterizationTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/InnerValueNew.java
> ! test/langtools/tools/javac/valhalla/lworld-values/LocalValueNew.java
> ! test/langtools/tools/javac/valhalla/lworld-values/MiscThisLeak.java
> ! test/langtools/tools/javac/valhalla/lworld-values/MultiValues.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ParameterizedDefault.java
> ! test/langtools/tools/javac/valhalla/lworld-values/Point.java
> ! test/langtools/tools/javac/valhalla/lworld-values/QualifiedSuperCtor.java
> ! test/langtools/tools/javac/valhalla/lworld-values/QualifiedThisTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/SideEffectTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/SneakThroSuperCallTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/UncheckedDefault.java
> ! test/langtools/tools/javac/valhalla/lworld-values/UnrelatedThisLeak.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ValueBasedWarningsTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ValueBootstrapMethodsTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ValueConstructorRef.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ValueCreationTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ValueNewReadWrite.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ValueOverGenericsTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ValueTypesAttributeTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/ValuesAsRefs.java
> ! test/langtools/tools/javac/valhalla/lworld-values/WithFieldAccessorTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/WithFieldNegativeTests.java
> ! test/langtools/tools/javac/valhalla/lworld-values/WithFieldOfExplicitSelector.java
> ! test/langtools/tools/javac/valhalla/lworld-values/WithFieldOfGenericType.java
> ! test/langtools/tools/javac/valhalla/lworld-values/WithFieldOfImplicitThis.java
> ! test/langtools/tools/javac/valhalla/lworld-values/WithFieldOperatorTest.java
> ! test/langtools/tools/javac/valhalla/lworld-values/WithFieldRuntimeTest.java
>



More information about the valhalla-dev mailing list