hg: valhalla/valhalla/jdk: 3 new changesets

maurizio.cimadamore at oracle.com maurizio.cimadamore at oracle.com
Wed Apr 1 15:34:40 UTC 2015


Changeset: cda3913ba61d
Author:    mcimadamore
Date:      2015-04-01 16:28 +0100
URL:       http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/cda3913ba61d

Add dynamic dispatch support for generic invokeinterface/invokevirtual:
Specialized generic method call should resolve dynamic receiver using rsolveOrFail.
Fixed minor SignatureSpecializer bug with erasure.
Added tests for dynamic dispatch.

! src/java.base/share/classes/java/lang/invoke/GenericMethodSpecializer.java
! src/java.base/share/classes/java/net/URLClassLoader.java
! src/java.base/share/classes/valhalla/specializer/SignatureSpecializer.java
! src/java.base/share/classes/valhalla/specializer/Specialize.java
! src/java.base/share/classes/valhalla/specializer/Specializer.java
! test/valhalla/boottest/valhalla/specializer/SignatureSpecializerTest.java
+ test/valhalla/test/valhalla/specializer/DynamicDispatchTest.java

Changeset: 3d6becf4f8f0
Author:    mcimadamore
Date:      2015-04-01 16:32 +0100
URL:       http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/3d6becf4f8f0

Fork java.util into new package java.anyutil to allow for easier experiments.

+ src/java.base/share/classes/java/anyutil/AbstractCollection.java
+ src/java.base/share/classes/java/anyutil/AbstractList.java
+ src/java.base/share/classes/java/anyutil/AbstractMap.java
+ src/java.base/share/classes/java/anyutil/AbstractQueue.java
+ src/java.base/share/classes/java/anyutil/AbstractSequentialList.java
+ src/java.base/share/classes/java/anyutil/AbstractSet.java
+ src/java.base/share/classes/java/anyutil/ArrayDeque.java
+ src/java.base/share/classes/java/anyutil/ArrayList.java
+ src/java.base/share/classes/java/anyutil/ArrayPrefixHelpers.java
+ src/java.base/share/classes/java/anyutil/Arrays.java
+ src/java.base/share/classes/java/anyutil/ArraysParallelSortHelpers.java
+ src/java.base/share/classes/java/anyutil/Collection.java
+ src/java.base/share/classes/java/anyutil/Collections.java
+ src/java.base/share/classes/java/anyutil/ComparableTimSort.java
+ src/java.base/share/classes/java/anyutil/Comparator.java
+ src/java.base/share/classes/java/anyutil/Comparators.java
+ src/java.base/share/classes/java/anyutil/Deque.java
+ src/java.base/share/classes/java/anyutil/DualPivotQuicksort.java
+ src/java.base/share/classes/java/anyutil/EnumMap.java
+ src/java.base/share/classes/java/anyutil/EnumSet.java
+ src/java.base/share/classes/java/anyutil/HashMap.java
+ src/java.base/share/classes/java/anyutil/HashSet.java
+ src/java.base/share/classes/java/anyutil/Iterable.java
+ src/java.base/share/classes/java/anyutil/Iterator.java
+ src/java.base/share/classes/java/anyutil/JumboEnumSet.java
+ src/java.base/share/classes/java/anyutil/LinkedHashMap.java
+ src/java.base/share/classes/java/anyutil/LinkedHashSet.java
+ src/java.base/share/classes/java/anyutil/LinkedList.java
+ src/java.base/share/classes/java/anyutil/List.java
+ src/java.base/share/classes/java/anyutil/ListIterator.java
+ src/java.base/share/classes/java/anyutil/Map.java
+ src/java.base/share/classes/java/anyutil/NavigableMap.java
+ src/java.base/share/classes/java/anyutil/NavigableSet.java
+ src/java.base/share/classes/java/anyutil/Optional.java
+ src/java.base/share/classes/java/anyutil/OptionalDouble.java
+ src/java.base/share/classes/java/anyutil/OptionalInt.java
+ src/java.base/share/classes/java/anyutil/OptionalLong.java
+ src/java.base/share/classes/java/anyutil/PrimitiveIterator.java
+ src/java.base/share/classes/java/anyutil/Queue.java
+ src/java.base/share/classes/java/anyutil/Random.java
+ src/java.base/share/classes/java/anyutil/RegularEnumSet.java
+ src/java.base/share/classes/java/anyutil/Set.java
+ src/java.base/share/classes/java/anyutil/SortedMap.java
+ src/java.base/share/classes/java/anyutil/SortedSet.java
+ src/java.base/share/classes/java/anyutil/Spliterator.java
+ src/java.base/share/classes/java/anyutil/Spliterators.java
+ src/java.base/share/classes/java/anyutil/TimSort.java
+ src/java.base/share/classes/java/anyutil/TreeMap.java
+ src/java.base/share/classes/java/anyutil/TreeSet.java
+ src/java.base/share/classes/java/anyutil/Tripwire.java
+ src/java.base/share/classes/java/anyutil/concurrent/BlockingDeque.java
+ src/java.base/share/classes/java/anyutil/concurrent/BlockingQueue.java
+ src/java.base/share/classes/java/anyutil/concurrent/ConcurrentHashMap.java
+ src/java.base/share/classes/java/anyutil/concurrent/ConcurrentLinkedDeque.java
+ src/java.base/share/classes/java/anyutil/concurrent/ConcurrentLinkedQueue.java
+ src/java.base/share/classes/java/anyutil/concurrent/ConcurrentMap.java
+ src/java.base/share/classes/java/anyutil/concurrent/CopyOnWriteArrayList.java
+ src/java.base/share/classes/java/anyutil/concurrent/CopyOnWriteArraySet.java
+ src/java.base/share/classes/java/anyutil/concurrent/LinkedBlockingDeque.java
+ src/java.base/share/classes/java/anyutil/concurrent/LinkedBlockingQueue.java
+ src/java.base/share/classes/java/anyutil/concurrent/LinkedTransferQueue.java
+ src/java.base/share/classes/java/anyutil/concurrent/ThreadLocalRandom.java
+ src/java.base/share/classes/java/anyutil/concurrent/TransferQueue.java
+ src/java.base/share/classes/java/anyutil/function/BiConsumer.java
+ src/java.base/share/classes/java/anyutil/function/BiFunction.java
+ src/java.base/share/classes/java/anyutil/function/BiPredicate.java
+ src/java.base/share/classes/java/anyutil/function/BinaryOperator.java
+ src/java.base/share/classes/java/anyutil/function/BooleanSupplier.java
+ src/java.base/share/classes/java/anyutil/function/Consumer.java
+ src/java.base/share/classes/java/anyutil/function/DoubleBinaryOperator.java
+ src/java.base/share/classes/java/anyutil/function/DoubleConsumer.java
+ src/java.base/share/classes/java/anyutil/function/DoubleFunction.java
+ src/java.base/share/classes/java/anyutil/function/DoublePredicate.java
+ src/java.base/share/classes/java/anyutil/function/DoubleSupplier.java
+ src/java.base/share/classes/java/anyutil/function/DoubleToIntFunction.java
+ src/java.base/share/classes/java/anyutil/function/DoubleToLongFunction.java
+ src/java.base/share/classes/java/anyutil/function/DoubleUnaryOperator.java
+ src/java.base/share/classes/java/anyutil/function/Function.java
+ src/java.base/share/classes/java/anyutil/function/IntBinaryOperator.java
+ src/java.base/share/classes/java/anyutil/function/IntConsumer.java
+ src/java.base/share/classes/java/anyutil/function/IntFunction.java
+ src/java.base/share/classes/java/anyutil/function/IntPredicate.java
+ src/java.base/share/classes/java/anyutil/function/IntSupplier.java
+ src/java.base/share/classes/java/anyutil/function/IntToDoubleFunction.java
+ src/java.base/share/classes/java/anyutil/function/IntToLongFunction.java
+ src/java.base/share/classes/java/anyutil/function/IntUnaryOperator.java
+ src/java.base/share/classes/java/anyutil/function/LongBinaryOperator.java
+ src/java.base/share/classes/java/anyutil/function/LongConsumer.java
+ src/java.base/share/classes/java/anyutil/function/LongFunction.java
+ src/java.base/share/classes/java/anyutil/function/LongPredicate.java
+ src/java.base/share/classes/java/anyutil/function/LongSupplier.java
+ src/java.base/share/classes/java/anyutil/function/LongToDoubleFunction.java
+ src/java.base/share/classes/java/anyutil/function/LongToIntFunction.java
+ src/java.base/share/classes/java/anyutil/function/LongUnaryOperator.java
+ src/java.base/share/classes/java/anyutil/function/ObjDoubleConsumer.java
+ src/java.base/share/classes/java/anyutil/function/ObjIntConsumer.java
+ src/java.base/share/classes/java/anyutil/function/ObjLongConsumer.java
+ src/java.base/share/classes/java/anyutil/function/Predicate.java
+ src/java.base/share/classes/java/anyutil/function/Supplier.java
+ src/java.base/share/classes/java/anyutil/function/ToDoubleBiFunction.java
+ src/java.base/share/classes/java/anyutil/function/ToDoubleFunction.java
+ src/java.base/share/classes/java/anyutil/function/ToIntBiFunction.java
+ src/java.base/share/classes/java/anyutil/function/ToIntFunction.java
+ src/java.base/share/classes/java/anyutil/function/ToLongBiFunction.java
+ src/java.base/share/classes/java/anyutil/function/ToLongFunction.java
+ src/java.base/share/classes/java/anyutil/function/UnaryOperator.java
+ src/java.base/share/classes/java/anyutil/stream/AbstractPipeline.java
+ src/java.base/share/classes/java/anyutil/stream/AbstractShortCircuitTask.java
+ src/java.base/share/classes/java/anyutil/stream/AbstractSpinedBuffer.java
+ src/java.base/share/classes/java/anyutil/stream/AbstractTask.java
+ src/java.base/share/classes/java/anyutil/stream/BaseStream.java
+ src/java.base/share/classes/java/anyutil/stream/Collector.java
+ src/java.base/share/classes/java/anyutil/stream/Collectors.java
+ src/java.base/share/classes/java/anyutil/stream/DistinctOps.java
+ src/java.base/share/classes/java/anyutil/stream/DoublePipeline.java
+ src/java.base/share/classes/java/anyutil/stream/DoubleStream.java
+ src/java.base/share/classes/java/anyutil/stream/FindOps.java
+ src/java.base/share/classes/java/anyutil/stream/ForEachOps.java
+ src/java.base/share/classes/java/anyutil/stream/IntPipeline.java
+ src/java.base/share/classes/java/anyutil/stream/IntStream.java
+ src/java.base/share/classes/java/anyutil/stream/LongPipeline.java
+ src/java.base/share/classes/java/anyutil/stream/LongStream.java
+ src/java.base/share/classes/java/anyutil/stream/MatchOps.java
+ src/java.base/share/classes/java/anyutil/stream/Node.java
+ src/java.base/share/classes/java/anyutil/stream/Nodes.java
+ src/java.base/share/classes/java/anyutil/stream/PipelineHelper.java
+ src/java.base/share/classes/java/anyutil/stream/ReduceOps.java
+ src/java.base/share/classes/java/anyutil/stream/ReferencePipeline.java
+ src/java.base/share/classes/java/anyutil/stream/Sink.java
+ src/java.base/share/classes/java/anyutil/stream/SliceOps.java
+ src/java.base/share/classes/java/anyutil/stream/SortedOps.java
+ src/java.base/share/classes/java/anyutil/stream/SpinedBuffer.java
+ src/java.base/share/classes/java/anyutil/stream/Stream.java
+ src/java.base/share/classes/java/anyutil/stream/StreamOpFlag.java
+ src/java.base/share/classes/java/anyutil/stream/StreamShape.java
+ src/java.base/share/classes/java/anyutil/stream/StreamSpliterators.java
+ src/java.base/share/classes/java/anyutil/stream/StreamSupport.java
+ src/java.base/share/classes/java/anyutil/stream/Streams.java
+ src/java.base/share/classes/java/anyutil/stream/TerminalOp.java
+ src/java.base/share/classes/java/anyutil/stream/TerminalSink.java
+ src/java.base/share/classes/java/anyutil/stream/Tripwire.java

Changeset: 43b70c3e1266
Author:    mcimadamore
Date:      2015-04-01 16:34 +0100
URL:       http://hg.openjdk.java.net/valhalla/valhalla/jdk/rev/43b70c3e1266

Add support for prespecialization of JDK classes:
In order to avoid bootstrapping issues, JDK classes should be pre-specialized during
the 'images' step of the build.

! make/CreateJars.gmk
+ src/java.base/share/classes/valhalla/specializer/Prespecialize.java
! src/java.base/share/classes/valhalla/specializer/Specializer.java



More information about the valhalla-dev mailing list