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: 7eec0567630b
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 79d67af62b4b
Choose a head ref
  • 9 commits
  • 109 files changed
  • 2 contributors

Commits on Apr 17, 2016

  1. Verified

    This commit was signed with the committer’s verified signature.
    makenowjust Hiroya Fujinami
    Copy the full SHA
    01016f5 View commit details
  2. Copy the full SHA
    c977a59 View commit details
  3. Copy the full SHA
    c2f9145 View commit details
  4. 11
    Copy the full SHA
    f6a2f67 View commit details
  5. Merge pull request #3806 from jruby/truffle-snippets

    [Truffle] Compiled Ruby snippets in Java.
    chrisseaton committed Apr 17, 2016
    Copy the full SHA
    0d58bb7 View commit details
  6. [Truffle] Remove the majority of useless node constructors that just …

    …pass on context and source section.
    chrisseaton committed Apr 17, 2016
    1
    Copy the full SHA
    fd65c2d View commit details
  7. [Truffle] Fix PE test.

    chrisseaton committed Apr 17, 2016
    Copy the full SHA
    793f262 View commit details
  8. Merge branch 'master' into truffle-head

    # Conflicts:
    #	truffle/src/main/java/org/jruby/truffle/extra/TrufflePrimitiveNodes.java
    #	truffle/src/main/java/org/jruby/truffle/language/LazyRubyRootNode.java
    chrisseaton committed Apr 17, 2016
    Copy the full SHA
    ae00825 View commit details
  9. Copy the full SHA
    79d67af View commit details
Showing with 712 additions and 3,099 deletions.
  1. +1 −1 test/truffle/compiler/pe/core/string_pe.rb
  2. +3 −0 truffle/src/main/java/org/jruby/truffle/core/BinaryCoreMethodNode.java
  3. +3 −0 truffle/src/main/java/org/jruby/truffle/core/CoreMethodArrayArgumentsNode.java
  4. +3 −0 truffle/src/main/java/org/jruby/truffle/core/CoreMethodNode.java
  5. +10 −1 truffle/src/main/java/org/jruby/truffle/core/CoreMethodNodeManager.java
  6. +8 −92 truffle/src/main/java/org/jruby/truffle/core/MathNodes.java
  7. +41 −19 truffle/src/main/java/org/jruby/truffle/core/ProcessNodes.java
  8. +3 −0 truffle/src/main/java/org/jruby/truffle/core/UnaryCoreMethodNode.java
  9. +4 −0 truffle/src/main/java/org/jruby/truffle/core/YieldingCoreMethodNode.java
  10. +3 −0 truffle/src/main/java/org/jruby/truffle/core/array/ArrayCoreMethodNode.java
  11. +22 −122 truffle/src/main/java/org/jruby/truffle/core/array/ArrayNodes.java
  12. +1 −21 truffle/src/main/java/org/jruby/truffle/core/basicobject/BasicObjectNodes.java
  13. +0 −12 truffle/src/main/java/org/jruby/truffle/core/binding/BindingNodes.java
  14. +1 −9 truffle/src/main/java/org/jruby/truffle/core/bool/FalseClassNodes.java
  15. +2 −14 truffle/src/main/java/org/jruby/truffle/core/bool/TrueClassNodes.java
  16. +50 −0 truffle/src/main/java/org/jruby/truffle/core/cast/LazyDefaultValueNode.java
  17. +3 −3 truffle/src/main/java/org/jruby/truffle/core/cast/TaintResultNode.java
  18. +0 −8 truffle/src/main/java/org/jruby/truffle/core/encoding/EncodingConverterNodes.java
  19. +0 −36 truffle/src/main/java/org/jruby/truffle/core/encoding/EncodingNodes.java
  20. +1 −17 truffle/src/main/java/org/jruby/truffle/core/exception/ExceptionNodes.java
  21. +2 −22 truffle/src/main/java/org/jruby/truffle/core/fiber/FiberNodes.java
  22. +1 −53 truffle/src/main/java/org/jruby/truffle/core/hash/HashNodes.java
  23. +1 −1 truffle/src/main/java/org/jruby/truffle/core/hash/LookupEntryNode.java
  24. +1 −1 truffle/src/main/java/org/jruby/truffle/core/hash/SetNode.java
  25. +25 −159 truffle/src/main/java/org/jruby/truffle/core/kernel/KernelNodes.java
  26. +9 −2 truffle/src/main/java/org/jruby/truffle/core/kernel/TraceManager.java
  27. +1 −17 truffle/src/main/java/org/jruby/truffle/core/klass/ClassNodes.java
  28. +1 −37 truffle/src/main/java/org/jruby/truffle/core/method/MethodNodes.java
  29. +0 −32 truffle/src/main/java/org/jruby/truffle/core/method/UnboundMethodNodes.java
  30. +27 −151 truffle/src/main/java/org/jruby/truffle/core/module/ModuleNodes.java
  31. +0 −24 truffle/src/main/java/org/jruby/truffle/core/mutex/MutexNodes.java
  32. +0 −112 truffle/src/main/java/org/jruby/truffle/core/numeric/BignumNodes.java
  33. +3 −103 truffle/src/main/java/org/jruby/truffle/core/numeric/FixnumNodes.java
  34. +0 −76 truffle/src/main/java/org/jruby/truffle/core/numeric/FloatNodes.java
  35. +0 −16 truffle/src/main/java/org/jruby/truffle/core/numeric/IntegerNodes.java
  36. +1 −13 truffle/src/main/java/org/jruby/truffle/core/objectspace/ObjectSpaceNodes.java
  37. +9 −40 truffle/src/main/java/org/jruby/truffle/core/proc/ProcNodes.java
  38. +1 −33 truffle/src/main/java/org/jruby/truffle/core/queue/QueueNodes.java
  39. +2 −42 truffle/src/main/java/org/jruby/truffle/core/queue/SizedQueueNodes.java
  40. +2 −42 truffle/src/main/java/org/jruby/truffle/core/range/RangeNodes.java
  41. +0 −44 truffle/src/main/java/org/jruby/truffle/core/regexp/MatchDataNodes.java
  42. +3 −23 truffle/src/main/java/org/jruby/truffle/core/regexp/RegexpNodes.java
  43. +20 −48 truffle/src/main/java/org/jruby/truffle/core/rope/RopeNodes.java
  44. +0 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/ArrayPrimitiveNodes.java
  45. +0 −16 truffle/src/main/java/org/jruby/truffle/core/rubinius/AtomicReferenceNodes.java
  46. +0 −8 truffle/src/main/java/org/jruby/truffle/core/rubinius/BignumPrimitiveNodes.java
  47. +0 −24 truffle/src/main/java/org/jruby/truffle/core/rubinius/ByteArrayNodes.java
  48. +0 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/ChannelPrimitiveNodes.java
  49. +0 −16 truffle/src/main/java/org/jruby/truffle/core/rubinius/DirPrimitiveNodes.java
  50. +1 −13 truffle/src/main/java/org/jruby/truffle/core/rubinius/EncodingConverterPrimitiveNodes.java
  51. +0 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/EncodingPrimitiveNodes.java
  52. +0 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/ExceptionPrimitiveNodes.java
  53. +0 −8 truffle/src/main/java/org/jruby/truffle/core/rubinius/FixnumPrimitiveNodes.java
  54. +0 −8 truffle/src/main/java/org/jruby/truffle/core/rubinius/FloatPrimitiveNodes.java
  55. +0 −8 truffle/src/main/java/org/jruby/truffle/core/rubinius/IOBufferPrimitiveNodes.java
  56. +27 −55 truffle/src/main/java/org/jruby/truffle/core/rubinius/IOPrimitiveNodes.java
  57. +0 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/NativeFunctionPrimitiveNodes.java
  58. +2 −6 truffle/src/main/java/org/jruby/truffle/core/rubinius/ObjectPrimitiveNodes.java
  59. +0 −44 truffle/src/main/java/org/jruby/truffle/core/rubinius/PointerPrimitiveNodes.java
  60. +1 −249 truffle/src/main/java/org/jruby/truffle/core/rubinius/PosixNodes.java
  61. +0 −20 truffle/src/main/java/org/jruby/truffle/core/rubinius/RandomizerPrimitiveNodes.java
  62. +1 −29 truffle/src/main/java/org/jruby/truffle/core/rubinius/RegexpPrimitiveNodes.java
  63. +3 −0 truffle/src/main/java/org/jruby/truffle/core/rubinius/RubiniusPrimitiveArrayArgumentsNode.java
  64. +3 −0 truffle/src/main/java/org/jruby/truffle/core/rubinius/RubiniusPrimitiveNode.java
  65. +22 −2 truffle/src/main/java/org/jruby/truffle/core/rubinius/RubiniusPrimitiveNodeConstructor.java
  66. +0 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/RubiniusTypeNodes.java
  67. +8 −56 truffle/src/main/java/org/jruby/truffle/core/rubinius/StatPrimitiveNodes.java
  68. +21 −97 truffle/src/main/java/org/jruby/truffle/core/rubinius/StringPrimitiveNodes.java
  69. +0 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/SymbolPrimitiveNodes.java
  70. +0 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/ThreadPrimitiveNodes.java
  71. +0 −24 truffle/src/main/java/org/jruby/truffle/core/rubinius/TimePrimitiveNodes.java
  72. +0 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/UndefinedPrimitiveNodes.java
  73. +2 −58 truffle/src/main/java/org/jruby/truffle/core/rubinius/VMPrimitiveNodes.java
  74. +0 −12 truffle/src/main/java/org/jruby/truffle/core/rubinius/WeakRefPrimitiveNodes.java
  75. +53 −151 truffle/src/main/java/org/jruby/truffle/core/string/StringNodes.java
  76. +0 −28 truffle/src/main/java/org/jruby/truffle/core/symbol/SymbolNodes.java
  77. +0 −12 truffle/src/main/java/org/jruby/truffle/core/thread/ThreadBacktraceLocationNodes.java
  78. +33 −74 truffle/src/main/java/org/jruby/truffle/core/thread/ThreadNodes.java
  79. +0 −20 truffle/src/main/java/org/jruby/truffle/core/time/TimeNodes.java
  80. +2 −178 truffle/src/main/java/org/jruby/truffle/extra/TrufflePrimitiveNodes.java
  81. +3 −3 truffle/src/main/java/org/jruby/truffle/interop/ForeignExecuteNode.java
  82. +3 −11 truffle/src/main/java/org/jruby/truffle/interop/ForeignReadNode.java
  83. +3 −13 truffle/src/main/java/org/jruby/truffle/interop/ForeignWriteNode.java
  84. +0 −56 truffle/src/main/java/org/jruby/truffle/interop/TruffleInteropNodes.java
  85. +1 −1 truffle/src/main/java/org/jruby/truffle/language/LazyRubyRootNode.java
  86. +113 −0 truffle/src/main/java/org/jruby/truffle/language/SnippetNode.java
  87. +1 −1 truffle/src/main/java/org/jruby/truffle/language/constants/GetConstantNode.java
  88. +7 −0 truffle/src/main/java/org/jruby/truffle/language/dispatch/CallDispatchHeadNode.java
  89. +2 −3 truffle/src/main/java/org/jruby/truffle/language/exceptions/SetExceptionVariableNode.java
  90. +1 −1 truffle/src/main/java/org/jruby/truffle/language/globals/ReadThreadLocalGlobalVariableNode.java
  91. +12 −2 truffle/src/main/java/org/jruby/truffle/language/loader/CodeLoader.java
  92. +1 −1 truffle/src/main/java/org/jruby/truffle/language/objects/FreezeNode.java
  93. +1 −1 truffle/src/main/java/org/jruby/truffle/language/objects/IsFrozenNode.java
  94. +1 −1 truffle/src/main/java/org/jruby/truffle/language/objects/IsTaintedNode.java
  95. +2 −2 truffle/src/main/java/org/jruby/truffle/language/objects/ReadInstanceVariableNode.java
  96. +4 −5 truffle/src/main/java/org/jruby/truffle/language/objects/ReadObjectFieldNode.java
  97. +1 −1 truffle/src/main/java/org/jruby/truffle/language/objects/TaintNode.java
  98. +1 −1 truffle/src/main/java/org/jruby/truffle/language/objects/WriteInstanceVariableNode.java
  99. +4 −5 truffle/src/main/java/org/jruby/truffle/language/objects/WriteObjectFieldNode.java
  100. +2 −0 truffle/src/main/java/org/jruby/truffle/language/parser/Parser.java
  101. +46 −19 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/BodyTranslator.java
  102. +4 −0 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/MethodTranslator.java
  103. +17 −0 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/Translator.java
  104. +26 −3 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/TranslatorDriver.java
  105. +9 −139 truffle/src/main/java/org/jruby/truffle/stdlib/BigDecimalNodes.java
  106. +0 −40 truffle/src/main/java/org/jruby/truffle/stdlib/DigestNodes.java
  107. +0 −4 truffle/src/main/java/org/jruby/truffle/stdlib/EtcNodes.java
  108. +0 −20 truffle/src/main/java/org/jruby/truffle/stdlib/ObjSpaceNodes.java
  109. +0 −68 truffle/src/main/java/org/jruby/truffle/stdlib/psych/PsychEmitterNodes.java
2 changes: 1 addition & 1 deletion test/truffle/compiler/pe/core/string_pe.rb
Original file line number Diff line number Diff line change
@@ -51,4 +51,4 @@
example "'abc'.getbyte(10_000) == nil", true

example "14.to_s.length", 2
counter_example "14.to_s.getbyte(0)", '1'.ord # Doesn't work becuase the bytes are only populated on demand and so aren't constant
counter_example "14.to_s.getbyte(0)" # Doesn't work becuase the bytes are only populated on demand and so aren't constant
Original file line number Diff line number Diff line change
@@ -20,6 +20,9 @@
@NodeChild(value = "right", type = RubyNode.class)})
public abstract class BinaryCoreMethodNode extends CoreMethodNode {

public BinaryCoreMethodNode() {
}

public BinaryCoreMethodNode(RubyContext context, SourceSection sourceSection) {
super(context, sourceSection);
}
Original file line number Diff line number Diff line change
@@ -17,6 +17,9 @@
@NodeChild(value = "arguments", type = RubyNode[].class)
public abstract class CoreMethodArrayArgumentsNode extends CoreMethodNode {

public CoreMethodArrayArgumentsNode() {
}

public CoreMethodArrayArgumentsNode(RubyContext context, SourceSection sourceSection) {
super(context, sourceSection);
}
Original file line number Diff line number Diff line change
@@ -17,6 +17,9 @@
@GenerateNodeFactory
public abstract class CoreMethodNode extends RubyNode {

public CoreMethodNode() {
}

public CoreMethodNode(RubyContext context, SourceSection sourceSection) {
super(context, sourceSection);
}
Original file line number Diff line number Diff line change
@@ -217,9 +217,18 @@ private static RubyRootNode makeGenericMethod(RubyContext context, MethodDetails
assert signatures.size() == 1;
List<Class<?>> signature = signatures.get(0);

if (signature.size() >= 3 && signature.get(2) == RubyNode[].class) {
if (signature.size() == 0) {
methodNode = nodeFactory.createNode();
} else if (signature.size() == 1 && signature.get(0) == RubyNode[].class) {
Object[] args = argumentsNodes.toArray(new RubyNode[argumentsNodes.size()]);
methodNode = nodeFactory.createNode(new Object[]{args});
} else if (signature.size() >= 3 && signature.get(2) == RubyNode[].class) {
Object[] args = argumentsNodes.toArray(new RubyNode[argumentsNodes.size()]);
methodNode = nodeFactory.createNode(context, sourceSection, args);
} else if (signature.get(0) != RubyContext.class) {
Object[] args = new Object[argumentsNodes.size()];
System.arraycopy(argumentsNodes.toArray(new RubyNode[argumentsNodes.size()]), 0, args, 0, argumentsNodes.size());
methodNode = nodeFactory.createNode(args);
} else {
Object[] args = new Object[2 + argumentsNodes.size()];
args[0] = context;
100 changes: 8 additions & 92 deletions truffle/src/main/java/org/jruby/truffle/core/MathNodes.java
Original file line number Diff line number Diff line change
@@ -31,10 +31,6 @@ public abstract class MathNodes {
@CoreMethod(names = "acos", isModuleFunction = true, required = 1)
public abstract static class ACosNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
if (a < -1.0 || a > 1.0) {
@@ -50,10 +46,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "acosh", isModuleFunction = true, required = 1)
public abstract static class ACosHNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
// Copied from RubyMath - see copyright notices there
@@ -75,10 +67,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "asin", isModuleFunction = true, required = 1)
public abstract static class ASinNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
if (a < -1.0 || a > 1.0) {
@@ -94,10 +82,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "asinh", isModuleFunction = true, required = 1)
public abstract static class ASinHNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
// Copied from RubyMath - see copyright notices there
@@ -124,10 +108,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "atan", isModuleFunction = true, required = 1)
public abstract static class ATanNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.atan(a);
@@ -138,10 +118,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "atan2", isModuleFunction = true, required = 2)
public abstract static class ATan2Node extends SimpleDyadicMathNode {

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

@Override
protected double doFunction(double a, double b) {
return Math.atan2(a, b);
@@ -152,10 +128,6 @@ protected double doFunction(double a, double b) {
@CoreMethod(names = "atanh", isModuleFunction = true, required = 1)
public abstract static class ATanHNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
// Copied from RubyMath - see copyright notices there
@@ -187,10 +159,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "cbrt", isModuleFunction = true, required = 1)
public abstract static class CbRtNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.cbrt(a);
@@ -201,10 +169,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "cos", isModuleFunction = true, required = 1)
public abstract static class CosNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.cos(a);
@@ -215,10 +179,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "cosh", isModuleFunction = true, required = 1)
public abstract static class CosHNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.cosh(a);
@@ -229,10 +189,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "erf", isModuleFunction = true, required = 1)
public abstract static class ErfNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
// Copied from RubyMath - see copyright notices there
@@ -257,10 +213,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "erfc", isModuleFunction = true, required = 1)
public abstract static class ErfcNode extends SimpleMonadicMathNode {

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

@Override
public double doFunction(double a) {
return erfc(a);
@@ -298,10 +250,6 @@ public static double erfc(double a) {
@CoreMethod(names = "exp", isModuleFunction = true, required = 1)
public abstract static class ExpNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.exp(a);
@@ -376,10 +324,6 @@ public DynamicObject frexp(VirtualFrame frame, Object a) {
@CoreMethod(names = "gamma", isModuleFunction = true, required = 1)
public abstract static class GammaNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
// Copied from RubyMath - see copyright notices there
@@ -429,10 +373,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "hypot", isModuleFunction = true, required = 2)
public abstract static class HypotNode extends SimpleDyadicMathNode {

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

@Override
protected double doFunction(double a, double b) {
return Math.hypot(a, b);
@@ -591,10 +531,6 @@ public DynamicObject lgamma(VirtualFrame frame, Object a) {
@CoreMethod(names = "log", isModuleFunction = true, required = 1, optional = 1)
public abstract static class LogNode extends SimpleDyadicMathNode {

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

@Specialization
public double function(int a, NotProvided b) {
return doFunction(a);
@@ -649,10 +585,6 @@ protected double doFunction(double a, double b) {
@CoreMethod(names = "log10", isModuleFunction = true, required = 1)
public abstract static class Log10Node extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
if (a < 0) {
@@ -670,10 +602,6 @@ public abstract static class Log2Node extends SimpleMonadicMathNode {

private final double LOG2 = Math.log(2);

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

@Override
protected double doFunction(double a) {
if (a < 0) {
@@ -689,10 +617,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "sin", isModuleFunction = true, required = 1)
public abstract static class SinNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.sin(a);
@@ -703,10 +627,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "sinh", isModuleFunction = true, required = 1)
public abstract static class SinHNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.sinh(a);
@@ -717,10 +637,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "tan", isModuleFunction = true, required = 1)
public abstract static class TanNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.tan(a);
@@ -731,10 +647,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "tanh", isModuleFunction = true, required = 1)
public abstract static class TanHNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.tanh(a);
@@ -745,10 +657,6 @@ protected double doFunction(double a) {
@CoreMethod(names = "sqrt", isModuleFunction = true, required = 1)
public abstract static class SqrtNode extends SimpleMonadicMathNode {

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

@Override
protected double doFunction(double a) {
return Math.sqrt(a);
@@ -761,6 +669,10 @@ protected abstract static class SimpleMonadicMathNode extends CoreMethodArrayArg
@Child private IsANode isANode;
@Child private CallDispatchHeadNode floatNode;

protected SimpleMonadicMathNode() {
this(null, null);
}

protected SimpleMonadicMathNode(RubyContext context, SourceSection sourceSection) {
super(context, sourceSection);
isANode = IsANodeGen.create(context, sourceSection, null, null);
@@ -811,6 +723,10 @@ protected abstract static class SimpleDyadicMathNode extends CoreMethodArrayArgu
@Child protected CallDispatchHeadNode floatANode;
@Child protected CallDispatchHeadNode floatBNode;

protected SimpleDyadicMathNode() {
this(null, null);
}

protected SimpleDyadicMathNode(RubyContext context, SourceSection sourceSection) {
super(context, sourceSection);
isANode = IsANodeGen.create(context, sourceSection, null, null);
Loading