annotate README.md @ 22157:dc83cc1f94f2

Using fully qualified imports
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Wed, 16 Sep 2015 11:33:22 +0200
parents 8ec8f7831ab4
children df57bc2fcdbd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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).