Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 493071639bf7
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 616815b50940
Choose a head ref
  • 4 commits
  • 4 files changed
  • 1 contributor

Commits on Dec 22, 2015

  1. Copy the full SHA
    4d77ca7 View commit details
  2. Copy the full SHA
    bd56e6f View commit details
  3. Copy the full SHA
    c0314ab View commit details
  4. Merge branch 'master' into truffle-0.10

    # Conflicts:
    #	tool/build-graal-bundles.sh
    chrisseaton committed Dec 22, 2015
    Copy the full SHA
    616815b View commit details
Showing with 28 additions and 103 deletions.
  1. +0 −74 tool/build-graal-bundles.sh
  2. +23 −15 truffle/README.md
  3. +1 −4 truffle/pom.rb
  4. +4 −10 truffle/pom.xml
74 changes: 0 additions & 74 deletions tool/build-graal-bundles.sh

This file was deleted.

38 changes: 23 additions & 15 deletions truffle/README.md
Original file line number Diff line number Diff line change
@@ -25,25 +25,31 @@ University Linz](http://ssw.jku.at).
* Lucas Allan Amorim
* Aditya Bhardwaj

The best way to get in touch with us is to join us in `#jruby` on Freenode, but you can also Tweet to @chrisgseaton, @nirvdrum or @eregontp, or email chris.seaton@oracle.com.
The best way to get in touch with us is to join us in `#jruby` on Freenode, but
you can also Tweet to @chrisgseaton, @nirvdrum or @eregontp, or email
chris.seaton@oracle.com.

## Using Truffle

To run JRuby in Truffle mode, pass the `-X+T` option.

Truffle is designed to be used on the Graal VM rather than a conventional JVM.
Download a build of Graal:
JRuby+Truffle is designed to be run with a JVM that has the Graal compiler. The
easiest way to get this is via the GraalVM, available from the Oracle
Technology Network.

* http://lafo.ssw.uni-linz.ac.at/graalvm/openjdk-8-graalvm-b132-macosx-x86_64-0.7.tar.gz
* http://lafo.ssw.uni-linz.ac.at/graalvm/openjdk-8-graalvm-b132-linux-x86_64-0.7.tar.gz
https://github.com/jruby/jruby/wiki/Downloading-GraalVM

You can then run JRuby with GraalVM
But you can also build it yourself, which you will need to do if you are on the
`truffle-head` branch.

JAVACMD=path/to/graal/java bin/jruby -X+T ...
https://github.com/jruby/jruby/wiki/Building-Graal

If you want to develop against the latest version of Graal, you should use the
`truffle-head` branch of JRuby and you will need to
[build Graal for yourself](https://wiki.openjdk.java.net/display/Graal/Instructions).
You then need to set the `JAVACMD` environment variable as described on those
pages.

```
$ JAVACMD=... bin/jruby -X+T ...
```

### What to expect

@@ -66,8 +72,10 @@ fannkuch, and also kernels from two real-word Ruby gems,
## Research

* [Chris Seaton's blog posts](http://www.chrisseaton.com/rubytruffle/)
* F. Niephaus, M. Springer, T. Felgentreff, T. Pape, R. Hirschfeld. **Call-target-specific Method Arguments**. In Proceedings of the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS), 2015.
* B. Daloze, C. Seaton, D. Bonetta, H. Mössenböck. **Techniques and Applications for Guest-Language Safepoints**. In Proceedings of the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS), 2015.
* C. Seaton. **[Specialising Dynamic Techniques for Implementing the Ruby Programming Language](http://chrisseaton.com/phd/)**. PhD thesis, University of Manchester, 2015.
* M. Grimmer, C. Seaton, R. Schatz, T. Würthinger, H. Mössenböck. **[High-Performance Cross-Language Interoperability in a Multi-Language Runtime](http://chrisseaton.com/rubytruffle/dls15-interop/dls15-interop.pdf)**. In Proceedings of 11th Dynamic Languages Symposium (DLS).
* F. Niephaus, M. Springer, T. Felgentreff, T. Pape, R. Hirschfeld. **[Call-target-specific Method Arguments](https://github.com/HPI-SWA-Lab/TargetSpecific-ICOOOLPS/raw/gh-pages/call_target_specific_method_arguments.pdf)**. In Proceedings of the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS), 2015.
* B. Daloze, C. Seaton, D. Bonetta, H. Mössenböck. **[Techniques and Applications for Guest-Language Safepoints](http://chrisseaton.com/rubytruffle/icooolps15-safepoints/safepoints.pdf)**. In Proceedings of the 10th Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems Workshop (ICOOOLPS), 2015.
* M. Grimmer, C. Seaton, T. Würthinger, H. Mössenböck. **[Dynamically Composing Languages in a Modular Way: Supporting C Extensions for Dynamic Languages](http://www.chrisseaton.com/rubytruffle/modularity15/rubyextensions.pdf)**. In Proceedings of the 14th International Conference on Modularity, 2015.
* A. Wöß, C. Wirth, D. Bonetta, C. Seaton, C. Humer, and H. Mössenböck. **[An object storage model for the Truffle language implementation framework](http://www.chrisseaton.com/rubytruffle/pppj14-om/pppj14-om.pdf)**. In Proceedings of the International Conference on Principles and Practices of Programming on the Java Platform (PPPJ), 2014.
* C. Seaton, M. L. Van De Vanter, and M. Haupt. **[Debugging at full speed](http://www.lifl.fr/dyla14/papers/dyla14-3-Debugging_at_Full_Speed.pdf)**. In Proceedings of the 8th Workshop on Dynamic Languages and Applications (DYLA), 2014.
@@ -84,9 +92,9 @@ There are runtime configuration options that can be set on the command line with

### Truffle Module

The `Truffle` and `Truffle::Debug` modules include Truffle-specific
functionality. They're documented for the current development version at
http://lafo.ssw.uni-linz.ac.at/graalvm/jruby/doc/.
The `Truffle`, `Truffle::Debug` and `Truffle::Interop` modules include
Truffle-specific functionality. They're documented for the current development
version at http://lafo.ssw.uni-linz.ac.at/graalvm/jruby/doc/.

### Debugger

5 changes: 1 addition & 4 deletions truffle/pom.rb
Original file line number Diff line number Diff line change
@@ -15,10 +15,7 @@

jar 'org.jruby:jruby-core', '${project.version}', :scope => 'provided'

repository( :url => 'http://lafo.ssw.uni-linz.ac.at/nexus/content/repositories/snapshots/',
:id => 'truffle' )

truffle_version = '69e80ff8d725baa1274711b5d9248a277e5af962-SNAPSHOT'
truffle_version = '0.10'
jar 'com.oracle.truffle:truffle-api:' + truffle_version
jar 'com.oracle.truffle:truffle-debug:' + truffle_version
jar 'com.oracle.truffle:truffle-dsl-processor:' + truffle_version, :scope => 'provided'
14 changes: 4 additions & 10 deletions truffle/pom.xml
Original file line number Diff line number Diff line change
@@ -41,23 +41,23 @@ DO NOT MODIFIY - GENERATED CODE
<dependency>
<groupId>com.oracle.truffle</groupId>
<artifactId>truffle-api</artifactId>
<version>69e80ff8d725baa1274711b5d9248a277e5af962-SNAPSHOT</version>
<version>0.10</version>
</dependency>
<dependency>
<groupId>com.oracle.truffle</groupId>
<artifactId>truffle-debug</artifactId>
<version>69e80ff8d725baa1274711b5d9248a277e5af962-SNAPSHOT</version>
<version>0.10</version>
</dependency>
<dependency>
<groupId>com.oracle.truffle</groupId>
<artifactId>truffle-dsl-processor</artifactId>
<version>69e80ff8d725baa1274711b5d9248a277e5af962-SNAPSHOT</version>
<version>0.10</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.oracle.truffle</groupId>
<artifactId>truffle-tck</artifactId>
<version>69e80ff8d725baa1274711b5d9248a277e5af962-SNAPSHOT</version>
<version>0.10</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -66,12 +66,6 @@ DO NOT MODIFIY - GENERATED CODE
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>truffle</id>
<url>http://lafo.ssw.uni-linz.ac.at/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<build>
<defaultGoal>package</defaultGoal>
<resources>