From john.r.rose at oracle.com Wed Aug 3 21:41:19 2016 From: john.r.rose at oracle.com (John Rose) Date: Wed, 3 Aug 2016 14:41:19 -0700 Subject: FTR: heisenbox factory RFE filed Message-ID: Following a suggestion by R?mi Forax: experimental hook for creating heisenboxes https://bugs.openjdk.java.net/browse/JDK-8163133 Description: > We need a way to build "heisenboxes", which are value boxes with value-based semantics. > > Example API (using Unsafe as the carrier): > > Class boxType = Integer.class, valType = int.class; > MethodHandle hFactory = Unsafe.findFeisenBoxConstructor(boxType); > assert hFactory.type().equals( methodType(boxType, boxType) ); > MethodHandle boxer = identity(valType).asType(methodType(boxType, valType)); > MethodHandle hBoxer = filterReturnValue(boxer, hFactory); > > The boxes returned from a heisen-boxing function have suppressed equality semantics, allowing easier optimization (free from the need for escape analysis). In exchange, their identity semantics (as detected by op==/acmp and synchronization/monitorenter) are reduced, in a VM-dependent way. > > Typical reduced semantics: Synch. attempts cause an exception (IMSE), and pointer comparisons are guaranteed to return false if the boxed values differ, with no other guarantees. > > This feature will be experimental, so that we can try a range of reduced semantics. From srikanth.adayapalam at oracle.com Fri Aug 26 11:24:43 2016 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Fri, 26 Aug 2016 11:24:43 +0000 Subject: hg: valhalla/valhalla/langtools: Summary: Erase erasure from the compiler pipeline. Message-ID: <201608261124.u7QBOi5C003642@aojmv0008.oracle.com> Changeset: 9204dd938160 Author: sadayapalam Date: 2016-08-26 16:54 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/9204dd938160 Summary: Erase erasure from the compiler pipeline. ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Type.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/IndifierTranslator.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/SpecializeTypes.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/StringConcat.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! test/tools/javac/tree/8067914/E.out ! test/tools/javac/valhalla/typespec/Augment03.java ! test/tools/javac/valhalla/typespec/items/m3/tests/TestSyntheticCast.java From maurizio.cimadamore at oracle.com Fri Aug 26 13:20:08 2016 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 26 Aug 2016 13:20:08 +0000 Subject: hg: valhalla/valhalla/langtools: Enhancement: add compiler support for ConstantDynamic Message-ID: <201608261320.u7QDK8Yp005505@aojmv0008.oracle.com> Changeset: a1f724d412b0 Author: mcimadamore Date: 2016-08-26 14:19 +0100 URL: http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/a1f724d412b0 Enhancement: add compiler support for ConstantDynamic * add javac/javap support for CONSTANT_ConstantDynamic * add trivial use of constant dynamic for synthetizing primitive class literals (enabled with -XDdynamicClassConstants) + src/jdk.compiler/share/classes/com/sun/tools/javac/code/Dynamic.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/comp/IndifierTranslator.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/SpecializeTypes.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassFile.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/jvm/Pool.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/PoolReader.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/PoolWriter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/StringConcat.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/ClassTranslator.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/ClassWriter.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/ConstantPool.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/Dependencies.java ! src/jdk.jdeps/share/classes/com/sun/tools/classfile/ReferenceFinder.java ! src/jdk.jdeps/share/classes/com/sun/tools/javap/ConstantWriter.java ! test/tools/javac/lambda/ByteCodeTest.java ! test/tools/javac/lambda/TestBootstrapMethodsCount.java ! test/tools/javac/lambda/TestInvokeDynamic.java From maurizio.cimadamore at oracle.com Fri Aug 26 16:57:00 2016 From: maurizio.cimadamore at oracle.com (maurizio.cimadamore at oracle.com) Date: Fri, 26 Aug 2016 16:57:00 +0000 Subject: hg: valhalla/valhalla/langtools: Enhancement: fine grained minor version Message-ID: <201608261657.u7QGv0vF027787@aojmv0008.oracle.com> Changeset: 7c372b827541 Author: mcimadamore Date: 2016-08-26 17:56 +0100 URL: http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/7c372b827541 Enhancement: fine grained minor version * use different minor version masks for different features: 1 = CP contains type-entries 2 = CP contains ConstantDynamic entries Of course, masks can be or-ed. ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/PoolWriter.java From brian.goetz at oracle.com Fri Aug 26 21:42:55 2016 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Fri, 26 Aug 2016 21:42:55 +0000 Subject: hg: valhalla/valhalla/langtools: Adjust names used in ConstantDynamic translation Message-ID: <201608262142.u7QLgtJX003216@aojmv0008.oracle.com> Changeset: 801acf5df528 Author: briangoetz Date: 2016-08-26 17:42 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/801acf5df528 Adjust names used in ConstantDynamic translation ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Symtab.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/main/Option.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/util/Names.java From brian.goetz at oracle.com Fri Aug 26 21:49:24 2016 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Fri, 26 Aug 2016 21:49:24 +0000 Subject: hg: valhalla/valhalla/jdk: Prototype of ConstantDynamic Message-ID: <201608262149.u7QLnOG4004906@aojmv0008.oracle.com> Changeset: 780c8eba356a Author: briangoetz Date: 2016-08-26 17:49 -0400 URL: http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/780c8eba356a Prototype of ConstantDynamic + src/java.base/share/classes/java/lang/invoke/ConstantDynamic.java ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/ClassWriter.java + src/java.base/share/classes/jdk/internal/org/objectweb/asm/DynConstant.java ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/Item.java ! src/java.base/share/classes/jdk/internal/org/objectweb/asm/util/TraceClassVisitor.java + src/java.base/share/classes/valhalla/constantdyn/ConstantDynRewriter.java From john.r.rose at oracle.com Sat Aug 27 05:33:38 2016 From: john.r.rose at oracle.com (John Rose) Date: Fri, 26 Aug 2016 22:33:38 -0700 Subject: minimal value types proposal Message-ID: <2DBFF5F1-4265-4D22-B2F9-F22C497CDECF@oracle.com> Brian and I have been working on finding a minimal subset of value-type functionality that will allow current experiments to move forward. Here is what we have come up with. Please let us know what you think. (I sent a separate notification to valhalla-spec-experts, for those who are unable to participate on this dev list or browse links on OJN.) ? John Link: http://cr.openjdk.java.net/~jrose/values/shady-values.html Markdown: http://cr.openjdk.java.net/~jrose/values/shady-values.md From srikanth.adayapalam at oracle.com Wed Aug 31 23:37:37 2016 From: srikanth.adayapalam at oracle.com (srikanth.adayapalam at oracle.com) Date: Wed, 31 Aug 2016 23:37:37 +0000 Subject: hg: valhalla/valhalla/langtools: Summary: Better method name, fold common code into subroutine. Message-ID: <201608312337.u7VNbbbC011970@aojmv0008.oracle.com> Changeset: 93beb80dcc65 Author: sadayapalam Date: 2016-09-01 05:07 +0530 URL: http://hg.openjdk.java.net/valhalla/valhalla/langtools/rev/93beb80dcc65 Summary: Better method name, fold common code into subroutine. ! src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/jvm/StringConcat.java ! src/jdk.compiler/share/classes/com/sun/tools/javac/tree/JCTree.java