comparison CHANGELOG.md @ 14850:fbae9be45c95

Merge.
author Josef Eisl <josef.eisl@jku.at>
date Wed, 26 Mar 2014 20:44:11 +0100
parents 7608c74e14b6
children 45045ab19008
comparison
equal deleted inserted replaced
14849:97a0878202c2 14850:fbae9be45c95
1 # GraalVM Changelog 1 # GraalVM Changelog
2 2
3 ## `tip` 3 ## `tip`
4 ### Graal 4 ### Graal
5 * New methods for querying memory usage of individual objects and object graphs in Graal API (MetaAccessProvider#getMemorySize, MetaUtil#getMemorySizeRecursive). 5 * ...
6 * New (tested) invariant that equality comparisons for JavaType/JavaMethod/JavaField values use .equals() instead of '=='. 6 ### Truffle
7 * ...
8
9 ## Version 0.2
10 25-Mar-2014, [Repository Revision](http://hg.openjdk.java.net/graal/graal/rev/graal-0.2)
11
12 ### Graal
13 * Use HotSpot stubs for certain array copy operations.
14 * New methods for querying memory usage of individual objects and object graphs in Graal API (`MetaAccessProvider#getMemorySize`, `MetaUtil#getMemorySizeRecursive`).
15 * Added tiered configuration (C1 + Graal).
16 * Initial security model for Graal [GRAAL-22](https://bugs.openjdk.java.net/browse/GRAAL-22).
17 * New (tested) invariant that equality comparisons for `JavaType`/`JavaMethod`/`JavaField` values use `.equals()` instead of `==`.
7 * Made graph caching compilation-local. 18 * Made graph caching compilation-local.
19 * Added AllocSpy tool for analyzing allocation in Graal using the [Java Allocation Instrumenter](https://code.google.com/p/java-allocation-instrumenter/).
20 * Initial support for memory arithmetic operations on x86
8 21
9 ### Truffle 22 ### Truffle
10 * New API TruffleRuntime#createCallNode to create call nodes and to give the runtime system control over its implementation. 23 * New API `TruffleRuntime#createCallNode` to create call nodes and to give the runtime system control over its implementation.
11 * New API RootNode#getCachedCallNodes to get a weak set of CallNodes that have registered to call the RootNode. 24 * New API `RootNode#getCachedCallNodes` to get a weak set of `CallNode`s that have registered to call the `RootNode`.
12 * New API to split the AST of a call-site context sensitively. CallNode#split, CallNode#isSplittable, CallNode#getSplitCallTarget, CallNode#getCurrentCallTarget, RootNode#isSplittable, RootNode#split. 25 * New API to split the AST of a call-site context sensitively. `CallNode#split`, `CallNode#isSplittable`, `CallNode#getSplitCallTarget`, `CallNode#getCurrentCallTarget`, `RootNode#isSplittable`, `RootNode#split`.
13 * New API to inline a call-site into the call-graph. CallNode#isInlinable, CallNode#inline, CallNode#isInlined. 26 * New API to inline a call-site into the call-graph. `CallNode#isInlinable`, `CallNode#inline`, `CallNode#isInlined`.
14 * New API for the runtime environment to register CallTargets as caller to the RootNode. CallNode#registerCallTarget. 27 * New API for the runtime environment to register `CallTarget`s as caller to the `RootNode`. `CallNode#registerCallTarget`.
15 * Improved API for counting nodes in Truffle ASTS. NodeUtil#countNodes can be used with a NodeFilter filter Nodes. 28 * Improved API for counting nodes in Truffle ASTs. `NodeUtil#countNodes` can be used with a `NodeFilter`.
16 * New API to declare the cost of a Node for use in runtime environment specific heuristics. See NodeCost, Node#getCost() and NodeInfo#cost(). 29 * New API to declare the cost of a Node for use in runtime environment specific heuristics. See `NodeCost`, `Node#getCost` and `NodeInfo#cost`.
17 * Removed old API for NodeInfo#Kind and NodeInfo#kind(). As a replacement the new Node cost API can be used. 30 * Removed old API for `NodeInfo#Kind` and `NodeInfo#kind`. As a replacement the new `NodeCost` API can be used.
18 * Changed Node#replace reason parameter type to CharSequence (to allow for lazy string building) 31 * Changed `Node#replace` reason parameter type to `CharSequence` (to enable lazy string building)
19 * Deprecated Node#adoptChild and Node#adoptChild, no longer needed in node constructor 32 * Deprecated `Node#adoptChild` and `Node#adoptChild`, no longer needed in node constructor
20 * New Node#insert method for inserting new nodes into the tree (formerly adoptChild) 33 * New `Node#insert` method for inserting new nodes into the tree (formerly `adoptChild`)
21 * New Node#adoptChildren() helper method that adopts all (direct and indirect) children of a node 34 * New `Node#adoptChildren` helper method that adopts all (direct and indirect) children of a node
22 * New API Node#atomic for atomic tree operations 35 * New API `Node#atomic` for atomic tree operations
23 * Made Node#replace thread-safe 36 * Made `Node#replace` thread-safe
24
25 37
26 38
27 ## Version 0.1 39 ## Version 0.1
28 5-Feb-2014, [Repository Revision](http://hg.openjdk.java.net/graal/graal/rev/b124e22eb772) 40 5-Feb-2014, [Repository Revision](http://hg.openjdk.java.net/graal/graal/rev/graal-0.1)
29 41
30 ### Graal 42 ### Graal
31 43
32 * Initial version of a dynamic Java compiler written in Java. 44 * Initial version of a dynamic Java compiler written in Java.
33 * Support for multiple co-existing GPU backends ([GRAAL-1](https://bugs.openjdk.java.net/browse/GRAAL-1)). 45 * Support for multiple co-existing GPU backends ([GRAAL-1](https://bugs.openjdk.java.net/browse/GRAAL-1)).