Mercurial > hg > truffle
annotate README.md @ 22133:c334865b9d42
Make sure TruffleLanguage.createEnv is only called when Accessor.CURRENT_VM is known
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Fri, 04 Sep 2015 10:39:23 +0200 |
parents | 8ec8f7831ab4 |
children | df57bc2fcdbd |
rev | line source |
---|---|
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
1 # The Truffle Language Implementation Framework |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
2 |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
3 |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
4 ## Introduction |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
5 |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
6 Truffle is a framework for implementing languages as simple interpreters. |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
7 Together with the [Graal compiler](http://github.com/OracleLabs/GraalVM), |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
8 Truffle interpreters are automatically just-in-time compiled and programs |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
9 running on top of them can reach performance of normal Java. |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
10 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
11 The Truffle framework provides the basic foundation for building |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
12 abstract-syntax-tree (AST) interpreters that perform |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
13 [self-optimizations](http://dx.doi.org/10.1145/2384577.2384587) at runtime. The |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
14 included TruffleDSL provides a convenient way to express such optimizations. |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
15 |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
16 Truffle is developed and maintained by Oracle Labs and the Institute for System |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
17 Software of the Johannes Kepler University Linz. |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
18 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
19 |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
20 ## Building and Using Truffle |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
21 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
22 Truffle and Graal use the [MX build tool](https://bitbucket.org/allr/mxtool2), |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
23 which is part of this repository. To build Truffle execute: |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
24 |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
25 ```bash |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
26 ./mx.sh build |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
27 ``` |
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
28 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
29 The created `./build` directory contains all necessary jars and source bundles. |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
30 |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
31 - `truffle-api.jar` contains the framework |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
32 - `truffle-dsl-processor.jar` contains the TruffleDSL annotation processor |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
33 |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
34 ### Maven |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
35 |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
36 For Maven based projects, prebuilt binaries can be included into a project by |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
37 adding the following dependencies to a `pom.xml`: |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
38 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
39 ```xml |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
40 <dependency> |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
41 <groupId>com.oracle</groupId> |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
42 <artifactId>truffle</artifactId> |
21999
8ec8f7831ab4
0.8 version will soon be out
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21997
diff
changeset
|
43 <version>0.8</version> |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
44 </dependency> |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
45 <dependency> |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
46 <groupId>com.oracle</groupId> |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
47 <artifactId>truffle-dsl-processor</artifactId> |
21999
8ec8f7831ab4
0.8 version will soon be out
Jaroslav Tulach <jaroslav.tulach@oracle.com>
parents:
21997
diff
changeset
|
48 <version>0.8</version> |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
49 <scope>provided</scope> |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
50 </dependency> |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
51 ``` |
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
52 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
53 ## Resources and Documentation |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
54 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
55 This repository contains the SimpleLanguage, which comes with JavaDoc |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
56 documentation to demonstrate how Truffle is used. A good entry point for |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
57 exploring SimpleLanguage is the [SLLanguage class](https://github.com/OracleLabs/Truffle/blob/master/truffle/com.oracle.truffle.sl/src/com/oracle/truffle/sl/SLLanguage.java). |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
58 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
59 - [Truffle Tutorials and Presentations](https://wiki.openjdk.java.net/display/Graal/Publications+and+Presentations) |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
60 - [Truffle FAQ and Guidelines](https://wiki.openjdk.java.net/display/Graal/Truffle+FAQ+and+Guidelines) |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
61 - [Graal VM and Truffle/JS](http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html) on the Oracle Technology Network |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
62 - [Papers on Truffle](http://ssw.jku.at/Research/Projects/JVM/Truffle.html) |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
63 - [Papers on Graal](http://ssw.jku.at/Research/Projects/JVM/Graal.html) |
21154
271eee87201c
Update readme and changelog
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
14722
diff
changeset
|
64 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
65 ## Contributing |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
66 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
67 TODO |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
68 |
13962
258a09b6449b
Change AUTHORS, CHANGELOG, and README file from HTML to Markdown.
Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
parents:
diff
changeset
|
69 |
21995
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
70 ## License |
811b97893a84
First draft of Truffle README.md
Stefan Marr <stefan.marr@jku.at>
parents:
21154
diff
changeset
|
71 |
21997
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21995
diff
changeset
|
72 The Truffle framework is licensed under the [GPL 2 with Classpath exception](http://openjdk.java.net/legal/gplv2+ce.html). |
c07e64ecb528
Update SL copyright headers to use UPL
Gilles Duboscq <gilles.m.duboscq@oracle.com>
parents:
21995
diff
changeset
|
73 The SimpleLanguage is licensed under the [Universal Permissive License (UPL)](http://opensource.org/licenses/UPL). |