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

Commits on Apr 7, 2015

  1. Copy the full SHA
    92aca38 View commit details
  2. [Truffle] Remove now unused isRational and isComplex.

    * Use coerce instead or a general method to convert.
    eregon committed Apr 7, 2015
    Copy the full SHA
    d8f644e View commit details
10 changes: 0 additions & 10 deletions truffle/src/main/java/org/jruby/truffle/nodes/RubyNode.java
Original file line number Diff line number Diff line change
@@ -264,16 +264,6 @@ public void probeLite(TruffleEventReceiver eventReceiver) {
this.replace(wrapper);
}

public boolean isRational(RubyBasicObject o) {
// TODO(CS, 10-Jan-15) should this be a full is_a? test? We'd need a node for that.
return o.getLogicalClass() == getContext().getCoreLibrary().getRationalClass();
}

public boolean isComplex(RubyBasicObject o) {
// TODO(BF, 4-4-15) COPIED from isRational - should this be a full is_a? test? We'd need a node for that.
return o.getLogicalClass() == getContext().getCoreLibrary().getComplexClass();
}

public boolean isNaN(double value) {
return Double.isNaN(value);
}
Original file line number Diff line number Diff line change
@@ -256,33 +256,33 @@ public TimeSFromArrayPrimitiveNode(TimeSFromArrayPrimitiveNode prev) {
}

@Specialization
public RubyTime timeSFromArray(RubyClass timeClass, RubyNilClass sec, int min, int hour, int mday, int month, int year,
public RubyTime timeSFromArray(VirtualFrame frame, RubyClass timeClass, RubyNilClass sec, int min, int hour, int mday, int month, int year,
RubyNilClass nsec, int isdst, boolean fromutc, Object utcoffset) {
return timeSFromArray(timeClass, 0, min, hour, mday, month, year, nsec, isdst, fromutc, utcoffset);
return timeSFromArray(frame, timeClass, 0, min, hour, mday, month, year, nsec, isdst, fromutc, utcoffset);
}

@Specialization
public RubyTime timeSFromArray(RubyClass timeClass, int sec, int min, int hour, int mday, int month, int year,
public RubyTime timeSFromArray(VirtualFrame frame, RubyClass timeClass, int sec, int min, int hour, int mday, int month, int year,
RubyNilClass nsec, int isdst, boolean fromutc, Object utcoffset) {
return timeSFromArray(timeClass, sec, min, hour, mday, month, year, 0, isdst, fromutc, utcoffset);
return buildTime(frame, timeClass, sec, min, hour, mday, month, year, 0, isdst, fromutc, utcoffset);
}

@Specialization
public RubyTime timeSFromArray(RubyClass timeClass, long sec, int min, int hour, int mday, int month, int year,
public RubyTime timeSFromArray(VirtualFrame frame, RubyClass timeClass, long sec, int min, int hour, int mday, int month, int year,
int nsec, int isdst, boolean fromutc, Object utcoffset) {
// TODO CS 15-Feb-15 that cast
return timeSFromArray(timeClass, (int) sec, min, hour, mday, month, year, nsec, isdst, fromutc, utcoffset);
return buildTime(frame, timeClass, (int) sec, min, hour, mday, month, year, nsec, isdst, fromutc, utcoffset);
}

@Specialization
public RubyTime timeSFromArray(RubyClass timeClass, int sec, int min, int hour, int mday, int month, int year,
public RubyTime timeSFromArray(VirtualFrame frame, RubyClass timeClass, int sec, int min, int hour, int mday, int month, int year,
long nsec, int isdst, boolean fromutc, Object utcoffset) {
// TODO CS 15-Feb-15 that cast
return timeSFromArray(timeClass, sec, min, hour, mday, month, year, (int) nsec, isdst, fromutc, utcoffset);
return buildTime(frame, timeClass, sec, min, hour, mday, month, year, (int) nsec, isdst, fromutc, utcoffset);
}

@Specialization
public RubyTime timeSFromArray(RubyClass timeClass, int sec, int min, int hour, int mday, int month, int year,
public RubyTime buildTime(VirtualFrame frame, RubyClass timeClass, int sec, int min, int hour, int mday, int month, int year,
int nsec, int isdst, boolean fromutc, Object utcoffset) {
if (sec < 0 || sec > 59 ||
min < 0 || min > 59 ||
@@ -302,8 +302,8 @@ public RubyTime timeSFromArray(RubyClass timeClass, int sec, int min, int hour,
zone = DateTimeZone.forOffsetMillis(((int) utcoffset) * 1_000);
} else if (utcoffset instanceof Long) {
zone = DateTimeZone.forOffsetMillis((int) ((long) utcoffset) * 1_000);
} else if (utcoffset instanceof RubyBasicObject && isRational((RubyBasicObject) utcoffset)) {
final int millis = cast(DebugOperations.send(getContext(), utcoffset, "_offset_to_milliseconds", null));
} else if (utcoffset instanceof RubyBasicObject) {
final int millis = cast(ruby(frame, "(offset * 1000).to_i", "offset", utcoffset));
zone = DateTimeZone.forOffsetMillis(millis);
} else {
throw new UnsupportedOperationException(String.format("%s %s %s %s", isdst, fromutc, utcoffset, utcoffset.getClass()));
@@ -324,30 +324,30 @@ public RubyTime timeSFromArray(RubyClass timeClass, RubyBasicObject sec, int min
}

@Specialization
public RubyTime timeSFromArray(RubyClass timeClass, double sec, int min, int hour, int mday, int month, int year,
public RubyTime timeSFromArray(VirtualFrame frame, RubyClass timeClass, double sec, int min, int hour, int mday, int month, int year,
long nsec, int isdst, boolean fromutc, Object utcoffset) {
return timeSFromArray(timeClass, sec, min, hour, mday, month, year, (int) nsec, isdst, fromutc, utcoffset);
return timeSFromArray(frame, timeClass, sec, min, hour, mday, month, year, (int) nsec, isdst, fromutc, utcoffset);
}

@Specialization
public RubyTime timeSFromArray(RubyClass timeClass, double sec, int min, int hour, int mday, int month, int year,
public RubyTime timeSFromArray(VirtualFrame frame, RubyClass timeClass, double sec, int min, int hour, int mday, int month, int year,
int nsec, long isdst, boolean fromutc, Object utcoffset) {
return timeSFromArray(timeClass, sec, min, hour, mday, month, year, nsec, (int) isdst, fromutc, utcoffset);
return timeSFromArray(frame, timeClass, sec, min, hour, mday, month, year, nsec, (int) isdst, fromutc, utcoffset);
}

@Specialization
public RubyTime timeSFromArray(RubyClass timeClass, double sec, int min, int hour, int mday, int month, int year,
public RubyTime timeSFromArray(VirtualFrame frame, RubyClass timeClass, double sec, int min, int hour, int mday, int month, int year,
RubyNilClass nsec, int isdst, boolean fromutc, Object utcoffset) {
final int secondsWhole = (int) sec;
final int nanosecondsFractional = (int) ((sec * 1_000_000_000) - (secondsWhole * 1_000_000_000));
return timeSFromArray(timeClass, secondsWhole, min, hour, mday, month, year, nanosecondsFractional, isdst, fromutc, utcoffset);
return buildTime(frame, timeClass, secondsWhole, min, hour, mday, month, year, nanosecondsFractional, isdst, fromutc, utcoffset);
}

@Specialization
public RubyTime timeSFromArray(RubyClass timeClass, double sec, int min, int hour, int mday, int month, int year,
public RubyTime timeSFromArray(VirtualFrame frame, RubyClass timeClass, double sec, int min, int hour, int mday, int month, int year,
int nsec, int isdst, boolean fromutc, Object utcoffset) {
final int secondsWhole = (int) sec;
return timeSFromArray(timeClass, secondsWhole, min, hour, mday, month, year, nsec, isdst, fromutc, utcoffset);
return buildTime(frame, timeClass, secondsWhole, min, hour, mday, month, year, nsec, isdst, fromutc, utcoffset);
}

private int cast(Object value) {
6 changes: 0 additions & 6 deletions truffle/src/main/ruby/core/shims.rb
Original file line number Diff line number Diff line change
@@ -113,13 +113,7 @@ def include?(needle)
end

class Rational

alias :__slash__ :/

def _offset_to_milliseconds
(self * 1000).to_i
end

end

ENV['TZ'] = 'UTC'