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: 343718d87f86
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 8bbb2896f5e4
Choose a head ref
  • 4 commits
  • 34 files changed
  • 1 contributor

Commits on Apr 16, 2016

  1. 1
    Copy the full SHA
    95f825a View commit details
  2. Copy the full SHA
    cc55b66 View commit details
  3. Copy the full SHA
    99c8738 View commit details
  4. 1
    Copy the full SHA
    8bbb289 View commit details
Showing with 58 additions and 114 deletions.
  1. +4 −4 truffle/src/main/java/org/jruby/truffle/core/CoreMethodNodeManager.java
  2. +2 −2 truffle/src/main/java/org/jruby/truffle/core/array/ArrayNodes.java
  3. +2 −6 truffle/src/main/java/org/jruby/truffle/core/hash/HashNode.java
  4. +2 −6 truffle/src/main/java/org/jruby/truffle/core/hash/LookupEntryNode.java
  5. +1 −1 truffle/src/main/java/org/jruby/truffle/core/module/ModuleNodes.java
  6. +2 −5 truffle/src/main/java/org/jruby/truffle/core/numeric/FixnumOrBignumNode.java
  7. +2 −6 truffle/src/main/java/org/jruby/truffle/core/numeric/GeneralDivModNode.java
  8. +4 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/RubiniusPrimitiveCallConstructor.java
  9. +2 −2 truffle/src/main/java/org/jruby/truffle/core/rubinius/RubiniusPrimitiveNodeConstructor.java
  10. +0 −1 truffle/src/main/java/org/jruby/truffle/language/RubyBaseNode.java
  11. +1 −5 truffle/src/main/java/org/jruby/truffle/language/arguments/ArrayIsAtLeastAsLargeAsNode.java
  12. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/CheckArityNode.java
  13. +1 −1 truffle/src/main/java/org/jruby/truffle/language/arguments/CheckKeywordArityNode.java
  14. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/MissingKeywordArgumentNode.java
  15. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/ObjectArrayNode.java
  16. +0 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadAllArgumentsNode.java
  17. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadBlockNode.java
  18. +0 −6 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadCallerFrameNode.java
  19. +1 −1 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadKeywordArgumentNode.java
  20. +1 −1 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadKeywordRestArgumentNode.java
  21. +1 −1 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadOptionalArgumentNode.java
  22. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadPostArgumentNode.java
  23. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadPreArgumentNode.java
  24. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadRemainingArgumentsNode.java
  25. +1 −1 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadRestArgumentNode.java
  26. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadUserKeywordsHashNode.java
  27. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/RunBlockKWArgsHelperNode.java
  28. +1 −4 truffle/src/main/java/org/jruby/truffle/language/arguments/ShouldDestructureNode.java
  29. +2 −2 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/BodyTranslator.java
  30. +9 −9 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/LoadArgumentsTranslator.java
  31. +3 −3 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/MethodTranslator.java
  32. +1 −1 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/ReloadArgumentsTranslator.java
  33. +5 −1 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/Translator.java
  34. +1 −1 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/TranslatorDriver.java
Original file line number Diff line number Diff line change
@@ -168,7 +168,7 @@ private static RubyRootNode makeGenericMethod(RubyContext context, MethodDetails
final List<RubyNode> argumentsNodes = new ArrayList<>();

if (needsCallerFrame) {
argumentsNodes.add(new ReadCallerFrameNode(context, sourceSection));
argumentsNodes.add(new ReadCallerFrameNode());
}

// Do not use needsSelf=true in module functions, it is either the module/class or the instance.
@@ -190,7 +190,7 @@ private static RubyRootNode makeGenericMethod(RubyContext context, MethodDetails
}

for (int n = 0; n < arity.getPreRequired() + arity.getOptional(); n++) {
RubyNode readArgumentNode = new ReadPreArgumentNode(context, sourceSection, n, MissingArgumentBehavior.UNDEFINED);
RubyNode readArgumentNode = new ReadPreArgumentNode(n, MissingArgumentBehavior.UNDEFINED);

if (ArrayUtils.contains(method.lowerFixnumParameters(), n)) {
readArgumentNode = FixnumLowerNodeGen.create(context, sourceSection, readArgumentNode);
@@ -203,11 +203,11 @@ private static RubyRootNode makeGenericMethod(RubyContext context, MethodDetails
argumentsNodes.add(readArgumentNode);
}
if (method.rest()) {
argumentsNodes.add(new ReadRemainingArgumentsNode(context, sourceSection, arity.getPreRequired() + arity.getOptional()));
argumentsNodes.add(new ReadRemainingArgumentsNode(arity.getPreRequired() + arity.getOptional()));
}

if (method.needsBlock()) {
argumentsNodes.add(new ReadBlockNode(context, sourceSection, NotProvided.INSTANCE));
argumentsNodes.add(new ReadBlockNode(NotProvided.INSTANCE));
}

final RubyNode methodNode;
Original file line number Diff line number Diff line change
@@ -2104,7 +2104,7 @@ public MaxBlock(RubyContext context) {

callTarget = Truffle.getRuntime().createCallTarget(new RubyRootNode(context, sourceSection, null, sharedMethodInfo, MaxBlockNodeFactory.create(context, sourceSection, new RubyNode[]{
new ReadDeclarationVariableNode(context, sourceSection, LocalVariableType.FRAME_LOCAL, 1, frameSlot),
new ReadPreArgumentNode(context, sourceSection, 0, MissingArgumentBehavior.RUNTIME_ERROR)
new ReadPreArgumentNode(0, MissingArgumentBehavior.RUNTIME_ERROR)
}), false));
}

@@ -2222,7 +2222,7 @@ public MinBlock(RubyContext context) {

callTarget = Truffle.getRuntime().createCallTarget(new RubyRootNode(context, sourceSection, null, sharedMethodInfo, MinBlockNodeFactory.create(context, sourceSection, new RubyNode[]{
new ReadDeclarationVariableNode(context, sourceSection, LocalVariableType.FRAME_LOCAL, 1, frameSlot),
new ReadPreArgumentNode(context, sourceSection, 0, MissingArgumentBehavior.RUNTIME_ERROR)
new ReadPreArgumentNode(0, MissingArgumentBehavior.RUNTIME_ERROR)
}), false));
}

Original file line number Diff line number Diff line change
@@ -13,11 +13,12 @@
import com.oracle.truffle.api.profiles.ConditionProfile;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.language.RubyBaseNode;
import org.jruby.truffle.language.RubyNode;
import org.jruby.truffle.language.dispatch.CallDispatchHeadNode;
import org.jruby.truffle.language.dispatch.DispatchHeadNodeFactory;

public class HashNode extends RubyNode {
public class HashNode extends RubyBaseNode {

@Child private CallDispatchHeadNode hashNode;

@@ -41,9 +42,4 @@ public int hash(VirtualFrame frame, Object key) {
}
}

@Override
public Object execute(VirtualFrame frame) {
throw new UnsupportedOperationException();
}

}
Original file line number Diff line number Diff line change
@@ -17,11 +17,12 @@
import org.jruby.truffle.core.Layouts;
import org.jruby.truffle.core.basicobject.BasicObjectNodes;
import org.jruby.truffle.core.basicobject.BasicObjectNodesFactory;
import org.jruby.truffle.language.RubyBaseNode;
import org.jruby.truffle.language.RubyNode;
import org.jruby.truffle.language.dispatch.CallDispatchHeadNode;
import org.jruby.truffle.language.dispatch.DispatchHeadNodeFactory;

public class LookupEntryNode extends RubyNode {
public class LookupEntryNode extends RubyBaseNode {

@Child HashNode hashNode;
@Child CallDispatchHeadNode eqlNode;
@@ -63,9 +64,4 @@ public HashLookupResult lookup(VirtualFrame frame, DynamicObject hash, Object ke
return new HashLookupResult(hashed, index, previousEntry, null);
}

@Override
public Object execute(VirtualFrame frame) {
throw new UnsupportedOperationException();
}

}
Original file line number Diff line number Diff line change
@@ -432,7 +432,7 @@ public DynamicObject generateAccessor(VirtualFrame frame, DynamicObject module,
if (isGetter) {
accessInstanceVariable = new ReadInstanceVariableNode(getContext(), sourceSection, ivar, self);
} else {
ReadPreArgumentNode readArgument = new ReadPreArgumentNode(getContext(), sourceSection, 0, MissingArgumentBehavior.RUNTIME_ERROR);
ReadPreArgumentNode readArgument = new ReadPreArgumentNode(0, MissingArgumentBehavior.RUNTIME_ERROR);
accessInstanceVariable = new WriteInstanceVariableNode(getContext(), sourceSection, ivar, self, readArgument);
}
final RubyNode sequence = Translator.sequence(getContext(), sourceSection, Arrays.asList(checkArity, accessInstanceVariable));
Original file line number Diff line number Diff line change
@@ -17,12 +17,13 @@
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.core.CoreLibrary;
import org.jruby.truffle.core.Layouts;
import org.jruby.truffle.language.RubyBaseNode;
import org.jruby.truffle.language.RubyNode;

import java.math.BigDecimal;
import java.math.BigInteger;

public class FixnumOrBignumNode extends RubyNode {
public class FixnumOrBignumNode extends RubyBaseNode {

private static final BigInteger LONG_MIN_BIGINT = BigInteger.valueOf(Long.MIN_VALUE);
private static final BigInteger LONG_MAX_BIGINT = BigInteger.valueOf(Long.MAX_VALUE);
@@ -76,8 +77,4 @@ private static BigInteger doubleToBigInteger(double value) {
return new BigDecimal(value).toBigInteger();
}

public Object execute(VirtualFrame frame) {
throw new UnsupportedOperationException();
}

}
Original file line number Diff line number Diff line change
@@ -16,12 +16,13 @@
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.core.Layouts;
import org.jruby.truffle.language.RubyBaseNode;
import org.jruby.truffle.language.RubyNode;
import org.jruby.truffle.language.control.RaiseException;

import java.math.BigInteger;

public class GeneralDivModNode extends RubyNode {
public class GeneralDivModNode extends RubyBaseNode {

@Child private FixnumOrBignumNode fixnumOrBignumQuotient;
@Child private FixnumOrBignumNode fixnumOrBignumRemainder;
@@ -172,9 +173,4 @@ public DynamicObject create(BigInteger value) {
return Layouts.BIGNUM.createBignum(coreLibrary().getBignumFactory(), value);
}

@Override
public Object execute(VirtualFrame frame) {
throw new UnsupportedOperationException();
}

}
Original file line number Diff line number Diff line change
@@ -42,17 +42,17 @@ public RubyNode createCallPrimitiveNode(RubyContext context, SourceSection sourc
return new CallRubiniusPrimitiveNode(context, sourceSection,
MethodNodesFactory.CallNodeFactory.create(context, sourceSection, new RubyNode[] {
new ObjectLiteralNode(context, sourceSection, method),
new ReadAllArgumentsNode(context, sourceSection),
new ReadBlockNode(context, sourceSection, NotProvided.INSTANCE)
new ReadAllArgumentsNode(),
new ReadBlockNode(NotProvided.INSTANCE)
}), returnID);
}

@Override
public RubyNode createInvokePrimitiveNode(RubyContext context, SourceSection sourceSection, RubyNode[] arguments) {
return MethodNodesFactory.CallNodeFactory.create(context, sourceSection, new RubyNode[] {
new ObjectLiteralNode(context, sourceSection, method),
new ObjectArrayNode(context, sourceSection, arguments),
new ReadBlockNode(context, sourceSection, NotProvided.INSTANCE)
new ObjectArrayNode(arguments),
new ReadBlockNode(NotProvided.INSTANCE)
});
}

Original file line number Diff line number Diff line change
@@ -55,7 +55,7 @@ public RubyNode createCallPrimitiveNode(RubyContext context, SourceSection sourc
}

for (int n = 0; n < argumentsCount; n++) {
RubyNode readArgumentNode = new ReadPreArgumentNode(context, sourceSection, n, MissingArgumentBehavior.UNDEFINED);
RubyNode readArgumentNode = new ReadPreArgumentNode(n, MissingArgumentBehavior.UNDEFINED);
arguments.add(transformArgument(readArgumentNode, n));
}

@@ -91,7 +91,7 @@ public RubyNode createInvokePrimitiveNode(RubyContext context, SourceSection sou

private RubyNode transformArgument(RubyNode argument, int n) {
if (ArrayUtils.contains(annotation.lowerFixnumParameters(), n)) {
return FixnumLowerNodeGen.create(argument.getContext(), argument.getSourceSection(), argument);
return FixnumLowerNodeGen.create(null, null, argument);
} else {
return argument;
}
Original file line number Diff line number Diff line change
@@ -44,7 +44,6 @@ public RubyBaseNode() {

public RubyBaseNode(RubyContext context, SourceSection sourceSection) {
super(sourceSection);
assert context != null;
this.context = context;
}

Original file line number Diff line number Diff line change
@@ -11,8 +11,6 @@

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.core.Layouts;
import org.jruby.truffle.language.RubyNode;

@@ -22,9 +20,7 @@ public class ArrayIsAtLeastAsLargeAsNode extends RubyNode {

@Child private RubyNode child;

public ArrayIsAtLeastAsLargeAsNode(RubyContext context, SourceSection sourceSection,
int requiredSize, RubyNode child) {
super(context, sourceSection);
public ArrayIsAtLeastAsLargeAsNode(int requiredSize, RubyNode child) {
this.requiredSize = requiredSize;
this.child = child;
}
Original file line number Diff line number Diff line change
@@ -11,8 +11,6 @@

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.profiles.BranchProfile;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.language.RubyNode;
import org.jruby.truffle.language.control.RaiseException;
import org.jruby.truffle.language.methods.Arity;
@@ -23,8 +21,7 @@ public class CheckArityNode extends RubyNode {

private final BranchProfile checkFailedProfile = BranchProfile.create();

public CheckArityNode(RubyContext context, SourceSection sourceSection, Arity arity) {
super(context, sourceSection);
public CheckArityNode(Arity arity) {
this.arity = arity;
}

Original file line number Diff line number Diff line change
@@ -35,7 +35,7 @@ public class CheckKeywordArityNode extends RubyNode {
public CheckKeywordArityNode(RubyContext context, SourceSection sourceSection, Arity arity) {
super(context, sourceSection);
this.arity = arity;
readUserKeywordsHashNode = new ReadUserKeywordsHashNode(context, sourceSection, arity.getRequired());
readUserKeywordsHashNode = new ReadUserKeywordsHashNode(arity.getRequired());
}

@Override
Original file line number Diff line number Diff line change
@@ -10,17 +10,14 @@
package org.jruby.truffle.language.arguments;

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.language.RubyNode;
import org.jruby.truffle.language.control.RaiseException;

public class MissingKeywordArgumentNode extends RubyNode {

private final String name;

public MissingKeywordArgumentNode(RubyContext context, SourceSection sourceSection, String name) {
super(context, sourceSection);
public MissingKeywordArgumentNode(String name) {
this.name = name;
}

Original file line number Diff line number Diff line change
@@ -11,16 +11,13 @@

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.nodes.ExplodeLoop;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.language.RubyNode;

public class ObjectArrayNode extends RubyNode {

@Children private final RubyNode[] nodes;

public ObjectArrayNode(RubyContext context, SourceSection sourceSection, RubyNode[] nodes) {
super(context, sourceSection);
public ObjectArrayNode(RubyNode[] nodes) {
this.nodes = nodes;
}

Original file line number Diff line number Diff line change
@@ -16,10 +16,6 @@

public class ReadAllArgumentsNode extends RubyNode {

public ReadAllArgumentsNode(RubyContext context, SourceSection sourceSection) {
super(context, sourceSection);
}

@Override
public Object[] executeObjectArray(VirtualFrame frame) {
return RubyArguments.getArguments(frame);
Original file line number Diff line number Diff line change
@@ -12,8 +12,6 @@
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.profiles.ConditionProfile;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.language.RubyNode;

public class ReadBlockNode extends RubyNode {
@@ -22,8 +20,7 @@ public class ReadBlockNode extends RubyNode {

private final ConditionProfile blockProfile = ConditionProfile.createBinaryProfile();

public ReadBlockNode(RubyContext context, SourceSection sourceSection, Object valueIfAbsent) {
super(context, sourceSection);
public ReadBlockNode(Object valueIfAbsent) {
this.valueIfAbsent = valueIfAbsent;
}

Original file line number Diff line number Diff line change
@@ -11,19 +11,13 @@

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.profiles.ConditionProfile;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.language.NotProvided;
import org.jruby.truffle.language.RubyNode;

public class ReadCallerFrameNode extends RubyNode {

private final ConditionProfile callerFrameProfile = ConditionProfile.createBinaryProfile();

public ReadCallerFrameNode(RubyContext context, SourceSection sourceSection) {
super(context, sourceSection);
}

@Override
public Object execute(VirtualFrame frame) {
final Object callerFrame = RubyArguments.getCallerFrame(frame);
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ public ReadKeywordArgumentNode(RubyContext context, SourceSection sourceSection,
super(context, sourceSection);
this.name = name;
this.defaultValue = defaultValue;
readUserKeywordsHashNode = new ReadUserKeywordsHashNode(context, sourceSection, minimum);
readUserKeywordsHashNode = new ReadUserKeywordsHashNode(minimum);
}

@Override
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ public ReadKeywordRestArgumentNode(RubyContext context, SourceSection sourceSect
int minimum, String[] excludedKeywords) {
super(context, sourceSection);
this.excludedKeywords = excludedKeywords;
readUserKeywordsHashNode = new ReadUserKeywordsHashNode(context, sourceSection, minimum);
readUserKeywordsHashNode = new ReadUserKeywordsHashNode(minimum);
}

@Override
Original file line number Diff line number Diff line change
@@ -45,7 +45,7 @@ public ReadOptionalArgumentNode(RubyContext context, SourceSection sourceSection
this.reduceMinimumWhenNoKWargs = reduceMinimumWhenNoKWargs;

if (reduceMinimumWhenNoKWargs) {
readUserKeywordsHashNode = new ReadUserKeywordsHashNode(context, sourceSection, requiredForKWArgs);
readUserKeywordsHashNode = new ReadUserKeywordsHashNode(requiredForKWArgs);
}
}

Original file line number Diff line number Diff line change
@@ -10,16 +10,13 @@
package org.jruby.truffle.language.arguments;

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.RubyContext;
import org.jruby.truffle.language.RubyNode;

public class ReadPostArgumentNode extends RubyNode {

private final int indexFromCount;

public ReadPostArgumentNode(RubyContext context, SourceSection sourceSection, int indexFromCount) {
super(context, sourceSection);
public ReadPostArgumentNode(int indexFromCount) {
this.indexFromCount = indexFromCount;
}

Loading