Mercurial > hg > truffle
annotate truffle/overview.html @ 22385:0e86a9f324bf
Capturing the current state of Source->CallTarget caching in a test
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Thu, 19 Nov 2015 09:29:24 +0100 |
parents | ad67d348e361 |
children | 55f59502cf31 |
rev | line source |
---|---|
5700
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
2 <html> |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
3 <head> |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
4 <!-- |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
5 |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
6 Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
7 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
8 |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
9 This code is free software; you can redistribute it and/or modify it |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
10 under the terms of the GNU General Public License version 2 only, as |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
11 published by the Free Software Foundation. Oracle designates this |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
12 particular file as subject to the "Classpath" exception as provided |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
13 by Oracle in the LICENSE file that accompanied this code. |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
14 |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
15 This code is distributed in the hope that it will be useful, but WITHOUT |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
16 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
17 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
18 version 2 for more details (a copy is included in the LICENSE file that |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
19 accompanied this code). |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
20 |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
21 You should have received a copy of the GNU General Public License version |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
22 2 along with this work; if not, write to the Free Software Foundation, |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
23 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
24 |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
25 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
26 or visit www.oracle.com if you need additional information or have any |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
27 questions. |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
28 --> |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
29 |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
30 </head> |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
31 <body> |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
32 |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
33 <p> |
22062
db705e8b5a35
Truffle specific overview
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21951
diff
changeset
|
34 Truffle is a framework for writing and executing interpreters. In case |
db705e8b5a35
Truffle specific overview
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21951
diff
changeset
|
35 you want to execute already written interpreters from your Java application, |
22172
b31dcacfc8ff
Replacing more TruffleVM references in comments with the new PolyglotEngine name
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22062
diff
changeset
|
36 start at {@link com.oracle.truffle.api.vm.PolyglotEngine}. In case you'd like |
22062
db705e8b5a35
Truffle specific overview
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21951
diff
changeset
|
37 to write your own Truffle based language, start at |
db705e8b5a35
Truffle specific overview
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21951
diff
changeset
|
38 {@link com.oracle.truffle.api.TruffleLanguage}. |
5726
4e5828456c28
added link to OpenJDK Graal project site in generated javadoc
Doug Simon <doug.simon@oracle.com>
parents:
5707
diff
changeset
|
39 <p> |
22062
db705e8b5a35
Truffle specific overview
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21951
diff
changeset
|
40 To get the best speed out of your Truffle system, make sure you are running |
db705e8b5a35
Truffle specific overview
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21951
diff
changeset
|
41 on top of |
22208
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
42 <a target="_blank" href="http://openjdk.java.net/projects/graal/">Graal</a> |
22062
db705e8b5a35
Truffle specific overview
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21951
diff
changeset
|
43 virtual machine. |
22208
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
44 <p> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
45 Our typicial sample language is called the <em>SimpleLanguage</em>. |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
46 A good entry point for exploring <em>SimpleLanguage</em> is the |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
47 <a target="_blank" href="https://github.com/graalvm/Truffle/blob/master/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java">SLLanguage</a> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
48 class. |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
49 |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
50 <h4>Other References</h4> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
51 |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
52 <ul> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
53 <li><a target="_blank" href="https://wiki.openjdk.java.net/display/Graal/Publications+and+Presentations">Truffle Tutorials and Presentations</a></li> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
54 <li><a target="_blank" href="https://wiki.openjdk.java.net/display/Graal/Truffle+FAQ+and+Guidelines">Truffle FAQ and Guidelines</a></li> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
55 <li><a target="_blank" href="http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html">Graal VM and Truffle/JS</a> on the Oracle Technology Network</li> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
56 <li><a target="_blank" href="http://ssw.jku.at/Research/Projects/JVM/Truffle.html">Papers on Truffle</a></li> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
57 <li><a target="_blank" href="http://ssw.jku.at/Research/Projects/JVM/Graal.html">Papers on Graal</a></li> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
58 </ul> |
df57bc2fcdbd
Bringing the README.md up-to-date and providing references to Javadoc which should be the primary source of information.
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22172
diff
changeset
|
59 |
22324
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
60 <h4>Keeping Compatibility</h4> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
61 |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
62 <p> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
63 The <b>Truffle</b> API values work of its adopters and as such it is developed |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
64 with compatibility in mind. Methods and features are not removed and renamed |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
65 randomly, without a notice and there is a binary compatibility testing framework |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
66 in place to verify that. |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
67 </p> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
68 <p> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
69 On the other hand the <b>Truffle</b> project is still young and needs a way |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
70 to refine and change previously taken decisions. To balance the need between |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
71 compatibility and give us a way to remove things from the API we following |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
72 these rules: |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
73 </p> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
74 <ul> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
75 <li>Rather than removing/renaming or changing an API element (class, method, |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
76 field), mark it <em>deprecated</em>.</li> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
77 <li>Make sure usage of such element can be replaced by non-deprecated ways</li> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
78 <li>Keep such element working until next release</li> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
79 <li>If possible provide automatic migration using Jackpot's META-INF/upgrade/ files</li> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
80 <li>When new (major) release is out, remove it</li> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
81 </ul> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
82 <p> |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
83 By deprecating parts of API while keeping them functional we are giving |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
84 users of the <b>Truffle</b> API time to adjust to required |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
85 changes and (under the assumption they pay attention to warnings in the code |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
86 base) easily identify and migrate to more modern API alternatives. |
ad67d348e361
Defining incompatible API change policy for development versions
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
22208
diff
changeset
|
87 </p> |
5700
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
88 </body> |
12a34d1bcaa2
added site command to generate a javadoc-based website
Doug Simon <doug.simon@oracle.com>
parents:
diff
changeset
|
89 </html> |