annotate CHANGELOG.md @ 22711:3ffc0d85d79a

exclude JAVA_ALLOCATION_INSTRUMENTER from GRAAL_TEST due to license conflict
author Doug Simon <doug.simon@oracle.com>
date Mon, 28 Sep 2015 15:08:41 +0200
parents a05f318a4a08
children 27a5f571b013
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13920
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
1 # GraalVM Changelog
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
2
22226
3c622007e098 Update changelog for 0.8
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 22169
diff changeset
3 This changelog summarizes major changes between Graal versions relevant to developers building technology on top of Graal. The main focus is on APIs exported by Graal.
18731
97f2038b7c4a changelog: graal-0.6
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18730
diff changeset
4
13920
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
5 ## `tip`
22226
3c622007e098 Update changelog for 0.8
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 22169
diff changeset
6 ...
3c622007e098 Update changelog for 0.8
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 22169
diff changeset
7
3c622007e098 Update changelog for 0.8
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 22169
diff changeset
8 ## Version 0.8
3c622007e098 Update changelog for 0.8
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 22169
diff changeset
9 15-Jul-2015, [Repository Revision](http://hg.openjdk.java.net/graal/graal/shortlog/graal-0.8)
21229
485ed7778c97 CHANGELOG: add SSA LIR.
Josef Eisl <josef.eisl@jku.at>
parents: 21164
diff changeset
10 ### Graal
22168
dc9761fa03d7 CHANGELOG: SSA LIR is now default.
Josef Eisl <josef.eisl@jku.at>
parents: 21240
diff changeset
11 * Add support for constructing low-level IR in SSA form (default behavior).
dc9761fa03d7 CHANGELOG: SSA LIR is now default.
Josef Eisl <josef.eisl@jku.at>
parents: 21240
diff changeset
12 * Add support for SSA linear scan register allocation (default behavior).
22169
af6cc957bf04 Remove dummy parameter `includeAbstract` from `ResolvedJavaType#resolveMethod()`;
Josef Eisl <josef.eisl@jku.at>
parents: 22168
diff changeset
13 * Remove dummy parameter `includeAbstract` from `ResolvedJavaType#resolveMethod()`; The behavior is now the `includeAbstract==true` case. The `includeAbstract==false` variant is available via `resolveConcreteMethod()`.
22229
a05f318a4a08 Complete changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 22226
diff changeset
14 * HotSpot modifications have been renamed to JVMCI in preparation for [JEP 243](http://openjdk.java.net/jeps/243). As a result HotSpot options containing "Graal" have been changed to "JVMCI" (e.g., -XX:+BootstrapJVMCI).
a05f318a4a08 Complete changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 22226
diff changeset
15 * All the APIs used to interface with the VM (`api.meta`, `api.code` etc.) have been moved to `jdk.internal.jvmci` packages (e.g., `jdk.internal.jvmci.meta`).
a05f318a4a08 Complete changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 22226
diff changeset
16 * Fast JVMCI services do not need to implement an interface anymore, implementations simply need to be annotated with `jdk.internal.jvmci.service.ServiceProvider`.
21229
485ed7778c97 CHANGELOG: add SSA LIR.
Josef Eisl <josef.eisl@jku.at>
parents: 21164
diff changeset
17
485ed7778c97 CHANGELOG: add SSA LIR.
Josef Eisl <josef.eisl@jku.at>
parents: 21164
diff changeset
18 ### Truffle
22226
3c622007e098 Update changelog for 0.8
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 22169
diff changeset
19 * Moved Truffle to it own [repository](http://lafo.ssw.uni-linz.ac.at/hg/truffle/)
21164
a394890fd474 Prepare changelog for next version
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21154
diff changeset
20
a394890fd474 Prepare changelog for next version
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21154
diff changeset
21 ## Version 0.7
a394890fd474 Prepare changelog for next version
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21154
diff changeset
22 29-Apr-2015, [Repository Revision](http://hg.openjdk.java.net/graal/graal/shortlog/graal-0.7)
13920
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
23 ### Graal
21154
271eee87201c Update readme and changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21042
diff changeset
24 * By default the Graal code is now only compiled by C1 which should improve application start-up.
21042
38b39b75500c Mention u40 merge in changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21040
diff changeset
25 * Merged with jdk8u40-b25.
21154
271eee87201c Update readme and changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21042
diff changeset
26 * The Graal class loader now loads all lib/graal/graal*.jar jars.
21164
a394890fd474 Prepare changelog for next version
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21154
diff changeset
27 * Fast Graal services (see com.oracle.graal.api.runtime.Service) are now looked up using service files in lib/graal/services.
18823
5a21cac1968f Add utilities ModifiersProvider#isConcrete, ResolvedJavaMethod#hasReceiver, ResolvedJavaMethod#hasBytecodes to Graal API.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18816
diff changeset
28 * Add utilities ModifiersProvider#isConcrete, ResolvedJavaMethod#hasBytecodes, ResolvedJavaMethod#hasReceiver to Graal API.
19045
862997951c0a Add GraalDirectives API to influence compiler behavior.
Roland Schatz <roland.schatz@oracle.com>
parents: 18823
diff changeset
29 * Add `GraalDirectives` API, containing methods to influence compiler behavior for unittests and microbenchmarks.
19278
db637487949a Add LIRSuites CHANGELOG entry.
Josef Eisl <josef.eisl@jku.at>
parents: 19142
diff changeset
30 * Introduce `LIRSuites`, an extensible configuration for the low-level compiler pipeline.
18731
97f2038b7c4a changelog: graal-0.6
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18730
diff changeset
31
97f2038b7c4a changelog: graal-0.6
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18730
diff changeset
32 ### Truffle
21154
271eee87201c Update readme and changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21042
diff changeset
33 * New, faster partial evaluation (no more TruffleCache).
271eee87201c Update readme and changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21042
diff changeset
34 * If a method is annotated with @ExplodeLoop and contains a loop that can not be exploded, partial evaluation will fail.
271eee87201c Update readme and changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21042
diff changeset
35 * Truffle background compilation is now multi-threaded.
271eee87201c Update readme and changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents: 21042
diff changeset
36 * Experimental merge=true flag for @ExplodeLoop allows building bytecode-based interpreters (see BytecodeInterpreterPartialEvaluationTest).
18750
8a758dce7d80 Truffle: added new deepCopy method to Node.
Christian Humer <christian.humer@gmail.com>
parents: 18731
diff changeset
37 * Added Node#deepCopy as primary method to copy ASTs.
18816
972009398b30 Disable inlining across Truffle boundary by default.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18810
diff changeset
38 * Disable inlining across Truffle boundary by default. New option TruffleInlineAcrossTruffleBoundary default false.
19142
64e6c7b83515 Truffle/Instrumentation: update ChangeLog
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 19045
diff changeset
39 * Node.replace(Node) now guards against non-assignable replacement, and Node.isReplacementSafe(Node) checks in advance.
64e6c7b83515 Truffle/Instrumentation: update ChangeLog
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 19045
diff changeset
40 * Instrumentation: AST "probing" is now safe and implemented by Node.probe(); language implementors need only implement Node.isInstrumentable() and Node.createWrapperNode().
64e6c7b83515 Truffle/Instrumentation: update ChangeLog
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 19045
diff changeset
41 * Instrumentation: A new framework defines a category of simple "instrumentation tools" that can be created, configured, and installed, after which they autonomously collect execution data of some kind.
64e6c7b83515 Truffle/Instrumentation: update ChangeLog
Michael Van De Vanter <michael.van.de.vanter@oracle.com>
parents: 19045
diff changeset
42 * Instrumentation: A new example "instrumentation tool" is a language-agnostic collector of code coverage information (CoverageTracker); there are two other examples.
19975
cd59085cf0d8 Truffle: remove Node#onAdopt() hook
Andreas Woess <andreas.woess@oracle.com>
parents: 19296
diff changeset
43 * Removed unsafe compiler directives; use `sun.misc.Unsafe` instead.
cd59085cf0d8 Truffle: remove Node#onAdopt() hook
Andreas Woess <andreas.woess@oracle.com>
parents: 19296
diff changeset
44 * Removed `Node#onAdopt()`.
18731
97f2038b7c4a changelog: graal-0.6
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18730
diff changeset
45
18810
aaff308f290c Truffle-DSL: started Truffle-DSL changelog.
Christian Humer <christian.humer@gmail.com>
parents: 18750
diff changeset
46 ### Truffle-DSL
19296
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
47 * Implemented a new generated code layout that reduces the code size.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
48 * Changed all methods enclosed in a @TypeSystem must now be static.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
49 * Changed all methods enclosed in generated type system classes are now static.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
50 * Deprecated the type system constant used in the generated type system classes.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
51 * Changed NodeFactory implementations are no longer generated by default. Use {Node}Gen#create instead of {Node}Factory#create to create new instances of nodes.
18810
aaff308f290c Truffle-DSL: started Truffle-DSL changelog.
Christian Humer <christian.humer@gmail.com>
parents: 18750
diff changeset
52 * Added @GenerateNodeFactory to generate NodeFactory implementations for this node and its subclasses.
19296
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
53 * Deprecated @NodeAssumptions for removal in the next release.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
54 * Deprecated experimental @Implies for removal in the next release.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
55 * Added new package c.o.t.api.dsl.examples to the c.o.t.api.dsl project containing documented and debug-able Truffle-DSL use cases.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
56 * Changed "typed execute methods" are no longer required for use as specialization return type or parameter. It is now sufficient to declare them in the @TypeSystem.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
57 * Added @Cached annotation to express specialization local state.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
58 * Added Specialization#limit to declare a limit expression for the maximum number of specialization instantiations.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
59 * Changed syntax and semantics of Specialization#assumptions and Specialization#guards. They now use a Java like expression syntax.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
60 * Changed guard expressions that do not bind any dynamic parameter are invoked just once per specialization instantiation. They are now asserted to be true on the fast path.
a078c666d8d4 Truffle-DSL: updated change log.
Christian Humer <christian.humer@gmail.com>
parents: 19278
diff changeset
61 * Renamed @ImportGuards to @ImportStatic.
20938
18c0f02fa4d2 Truffle-DSL: make type systems optional.
Christian Humer <christian.humer@gmail.com>
parents: 19975
diff changeset
62 * Changed declaring a @TypeSystemReference for a node that contains specializations is not mandatory anymore.
18c0f02fa4d2 Truffle-DSL: make type systems optional.
Christian Humer <christian.humer@gmail.com>
parents: 19975
diff changeset
63 * Changed types used in specializations are not restricted on types declared in the type system anymore.
18c0f02fa4d2 Truffle-DSL: make type systems optional.
Christian Humer <christian.humer@gmail.com>
parents: 19975
diff changeset
64 * Changed nodes that declare all execute methods with the same number of evaluated arguments as specialization arguments do not require @NodeChild annotations anymore.
18c0f02fa4d2 Truffle-DSL: make type systems optional.
Christian Humer <christian.humer@gmail.com>
parents: 19975
diff changeset
65 * Changed types used in checks and casts are not mandatory to be declared in the type system.
18810
aaff308f290c Truffle-DSL: started Truffle-DSL changelog.
Christian Humer <christian.humer@gmail.com>
parents: 18750
diff changeset
66
18731
97f2038b7c4a changelog: graal-0.6
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18730
diff changeset
67 ## Version 0.6
97f2038b7c4a changelog: graal-0.6
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18730
diff changeset
68 19-Dec-2014, [Repository Revision](http://hg.openjdk.java.net/graal/graal/shortlog/graal-0.6)
97f2038b7c4a changelog: graal-0.6
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18730
diff changeset
69 ### Graal
18729
1efe32c9d761 Update CHANGELOG and AUTHORS file.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18486
diff changeset
70 * Merged with jdk8u25-b17.
1efe32c9d761 Update CHANGELOG and AUTHORS file.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18486
diff changeset
71 * Added `com.oracle.graal.api.meta.Remote` interface for future support of remote and replay compilation.
17187
bd760d193008 updated CHANGELOG.md
Doug Simon <doug.simon@oracle.com>
parents: 17185
diff changeset
72 * Changed name suite specification from `mx/projects.py` to `mx/suite.py`.
18419
0e794bf2decb Add CHANGELOG entry about the changed behavior of ResolvedJavaType#resolveMethod().
Josef Eisl <josef.eisl@jku.at>
parents: 18409
diff changeset
73 * Changed semantics (and signature) of `ResolvedJavaType#resolveMethod()` (old behavior available via `resolveConcreteMethod()`).
18465
f0a8b72315c1 Move ResolvedJavaField#read[Constant]Value and getMethodHandleAccess() to ConstantReflectionProvider
Andreas Woess <andreas.woess@jku.at>
parents: 18419
diff changeset
74 * Moved `ResolvedJavaField#read[Constant]Value` and `getMethodHandleAccess()` to `ConstantReflectionProvider`.
16864
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
75
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
76 ### Truffle
18729
1efe32c9d761 Update CHANGELOG and AUTHORS file.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18486
diff changeset
77 * Instrumentation: add Instrumentable API for language implementors, with most details automated (see package `com.oracle.truffle.api.instrument`).
17421
87ea195b66ff Truffle: Make BranchProfile constructor private and introduce a factory Method BranchProfile.create().
Christian Humer <christian.humer@gmail.com>
parents: 17275
diff changeset
78 * The BranchProfile constructor is now private. Use BranchProfile#create() instead.
18130
b4e38f4ca414 Truffle: rename @SlowPath to @TruffleBoundary.
Christian Humer <christian.humer@gmail.com>
parents: 17421
diff changeset
79 * Renamed @CompilerDirectives.SlowPath to @CompilerDirectives.TruffleBoundary
18162
ab62800259ff Truffle: renamed the splitting to callTargetCloning. Made RootNode cloning an implementation detail of the Truffle runtime.
Christian Humer <christian.humer@gmail.com>
parents: 18130
diff changeset
80 * Renamed RootNode#isSplittable to RootNode#isCloningAllowed
ab62800259ff Truffle: renamed the splitting to callTargetCloning. Made RootNode cloning an implementation detail of the Truffle runtime.
Christian Humer <christian.humer@gmail.com>
parents: 18130
diff changeset
81 * Removed RootNode#split. Cloning ASTs for splitting is now an implementation detail of the Truffle runtime implementation.
ab62800259ff Truffle: renamed the splitting to callTargetCloning. Made RootNode cloning an implementation detail of the Truffle runtime.
Christian Humer <christian.humer@gmail.com>
parents: 18130
diff changeset
82 * Renamed DirectCallNode#isSplittable to DirectCallNode#isCallTargetCloningAllowed
ab62800259ff Truffle: renamed the splitting to callTargetCloning. Made RootNode cloning an implementation detail of the Truffle runtime.
Christian Humer <christian.humer@gmail.com>
parents: 18130
diff changeset
83 * Renamed DirectCallNode#split to DirectCallNode#cloneCallTarget
ab62800259ff Truffle: renamed the splitting to callTargetCloning. Made RootNode cloning an implementation detail of the Truffle runtime.
Christian Humer <christian.humer@gmail.com>
parents: 18130
diff changeset
84 * Renamed DirectCallNode#isSplit to DirectCallNode#isCallTargetCloned
18164
53afdc71b311 Truffle: added PrimitiveValueProfile.
Chris Seaton <chris.seaton@oracle.com>
parents: 18162
diff changeset
85 * Added PrimitiveValueProfile.
18276
1f3ab088d958 Truffle: implemented defer compilation.
Christian Humer <christian.humer@gmail.com>
parents: 18220
diff changeset
86 * Added -G:TruffleTimeThreshold=5000 option to defer compilation for call targets
18311
3343ed66de79 Truffle: RootNode#getExecutionContext.
Chris Seaton <chris.seaton@oracle.com>
parents: 18276
diff changeset
87 * Added RootNode#getExecutionContext to identify nodes with languages
18369
966034c24f0e Truffle: make NodeInterface a pure marker interface
Andreas Woess <andreas.woess@jku.at>
parents: 18332
diff changeset
88 * Removed `FrameTypeConversion` interface and changed the corresponding `FrameDescriptor` constructor to have a default value parameter instead.
966034c24f0e Truffle: make NodeInterface a pure marker interface
Andreas Woess <andreas.woess@jku.at>
parents: 18332
diff changeset
89 * Removed `CompilerDirectives.unsafeFrameCast` (equivalent to a `(MaterializedFrame)` cast).
966034c24f0e Truffle: make NodeInterface a pure marker interface
Andreas Woess <andreas.woess@jku.at>
parents: 18332
diff changeset
90 * Added `TruffleRuntime#getCapability` API method.
966034c24f0e Truffle: make NodeInterface a pure marker interface
Andreas Woess <andreas.woess@jku.at>
parents: 18332
diff changeset
91 * Added `NodeInterface` and allowed child field to be declared with interfaces that extend it.
18389
104be1322fb7 Truffle: CHANGELOG entry for CompilerOptions.
Chris Seaton <chris.seaton@oracle.com>
parents: 18369
diff changeset
92 * Added `CompilerOptions` and allowed it to be set for `ExecutionContext` and `RootNode`.
18730
61739e1b2296 Added one more reference to the CHANGELOG.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 18729
diff changeset
93 * Added experimental object API (see new project `com.oracle.truffle.api.object`).
17180
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
94
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
95 ## Version 0.5
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
96 23-Sep-2014, [Repository Revision](http://hg.openjdk.java.net/graal/graal/shortlog/graal-0.5)
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
97 ### Graal
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
98 * New register allocator optimization: `-G:+ConstantLoadOptimization`.
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
99 * SPARC backend is able to run benchmark and passing most of the JTTs.
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
100 * Fix: Stamp: interface types can not be trusted except after explicit runtime checks.
17185
7169e42f7e1b updated CHANGELOG.md
Doug Simon <doug.simon@oracle.com>
parents: 17180
diff changeset
101 * Changed format of suite specification from a properties file (`mx/projects`) to a Python file (`mx/projects.py`).
7169e42f7e1b updated CHANGELOG.md
Doug Simon <doug.simon@oracle.com>
parents: 17180
diff changeset
102
17180
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
103
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
104 ### Truffle
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
105 * Added `TruffleRuntime#getCallTargets()` to get all call targets that were created and are still referenced.
17058
97d0508b7cf1 Truffle: entries in change log.
Chris Seaton <chris.seaton@oracle.com>
parents: 16992
diff changeset
106 * Added `NeverValidAssumption` to complement `AlwaysValidAssumption`.
97d0508b7cf1 Truffle: entries in change log.
Chris Seaton <chris.seaton@oracle.com>
parents: 16992
diff changeset
107 * Fixed a bug in `AssumedValue` that may not invalidate correctly.
17180
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
108 * New option, `-G:+/-TruffleCompilationExceptionsAreThrown`, that will throw an `OptimizationFailedException` for compiler errors.
16864
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
109
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
110 ## Version 0.4
17180
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
111 19-Aug-2014, [Repository Revision](http://hg.openjdk.java.net/graal/graal/shortlog/graal-0.4)
16864
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
112 ### Graal
15603
b7fb36e57da8 made Graal initialization be driven from Java to simplify sequencing and synchronization
Doug Simon <doug.simon@oracle.com>
parents: 15569
diff changeset
113 * Made initialization of Graal runtime lazy in hosted mode.
16864
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
114 * Added supported for new `jrelibrary` dependency type in `mx/projects`.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
115 * Java projects with compliance level higher than the JDKs specified by `JAVA_HOME` and `EXTRA_JAVA_HOMES` are ignored once `mx/projects` has been processed.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
116 * `ResolvedJavaType.resolveMethod` now takes a context type used to perform access checks. It now works correctly regarding default methods.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
117 * Removed Java based compilation queue (`CompilationQueue.java`).
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
118 * Enabled use of separate class loader (via `-XX:+UseGraalClassLoader`) for classes loaded from `graal.jar` to hide them from application classes.
15567
10732e1421ee changelog: graal-0.3
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15566
diff changeset
119
10732e1421ee changelog: graal-0.3
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15566
diff changeset
120 ### Truffle
16529
f6ac86d3334e Change API for stack walking to a visitor: TruffleRuntime#iterateFrames replaces TruffleRuntime#getStackTrace
Christian Wimmer <christian.wimmer@oracle.com>
parents: 16410
diff changeset
121 * Change API for stack walking to a visitor: `TruffleRuntime#iterateFrames` replaces `TruffleRuntime#getStackTrace`
16864
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
122 * New flag `-G:+TraceTruffleCompilationCallTree` to print the tree of inlined calls before compilation.
15600
2a5f05654bc6 changelog: note about truffle.jar separation
Bernhard Urban <bernhard.urban@jku.at>
parents: 15569
diff changeset
123 * `truffle.jar`: strip out build-time only dependency into a seperated JAR file (`truffle-dsl-processor.jar`)
16864
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
124 * New flag `-G:+TraceTruffleCompilationAST` to print the AST before compilation.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
125 * New experimental `TypedObject` interface added.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
126 * Renamed flag `-G:+TruffleSplittingEnabled` to `-G:+TruffleSplitting`
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
127 * New flag `-G:+TruffleSplittingNew` to enable the experimental splitting mode based on function arguments.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
128 * New flag `-G:+TruffleSplittingTypedInstanceStamps` to enable splitting for `TypedObject` instances.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
129 * New flag `-G:+TruffleSplittingClassInstanceStamps` to enable splitting for Java object instances except `TypedObject`.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
130 * New flag `-G:TruffleSplittingStartCallCount=3` which sets the number of minimal calls until splitting is performed.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
131 * New flag `-G:-TruffleSplittingAggressive` if enabled splits every function call.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
132 * Added `isVisited` method for `BranchProfile`.
7d4f630172a1 changelog: graal-0.4
Bernhard Urban <bernhard.urban@jku.at>
parents: 16852
diff changeset
133 * Added new `ConditionProfile`, `BinaryConditionProfile` and `CountingConditionProfile` utility classes to profile if conditions.
15567
10732e1421ee changelog: graal-0.3
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15566
diff changeset
134
10732e1421ee changelog: graal-0.3
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15566
diff changeset
135 ## Version 0.3
17180
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
136 9-May-2014, [Repository Revision](http://hg.openjdk.java.net/graal/graal/shortlog/graal-0.3)
15567
10732e1421ee changelog: graal-0.3
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15566
diff changeset
137
10732e1421ee changelog: graal-0.3
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15566
diff changeset
138 ### Graal
14945
b14cb2d9253d Make compression and uncompression explicit in the high level graph.
Roland Schatz <roland.schatz@oracle.com>
parents: 14887
diff changeset
139 * Explicit support for oop compression/uncompression in high level graph.
14887
45045ab19008 Add LIRGenerator refactoring to CHANGELOG.
Josef Eisl <josef.eisl@jku.at>
parents: 14761
diff changeset
140 * LIRGenerator refactoring.
15010
f36e56e9dd9a add allowedUsageType to GuardProxy/GuardPhi, changelog, remove debug output
Lukas Stadler <lukas.stadler@oracle.com>
parents: 14945
diff changeset
141 * Explicit types for inputs (InputType enum).
15020
22390f39dfb1 moved some entries in CHANGELOG.md from 0.2 to tip
Doug Simon <doug.simon@oracle.com>
parents: 15013
diff changeset
142 * Added graal.version system property to Graal enabled VM builds.
22390f39dfb1 moved some entries in CHANGELOG.md from 0.2 to tip
Doug Simon <doug.simon@oracle.com>
parents: 15013
diff changeset
143 * Transitioned to JDK 8 as minimum JDK level for Graal.
15175
78f1a1a70628 Adapt CHANGELOG to reflect new signature of CallTarget#call.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15093
diff changeset
144 * Added support for stack introspection.
15370
319deee16746 add support for matching multiple HIR nodes when lowering to LIR
Tom Rodriguez <tom.rodriguez@oracle.com>
parents: 15175
diff changeset
145 * New MatchRule facility to convert multiple HIR nodes into specialized LIR
14887
45045ab19008 Add LIRGenerator refactoring to CHANGELOG.
Josef Eisl <josef.eisl@jku.at>
parents: 14761
diff changeset
146
14748
483d05bf77a7 changelog: graal-0.2
Bernhard Urban <bernhard.urban@jku.at>
parents: 14707
diff changeset
147 ### Truffle
15474
dd624471bd30 Truffle: remove deprecated Node#adoptChild, Node#adoptChildren.
Andreas Woess <andreas.woess@jku.at>
parents: 15370
diff changeset
148 * The method `CallTarget#call` takes now a variable number of Object arguments.
15566
f2988cdf41ee Small addition to changelog.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 15474
diff changeset
149 * Support for collecting stack traces and for accessing the current frame in slow paths (see `TruffleRuntime#getStackTrace`).
15474
dd624471bd30 Truffle: remove deprecated Node#adoptChild, Node#adoptChildren.
Andreas Woess <andreas.woess@jku.at>
parents: 15370
diff changeset
150 * Renamed `CallNode` to `DirectCallNode`.
dd624471bd30 Truffle: remove deprecated Node#adoptChild, Node#adoptChildren.
Andreas Woess <andreas.woess@jku.at>
parents: 15370
diff changeset
151 * Renamed `TruffleRuntime#createCallNode` to `TruffleRuntime#createDirectCallNode`.
dd624471bd30 Truffle: remove deprecated Node#adoptChild, Node#adoptChildren.
Andreas Woess <andreas.woess@jku.at>
parents: 15370
diff changeset
152 * Added `IndirectCallNode` for calls with a changing `CallTarget`.
dd624471bd30 Truffle: remove deprecated Node#adoptChild, Node#adoptChildren.
Andreas Woess <andreas.woess@jku.at>
parents: 15370
diff changeset
153 * Added `TruffleRuntime#createIndirectCallNode` to create an `IndirectCallNode`.
dd624471bd30 Truffle: remove deprecated Node#adoptChild, Node#adoptChildren.
Andreas Woess <andreas.woess@jku.at>
parents: 15370
diff changeset
154 * `DirectCallNode#inline` was renamed to `DirectCallNode#forceInlining()`.
dd624471bd30 Truffle: remove deprecated Node#adoptChild, Node#adoptChildren.
Andreas Woess <andreas.woess@jku.at>
parents: 15370
diff changeset
155 * Removed deprecated `Node#adoptChild`.
14748
483d05bf77a7 changelog: graal-0.2
Bernhard Urban <bernhard.urban@jku.at>
parents: 14707
diff changeset
156
483d05bf77a7 changelog: graal-0.2
Bernhard Urban <bernhard.urban@jku.at>
parents: 14707
diff changeset
157 ## Version 0.2
17180
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
158 25-Mar-2014, [Repository Revision](http://hg.openjdk.java.net/graal/graal/shortlog/graal-0.2)
14748
483d05bf77a7 changelog: graal-0.2
Bernhard Urban <bernhard.urban@jku.at>
parents: 14707
diff changeset
159
483d05bf77a7 changelog: graal-0.2
Bernhard Urban <bernhard.urban@jku.at>
parents: 14707
diff changeset
160 ### Graal
14647
8f483e200405 updated CHANGELOG.md
Doug Simon <doug.simon@oracle.com>
parents: 14640
diff changeset
161 * Use HotSpot stubs for certain array copy operations.
14640
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
162 * New methods for querying memory usage of individual objects and object graphs in Graal API (`MetaAccessProvider#getMemorySize`, `MetaUtil#getMemorySizeRecursive`).
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
163 * Added tiered configuration (C1 + Graal).
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
164 * Initial security model for Graal [GRAAL-22](https://bugs.openjdk.java.net/browse/GRAAL-22).
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
165 * New (tested) invariant that equality comparisons for `JavaType`/`JavaMethod`/`JavaField` values use `.equals()` instead of `==`.
14172
cd22c8dbda4f Made graph caching compilation local
Doug Simon <doug.simon@oracle.com>
parents: 13966
diff changeset
166 * Made graph caching compilation-local.
14647
8f483e200405 updated CHANGELOG.md
Doug Simon <doug.simon@oracle.com>
parents: 14640
diff changeset
167 * Added AllocSpy tool for analyzing allocation in Graal using the [Java Allocation Instrumenter](https://code.google.com/p/java-allocation-instrumenter/).
15013
deea05f9c316 updated CHANGELOG.md
Doug Simon <doug.simon@oracle.com>
parents: 15010
diff changeset
168 * Initial support for memory arithmetic operations on x86.
15020
22390f39dfb1 moved some entries in CHANGELOG.md from 0.2 to tip
Doug Simon <doug.simon@oracle.com>
parents: 15013
diff changeset
169 * Expanded Debug logging/dumping API to avoid allocation when this Debug facilities are not enabled.
13962
258a09b6449b Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
170
13920
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
171 ### Truffle
14640
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
172 * New API `TruffleRuntime#createCallNode` to create call nodes and to give the runtime system control over its implementation.
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
173 * New API `RootNode#getCachedCallNodes` to get a weak set of `CallNode`s that have registered to call the `RootNode`.
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
174 * New API to split the AST of a call-site context sensitively. `CallNode#split`, `CallNode#isSplittable`, `CallNode#getSplitCallTarget`, `CallNode#getCurrentCallTarget`, `RootNode#isSplittable`, `RootNode#split`.
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
175 * New API to inline a call-site into the call-graph. `CallNode#isInlinable`, `CallNode#inline`, `CallNode#isInlined`.
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
176 * New API for the runtime environment to register `CallTarget`s as caller to the `RootNode`. `CallNode#registerCallTarget`.
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
177 * Improved API for counting nodes in Truffle ASTs. `NodeUtil#countNodes` can be used with a `NodeFilter`.
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
178 * New API to declare the cost of a Node for use in runtime environment specific heuristics. See `NodeCost`, `Node#getCost` and `NodeInfo#cost`.
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
179 * Removed old API for `NodeInfo#Kind` and `NodeInfo#kind`. As a replacement the new `NodeCost` API can be used.
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
180 * Changed `Node#replace` reason parameter type to `CharSequence` (to enable lazy string building)
15474
dd624471bd30 Truffle: remove deprecated Node#adoptChild, Node#adoptChildren.
Andreas Woess <andreas.woess@jku.at>
parents: 15370
diff changeset
181 * Deprecated `Node#adoptChild` and `Node#adoptChildren`, no longer needed in node constructor
14640
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
182 * New `Node#insert` method for inserting new nodes into the tree (formerly `adoptChild`)
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
183 * New `Node#adoptChildren` helper method that adopts all (direct and indirect) children of a node
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
184 * New API `Node#atomic` for atomic tree operations
0111aa258537 changelog: use code syntax, add some points to graal section
Bernhard Urban <bernhard.urban@jku.at>
parents: 14630
diff changeset
185 * Made `Node#replace` thread-safe
14568
2e90d9a9a677 Truffle: Added API changes to the changelog.
Christian Humer <christian.humer@gmail.com>
parents: 14172
diff changeset
186
13879
b124e22eb772 Initial changelog.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff changeset
187
13920
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
188 ## Version 0.1
17180
ae5b66255083 changelog: graal-0.5
Bernhard Urban <bernhard.urban@jku.at>
parents: 17080
diff changeset
189 5-Feb-2014, [Repository Revision](http://hg.openjdk.java.net/graal/graal/shortlog/graal-0.1)
13965
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents: 13962 13920
diff changeset
190
13920
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
191 ### Graal
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
192
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
193 * Initial version of a dynamic Java compiler written in Java.
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
194 * Support for multiple co-existing GPU backends ([GRAAL-1](https://bugs.openjdk.java.net/browse/GRAAL-1)).
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
195 * Fixed a compiler bug when running RuneScape ([GRAAL-7](https://bugs.openjdk.java.net/browse/GRAAL-7)).
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
196 * Bug fixes ([GRAAL-4](https://bugs.openjdk.java.net/browse/GRAAL-4), [GRAAL-5](https://bugs.openjdk.java.net/browse/GRAAL-5)).
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
197
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
198 ### Truffle
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
199
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
200 * Initial version of a multi-language framework on top of Graal.
848b50624671 changelog: switch to markdown syntax
Bernhard Urban <bernhard.urban@jku.at>
parents: 13879
diff changeset
201 * Update of the [Truffle Inlining API](http://mail.openjdk.java.net/pipermail/graal-dev/2014-January/001516.html).