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

Commits on Feb 19, 2015

  1. Copy the full SHA
    790d457 View commit details
  2. Copy the full SHA
    134e4fd View commit details
  3. Copy the full SHA
    8555c9f View commit details
  4. [Truffle] Tidy up PE test harness a bit and don't run counter example…

    … as CompilerAsserts.compilationConstant doesn't work in the new PE yet.
    chrisseaton committed Feb 19, 2015
    Copy the full SHA
    7f7f99a View commit details
  5. Copy the full SHA
    0c29c66 View commit details
86 changes: 47 additions & 39 deletions test/truffle/pe/pe.rb
Original file line number Diff line number Diff line change
@@ -20,6 +20,7 @@ def self.start
@description_stack = []
@failures = []
@successes = []
@warnings = []
@dots = 0
end

@@ -37,17 +38,21 @@ def self.describe(description)
end
end

def self.full_description
@description_stack.join(" ")
end

def self.example(description)
describe "#{description} is constant" do
begin
1_000_000.times do
yield
end

@successes.push @description_stack.join(" ")
@successes.push full_description
print "."
rescue RubyTruffleError
@failures.push @description_stack.join(" ")
@failures.push full_description
print "E"
ensure
@dots += 1
@@ -57,45 +62,50 @@ def self.example(description)
end

def self.counter_example(description)
describe "#{description} is constant" do
begin
1_000_000.times do
yield
end

@failures.push @description_stack.join(" ")
print "E"
rescue RubyTruffleError
@successes.push @description_stack.join(" ")
print "."
ensure
@dots += 1
puts if @dots == 80
end
describe "#{description} is not constant" do
@warnings.push "counter example not run: #{full_description}"
# begin
# 1_000_000.times do
# yield
# end
#
# @failures.push full_description
# print "E"
# rescue RubyTruffleError
# @successes.push full_description
# print "."
# ensure
# @dots += 1
# puts if @dots == 80
# end
end
end

def self.broken_example(description)
puts "warning: broken examples not run"
#describe "#{description} is not constant" do
# inner_example do
# yield
# end
#end
describe "#{description} is not constant" do
@warnings.push "broken example not run: #{full_description}"
end
end

def self.finish
print "\n"
puts
puts

@failures.each do |message|
puts "failed: #{message}"
end

@warnings.each do |message|
puts "warning: #{message}"
end

puts

if @failures.empty?
puts "success - #{@successes.length} passed"
true
else
puts "failure - #{@failures.length} failed, #{@successes.length} passed"

@failures.each do |message|
puts "failed: #{message}"
end

false
end
@@ -125,17 +135,15 @@ def self.finish

# Tests organised by class

$: << File.expand_path('..', __FILE__)

require "language/metaprogramming_pe.rb"
require "core/truefalse_pe.rb"
require "core/fixnum_pe.rb"
require "core/float_pe.rb"
require "core/symbol_pe.rb"
require "core/array_pe.rb"
require "core/hash_pe.rb"
require "core/kernel/set_trace_func_pe.rb"
require "macro/pushing_pixels_pe.rb"
require_relative 'language/metaprogramming_pe.rb'
require_relative 'core/truefalse_pe.rb'
require_relative 'core/fixnum_pe.rb'
require_relative 'core/float_pe.rb'
require_relative 'core/symbol_pe.rb'
require_relative 'core/array_pe.rb'
require_relative 'core/hash_pe.rb'
require_relative 'core/kernel/set_trace_func_pe.rb'
require_relative 'macro/pushing_pixels_pe.rb'

# Finished

Original file line number Diff line number Diff line change
@@ -19,7 +19,7 @@ public class ArrayAllocationSite {
public static final boolean ARRAYS_OPTIMISTIC_LONG = Options.TRUFFLE_ARRAYS_OPTIMISTIC_LONG.load();

@CompilerDirectives.CompilationFinal private boolean convertedIntToLong = false;
private final Assumption assumption = Truffle.getRuntime().createAssumption();
private final Assumption assumption = Truffle.getRuntime().createAssumption("array-allocation");

@CompilerDirectives.TruffleBoundary
public void convertedIntToLong() {
Original file line number Diff line number Diff line change
@@ -31,7 +31,7 @@ public class SafepointManager {

private final Set<Thread> runningThreads = Collections.newSetFromMap(new ConcurrentHashMap<Thread, Boolean>());

@CompilerDirectives.CompilationFinal private Assumption assumption = Truffle.getRuntime().createAssumption();
@CompilerDirectives.CompilationFinal private Assumption assumption = Truffle.getRuntime().createAssumption("safepoint");
private final Phaser phaser = new Phaser();
private Consumer<RubyThread> action;

Original file line number Diff line number Diff line change
@@ -2590,7 +2590,11 @@ public RubyNode visitWhileNode(org.jruby.ast.WhileNode node) {
final RubyNode body;

try {
body = node.getBodyNode().accept(this);
if (node.getBodyNode().isNil()) {
body = new NilLiteralNode(context, sourceSection);
} else {
body = node.getBodyNode().accept(this);
}
} finally {
translatingWhile = oldTranslatingWhile;
}