Skip to content

Commit

Permalink
Merge branch 'master' into java_call_sites
Browse files Browse the repository at this point in the history
  • Loading branch information
headius committed Aug 5, 2016
2 parents 7b14eb7 + 1b3111e commit 9edd069
Show file tree
Hide file tree
Showing 240 changed files with 20,133 additions and 2,954 deletions.
7 changes: 4 additions & 3 deletions .gitignore
Expand Up @@ -24,9 +24,10 @@
build
build.properties
build_graph.png
mx*/*pyc
mx*/env
mxbuild
/mx.jruby/*pyc
/mx.jruby/env
/mxbuild
/mx.imports
core/src/main/java/org/jruby/runtime/Constants.java
dependency-reduced-pom.xml
dev_null
Expand Down
5 changes: 3 additions & 2 deletions .travis.yml
Expand Up @@ -99,6 +99,7 @@ matrix:
- env:
- JT=check_ambiguous_arguments
- SKIP_BUILD=true
- V=1
jdk: oraclejdk8
- env:
- USE_BUILD_PACK=yes
Expand All @@ -111,8 +112,8 @@ matrix:
- env: JT='test mri'
jdk: oraclejdk8
- env: JT='test gems' JAVA_OPTS="$JAVA_OPTS -Xmx512m" HAS_REDIS=true
- env: PHASE='-Pj2ee'
jdk: oraclejdk7
#- env: PHASE='-Pj2ee'
# jdk: oraclejdk7
# NOTE: build seems to never start (waited for any to finish for more than a day) - probably a travis-ci bug
#- env: PHASE='-Pmain'
# sudo: required
Expand Down
28 changes: 24 additions & 4 deletions bench/java/bench_array_to_java.rb
Expand Up @@ -5,9 +5,29 @@

TIMES.times do
Benchmark.bm(30) do |bm|
bm.report("control") {a = [1,2,3,4]; 100_000.times {a}}
bm.report("ary.to_java") {a = [1,2,3,4]; 100_000.times {a.to_java}}
bm.report("ary.to_java :object") {a = [1,2,3,4]; 100_000.times {a.to_java :object}}
bm.report("ary.to_java :string") {a = [1,2,3,4]; 100_000.times {a.to_s.to_java :string}}
bm.report("control") { ary = [1,2,3,4,5,6,7,8]; 1_000_000.times { ary } }
bm.report("ary.to_java") { ary = [1,2,3,4,5,6,7,8]; 1_000_000.times { ary.to_java } }
bm.report("ary.to_java :object") { ary = [1,2,3,4,5,6,7,8]; 1_000_000.times { ary.to_java :object } }
bm.report("ary.to_java java.lang.Integer") { ary = [1,2,3,4,5,6,7,8]; 1_000_000.times { ary.to_java java.lang.Integer } }
bm.report("ary.to_java :int") { ary = [1,2,3,4,5,6,7,8]; 1_000_000.times { ary.to_java :int } }
bm.report("ary.to_java Java::int") { ary = [1,2,3,4,5,6,7,8]; 1_000_000.times { ary.to_java Java::int } }
bm.report("ary.to_java :short") { ary = [1,2,3,4,5,6,7,8]; 1_000_000.times { ary.to_java :short } }

bm.report("long_ary.to_java") do
long_ary = (0..255).to_a
100_000.times { long_ary.to_java }
end
bm.report("long_ary.to_java :int") do
long_ary = (0..255).to_a
100_000.times { long_ary.to_java :int }
end
bm.report("long_ary.to_java Java::int") do
long_ary = (0..255).to_a
100_000.times { long_ary.to_java Java::int }
end
bm.report("long_ary.to_java :short") do
long_ary = (0..255).to_a
100_000.times { long_ary.to_java :short }
end
end
end
48 changes: 45 additions & 3 deletions ci.hocon
Expand Up @@ -216,6 +216,24 @@ psd-benchmarks: {
] ${post-process-and-upload-results}
}

image-demo-benchmarks: {
run: ${setup-benchmarks} [
[mx, benchmark, image-demo]
] ${post-process-and-upload-results}
}

optcarrot-benchmarks: {
run: ${setup-benchmarks} [
[mx, benchmark, optcarrot]
] ${post-process-and-upload-results}
}

asciidoctor-benchmarks: {
run: ${setup-benchmarks} [
[mx, benchmark, asciidoctor]
] ${post-process-and-upload-results}
}

synthetic-benchmarks: {
run: ${setup-benchmarks} [
[mx, benchmark, synthetic]
Expand Down Expand Up @@ -269,7 +287,7 @@ test-cexts: {
downloads: {
JVMCI_JAVA_HOME: {
name: labsjdk,
version: "8u92-jvmci-0.17",
version: "8u92-jvmci-0.18",
platformspecific: true
}
}
Expand All @@ -285,7 +303,7 @@ test-cexts: {
[cd, ../..],
[mv, temp_mx, mx.jruby]
[mx, sclone, --kind, git, "https://github.com/jruby/jruby-truffle-gem-test-pack.git", jruby-truffle-gem-test-pack],
${jt} [build, cexts, --no-openssl]
${jt} [build, cexts]
]

environment: {
Expand Down Expand Up @@ -320,7 +338,7 @@ sulong-benchmarks: {
downloads: {
JVMCI_JAVA_HOME: {
name: labsjdk,
version: "8u92-jvmci-0.17",
version: "8u92-jvmci-0.18",
platformspecific: true
}
}
Expand Down Expand Up @@ -401,6 +419,30 @@ builds: [
{name: ruby-benchmarks-psd-graal-enterprise-no-om} ${common} ${graal-enterprise-no-om} ${bench-caps} ${jruby-truffle} ${psd-benchmarks},
{name: ruby-benchmarks-psd-graal-vm} ${common} ${graal-vm} ${daily-bench-caps} ${jruby-truffle} ${psd-benchmarks},

{name: ruby-benchmarks-image-demo-noindy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-noindy-benchmark} ${image-demo-benchmarks},
{name: ruby-benchmarks-image-demo-indy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-indy-benchmark} ${image-demo-benchmarks},
{name: ruby-benchmarks-image-demo-no-graal} ${common} ${no-graal} ${weekly-bench-caps} ${jruby-truffle} ${image-demo-benchmarks},
{name: ruby-benchmarks-image-demo-graal-core} ${common} ${graal-core} ${bench-caps} ${jruby-truffle} ${image-demo-benchmarks},
{name: ruby-benchmarks-image-demo-graal-enterprise} ${common} ${graal-enterprise} ${bench-caps} ${jruby-truffle} ${image-demo-benchmarks},
{name: ruby-benchmarks-image-demo-graal-enterprise-no-om} ${common} ${graal-enterprise-no-om} ${bench-caps} ${jruby-truffle} ${image-demo-benchmarks},
{name: ruby-benchmarks-image-demo-graal-vm} ${common} ${graal-vm} ${daily-bench-caps} ${jruby-truffle} ${image-demo-benchmarks},

{name: ruby-benchmarks-asciidoctor-noindy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-noindy-benchmark} ${asciidoctor-benchmarks},
{name: ruby-benchmarks-asciidoctor-indy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-indy-benchmark} ${asciidoctor-benchmarks},
{name: ruby-benchmarks-asciidoctor-no-graal} ${common} ${no-graal} ${weekly-bench-caps} ${jruby-truffle} ${asciidoctor-benchmarks},
{name: ruby-benchmarks-asciidoctor-graal-core} ${common} ${graal-core} ${bench-caps} ${jruby-truffle} ${asciidoctor-benchmarks},
{name: ruby-benchmarks-asciidoctor-graal-enterprise} ${common} ${graal-enterprise} ${bench-caps} ${jruby-truffle} ${asciidoctor-benchmarks},
{name: ruby-benchmarks-asciidoctor-graal-enterprise-no-om} ${common} ${graal-enterprise-no-om} ${bench-caps} ${jruby-truffle} ${asciidoctor-benchmarks},
{name: ruby-benchmarks-asciidoctor-graal-vm} ${common} ${graal-vm} ${daily-bench-caps} ${jruby-truffle} ${asciidoctor-benchmarks},

{name: ruby-benchmarks-optcarrot-noindy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-noindy-benchmark} ${optcarrot-benchmarks},
{name: ruby-benchmarks-optcarrot-indy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-indy-benchmark} ${optcarrot-benchmarks},
{name: ruby-benchmarks-optcarrot-no-graal} ${common} ${no-graal} ${weekly-bench-caps} ${jruby-truffle} ${optcarrot-benchmarks},
{name: ruby-benchmarks-optcarrot-graal-core} ${common} ${graal-core} ${bench-caps} ${jruby-truffle} ${optcarrot-benchmarks},
{name: ruby-benchmarks-optcarrot-graal-enterprise} ${common} ${graal-enterprise} ${bench-caps} ${jruby-truffle} ${optcarrot-benchmarks},
{name: ruby-benchmarks-optcarrot-graal-enterprise-no-om} ${common} ${graal-enterprise-no-om} ${bench-caps} ${jruby-truffle} ${optcarrot-benchmarks},
{name: ruby-benchmarks-optcarrot-graal-vm} ${common} ${graal-vm} ${daily-bench-caps} ${jruby-truffle} ${optcarrot-benchmarks},

{name: ruby-benchmarks-synthetic-noindy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-noindy-benchmark} ${synthetic-benchmarks},
{name: ruby-benchmarks-synthetic-indy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-indy-benchmark} ${synthetic-benchmarks},
{name: ruby-benchmarks-synthetic-no-graal} ${common} ${no-graal} ${weekly-bench-caps} ${jruby-truffle} ${synthetic-benchmarks},
Expand Down
12 changes: 4 additions & 8 deletions core/src/main/java/org/jruby/RubyArray.java
Expand Up @@ -265,10 +265,7 @@ public static RubyArray newArrayMayCopy(Ruby runtime, IRubyObject... args) {
case 2:
return new RubyArrayTwoObject(runtime, args[0], args[1]);
}
RubyArray arr = new RubyArray(runtime, new IRubyObject[args.length]);
System.arraycopy(args, 0, arr.values, 0, args.length);
arr.realLength = args.length;
return arr;
return newArrayNoCopy(runtime, args, 0, args.length);
}

/**
Expand Down Expand Up @@ -4054,7 +4051,7 @@ public IRubyObject shuffle(ThreadContext context, IRubyObject[] args) {
return ary;
}

private static int SORTED_THRESHOLD = 10;
private static final int SORTED_THRESHOLD = 10;

@JRubyMethod(name = "sample", optional = 2)
public IRubyObject sample(ThreadContext context, IRubyObject[] args) {
Expand Down Expand Up @@ -4129,8 +4126,7 @@ public IRubyObject sample(ThreadContext context, IRubyObject[] args) {
}
if (k >= l && (++k >= g))
++k;
return newArray(runtime, eltOk(i),
eltOk(j), eltOk(k));
return newArray(runtime, eltOk(i), eltOk(j), eltOk(k));
}

int len = realLength;
Expand Down Expand Up @@ -4163,7 +4159,7 @@ public IRubyObject sample(ThreadContext context, IRubyObject[] args) {
result[j] = result[i];
result[i] = tmp;
}
RubyArray ary = newArrayMayCopy(runtime, result);
RubyArray ary = newArrayNoCopy(runtime, result);
ary.realLength = n;
return ary;
}
Expand Down

0 comments on commit 9edd069

Please sign in to comment.