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: 3f5464b210c7
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: c08ca7ae5da7
Choose a head ref

Commits on Feb 14, 2016

  1. Copy the full SHA
    a7edd8e View commit details
  2. Copy the full SHA
    21bfa83 View commit details
  3. Copy the full SHA
    c754c5e View commit details
  4. Copy the full SHA
    b666936 View commit details
  5. Copy the full SHA
    a990399 View commit details
  6. Copy the full SHA
    bf8fa45 View commit details
  7. Copy the full SHA
    cec2d23 View commit details
  8. Copy the full SHA
    9e246f2 View commit details
  9. Copy the full SHA
    7b9d128 View commit details
  10. Copy the full SHA
    88bef40 View commit details
  11. Copy the full SHA
    bb0ceb8 View commit details
  12. Copy the full SHA
    638c921 View commit details
  13. Copy the full SHA
    f8e6f5c View commit details
  14. Copy the full SHA
    9a3a766 View commit details
  15. Copy the full SHA
    c9a6ad7 View commit details
  16. Copy the full SHA
    3277d12 View commit details
  17. Copy the full SHA
    6a1e547 View commit details
  18. Copy the full SHA
    4b91f39 View commit details
  19. Copy the full SHA
    5e48b0e View commit details
  20. Copy the full SHA
    a4b56c9 View commit details
  21. Copy the full SHA
    c08ca7a View commit details
Showing with 384 additions and 349 deletions.
  1. +1 −1 core/src/main/java/org/jruby/util/cli/Options.java
  2. +3 −0 test/truffle/integration/java-platform.sh
  3. +15 −3 truffle/src/main/java/org/jruby/truffle/JRubyTruffleImpl.java
  4. +45 −200 truffle/src/main/java/org/jruby/truffle/RubyContext.java
  5. +7 −21 truffle/src/main/java/org/jruby/truffle/RubyLanguage.java
  6. +2 −6 truffle/src/main/java/org/jruby/truffle/core/CoreLibrary.java
  7. +1 −1 truffle/src/main/java/org/jruby/truffle/core/CoreMethodNodeManager.java
  8. +1 −1 truffle/src/main/java/org/jruby/truffle/core/basicobject/BasicObjectNodes.java
  9. +4 −2 truffle/src/main/java/org/jruby/truffle/core/kernel/KernelNodes.java
  10. +2 −16 truffle/src/main/java/org/jruby/truffle/core/kernel/TraceManager.java
  11. +0 −1 truffle/src/main/java/org/jruby/truffle/core/module/AncestorIterator.java
  12. +0 −1 truffle/src/main/java/org/jruby/truffle/core/module/IncludedModule.java
  13. +0 −2 truffle/src/main/java/org/jruby/truffle/core/module/IncludedModulesIterator.java
  14. +1 −1 truffle/src/main/java/org/jruby/truffle/{language → core/module}/ModuleChain.java
  15. +0 −2 truffle/src/main/java/org/jruby/truffle/core/module/ModuleFields.java
  16. +0 −1 truffle/src/main/java/org/jruby/truffle/core/module/ModuleNodes.java
  17. +4 −1 truffle/src/main/java/org/jruby/truffle/{language → core/module}/ModuleOperations.java
  18. +0 −1 truffle/src/main/java/org/jruby/truffle/core/module/PrependMarker.java
  19. +1 −1 truffle/src/main/java/org/jruby/truffle/core/objectspace/ObjectSpaceNodes.java
  20. +0 −3 truffle/src/main/java/org/jruby/truffle/core/rubinius/RubiniusPrimitiveManager.java
  21. +74 −1 truffle/src/main/java/org/jruby/truffle/extra/TrufflePrimitiveNodes.java
  22. +44 −0 truffle/src/main/java/org/jruby/truffle/interop/InteropManager.java
  23. +1 −1 truffle/src/main/java/org/jruby/truffle/interop/InteropNode.java
  24. +33 −0 truffle/src/main/java/org/jruby/truffle/interop/JRubyContextWrapper.java
  25. +35 −0 truffle/src/main/java/org/jruby/truffle/interop/JRubyInterop.java
  26. +2 −2 truffle/src/main/java/org/jruby/truffle/interop/TruffleInteropNodes.java
  27. +1 −5 truffle/src/main/java/org/jruby/truffle/language/Options.java
  28. +1 −0 truffle/src/main/java/org/jruby/truffle/language/RubyCallStack.java
  29. +2 −2 truffle/src/main/java/org/jruby/truffle/language/RubyNode.java
  30. +2 −0 truffle/src/main/java/org/jruby/truffle/language/RubyObjectType.java
  31. +0 −12 truffle/src/main/java/org/jruby/truffle/language/ShapeCachingGuards.java
  32. +0 −38 truffle/src/main/java/org/jruby/truffle/language/Warnings.java
  33. +1 −3 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadRestArgumentNode.java
  34. +1 −1 truffle/src/main/java/org/jruby/truffle/language/constants/LookupConstantNode.java
  35. +1 −1 truffle/src/main/java/org/jruby/truffle/language/constants/LookupConstantWithLexicalScopeNode.java
  36. +1 −1 truffle/src/main/java/org/jruby/truffle/language/dispatch/DispatchNode.java
  37. +1 −1 truffle/src/main/java/org/jruby/truffle/language/dispatch/RubyCallNode.java
  38. +1 −1 truffle/src/main/java/org/jruby/truffle/language/exceptions/RescueClassesNode.java
  39. +1 −1 truffle/src/main/java/org/jruby/truffle/language/exceptions/RescueSplatNode.java
  40. +1 −1 truffle/src/main/java/org/jruby/truffle/language/globals/CheckStdoutVariableTypeNode.java
  41. +42 −1 truffle/src/main/java/org/jruby/truffle/language/loader/CodeLoader.java
  42. +1 −1 truffle/src/main/java/org/jruby/truffle/language/loader/FeatureLoader.java
  43. +1 −1 truffle/src/main/java/org/jruby/truffle/language/methods/AddMethodNode.java
  44. +1 −1 truffle/src/main/java/org/jruby/truffle/language/methods/CanBindMethodToModuleNode.java
  45. +1 −1 truffle/src/main/java/org/jruby/truffle/language/methods/GetCurrentVisibilityNode.java
  46. +1 −1 truffle/src/main/java/org/jruby/truffle/language/methods/LookupMethodNode.java
  47. +1 −1 truffle/src/main/java/org/jruby/truffle/language/objects/IsANode.java
  48. +1 −1 truffle/src/main/java/org/jruby/truffle/language/objects/ReadClassVariableNode.java
  49. +1 −1 truffle/src/main/java/org/jruby/truffle/language/objects/WriteClassVariableNode.java
  50. +1 −1 truffle/src/main/java/org/jruby/truffle/language/supercall/LookupSuperMethodNode.java
  51. +0 −1 truffle/src/main/java/org/jruby/truffle/language/translator/BodyTranslator.java
  52. +1 −1 truffle/src/main/java/org/jruby/truffle/language/{ → translator}/ConstantReplacer.java
  53. +22 −0 truffle/src/main/java/org/jruby/truffle/platform/Graal.java
  54. +1 −1 truffle/src/main/java/org/jruby/truffle/platform/NativePlatformFactory.java
  55. +19 −0 truffle/src/main/ruby/core/post.rb
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/util/cli/Options.java
Original file line number Diff line number Diff line change
@@ -224,7 +224,7 @@ public class Options {
public static final Option<Boolean> TRUFFLE_COVERAGE_GLOBAL = bool(TRUFFLE, "truffle.coverage.global", false, "Run coverage for all code and print results on exit.");

public static final Option<String> TRUFFLE_CORE_LOAD_PATH = string(TRUFFLE, "truffle.core.load_path", "truffle:/jruby-truffle", "Location to load the Truffle core library from.");
public static final Option<Boolean> TRUFFLE_POSIX_USE_JAVA = bool(TRUFFLE, "truffle.posix.use_java", false, "Use a Java emulation of POSIX.");
public static final Option<Boolean> TRUFFLE_PLATFORM_USE_JAVA = bool(TRUFFLE, "truffle.platform.use_java", false, "Use a pure-Java platform, so no native POSIX.");

public static final Option<Integer> TRUFFLE_ARRAY_UNINITIALIZED_SIZE = integer(TRUFFLE, "truffle.array.uninitialized_size", 32, "How large an Array to allocate when we have no other information to go on.");
public static final Option<Integer> TRUFFLE_ARRAY_SMALL = integer(TRUFFLE, "truffle.array.small", 3, "Maximum size of an Array to consider small for optimisations.");
3 changes: 3 additions & 0 deletions test/truffle/integration/java-platform.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash

ruby -X+T -Xtruffle.platform.use_java=true -e 'puts 14'
18 changes: 15 additions & 3 deletions truffle/src/main/java/org/jruby/truffle/JRubyTruffleImpl.java
Original file line number Diff line number Diff line change
@@ -13,6 +13,9 @@
import com.oracle.truffle.api.vm.PolyglotEngine;
import org.jruby.JRubyTruffleInterface;
import org.jruby.Ruby;
import org.jruby.truffle.interop.JRubyContextWrapper;
import org.jruby.truffle.platform.Graal;
import org.jruby.util.cli.Options;

import java.io.IOException;

@@ -21,9 +24,10 @@ public class JRubyTruffleImpl implements JRubyTruffleInterface {
private final PolyglotEngine engine;
private final RubyContext context;

// Run by reflection from Ruby#loadTruffle
// Created by reflection from Ruby#loadTruffle

public JRubyTruffleImpl(Ruby runtime) {
engine = PolyglotEngine.newBuilder().globalSymbol(JRubyTruffleInterface.RUNTIME_SYMBOL, new RubyLanguage.JRubyContextWrapper(runtime)).build();
engine = PolyglotEngine.newBuilder().globalSymbol(JRubyTruffleInterface.RUNTIME_SYMBOL, new JRubyContextWrapper(runtime)).build();

try {
context = (RubyContext) engine.eval(Source.fromText("Truffle::Primitive.context", "context").withMimeType(RubyLanguage.MIME_TYPE)).get();
@@ -34,10 +38,17 @@ public JRubyTruffleImpl(Ruby runtime) {

@Override
public Object execute(org.jruby.ast.RootNode rootNode) {
if (!Graal.isGraal() && Options.TRUFFLE_GRAAL_WARNING_UNLESS.load()) {
System.err.println("WARNING: This JVM does not have the Graal compiler. " +
"JRuby+Truffle's performance without it will be limited. " +
"See https://github.com/jruby/jruby/wiki/Truffle-FAQ#how-do-i-get-jrubytruffle");
}

context.setInitialJRubyRootNode(rootNode);

try {
return engine.eval(Source.fromText("Truffle::Primitive.run_jruby_root", "run_jruby_root").withMimeType(RubyLanguage.MIME_TYPE)).get();
return engine.eval(Source.fromText("Truffle::Primitive.run_jruby_root", "run_jruby_root")
.withMimeType(RubyLanguage.MIME_TYPE)).get();
} catch (IOException e) {
if (e.getCause() instanceof RuntimeException) {
throw (RuntimeException) e.getCause();
@@ -51,4 +62,5 @@ public Object execute(org.jruby.ast.RootNode rootNode) {
public void dispose() {
engine.dispose();
}

}
Loading