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

Commits on Aug 17, 2015

  1. Copy the full SHA
    d10e2a7 View commit details
  2. Copy the full SHA
    ba90907 View commit details
Showing with 1,320 additions and 693 deletions.
  1. +2 −20 truffle/src/main/java/org/jruby/truffle/nodes/core/BasicObjectNodes.java
  2. +2 −15 truffle/src/main/java/org/jruby/truffle/nodes/core/BignumNodes.java
  3. +2 −20 truffle/src/main/java/org/jruby/truffle/nodes/core/BindingNodes.java
  4. +2 −24 truffle/src/main/java/org/jruby/truffle/nodes/core/ClassNodes.java
  5. +2 −17 truffle/src/main/java/org/jruby/truffle/nodes/core/EncodingConverterNodes.java
  6. +2 −19 truffle/src/main/java/org/jruby/truffle/nodes/core/EncodingNodes.java
  7. +2 −20 truffle/src/main/java/org/jruby/truffle/nodes/core/ExceptionNodes.java
  8. +2 −15 truffle/src/main/java/org/jruby/truffle/nodes/core/FiberNodes.java
  9. +2 −15 truffle/src/main/java/org/jruby/truffle/nodes/core/MatchDataNodes.java
  10. +2 −16 truffle/src/main/java/org/jruby/truffle/nodes/core/MethodNodes.java
  11. +2 −17 truffle/src/main/java/org/jruby/truffle/nodes/core/ModuleNodes.java
  12. +2 −14 truffle/src/main/java/org/jruby/truffle/nodes/core/MutexNodes.java
  13. +2 −49 truffle/src/main/java/org/jruby/truffle/nodes/core/ProcNodes.java
  14. +2 −14 truffle/src/main/java/org/jruby/truffle/nodes/core/QueueNodes.java
  15. +1 −58 truffle/src/main/java/org/jruby/truffle/nodes/core/RangeNodes.java
  16. +2 −26 truffle/src/main/java/org/jruby/truffle/nodes/core/RegexpNodes.java
  17. +2 −14 truffle/src/main/java/org/jruby/truffle/nodes/core/SizedQueueNodes.java
  18. +2 −24 truffle/src/main/java/org/jruby/truffle/nodes/core/StringNodes.java
  19. +2 −24 truffle/src/main/java/org/jruby/truffle/nodes/core/SymbolNodes.java
  20. +2 −12 truffle/src/main/java/org/jruby/truffle/nodes/core/ThreadBacktraceLocationNodes.java
  21. +2 −15 truffle/src/main/java/org/jruby/truffle/nodes/core/ThreadNodes.java
  22. +2 −21 truffle/src/main/java/org/jruby/truffle/nodes/core/TimeNodes.java
  23. +2 −15 truffle/src/main/java/org/jruby/truffle/nodes/core/UnboundMethodNodes.java
  24. +2 −22 truffle/src/main/java/org/jruby/truffle/nodes/core/array/ArrayNodes.java
  25. +2 −46 truffle/src/main/java/org/jruby/truffle/nodes/core/hash/HashNodes.java
  26. +2 −19 truffle/src/main/java/org/jruby/truffle/nodes/ext/BigDecimalNodes.java
  27. +2 −12 truffle/src/main/java/org/jruby/truffle/nodes/ext/DigestNodes.java
  28. +2 −15 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/ByteArrayNodes.java
  29. +2 −19 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/DirPrimitiveNodes.java
  30. +2 −32 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/IOBufferPrimitiveNodes.java
  31. +2 −27 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/IOPrimitiveNodes.java
  32. +2 −17 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/PointerNodes.java
  33. +37 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ArrayLayout.java
  34. +36 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/BasicObjectLayout.java
  35. +31 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/BignumLayout.java
  36. +36 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/BindingLayout.java
  37. +40 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ClassLayout.java
  38. +32 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/EncodingConverterLayout.java
  39. +37 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/EncodingLayout.java
  40. +36 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ExceptionLayout.java
  41. +30 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/FiberLayout.java
  42. +59 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/HashLayout.java
  43. +35 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/IntegerFixnumRangeLayout.java
  44. +35 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/LongFixnumRangeLayout.java
  45. +30 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/MatchDataLayout.java
  46. +32 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/MethodLayout.java
  47. +32 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ModuleLayout.java
  48. +30 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/MutexLayout.java
  49. +39 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ObjectRangeLayout.java
  50. +68 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ProcLayout.java
  51. +31 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/QueueLayout.java
  52. +46 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/RegexpLayout.java
  53. +31 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/SizedQueueLayout.java
  54. +43 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/StringLayout.java
  55. +47 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/SymbolLayout.java
  56. +27 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ThreadBacktraceLocationLayout.java
  57. +30 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ThreadLayout.java
  58. +35 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/TimeLayout.java
  59. +33 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/UnboundMethodLayout.java
  60. +38 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ext/BigDecimalLayout.java
  61. +30 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/ext/DigestLayout.java
  62. +31 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/rubinius/ByteArrayLayout.java
  63. +34 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/rubinius/DirLayout.java
  64. +50 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/rubinius/IOBufferLayout.java
  65. +44 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/rubinius/IOLayout.java
  66. +32 −0 truffle/src/main/java/org/jruby/truffle/runtime/layouts/rubinius/PointerLayout.java
Original file line number Diff line number Diff line change
@@ -28,10 +28,11 @@
import org.jruby.truffle.nodes.objects.AllocateObjectNode;
import org.jruby.truffle.nodes.objects.AllocateObjectNodeGen;
import org.jruby.truffle.nodes.yield.YieldDispatchHeadNode;
import org.jruby.truffle.om.dsl.api.Nullable;
import org.jruby.truffle.runtime.NotProvided;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.control.RaiseException;
import org.jruby.truffle.runtime.layouts.BasicObjectLayout;
import org.jruby.truffle.runtime.layouts.BasicObjectLayoutImpl;
import org.jruby.truffle.runtime.subsystems.ObjectSpaceManager;

import java.util.LinkedHashMap;
@@ -45,25 +46,6 @@ public abstract class BasicObjectNodes {
public static final HiddenKey TAINTED_IDENTIFIER = new HiddenKey("tainted?");
public static final HiddenKey FROZEN_IDENTIFIER = new HiddenKey("frozen?");

@org.jruby.truffle.om.dsl.api.Layout(objectTypeSuperclass = "org.jruby.truffle.runtime.RubyObjectType")
public interface BasicObjectLayout {

DynamicObjectFactory createBasicObjectShape(@Nullable DynamicObject logicalClass, @Nullable DynamicObject metaClass);

DynamicObject createBasicObject(DynamicObjectFactory factory);

boolean isBasicObject(Object object);

DynamicObjectFactory setLogicalClass(DynamicObjectFactory factory, DynamicObject value);
DynamicObject getLogicalClass(ObjectType objectType);
DynamicObject getLogicalClass(DynamicObject object);
void setLogicalClass(DynamicObject object, DynamicObject value);

DynamicObjectFactory setMetaClass(DynamicObjectFactory factory, DynamicObject value);
DynamicObject getMetaClass(DynamicObject object);
void setMetaClass(DynamicObject object, DynamicObject value);
}

public static final BasicObjectLayout BASIC_OBJECT_LAYOUT = BasicObjectLayoutImpl.INSTANCE;

@CompilerDirectives.TruffleBoundary
Original file line number Diff line number Diff line change
@@ -14,7 +14,6 @@
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.object.DynamicObjectFactory;
import com.oracle.truffle.api.source.SourceSection;
import com.oracle.truffle.api.utilities.BranchProfile;
import com.oracle.truffle.api.utilities.ConditionProfile;
@@ -23,10 +22,11 @@
import org.jruby.truffle.nodes.cast.BooleanCastNodeGen;
import org.jruby.truffle.nodes.dispatch.CallDispatchHeadNode;
import org.jruby.truffle.nodes.dispatch.DispatchHeadNodeFactory;
import org.jruby.truffle.om.dsl.api.Layout;
import org.jruby.truffle.runtime.NotProvided;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.control.RaiseException;
import org.jruby.truffle.runtime.layouts.BignumLayout;
import org.jruby.truffle.runtime.layouts.BignumLayoutImpl;

import java.math.BigInteger;

@@ -36,19 +36,6 @@ public abstract class BignumNodes {
public static final BigInteger LONG_MAX = BigInteger.valueOf(Long.MAX_VALUE);
public static final BigInteger LONG_MIN = BigInteger.valueOf(Long.MIN_VALUE);

@Layout
public interface BignumLayout extends BasicObjectNodes.BasicObjectLayout {

DynamicObjectFactory createBignumShape(DynamicObject logicalClass, DynamicObject metaClass);

DynamicObject createBignum(DynamicObjectFactory factory, BigInteger value);

boolean isBignum(DynamicObject object);

BigInteger getValue(DynamicObject object);

}

public static final BignumLayout BIGNUM_LAYOUT = BignumLayoutImpl.INSTANCE;

public static DynamicObject createRubyBignum(DynamicObject rubyClass, BigInteger value) {
Original file line number Diff line number Diff line change
@@ -18,42 +18,24 @@
import com.oracle.truffle.api.frame.FrameSlot;
import com.oracle.truffle.api.frame.MaterializedFrame;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.object.DynamicObjectFactory;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.nodes.RubyGuards;
import org.jruby.truffle.nodes.core.array.ArrayNodes;
import org.jruby.truffle.nodes.locals.ReadFrameSlotNode;
import org.jruby.truffle.nodes.locals.ReadFrameSlotNodeGen;
import org.jruby.truffle.nodes.locals.WriteFrameSlotNode;
import org.jruby.truffle.nodes.locals.WriteFrameSlotNodeGen;
import org.jruby.truffle.om.dsl.api.Layout;
import org.jruby.truffle.om.dsl.api.Nullable;
import org.jruby.truffle.runtime.RubyArguments;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.ThreadLocalObject;
import org.jruby.truffle.runtime.control.RaiseException;
import org.jruby.truffle.runtime.layouts.BindingLayout;
import org.jruby.truffle.runtime.layouts.BindingLayoutImpl;
import org.jruby.truffle.runtime.methods.InternalMethod;

@CoreClass(name = "Binding")
public abstract class BindingNodes {

@Layout
public interface BindingLayout extends BasicObjectNodes.BasicObjectLayout {

DynamicObjectFactory createBindingShape(DynamicObject logicalClass, DynamicObject metaClass);

DynamicObject createBinding(DynamicObjectFactory factory, @Nullable Object self, @Nullable MaterializedFrame frame);

boolean isBinding(DynamicObject object);

Object getSelf(DynamicObject object);
void setSelf(DynamicObject object, Object self);

MaterializedFrame getFrame(DynamicObject object);
void setFrame(DynamicObject object, MaterializedFrame frame);

}

public static final BindingLayout BINDING_LAYOUT = BindingLayoutImpl.INSTANCE;

public static DynamicObject createRubyBinding(DynamicObject bindingClass) {
26 changes: 2 additions & 24 deletions truffle/src/main/java/org/jruby/truffle/nodes/core/ClassNodes.java
Original file line number Diff line number Diff line change
@@ -22,37 +22,15 @@
import org.jruby.truffle.nodes.RubyNode;
import org.jruby.truffle.nodes.dispatch.CallDispatchHeadNode;
import org.jruby.truffle.nodes.dispatch.DispatchHeadNodeFactory;
import org.jruby.truffle.om.dsl.api.Layout;
import org.jruby.truffle.om.dsl.api.Nullable;
import org.jruby.truffle.runtime.NotProvided;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.core.ModuleFields;
import org.jruby.truffle.runtime.layouts.ClassLayout;
import org.jruby.truffle.runtime.layouts.ClassLayoutImpl;

@CoreClass(name = "Class")
public abstract class ClassNodes {

@Layout
public interface ClassLayout extends ModuleNodes.ModuleLayout {

DynamicObjectFactory createClassShape(DynamicObject logicalClass, DynamicObject metaClass);

DynamicObject createClass(DynamicObjectFactory factory,
ModuleFields model,
boolean isSingleton,
@Nullable DynamicObject attached,
@Nullable DynamicObjectFactory instanceFactory);

boolean isClass(DynamicObject object);

boolean getIsSingleton(DynamicObject object);

DynamicObject getAttached(DynamicObject object);

DynamicObjectFactory getInstanceFactory(DynamicObject object);
void setInstanceFactoryUnsafe(DynamicObject object, DynamicObjectFactory instanceFactory);

}

public static final ClassLayout CLASS_LAYOUT = ClassLayoutImpl.INSTANCE;

/** Special constructor for class Class */
Original file line number Diff line number Diff line change
@@ -13,7 +13,6 @@
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.object.DynamicObjectFactory;
import com.oracle.truffle.api.source.SourceSection;
import org.jcodings.Encoding;
import org.jcodings.EncodingDB;
@@ -27,29 +26,15 @@
import org.jruby.runtime.builtin.IRubyObject;
import org.jruby.truffle.nodes.dispatch.CallDispatchHeadNode;
import org.jruby.truffle.nodes.dispatch.DispatchHeadNodeFactory;
import org.jruby.truffle.om.dsl.api.Layout;
import org.jruby.truffle.om.dsl.api.Nullable;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.layouts.EncodingConverterLayout;
import org.jruby.truffle.runtime.layouts.EncodingConverterLayoutImpl;
import org.jruby.util.ByteList;
import org.jruby.util.io.EncodingUtils;

@CoreClass(name = "Encoding::Converter")
public abstract class EncodingConverterNodes {

@Layout
public interface EncodingConverterLayout extends BasicObjectNodes.BasicObjectLayout {

DynamicObjectFactory createEncodingConverterShape(DynamicObject logicalClass, DynamicObject metaClass);

DynamicObject createEncodingConverter(DynamicObjectFactory factory, @Nullable EConv econv);

boolean isEncodingConverter(DynamicObject object);

EConv getEconv(DynamicObject object);
void setEconv(DynamicObject object, EConv econv);

}

public static final EncodingConverterLayout ENCODING_CONVERTER_LAYOUT = EncodingConverterLayoutImpl.INSTANCE;

public static EConv getEConv(DynamicObject encodingConverter) {
Original file line number Diff line number Diff line change
@@ -14,7 +14,6 @@
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.object.DynamicObjectFactory;
import com.oracle.truffle.api.source.SourceSection;
import org.jcodings.Encoding;
import org.jcodings.EncodingDB;
@@ -26,9 +25,10 @@
import org.jruby.truffle.nodes.coerce.ToStrNodeGen;
import org.jruby.truffle.nodes.dispatch.CallDispatchHeadNode;
import org.jruby.truffle.nodes.dispatch.DispatchHeadNodeFactory;
import org.jruby.truffle.om.dsl.api.Layout;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.control.RaiseException;
import org.jruby.truffle.runtime.layouts.EncodingLayout;
import org.jruby.truffle.runtime.layouts.EncodingLayoutImpl;
import org.jruby.util.ByteList;

import java.nio.charset.StandardCharsets;
@@ -39,23 +39,6 @@
@CoreClass(name = "Encoding")
public abstract class EncodingNodes {

@Layout
public interface EncodingLayout extends BasicObjectNodes.BasicObjectLayout {

DynamicObjectFactory createEncodingShape(DynamicObject logicalClass, DynamicObject metaClass);

DynamicObject createEncoding(DynamicObjectFactory factory, Encoding encoding, ByteList name, boolean dummy);

boolean isEncoding(DynamicObject object);

Encoding getEncoding(DynamicObject object);

ByteList getName(DynamicObject object);

boolean getDummy(DynamicObject object);

}

public static final EncodingLayout ENCODING_LAYOUT = EncodingLayoutImpl.INSTANCE;

// Both are mutated only in CoreLibrary.initializeEncodingConstants().
Original file line number Diff line number Diff line change
@@ -12,42 +12,24 @@
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.object.DynamicObjectFactory;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.nodes.RubyGuards;
import org.jruby.truffle.nodes.core.array.ArrayNodes;
import org.jruby.truffle.nodes.objectstorage.ReadHeadObjectFieldNode;
import org.jruby.truffle.om.dsl.api.Layout;
import org.jruby.truffle.om.dsl.api.Nullable;
import org.jruby.truffle.runtime.NotProvided;
import org.jruby.truffle.runtime.RubyCallStack;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.backtrace.Activation;
import org.jruby.truffle.runtime.backtrace.Backtrace;
import org.jruby.truffle.runtime.backtrace.MRIBacktraceFormatter;
import org.jruby.truffle.runtime.layouts.ExceptionLayout;
import org.jruby.truffle.runtime.layouts.ExceptionLayoutImpl;

import java.util.List;

@CoreClass(name = "Exception")
public abstract class ExceptionNodes {

@Layout
public interface ExceptionLayout extends BasicObjectNodes.BasicObjectLayout {

DynamicObjectFactory createExceptionShape(DynamicObject logicalClass, DynamicObject metaClass);

DynamicObject createException(DynamicObjectFactory factory, @Nullable Object message, @Nullable Backtrace backtrace);

boolean isException(DynamicObject object);

Object getMessage(DynamicObject object);
void setMessage(DynamicObject object, Object message);

Backtrace getBacktrace(DynamicObject object);
void setBacktrace(DynamicObject object, Backtrace backtrace);

}

public static final ExceptionLayout EXCEPTION_LAYOUT = ExceptionLayoutImpl.INSTANCE;

public static class BacktraceFormatter extends MRIBacktraceFormatter {
17 changes: 2 additions & 15 deletions truffle/src/main/java/org/jruby/truffle/nodes/core/FiberNodes.java
Original file line number Diff line number Diff line change
@@ -14,18 +14,18 @@
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.nodes.ControlFlowException;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.object.DynamicObjectFactory;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.nodes.RubyGuards;
import org.jruby.truffle.nodes.RubyNode;
import org.jruby.truffle.nodes.cast.SingleValueCastNode;
import org.jruby.truffle.nodes.cast.SingleValueCastNodeGen;
import org.jruby.truffle.nodes.core.FiberNodesFactory.FiberTransferNodeFactory;
import org.jruby.truffle.nodes.methods.UnsupportedOperationBehavior;
import org.jruby.truffle.om.dsl.api.Layout;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.control.RaiseException;
import org.jruby.truffle.runtime.control.ReturnException;
import org.jruby.truffle.runtime.layouts.FiberLayout;
import org.jruby.truffle.runtime.layouts.FiberLayoutImpl;
import org.jruby.truffle.runtime.subsystems.FiberManager;
import org.jruby.truffle.runtime.subsystems.ThreadManager;

@@ -35,19 +35,6 @@
@CoreClass(name = "Fiber")
public abstract class FiberNodes {

@Layout
public interface FiberLayout extends BasicObjectNodes.BasicObjectLayout {

DynamicObjectFactory createFiberShape(DynamicObject logicalClass, DynamicObject metaClass);

DynamicObject createFiber(DynamicObjectFactory factory, FiberFields fields);

boolean isFiber(DynamicObject object);

FiberFields getFields(DynamicObject object);

}

public static final FiberLayout FIBER_LAYOUT = FiberLayoutImpl.INSTANCE;

public static FiberFields getFields(DynamicObject fiber) {
Original file line number Diff line number Diff line change
@@ -14,7 +14,6 @@
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.object.DynamicObject;
import com.oracle.truffle.api.object.DynamicObjectFactory;
import com.oracle.truffle.api.source.SourceSection;
import com.oracle.truffle.api.utilities.ConditionProfile;
import org.jcodings.Encoding;
@@ -28,11 +27,12 @@
import org.jruby.truffle.nodes.core.array.ArrayNodes;
import org.jruby.truffle.nodes.dispatch.CallDispatchHeadNode;
import org.jruby.truffle.nodes.dispatch.DispatchHeadNodeFactory;
import org.jruby.truffle.om.dsl.api.Layout;
import org.jruby.truffle.runtime.NotProvided;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.array.ArrayUtils;
import org.jruby.truffle.runtime.control.RaiseException;
import org.jruby.truffle.runtime.layouts.MatchDataLayout;
import org.jruby.truffle.runtime.layouts.MatchDataLayoutImpl;
import org.jruby.util.ByteList;
import org.jruby.util.CodeRangeable;
import org.jruby.util.StringSupport;
@@ -42,19 +42,6 @@
@CoreClass(name = "MatchData")
public abstract class MatchDataNodes {

@Layout
public interface MatchDataLayout extends BasicObjectNodes.BasicObjectLayout {

DynamicObjectFactory createMatchDataShape(DynamicObject logicalClass, DynamicObject metaClass);

DynamicObject createMatchData(DynamicObjectFactory factory, MatchDataFields fields);

boolean isMatchData(DynamicObject object);

MatchDataFields getFields(DynamicObject object);

}

public static final MatchDataLayout MATCH_DATA_LAYOUT = MatchDataLayoutImpl.INSTANCE;

public static DynamicObject createRubyMatchData(DynamicObject rubyClass, DynamicObject source, DynamicObject regexp, Region region, Object[] values, DynamicObject pre, DynamicObject post, DynamicObject global, int begin, int end) {
Loading