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: b1880ea37106
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 44ab7cc0f160
Choose a head ref
  • 2 commits
  • 69 files changed
  • 1 contributor

Commits on Mar 14, 2015

  1. Copy the full SHA
    a19cd4a View commit details
  2. 2
    Copy the full SHA
    44ab7cc View commit details
Showing with 242 additions and 237 deletions.
  1. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/ReadConstantNode.java
  2. +8 −8 truffle/src/main/java/org/jruby/truffle/nodes/RubyCallNode.java
  3. +7 −2 truffle/src/main/java/org/jruby/truffle/nodes/RubyNode.java
  4. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/TopLevelRaiseHandler.java
  5. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/array/ArrayReadNormalizedNode.java
  6. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/array/ArrayReadSliceNormalizedNode.java
  7. +3 −3 truffle/src/main/java/org/jruby/truffle/nodes/array/ArrayWriteNormalizedNode.java
  8. +7 −7 truffle/src/main/java/org/jruby/truffle/nodes/cast/ArrayCastNode.java
  9. +6 −6 truffle/src/main/java/org/jruby/truffle/nodes/cast/HashCastNode.java
  10. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/SingleValueCastNode.java
  11. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/SplatCastNode.java
  12. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/TaintResultNode.java
  13. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/control/WhileNode.java
  14. +30 −30 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayNodes.java
  15. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/BasicObjectNodes.java
  16. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/ClassNodes.java
  17. +3 −3 truffle/src/main/java/org/jruby/truffle/nodes/core/EncodingConverterNodes.java
  18. +10 −10 truffle/src/main/java/org/jruby/truffle/nodes/core/EncodingNodes.java
  19. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/ExceptionNodes.java
  20. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/FiberNodes.java
  21. +6 −6 truffle/src/main/java/org/jruby/truffle/nodes/core/FileNodes.java
  22. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/FixnumNodes.java
  23. +4 −4 truffle/src/main/java/org/jruby/truffle/nodes/core/FloatNodes.java
  24. +8 −8 truffle/src/main/java/org/jruby/truffle/nodes/core/HashNodes.java
  25. +3 −3 truffle/src/main/java/org/jruby/truffle/nodes/core/IntegerNodes.java
  26. +9 −9 truffle/src/main/java/org/jruby/truffle/nodes/core/KernelNodes.java
  27. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/MatchDataNodes.java
  28. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/MethodNodes.java
  29. +16 −16 truffle/src/main/java/org/jruby/truffle/nodes/core/ModuleNodes.java
  30. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/NumericNodes.java
  31. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/ObjectSpaceNodes.java
  32. +5 −5 truffle/src/main/java/org/jruby/truffle/nodes/core/PrimitiveNodes.java
  33. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/ProcNodes.java
  34. +4 −4 truffle/src/main/java/org/jruby/truffle/nodes/core/RegexpNodes.java
  35. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/SetTopLevelBindingNode.java
  36. +20 −20 truffle/src/main/java/org/jruby/truffle/nodes/core/StringNodes.java
  37. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/SymbolNodes.java
  38. +6 −6 truffle/src/main/java/org/jruby/truffle/nodes/core/ThreadNodes.java
  39. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/TimeNodes.java
  40. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/UnboundMethodNodes.java
  41. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/debug/AssertConstantNode.java
  42. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/debug/AssertNotCompiledNode.java
  43. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/globals/CheckOutputSeparatorVariableTypeNode.java
  44. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/globals/CheckRecordSeparatorVariableTypeNode.java
  45. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/globals/CheckStdoutVariableTypeNode.java
  46. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/globals/ReadLastBacktraceNode.java
  47. +7 −7 truffle/src/main/java/org/jruby/truffle/nodes/globals/ReadMatchReferenceNode.java
  48. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/globals/UpdateLastBacktraceNode.java
  49. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/globals/WriteReadOnlyGlobalNode.java
  50. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/literal/ArrayLiteralNode.java
  51. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/literal/NilLiteralNode.java
  52. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/literal/RangeLiteralNode.java
  53. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/UndefNode.java
  54. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/arguments/CheckArityNode.java
  55. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/arguments/ReadPreArgumentNode.java
  56. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/methods/locals/ReadLevelVariableNode.java
  57. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/methods/locals/ReadLocalVariableNode.java
  58. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/objects/ReadClassVariableNode.java
  59. +9 −9 truffle/src/main/java/org/jruby/truffle/nodes/objects/ReadInstanceVariableNode.java
  60. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/CallRubiniusPrimitiveNode.java
  61. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/EncodingPrimitiveNodes.java
  62. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/InvokeRubiniusPrimitiveNode.java
  63. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/RegexpPrimitiveNodes.java
  64. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/RubiniusSingleBlockArgNode.java
  65. +7 −7 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/StringPrimitiveNodes.java
  66. +3 −3 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/TimePrimitiveNodes.java
  67. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/VMPrimitiveNodes.java
  68. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/supercall/AbstractGeneralSuperCallNode.java
  69. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/yield/YieldNode.java
Original file line number Diff line number Diff line change
@@ -81,7 +81,7 @@ public Object isDefined(VirtualFrame frame) {
*/

if (e.getRubyException().getLogicalClass() == context.getCoreLibrary().getNameErrorClass()) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

throw e;
@@ -91,7 +91,7 @@ public Object isDefined(VirtualFrame frame) {
RubyConstant constant = ModuleOperations.lookupConstant(context, dispatch.getLexicalScope(), module, name);

if (constant == null || !constant.isVisibleTo(context, dispatch.getLexicalScope(), module)) {
return getContext().getCoreLibrary().getNilObject();
return nil();
} else {
return context.makeString("constant");
}
16 changes: 8 additions & 8 deletions truffle/src/main/java/org/jruby/truffle/nodes/RubyCallNode.java
Original file line number Diff line number Diff line change
@@ -169,13 +169,13 @@ private Object[] splat(Object argument) {
public Object isDefined(VirtualFrame frame) {
notDesignedForCompilation();

if (receiver.isDefined(frame) == getContext().getCoreLibrary().getNilObject()) {
return getContext().getCoreLibrary().getNilObject();
if (receiver.isDefined(frame) == nil()) {
return nil();
}

for (RubyNode argument : arguments) {
if (argument.isDefined(frame) == getContext().getCoreLibrary().getNilObject()) {
return getContext().getCoreLibrary().getNilObject();
if (argument.isDefined(frame) == nil()) {
return nil();
}
}

@@ -193,7 +193,7 @@ public Object isDefined(VirtualFrame frame) {

receiverObject = receiver.execute(frame);
} catch (Exception e) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

// TODO(CS): this lookup should be cached
@@ -206,12 +206,12 @@ public Object isDefined(VirtualFrame frame) {
final Object r = respondToMissing.call(frame, receiverObject, "respond_to_missing?", null, context.makeString(methodName));

if (r != DispatchNode.MISSING && !respondToMissingCast.executeBoolean(frame, r)) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}
} else if (method.isUndefined()) {
return getContext().getCoreLibrary().getNilObject();
return nil();
} else if (!ignoreVisibility && !method.isVisibleTo(this, context.getCoreLibrary().getMetaClass(self))) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

return context.makeString("method");
9 changes: 7 additions & 2 deletions truffle/src/main/java/org/jruby/truffle/nodes/RubyNode.java
Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@
package org.jruby.truffle.nodes;

import com.oracle.truffle.api.CompilerAsserts;
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.Truffle;
import com.oracle.truffle.api.dsl.TypeSystemReference;
import com.oracle.truffle.api.frame.MaterializedFrame;
@@ -217,7 +218,7 @@ public RubyContext getContext() {
}

public static void notDesignedForCompilation() {
CompilerAsserts.neverPartOfCompilation();
CompilerDirectives.bailout("this code either doesn't implement Ruby semantics properly, or is a basic implementation that will not compile");
}

public boolean isTrue(boolean value) {
@@ -464,7 +465,7 @@ public boolean isObjectArray(Object value) {
}

public boolean isRubyNilObject(Object value) {
return value == getContext().getCoreLibrary().getNilObject();
return value == nil();
}

public boolean isRubiniusUndefined(Object value) {
@@ -493,4 +494,8 @@ protected Object ruby(VirtualFrame frame, String expression, Object... arguments
return getContext().eval(ByteList.create(expression), binding, true, "inline-ruby", this);
}

protected RubyNilClass nil() {
return getContext().getCoreLibrary().getNilObject();
}

}
Original file line number Diff line number Diff line change
@@ -40,7 +40,7 @@ public Object execute(VirtualFrame frame) {
// Ignore
}

return getContext().getCoreLibrary().getNilObject();
return nil();
}

}
Original file line number Diff line number Diff line change
@@ -45,7 +45,7 @@ public ArrayReadNormalizedNode(ArrayReadNormalizedNode prev) {
guards="isNullArray"
)
public RubyNilClass readNull(RubyArray array, int index) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

// Read within the bounds of an array with actual storage
@@ -84,7 +84,7 @@ public Object readObjectInBounds(RubyArray array, int index) {
guards="!isInBounds"
)
public RubyNilClass readOutOfBounds(RubyArray array, int index) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

// Guards
Original file line number Diff line number Diff line change
@@ -47,14 +47,14 @@ public ArrayReadSliceNormalizedNode(ArrayReadSliceNormalizedNode prev) {
guards={"!indexInBounds"}
)
public RubyNilClass readIndexOutOfBounds(RubyArray array, int index, int length) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization(
guards={"!lengthPositive"}
)
public RubyNilClass readNegativeLength(RubyArray array, int index, int length) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

// If these guards pass for a null array you can only get an empty array
Original file line number Diff line number Diff line change
@@ -101,7 +101,7 @@ public Object writeNullBeyond(RubyArray array, int index, Object value) {
final Object[] store = new Object[index + 1];

for (int n = 0; n < index; n++) {
store[n] = getContext().getCoreLibrary().getNilObject();
store[n] = nil();
}

store[index] = value;
@@ -284,7 +284,7 @@ public Object writeBeyondPrimitive(VirtualFrame frame, RubyArray array, int inde
final Object[] objectStore = ((Object[]) array.getStore());

for (int n = array.getSize(); n < index; n++) {
objectStore[n] = getContext().getCoreLibrary().getNilObject();
objectStore[n] = nil();
}

objectStore[index] = value;
@@ -300,7 +300,7 @@ public Object writeBeyondObject(VirtualFrame frame, RubyArray array, int index,
final Object[] objectStore = ((Object[]) array.getStore());

for (int n = array.getSize(); n < index; n++) {
objectStore[n] = getContext().getCoreLibrary().getNilObject();
objectStore[n] = nil();
}

objectStore[index] = value;
Original file line number Diff line number Diff line change
@@ -54,27 +54,27 @@ public ArrayCastNode(ArrayCastNode prev) {

@Specialization
public RubyNilClass cast(boolean value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
public RubyNilClass cast(int value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
public RubyNilClass cast(long value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
public RubyNilClass cast(double value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
public RubyNilClass cast(RubyBignum value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
@@ -89,7 +89,7 @@ public Object cast(RubyNilClass nil) {
return new RubyArray(getContext().getCoreLibrary().getArrayClass());

case ARRAY_WITH_NIL:
return RubyArray.fromObject(getContext().getCoreLibrary().getArrayClass(), getContext().getCoreLibrary().getNilObject());
return RubyArray.fromObject(getContext().getCoreLibrary().getArrayClass(), nil());

case NIL:
return nil;
@@ -108,7 +108,7 @@ public Object cast(VirtualFrame frame, RubyBasicObject object) {
final Object result = toArrayNode.call(frame, object, "to_ary", null, new Object[]{});

if (result == DispatchNode.MISSING) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

if (!(result instanceof RubyArray)) {
Original file line number Diff line number Diff line change
@@ -44,27 +44,27 @@ public HashCastNode(HashCastNode prev) {

@Specialization
public RubyNilClass cast(boolean value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
public RubyNilClass cast(int value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
public RubyNilClass cast(long value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
public RubyNilClass cast(double value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
public RubyNilClass cast(RubyBignum value) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization
@@ -84,7 +84,7 @@ public Object cast(VirtualFrame frame, RubyBasicObject object) {
final Object result = toHashNode.call(frame, object, "to_hash", null, new Object[]{});

if (result == DispatchNode.MISSING) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

if (!(result instanceof RubyHash)) {
Original file line number Diff line number Diff line change
@@ -33,7 +33,7 @@ public SingleValueCastNode(SingleValueCastNode prev) {

@Specialization(guards = "noArguments")
protected RubyNilClass castNil(Object[] args) {
return getContext().getCoreLibrary().getNilObject();
return nil();
}

@Specialization(guards = "singleArgument")
Original file line number Diff line number Diff line change
@@ -73,7 +73,7 @@ public RubyArray splat(RubyNilClass nil) {
return new RubyArray(getContext().getCoreLibrary().getArrayClass());

case ARRAY_WITH_NIL:
return RubyArray.fromObject(getContext().getCoreLibrary().getArrayClass(), getContext().getCoreLibrary().getNilObject());
return RubyArray.fromObject(getContext().getCoreLibrary().getArrayClass(), nil());

default: {
CompilerAsserts.neverPartOfCompilation();
Original file line number Diff line number Diff line change
@@ -74,7 +74,7 @@ public Object execute(VirtualFrame frame) {
throw new UnsupportedOperationException(e);
}

if (result != getContext().getCoreLibrary().getNilObject()) {
if (result != nil()) {
if (taintFromSelf) {
maybeTaint((RubyBasicObject) RubyArguments.getSelf(frame.getArguments()), result);
}
Original file line number Diff line number Diff line change
@@ -54,7 +54,7 @@ public Object execute(VirtualFrame frame) {
return e.getResult();
}

return getContext().getCoreLibrary().getNilObject();
return nil();
}

private static abstract class WhileRepeatingBaseNode extends Node implements RepeatingNode {
Loading