hg: valhalla/valhalla: Scanner, parser, semantic analysis and attribution support for value types (original) (raw)
Srikanth srikanth.adayapalam at oracle.com
Mon Feb 5 10:58:09 UTC 2018
- Previous message (by thread): hg: valhalla/valhalla: Scanner, parser, semantic analysis and attribution support for value types
- Next message (by thread): [Nestmates] RFR: 8196320: [Nestmates] Restore the old enclosing-class based isSamePackageMember check in sun/invoke/util/VerifyAccess.java
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Monday 05 February 2018 04:11 PM, srikanth.adayapalam at oracle.com wrote:
Changeset: 59af66a8c1be Author: sadayapalam Date: 2018-02-05 16:07 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla/rev/59af66a8c1be
Scanner, parser, semantic analysis and attribution support for value types
Notes:
- Reversed the inadvertent push to "exp" branch and pushed an equivalent change set to lworld branch - This implements scanner, parser, semantic analysis and attribution support in Javac for value types - I have eliminated all the code in java.lang.__Value leaving just the skeleton of this as a (non-value) class. Removing it altogether is possible only after JVM and JDK purge all references to __Value. - There is one langtools test that is failing (tools/jdeprscan/tests/jdk/jdeprscan/TestRelease.java): I didn't invest time in this failure as it has to do with j.l.__Value. Once this type is completely purged, the test should be green (I think) - No code generation support yet.
Follow ups:
- To align javac's treatment of null assignment to values, casting null to values and null comparison against values with the latest decisions of EG. - Determine javac's behavior for == and != operator with at least one statically discernible value instance operand (at present results in a compile time error)
Thanks! Srikanth
_! src/java.base/share/classes/java/lang/Value.java ! src/java.compiler/share/classes/javax/lang/model/element/Modifier.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Flags.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Lint.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symbol.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Attr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Check.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java - src/jdk.compiler/share/classes/com/sun/tools/javac/comp/ValueCapableClassAttr.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ByteCodes.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Code.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Items.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac.properties ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! test/langtools/tools/javac/diags/CheckResourceKeys.java ! test/langtools/tools/javac/diags/examples.not-yet.txt - test/langtools/tools/javac/diags/examples/ValueTypesDisabled.java + test/langtools/tools/javac/diags/examples/ValuesNotSupported.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/CheckCyclicMembership.out + test/langtools/tools/javac/valhalla/lworld-values/CheckEquals.java + test/langtools/tools/javac/valhalla/lworld-values/CheckEquals.out + 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/CheckFinal.out + test/langtools/tools/javac/valhalla/lworld-values/CheckFinalize.java + test/langtools/tools/javac/valhalla/lworld-values/CheckFinalize.out + test/langtools/tools/javac/valhalla/lworld-values/CheckIdentityHash.java + test/langtools/tools/javac/valhalla/lworld-values/CheckIdentityHash.out + test/langtools/tools/javac/valhalla/lworld-values/CheckIdentityHash01.java + test/langtools/tools/javac/valhalla/lworld-values/CheckIdentityHash01.out + 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/CheckNullAssign.java + test/langtools/tools/javac/valhalla/lworld-values/CheckNullAssign.out + test/langtools/tools/javac/valhalla/lworld-values/CheckNullCastable.java + test/langtools/tools/javac/valhalla/lworld-values/CheckNullCastable.out + test/langtools/tools/javac/valhalla/lworld-values/CheckStaticValueFactory.java + test/langtools/tools/javac/valhalla/lworld-values/CheckStaticValueFactory.out + test/langtools/tools/javac/valhalla/lworld-values/CheckSuperCompileOnly.java + test/langtools/tools/javac/valhalla/lworld-values/CheckSync.java + test/langtools/tools/javac/valhalla/lworld-values/CheckSync.out + test/langtools/tools/javac/valhalla/lworld-values/CheckSynchronized.java + test/langtools/tools/javac/valhalla/lworld-values/CheckSynchronized.out + test/langtools/tools/javac/valhalla/lworld-values/CheckValueFactoryWithReference.java + test/langtools/tools/javac/valhalla/lworld-values/CheckValueFactoryWithReference.out + 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/Point.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckClone.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckClone.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckCyclicMembership.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckCyclicMembership.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckEquals.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckEquals.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckExtends.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckExtends.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckFinal.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckFinal.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckFinalize.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckFinalize.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckIdentityHash.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckIdentityHash.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckIdentityHash01.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckIdentityHash01.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckNullAssign.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckNullAssign.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckNullCastable.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckNullCastable.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckSync.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckSync.out - test/langtools/tools/javac/valhalla/minimalvalues/CheckSynchronized.java - test/langtools/tools/javac/valhalla/minimalvalues/CheckSynchronized.out - test/langtools/tools/javac/valhalla/minimalvalues/ClassFileReaderTest.java - test/langtools/tools/javac/valhalla/minimalvalues/ClassFileReaderTest.out - test/langtools/tools/javac/valhalla/minimalvalues/Point.java - test/langtools/tools/javac/valhalla/values/CheckClone.java - test/langtools/tools/javac/valhalla/values/CheckClone.out - test/langtools/tools/javac/valhalla/values/CheckCyclicMembership.java - test/langtools/tools/javac/valhalla/values/CheckCyclicMembership.out - test/langtools/tools/javac/valhalla/values/CheckEquals.java - test/langtools/tools/javac/valhalla/values/CheckEquals.out - test/langtools/tools/javac/valhalla/values/CheckExtends.java - test/langtools/tools/javac/valhalla/values/CheckExtends.out - test/langtools/tools/javac/valhalla/values/CheckFinal.java - test/langtools/tools/javac/valhalla/values/CheckFinal.out - test/langtools/tools/javac/valhalla/values/CheckFinalize.java - test/langtools/tools/javac/valhalla/values/CheckFinalize.out - test/langtools/tools/javac/valhalla/values/CheckFlags.java - test/langtools/tools/javac/valhalla/values/CheckIdentityHash.java - test/langtools/tools/javac/valhalla/values/CheckIdentityHash.out - test/langtools/tools/javac/valhalla/values/CheckIdentityHash01.java - test/langtools/tools/javac/valhalla/values/CheckIdentityHash01.out - test/langtools/tools/javac/valhalla/values/CheckInner.java - test/langtools/tools/javac/valhalla/values/CheckMakeDefault.java - test/langtools/tools/javac/valhalla/values/CheckMakeDefault.out - test/langtools/tools/javac/valhalla/values/CheckNoInvokeDirect.java - test/langtools/tools/javac/valhalla/values/CheckNullAssign.java - test/langtools/tools/javac/valhalla/values/CheckNullAssign.out - test/langtools/tools/javac/valhalla/values/CheckNullCastable.java - test/langtools/tools/javac/valhalla/values/CheckNullCastable.out - test/langtools/tools/javac/valhalla/values/CheckStaticValueFactory.java - test/langtools/tools/javac/valhalla/values/CheckStaticValueFactory.out - test/langtools/tools/javac/valhalla/values/CheckSuper.java - test/langtools/tools/javac/valhalla/values/CheckSuperCompileOnly.java - test/langtools/tools/javac/valhalla/values/CheckSync.java - test/langtools/tools/javac/valhalla/values/CheckSync.out - test/langtools/tools/javac/valhalla/values/CheckSynchronized.java - test/langtools/tools/javac/valhalla/values/CheckSynchronized.out - test/langtools/tools/javac/valhalla/values/CheckValueFactoryWithReference.java - test/langtools/tools/javac/valhalla/values/CheckValueFactoryWithReference.out - test/langtools/tools/javac/valhalla/values/CheckValueModifier.java - test/langtools/tools/javac/valhalla/values/CheckValueModifier.out - test/langtools/tools/javac/valhalla/values/Point.java - test/langtools/tools/javac/valhalla/values/VOpcodeTest.java - test/langtools/tools/javac/valhalla/values/ValueCreationTest.java - test/langtools/tools/javac/valhalla/values/WideOpcodeTest.java
- Previous message (by thread): hg: valhalla/valhalla: Scanner, parser, semantic analysis and attribution support for value types
- Next message (by thread): [Nestmates] RFR: 8196320: [Nestmates] Restore the old enclosing-class based isSamePackageMember check in sun/invoke/util/VerifyAccess.java
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]