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

Remi Forax forax at univ-mlv.fr
Wed Sep 26 14:10:15 UTC 2018


Hi Srikanth,

----- Mail original -----
> De: "Srikanth" <srikanth.adayapalam at oracle.com>
> À: "valhalla-dev" <valhalla-dev at openjdk.java.net>
> Envoyé: Mercredi 26 Septembre 2018 10:05:32
> Objet: Please read: __ByValue is no more. Use `value' as the modifier to signal a value class.

> 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.

ok, i will test that.

> 
> 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.

you can see a local class as a way to name an anonymous class so you need to when you need a name, you also need it when you want to create an anonymous class that implements/extends several types (i.e. workaround the anonymous class syntax limitations), the last cases was when you want a data object/tuple locally for a calculation. 

> 
> Thanks!
> Srikanth
> 
> 

regards,
Rémi

> 
> 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