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

Commits on May 16, 2015

  1. Copy the full SHA
    01e37b9 View commit details
  2. Copy the full SHA
    9c0893b View commit details
  3. Ignore polygot poms.

    chrisseaton committed May 16, 2015
    Copy the full SHA
    bac464a View commit details
  4. Copy the full SHA
    e3a350f View commit details
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -74,6 +74,7 @@ tool/nailgun/config.status
tool/nailgun/ng
reference.txt
rubyspec_temp
.polyglot.pom.rb

# binaries
!bin/gem
2 changes: 1 addition & 1 deletion tool/truffle/translate_rubinius_config.rb
Original file line number Diff line number Diff line change
@@ -20,5 +20,5 @@
else
code = "context.makeString(\"#{value}\")"
end
puts " config(\"#{var}\", #{code});"
puts " configuration.config(\"#{var}\", #{code});"
end
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.source.SourceSection;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.subsystems.RubiniusConfiguration;
import org.jruby.truffle.runtime.rubinius.RubiniusTypes;

public abstract class NativeFunctionPrimitiveNodes {

@@ -26,40 +26,40 @@ public NativeFunctionTypeSizePrimitiveNode(RubyContext context, SourceSection so
@Specialization
public long typeSize(int type) {
switch (type) {
case RubiniusConfiguration.TYPE_CHAR:
case RubiniusConfiguration.TYPE_UCHAR:
case RubiniusTypes.TYPE_CHAR:
case RubiniusTypes.TYPE_UCHAR:
return 1;

case RubiniusConfiguration.TYPE_SHORT:
case RubiniusConfiguration.TYPE_USHORT:
case RubiniusTypes.TYPE_SHORT:
case RubiniusTypes.TYPE_USHORT:
return 2;

case RubiniusConfiguration.TYPE_INT:
case RubiniusConfiguration.TYPE_UINT:
case RubiniusTypes.TYPE_INT:
case RubiniusTypes.TYPE_UINT:
return 4;

case RubiniusConfiguration.TYPE_LONG:
case RubiniusConfiguration.TYPE_ULONG:
case RubiniusTypes.TYPE_LONG:
case RubiniusTypes.TYPE_ULONG:
return 8;

case RubiniusConfiguration.TYPE_FLOAT:
case RubiniusTypes.TYPE_FLOAT:
return 4;

case RubiniusConfiguration.TYPE_DOUBLE:
case RubiniusTypes.TYPE_DOUBLE:
return 8;

case RubiniusConfiguration.TYPE_PTR:
case RubiniusConfiguration.TYPE_STRPTR:
case RubiniusTypes.TYPE_PTR:
case RubiniusTypes.TYPE_STRPTR:
return 8;

case RubiniusConfiguration.TYPE_BOOL:
case RubiniusConfiguration.TYPE_LL:
case RubiniusConfiguration.TYPE_ULL:
case RubiniusConfiguration.TYPE_VOID:
case RubiniusConfiguration.TYPE_STRING:
case RubiniusConfiguration.TYPE_CHARARR:
case RubiniusConfiguration.TYPE_ENUM:
case RubiniusConfiguration.TYPE_VARARGS:
case RubiniusTypes.TYPE_BOOL:
case RubiniusTypes.TYPE_LL:
case RubiniusTypes.TYPE_ULL:
case RubiniusTypes.TYPE_VOID:
case RubiniusTypes.TYPE_STRING:
case RubiniusTypes.TYPE_CHARARR:
case RubiniusTypes.TYPE_ENUM:
case RubiniusTypes.TYPE_VARARGS:
default:
throw new UnsupportedOperationException();
}
Original file line number Diff line number Diff line change
@@ -23,7 +23,8 @@
import org.jruby.truffle.runtime.core.RubyBasicObject;
import org.jruby.truffle.runtime.core.RubyClass;
import org.jruby.truffle.runtime.core.RubyString;
import org.jruby.truffle.runtime.subsystems.RubiniusConfiguration;
import org.jruby.truffle.runtime.rubinius.RubiniusConfiguration;
import org.jruby.truffle.runtime.rubinius.RubiniusTypes;
import org.jruby.util.ByteList;
import org.jruby.util.unsafe.UnsafeHolder;

@@ -197,7 +198,7 @@ public boolean setAutorelease(RubyBasicObject pointer, boolean autorelease) {
}

@RubiniusPrimitive(name = "pointer_set_at_offset", lowerFixnumParameters = {0, 2})
@ImportStatic(RubiniusConfiguration.class)
@ImportStatic(RubiniusTypes.class)
public static abstract class PointerSetAtOffsetPrimitiveNode extends RubiniusPrimitiveNode {

public PointerSetAtOffsetPrimitiveNode(RubyContext context, SourceSection sourceSection) {
@@ -241,7 +242,7 @@ public long address(RubyBasicObject pointer) {
}

@RubiniusPrimitive(name = "pointer_get_at_offset")
@ImportStatic(RubiniusConfiguration.class)
@ImportStatic(RubiniusTypes.class)
public static abstract class PointerGetAtOffsetPrimitiveNode extends RubiniusPrimitiveNode {

public PointerGetAtOffsetPrimitiveNode(RubyContext context, SourceSection sourceSection) {
Original file line number Diff line number Diff line change
@@ -11,28 +11,21 @@

import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.source.SourceSection;
import jnr.constants.platform.Fcntl;
import jnr.ffi.Pointer;
import org.jruby.RubyEncoding;
import org.jruby.ext.socket.SocketUtils;
import org.jruby.platform.Platform;
import org.jruby.runtime.builtin.IRubyObject;
import org.jruby.truffle.nodes.core.CoreClass;
import org.jruby.truffle.nodes.core.CoreMethod;
import org.jruby.truffle.nodes.core.CoreMethodArrayArgumentsNode;
import org.jruby.truffle.runtime.RubyContext;
import org.jruby.truffle.runtime.control.RaiseException;
import org.jruby.truffle.runtime.core.RubyBasicObject;
import org.jruby.truffle.runtime.core.RubyClass;
import org.jruby.truffle.runtime.core.RubyString;
import org.jruby.truffle.runtime.subsystems.RubiniusConfiguration;
import org.jruby.util.ByteList;
import org.jruby.util.unsafe.UnsafeHolder;
import org.jruby.truffle.runtime.rubinius.RubiniusConfiguration;

import java.nio.charset.StandardCharsets;
import java.util.Arrays;

@CoreClass(name = "Rubinius::FFI::Platform::POSIX")
public abstract class PosixNodes {
@@ -194,7 +187,8 @@ public int getGroups(int max, RubyBasicObject pointer) {
final Pointer pointerValue = PointerPrimitiveNodes.getPointer(pointer);

for (int n = 0; n < groups.length && n < max; n++) {
pointerValue.putInt(RubiniusConfiguration.SIZE_OF_INT * n, (int) groups[n]);
// TODO CS 16-May-15 this is platform dependent
pointerValue.putInt(4 * n, (int) groups[n]);

}

Original file line number Diff line number Diff line change
@@ -31,6 +31,7 @@
import org.jruby.Ruby;
import org.jruby.RubyNil;
import org.jruby.TruffleContextInterface;
import org.jruby.ext.ffi.Platform;
import org.jruby.runtime.Visibility;
import org.jruby.runtime.builtin.IRubyObject;
import org.jruby.truffle.nodes.RubyNode;
@@ -49,6 +50,7 @@
import org.jruby.truffle.runtime.core.*;
import org.jruby.truffle.runtime.methods.InternalMethod;
import org.jruby.truffle.runtime.object.ObjectIDOperations;
import org.jruby.truffle.runtime.rubinius.RubiniusConfiguration;
import org.jruby.truffle.runtime.sockets.NativeSockets;
import org.jruby.truffle.runtime.subsystems.*;
import org.jruby.truffle.translator.NodeWrapper;
@@ -167,11 +169,11 @@ public RubyContext(Ruby runtime) {
instrumentationServerManager = null;
}

runningOnWindows = System.getProperty("os.name").toLowerCase(Locale.ENGLISH).indexOf("win") >= 0;
runningOnWindows = Platform.getPlatform().getOS() == Platform.OS.WINDOWS;

attachmentsManager = new AttachmentsManager(this);
sourceManager = new SourceManager(this);
rubiniusConfiguration = new RubiniusConfiguration(this);
rubiniusConfiguration = RubiniusConfiguration.create(this);

final PrintStream configStandardOut = runtime.getInstanceConfig().getOutput();
debugStandardOut = (configStandardOut == System.out) ? null : configStandardOut;
Original file line number Diff line number Diff line change
@@ -43,8 +43,8 @@
import org.jruby.truffle.runtime.control.TruffleFatalException;
import org.jruby.truffle.runtime.hash.HashOperations;
import org.jruby.truffle.runtime.hash.KeyValue;
import org.jruby.truffle.runtime.rubinius.RubiniusTypes;
import org.jruby.truffle.runtime.signal.SignalOperations;
import org.jruby.truffle.runtime.subsystems.RubiniusConfiguration;
import org.jruby.truffle.translator.NodeWrapper;
import org.jruby.util.cli.Options;
import org.jruby.util.cli.OutputStrings;
@@ -574,26 +574,26 @@ public void initializeAfterMethodsAdded() {
}

private void initializeRubiniusFFI() {
rubiniusFFIModule.setConstant(node, "TYPE_CHAR", RubiniusConfiguration.TYPE_CHAR);
rubiniusFFIModule.setConstant(node, "TYPE_UCHAR", RubiniusConfiguration.TYPE_UCHAR);
rubiniusFFIModule.setConstant(node, "TYPE_BOOL", RubiniusConfiguration.TYPE_BOOL);
rubiniusFFIModule.setConstant(node, "TYPE_SHORT", RubiniusConfiguration.TYPE_SHORT);
rubiniusFFIModule.setConstant(node, "TYPE_USHORT", RubiniusConfiguration.TYPE_USHORT);
rubiniusFFIModule.setConstant(node, "TYPE_INT", RubiniusConfiguration.TYPE_INT);
rubiniusFFIModule.setConstant(node, "TYPE_UINT", RubiniusConfiguration.TYPE_UINT);
rubiniusFFIModule.setConstant(node, "TYPE_LONG", RubiniusConfiguration.TYPE_LONG);
rubiniusFFIModule.setConstant(node, "TYPE_ULONG", RubiniusConfiguration.TYPE_ULONG);
rubiniusFFIModule.setConstant(node, "TYPE_LL", RubiniusConfiguration.TYPE_LL);
rubiniusFFIModule.setConstant(node, "TYPE_ULL", RubiniusConfiguration.TYPE_ULL);
rubiniusFFIModule.setConstant(node, "TYPE_FLOAT", RubiniusConfiguration.TYPE_FLOAT);
rubiniusFFIModule.setConstant(node, "TYPE_DOUBLE", RubiniusConfiguration.TYPE_DOUBLE);
rubiniusFFIModule.setConstant(node, "TYPE_PTR", RubiniusConfiguration.TYPE_PTR);
rubiniusFFIModule.setConstant(node, "TYPE_VOID", RubiniusConfiguration.TYPE_VOID);
rubiniusFFIModule.setConstant(node, "TYPE_STRING", RubiniusConfiguration.TYPE_STRING);
rubiniusFFIModule.setConstant(node, "TYPE_STRPTR", RubiniusConfiguration.TYPE_STRPTR);
rubiniusFFIModule.setConstant(node, "TYPE_CHARARR", RubiniusConfiguration.TYPE_CHARARR);
rubiniusFFIModule.setConstant(node, "TYPE_ENUM", RubiniusConfiguration.TYPE_ENUM);
rubiniusFFIModule.setConstant(node, "TYPE_VARARGS", RubiniusConfiguration.TYPE_VARARGS);
rubiniusFFIModule.setConstant(node, "TYPE_CHAR", RubiniusTypes.TYPE_CHAR);
rubiniusFFIModule.setConstant(node, "TYPE_UCHAR", RubiniusTypes.TYPE_UCHAR);
rubiniusFFIModule.setConstant(node, "TYPE_BOOL", RubiniusTypes.TYPE_BOOL);
rubiniusFFIModule.setConstant(node, "TYPE_SHORT", RubiniusTypes.TYPE_SHORT);
rubiniusFFIModule.setConstant(node, "TYPE_USHORT", RubiniusTypes.TYPE_USHORT);
rubiniusFFIModule.setConstant(node, "TYPE_INT", RubiniusTypes.TYPE_INT);
rubiniusFFIModule.setConstant(node, "TYPE_UINT", RubiniusTypes.TYPE_UINT);
rubiniusFFIModule.setConstant(node, "TYPE_LONG", RubiniusTypes.TYPE_LONG);
rubiniusFFIModule.setConstant(node, "TYPE_ULONG", RubiniusTypes.TYPE_ULONG);
rubiniusFFIModule.setConstant(node, "TYPE_LL", RubiniusTypes.TYPE_LL);
rubiniusFFIModule.setConstant(node, "TYPE_ULL", RubiniusTypes.TYPE_ULL);
rubiniusFFIModule.setConstant(node, "TYPE_FLOAT", RubiniusTypes.TYPE_FLOAT);
rubiniusFFIModule.setConstant(node, "TYPE_DOUBLE", RubiniusTypes.TYPE_DOUBLE);
rubiniusFFIModule.setConstant(node, "TYPE_PTR", RubiniusTypes.TYPE_PTR);
rubiniusFFIModule.setConstant(node, "TYPE_VOID", RubiniusTypes.TYPE_VOID);
rubiniusFFIModule.setConstant(node, "TYPE_STRING", RubiniusTypes.TYPE_STRING);
rubiniusFFIModule.setConstant(node, "TYPE_STRPTR", RubiniusTypes.TYPE_STRPTR);
rubiniusFFIModule.setConstant(node, "TYPE_CHARARR", RubiniusTypes.TYPE_CHARARR);
rubiniusFFIModule.setConstant(node, "TYPE_ENUM", RubiniusTypes.TYPE_ENUM);
rubiniusFFIModule.setConstant(node, "TYPE_VARARGS", RubiniusTypes.TYPE_VARARGS);
}

public void loadRubyCore(String fileName) {
Loading