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: 9169ae0e03cc
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2f8b5326ebb2
Choose a head ref

Commits on Jun 29, 2016

  1. Copy the full SHA
    f24be48 View commit details
  2. Copy the full SHA
    483d7ff View commit details
  3. Copy the full SHA
    1d5d475 View commit details
  4. Copy the full SHA
    34ba5c2 View commit details
  5. Copy the full SHA
    3a1eed1 View commit details
  6. Merge branch 'master' into truffle-head

    # Conflicts:
    #	truffle/pom.rb
    #	truffle/pom.xml
    chrisseaton committed Jun 29, 2016
    Copy the full SHA
    7d34009 View commit details
  7. Copy the full SHA
    017f07d View commit details
  8. Copy the full SHA
    ba9c1b5 View commit details
  9. Copy the full SHA
    ccd59cf View commit details
  10. Copy the full SHA
    6e365c5 View commit details
  11. Copy the full SHA
    8a34972 View commit details
  12. Copy the full SHA
    4a8321f View commit details
  13. Copy the full SHA
    db204d7 View commit details

Commits on Jun 30, 2016

  1. Copy the full SHA
    fbb6893 View commit details
  2. Copy the full SHA
    d232406 View commit details
  3. Copy the full SHA
    671d3f5 View commit details
  4. Copy the full SHA
    1fb9c46 View commit details
  5. Copy the full SHA
    8733720 View commit details

Commits on Jul 1, 2016

  1. Copy the full SHA
    373e5dc View commit details
  2. Copy the full SHA
    e0dbc94 View commit details
  3. Copy the full SHA
    9bd2384 View commit details

Commits on Jul 2, 2016

  1. Merge branch 'master' into truffle-head

    # Conflicts:
    #	ci.hocon
    chrisseaton committed Jul 2, 2016
    Copy the full SHA
    4894f4a View commit details

Commits on Jul 4, 2016

  1. Merge branch 'master' into truffle-head

    # Conflicts:
    #	bin/jruby-cext-c
    chrisseaton committed Jul 4, 2016
    Copy the full SHA
    25a34d8 View commit details
  2. Merge branch 'master' into truffle-head

    # Conflicts:
    #	tool/jt.rb
    chrisseaton committed Jul 4, 2016
    Copy the full SHA
    f73cb61 View commit details
  3. Copy the full SHA
    85e2306 View commit details
  4. Copy the full SHA
    c1c9d1b View commit details
  5. [Truffle] Upgrade JVMCI.

    chrisseaton committed Jul 4, 2016
    Copy the full SHA
    c621168 View commit details
  6. Copy the full SHA
    31477c7 View commit details

Commits on Jul 5, 2016

  1. Copy the full SHA
    c2ac786 View commit details
  2. Copy the full SHA
    5864838 View commit details
  3. Copy the full SHA
    58ec629 View commit details
  4. Copy the full SHA
    5ee1a8a View commit details
  5. Copy the full SHA
    1c89dd0 View commit details
  6. Copy the full SHA
    0e73cfc View commit details

Commits on Jul 6, 2016

  1. Copy the full SHA
    db0ecae View commit details

Commits on Jul 7, 2016

  1. Copy the full SHA
    510e9fa View commit details

Commits on Jul 9, 2016

  1. Copy the full SHA
    90890bd View commit details
  2. Copy the full SHA
    71071ca View commit details
  3. Copy the full SHA
    3071687 View commit details
  4. Copy the full SHA
    66bd0f1 View commit details

Commits on Jul 10, 2016

  1. Copy the full SHA
    c0a73cf View commit details

Commits on Jul 11, 2016

  1. Copy the full SHA
    fa82e85 View commit details

Commits on Jul 12, 2016

  1. Copy the full SHA
    f7ec563 View commit details

Commits on Jul 13, 2016

  1. Copy the full SHA
    b743851 View commit details
  2. Copy the full SHA
    74c79bb View commit details
  3. Copy the full SHA
    f69ff6a View commit details
  4. Copy the full SHA
    3bac257 View commit details
  5. Copy the full SHA
    dae2f07 View commit details
  6. Copy the full SHA
    0d37318 View commit details
  7. Copy the full SHA
    1a61210 View commit details
Showing with 821 additions and 3,484 deletions.
  1. +6 −0 .travis.yml
  2. +40 −30 ci.hocon
  3. +18 −19 core/src/main/java/org/jruby/RubyClass.java
  4. +3 −3 core/src/main/java/org/jruby/RubyIO.java
  5. +2 −18 core/src/main/java/org/jruby/RubyNumeric.java
  6. +98 −103 core/src/main/java/org/jruby/RubyRange.java
  7. +48 −33 core/src/main/java/org/jruby/RubyString.java
  8. +1 −1 core/src/main/java/org/jruby/RubySymbol.java
  9. +12 −12 core/src/main/java/org/jruby/ir/IRBuilder.java
  10. +1 −1 core/src/main/java/org/jruby/ir/instructions/BranchInstr.java
  11. +1 −1 core/src/main/java/org/jruby/ir/instructions/JumpInstr.java
  12. +10 −0 core/src/main/java/org/jruby/ir/instructions/JumpTargetInstr.java
  13. +1 −0 core/src/main/java/org/jruby/ir/interpreter/FullInterpreterContext.java
  14. +165 −0 core/src/main/java/org/jruby/ir/representations/IGVCFGVisitor.java
  15. +1 −0 core/src/main/java/org/jruby/runtime/JavaSites.java
  16. +5 −1 lib/ruby/truffle/jruby+truffle/lib/truffle/actionpack_exclusions.yaml
  17. +24 −18 lib/ruby/truffle/jruby+truffle/lib/truffle/config.rb
  18. +15 −15 lib/ruby/truffle/jruby+truffle/lib/truffle/runner.rb
  19. +19 −0 lib/ruby/truffle/truffle/io/wait.rb
  20. +3 −0 lib/ruby/truffle/truffle/openssl-stubs.rb
  21. +1 −1 spec/ruby/core/hash/shift_spec.rb
  22. +34 −1 spec/ruby/language/safe_navigator_spec.rb
  23. +4 −0 spec/tags/ruby/core/kernel/spawn_tags.txt
  24. +0 −1 spec/truffle/tags/core/exception/arguments_tags.txt
  25. +1 −0 spec/truffle/tags/core/exception/cause_tags.txt
  26. +0 −1 spec/truffle/tags/core/exception/equal_value_tags.txt
  27. +0 −1 spec/truffle/tags/core/exception/errno_tags.txt
  28. +0 −1 spec/truffle/tags/core/exception/exception_tags.txt
  29. +0 −1 spec/truffle/tags/core/exception/message_tags.txt
  30. +0 −1 spec/truffle/tags/core/exception/new_tags.txt
  31. +1 −0 spec/truffle/tags/core/io/popen_tags.txt
  32. +1 −0 spec/truffle/tags/core/io/read_tags.txt
  33. +1 −0 spec/truffle/tags/core/io/reopen_tags.txt
  34. +1 −0 spec/truffle/tags/language/predefined_tags.txt
  35. +1 −0 spec/truffle/tags/language/safe_navigator_tags.txt
  36. +3 −0 spec/truffle/truffle.mspec
  37. +9 −0 test/jruby/test_array.rb
  38. +1 −0 test/mri/excludes_truffle/CGICoreTest.rb
  39. +1 −0 test/mri/excludes_truffle/Complex_Test.rb
  40. +1 −0 test/mri/excludes_truffle/PPTestModule/PPFileStatTest.rb
  41. +1 −0 test/mri/excludes_truffle/TestAlias.rb
  42. +2 −0 test/mri/excludes_truffle/TestAutoload.rb
  43. +1 −0 test/mri/excludes_truffle/TestBase64.rb
  44. +1 −0 test/mri/excludes_truffle/TestBeginEndBlock.rb
  45. +1 −0 test/mri/excludes_truffle/TestCall.rb
  46. +4 −0 test/mri/excludes_truffle/TestClass.rb
  47. +5 −0 test/mri/excludes_truffle/TestDigest/TestDigestParen.rb
  48. +3 −0 test/mri/excludes_truffle/TestDir_M17N.rb
  49. +8 −0 test/mri/excludes_truffle/TestException.rb
  50. +2 −0 test/mri/excludes_truffle/TestFile.rb
  51. +1 −0 test/mri/excludes_truffle/TestFileExhaustive.rb
  52. +1 −0 test/mri/excludes_truffle/TestGB18030.rb
  53. +2 −0 test/mri/excludes_truffle/TestGc.rb
  54. +3 −0 test/mri/excludes_truffle/TestIO_M17N.rb
  55. +13 −0 test/mri/excludes_truffle/TestKeywordArguments.rb
  56. +2 −0 test/mri/excludes_truffle/TestLambdaParameters.rb
  57. +2 −0 test/mri/excludes_truffle/TestMath.rb
  58. +1 −0 test/mri/excludes_truffle/TestMatrix.rb
  59. +1 −0 test/mri/excludes_truffle/TestMethod.rb
  60. +12 −0 test/mri/excludes_truffle/TestObjSpace.rb
  61. +2 −0 test/mri/excludes_truffle/TestObject.rb
  62. +3 −0 test/mri/excludes_truffle/TestObjectSpace.rb
  63. +1 −0 test/mri/excludes_truffle/TestOpen3.rb
  64. +5 −0 test/mri/excludes_truffle/TestPack.rb
  65. +10 −0 test/mri/excludes_truffle/TestPathname.rb
  66. +3 −0 test/mri/excludes_truffle/TestProc.rb
  67. +1 −0 test/mri/excludes_truffle/TestRand.rb
  68. +1 −0 test/mri/excludes_truffle/TestRange.rb
  69. +3 −0 test/mri/excludes_truffle/TestRegexp.rb
  70. +4 −1 test/mri/excludes_truffle/TestRequire.rb
  71. +3 −0 test/mri/excludes_truffle/TestRubyLiteral.rb
  72. +4 −0 test/mri/excludes_truffle/TestRubyOptimization.rb
  73. +2 −0 test/mri/excludes_truffle/TestRubyOptions.rb
  74. +1 −0 test/mri/excludes_truffle/TestRubyYieldGen.rb
  75. +1 −0 test/mri/excludes_truffle/TestSprintf.rb
  76. +8 −0 test/mri/excludes_truffle/TestStringIO.rb
  77. +2 −1 test/mri/excludes_truffle/TestStruct/SubStruct.rb
  78. +2 −1 test/mri/excludes_truffle/TestStruct/TopStruct.rb
  79. +2 −0 test/mri/excludes_truffle/TestSuper.rb
  80. +5 −0 test/mri/excludes_truffle/TestSymbol.rb
  81. +3 −0 test/mri/excludes_truffle/TestSyntax.rb
  82. +1 −0 test/mri/excludes_truffle/TestTempfile.rb
  83. +4 −0 test/mri/excludes_truffle/TestThread.rb
  84. +1 −0 test/mri/excludes_truffle/TestTime.rb
  85. +1 −0 test/mri/excludes_truffle/TestTranscode.rb
  86. +1 −0 test/mri/excludes_truffle/TestVariable.rb
  87. +6 −0 test/mri/excludes_truffle/TestWEBrickUtils.rb
  88. +4 −4 test/mri_truffle.index
  89. +1 −1 test/truffle/cexts/xml/.jruby-cext-build.yml
  90. +1 −1 test/truffle/cexts/xopenssl/.jruby-cext-build.yml
  91. +7 −0 test/truffle/ecosystem-travis-install.sh
  92. +0 −4 test/truffle/ecosystem/batch.txt
  93. +9 −0 test/truffle/ecosystem/batch.yaml
  94. +0 −8 test/truffle/ecosystem/ecosystem.sh
  95. +5 −0 test/truffle/ecosystem/gem-testing.sh
  96. +3 −3 test/truffle/ecosystem/rails-app.sh
  97. +0 −8 test/truffle/ecosystem/rails-app/.gitignore
  98. +0 −57 test/truffle/ecosystem/rails-app/.jruby+truffle.yaml
  99. +0 −25 test/truffle/ecosystem/rails-app/Gemfile
  100. +0 −128 test/truffle/ecosystem/rails-app/Gemfile.lock
  101. +0 −6 test/truffle/ecosystem/rails-app/Rakefile
  102. 0 test/truffle/ecosystem/rails-app/app/assets/images/.keep
  103. +0 −15 test/truffle/ecosystem/rails-app/app/assets/stylesheets/application.css
  104. +0 −5 test/truffle/ecosystem/rails-app/app/controllers/application_controller.rb
  105. 0 test/truffle/ecosystem/rails-app/app/controllers/concerns/.keep
  106. +0 −56 test/truffle/ecosystem/rails-app/app/controllers/people_controller.rb
  107. +0 −2 test/truffle/ecosystem/rails-app/app/helpers/application_helper.rb
  108. 0 test/truffle/ecosystem/rails-app/app/models/concerns/.keep
  109. +0 −21 test/truffle/ecosystem/rails-app/app/models/person.rb
  110. +0 −26 test/truffle/ecosystem/rails-app/app/views/layouts/application.html.erb
  111. +0 −55 test/truffle/ecosystem/rails-app/app/views/people/index.erb
  112. +0 −3 test/truffle/ecosystem/rails-app/bin/bundle
  113. +0 −4 test/truffle/ecosystem/rails-app/bin/rails
  114. +0 −4 test/truffle/ecosystem/rails-app/bin/rake
  115. +0 −29 test/truffle/ecosystem/rails-app/bin/setup
  116. +0 −4 test/truffle/ecosystem/rails-app/config.ru
  117. +0 −39 test/truffle/ecosystem/rails-app/config/application.rb
  118. +0 −3 test/truffle/ecosystem/rails-app/config/boot.rb
  119. +0 −23 test/truffle/ecosystem/rails-app/config/database.yml
  120. +0 −5 test/truffle/ecosystem/rails-app/config/environment.rb
  121. +0 −25 test/truffle/ecosystem/rails-app/config/environments/development.rb
  122. +0 −64 test/truffle/ecosystem/rails-app/config/environments/production.rb
  123. +0 −42 test/truffle/ecosystem/rails-app/config/environments/test.rb
  124. +0 −7 test/truffle/ecosystem/rails-app/config/initializers/backtrace_silencers.rb
  125. +0 −3 test/truffle/ecosystem/rails-app/config/initializers/cookies_serializer.rb
  126. +0 −4 test/truffle/ecosystem/rails-app/config/initializers/filter_parameter_logging.rb
  127. +0 −20 test/truffle/ecosystem/rails-app/config/initializers/inflections.rb
  128. +0 −4 test/truffle/ecosystem/rails-app/config/initializers/mime_types.rb
  129. +0 −3 test/truffle/ecosystem/rails-app/config/initializers/session_store.rb
  130. +0 −9 test/truffle/ecosystem/rails-app/config/initializers/wrap_parameters.rb
  131. +0 −23 test/truffle/ecosystem/rails-app/config/locales/en.yml
  132. +0 −61 test/truffle/ecosystem/rails-app/config/routes.rb
  133. +0 −22 test/truffle/ecosystem/rails-app/config/secrets.yml
  134. 0 test/truffle/ecosystem/rails-app/lib/assets/.keep
  135. 0 test/truffle/ecosystem/rails-app/lib/tasks/.keep
  136. 0 test/truffle/ecosystem/rails-app/log/.keep
  137. +0 −67 test/truffle/ecosystem/rails-app/public/404.html
  138. +0 −67 test/truffle/ecosystem/rails-app/public/422.html
  139. +0 −66 test/truffle/ecosystem/rails-app/public/500.html
  140. 0 test/truffle/ecosystem/rails-app/public/favicon.ico
  141. +0 −5 test/truffle/ecosystem/rails-app/public/robots.txt
  142. +0 −3 test/truffle/ecosystem/rails-app/public/stylesheets/application.css
  143. +0 −2,122 test/truffle/ecosystem/rails-app/public/stylesheets/kube.css
  144. 0 test/truffle/ecosystem/rails-app/test/controllers/.keep
  145. 0 test/truffle/ecosystem/rails-app/test/fixtures/.keep
  146. 0 test/truffle/ecosystem/rails-app/test/helpers/.keep
  147. 0 test/truffle/ecosystem/rails-app/test/integration/.keep
  148. 0 test/truffle/ecosystem/rails-app/test/mailers/.keep
  149. 0 test/truffle/ecosystem/rails-app/test/models/.keep
  150. +0 −7 test/truffle/ecosystem/rails-app/test/test_helper.rb
  151. 0 test/truffle/ecosystem/rails-app/vendor/assets/javascripts/.keep
  152. 0 test/truffle/ecosystem/rails-app/vendor/assets/stylesheets/.keep
  153. +55 −27 tool/jt.rb
  154. +1 −1 truffle/src/main/c/openssl/.jruby-cext-build.yml
  155. +6 −0 truffle/src/main/java/org/jruby/truffle/core/CoreLibrary.java
  156. +1 −1 truffle/src/main/java/org/jruby/truffle/core/array/ArrayNodes.java
  157. +1 −1 truffle/src/main/java/org/jruby/truffle/core/exception/ExceptionNodes.java
  158. +12 −4 truffle/src/main/java/org/jruby/truffle/core/rubinius/IOPrimitiveNodes.java
  159. +2 −4 truffle/src/main/java/org/jruby/truffle/language/control/NotNode.java
  160. +32 −15 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/BodyTranslator.java
  161. +2 −2 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/MethodTranslator.java
6 changes: 6 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -91,6 +91,7 @@ matrix:
- env:
- JAVA_OPTS="$JAVA_OPTS -Xmx512m"
- HAS_REDIS=true
- COMMAND=test/truffle/ecosystem-travis-install.sh
- JT='test ecosystem'
jdk: oraclejdk8
- env: JT='test tck'
@@ -103,10 +104,15 @@ matrix:
- USE_BUILD_PACK=yes
- JT='test fast'
jdk: oraclejdk8
- env: JT='test mri'
jdk: oraclejdk8
allow_failures:
- env: PHASE='-Prake -Dtask=test:mri:fullint'
- env: JT='test mri'
jdk: oraclejdk8
- env: JT='test gems' JAVA_OPTS="$JAVA_OPTS -Xmx512m" HAS_REDIS=true
- 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
70 changes: 40 additions & 30 deletions ci.hocon
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ jt: [ruby, tool/jt.rb]
common-setup: [
[mx, sclone, --kind, git, "https://github.com/jruby/jruby-build-pack.git", jruby-build-pack],
[cp, bin/jruby.bash, bin/jruby],
[chmod, +x, bin/jruby],
[chmod, "+x", bin/jruby],
${jt} [build, --offline]
]

@@ -15,12 +15,12 @@ common: {
ruby: ">=2.1.0"
"java/jdk": "==1.8.0/60"
}

environment: {
CI: "true",
JAVA_OPTS: -Xmx2G
}

setup: ${common-setup}

timelimit: "00:30:00"
@@ -47,7 +47,7 @@ graal-core: {
[cd, ../..],
[mv, temp_mx, mx.jruby]
]

environment: {
GRAALVM_BIN: graal-workspace/jvmci/jdk1.8.0_60/product/bin/java, // temporarily looks like GraalVM - will use GRAAL_HOME after next GraalVM release
HOST_VM: server,
@@ -70,7 +70,7 @@ graal-enterprise: {
[cd, ../..],
[mv, temp_mx, mx.jruby]
]

environment: {
GRAALVM_BIN: graal-workspace/jvmci/jdk1.8.0_60/product/bin/java, // temporarily looks like GraalVM - will use GRAAL_HOME after next GraalVM release
HOST_VM: server,
@@ -80,7 +80,7 @@ graal-enterprise: {

graal-enterprise-no-om: {
setup: ${graal-enterprise.setup}

environment: {
GRAALVM_BIN: graal-workspace/jvmci/jdk1.8.0_60/product/bin/java, // temporarily looks like GraalVM - will use GRAAL_HOME after next GraalVM release
HOST_VM: server,
@@ -97,7 +97,7 @@ graal-vm: {
platformspecific: true
}
}

environment: {
GRAALVM_BIN: "$GRAALVM_DIR/bin/java"
HOST_VM: server,
@@ -232,39 +232,48 @@ server-benchmarks: {
packages: {
"apache/ab": ">=2.3"
}

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

test-gems: {
environment: {
GEM_HOME: jruby-truffle-gem-test-pack/gems
}

jruby-truffle-gem-test-pack: {
setup: ${common-setup} [
[mx, sclone, --kind, git, "https://github.com/jruby/jruby-truffle-gem-test-pack.git", jruby-truffle-gem-test-pack]
[mx, sclone, --kind, git, "https://github.com/jruby/jruby-truffle-gem-test-pack.git", ../jruby-truffle-gem-test-pack]
]

}

test-gems: ${jruby-truffle-gem-test-pack} {
environment: {
GEM_HOME: ../jruby-truffle-gem-test-pack/gems
}

run: [
${jt} [test, gems]
]
}

test-ecosystem: ${jruby-truffle-gem-test-pack} {
run: [
[bin/jruby, bin/gem, install, ../jruby-truffle-gem-test-pack/gems/cache/bundler-1.12.5.gem],
${jt} [test, ecosystem]
]
}

test-cexts: {
packages: {
llvm: "==3.3"
}

downloads: {
JVMCI_JAVA_HOME: {
name: labsjdk,
version: "8u92-jvmci-0.17",
platformspecific: true
}
}

setup: ${common-setup} [
[mv, mx.jruby, temp_mx],
[mkdir, sulong-workspace],
@@ -278,7 +287,7 @@ test-cexts: {
[mx, sclone, --kind, git, "https://github.com/jruby/jruby-truffle-gem-test-pack.git", jruby-truffle-gem-test-pack],
${jt} [build, cexts]
]

environment: {
GEM_HOME: jruby-truffle-gem-test-pack/gems
GRAAL_HOME: sulong-workspace/sulong,
@@ -287,7 +296,7 @@ test-cexts: {
HOST_VM: server,
HOST_VM_CONFIG: graal-core
}

run: [
${jt} [test, specs, --graal, ":capi"],
${jt} [test, cexts]
@@ -304,15 +313,15 @@ sulong-benchmarks: {
packages: {
llvm: "==3.3"
}

downloads: {
JVMCI_JAVA_HOME: {
name: labsjdk,
version: "8u92-jvmci-0.17",
platformspecific: true
}
}

setup: ${common-setup} [
[mv, mx.jruby, temp_mx],
[mkdir, sulong-workspace],
@@ -327,7 +336,7 @@ sulong-benchmarks: {
] ${setup-benchmarks} [
${jt} [cextc, all-ruby-benchmarks/chunky_png/oily_png]
]

environment: {
GRAAL_HOME: sulong-workspace/sulong,
SULONG_HOME: sulong-workspace/sulong,
@@ -349,28 +358,29 @@ builds: [
{name: ruby-test-integration} ${common} ${gate-caps} {run: [${jt} [test, integration]]},
{name: ruby-test-cexts} ${common} ${gate-caps} ${test-cexts},
{name: ruby-test-gems} ${common} ${gate-caps} ${test-gems},
{name: ruby-test-ecosystem} ${common} ${gate-caps} ${test-ecosystem},
{name: ruby-test-tarball} ${common} ${gate-caps} {run: [${jt} [tarball]]},

{name: ruby-test-compiler-graal-core} ${common} ${graal-core} ${gate-caps} {run: [${jt} [test, compiler]]},
{name: ruby-test-compiler-graal-enterprise} ${common} ${graal-enterprise} ${gate-caps} {run: [${jt} [test, compiler]]},
{name: ruby-test-compiler-graal-vm} ${common} ${graal-vm} ${gate-caps} {run: [${jt} [test, compiler]]},

{name: ruby-metrics-noindy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-noindy-metrics} ${metrics},
{name: ruby-metrics-indy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-indy-metrics} ${metrics},
{name: ruby-metrics-truffle} ${common} ${no-graal} ${bench-caps} ${jruby-truffle} ${metrics},
{name: ruby-metrics-compiler-graal-core} ${common} ${graal-core} ${bench-caps} ${jruby-truffle} ${compiler-metrics},
{name: ruby-metrics-compiler-graal-enterprise} ${common} ${graal-enterprise} ${bench-caps} ${jruby-truffle} ${compiler-metrics},
{name: ruby-metrics-compiler-graal-enterprise-no-om} ${common} ${graal-enterprise-no-om} ${bench-caps} ${jruby-truffle} ${compiler-metrics},
{name: ruby-metrics-compiler-graal-vm} ${common} ${graal-vm} ${daily-bench-caps} ${jruby-truffle} ${compiler-metrics},

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

{name: ruby-benchmarks-chunky-noindy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-noindy-benchmark} ${chunky-benchmarks},
{name: ruby-benchmarks-chunky-indy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-indy-benchmark} ${chunky-benchmarks},
{name: ruby-benchmarks-chunky-no-graal} ${common} ${no-graal} ${weekly-bench-caps} ${jruby-truffle} ${chunky-benchmarks},
@@ -379,31 +389,31 @@ builds: [
{name: ruby-benchmarks-chunky-graal-enterprise-no-om} ${common} ${graal-enterprise-no-om} ${bench-caps} ${jruby-truffle} ${chunky-benchmarks},
{name: ruby-benchmarks-chunky-graal-vm} ${common} ${graal-vm} ${daily-bench-caps} ${jruby-truffle} ${chunky-benchmarks},
//{name: ruby-benchmarks-chunky-sulong} ${common} ${sulong-benchmarks} ${gate-caps} ${jruby-truffle} ${chunky-benchmarks-x},

{name: ruby-benchmarks-psd-noindy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-noindy-benchmark} ${psd-benchmarks},
{name: ruby-benchmarks-psd-indy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-indy-benchmark} ${psd-benchmarks},
{name: ruby-benchmarks-psd-no-graal} ${common} ${no-graal} ${weekly-bench-caps} ${jruby-truffle} ${psd-benchmarks},
{name: ruby-benchmarks-psd-graal-core} ${common} ${graal-core} ${bench-caps} ${jruby-truffle} ${psd-benchmarks},
{name: ruby-benchmarks-psd-graal-enterprise} ${common} ${graal-enterprise} ${bench-caps} ${jruby-truffle} ${psd-benchmarks},
{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-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},
{name: ruby-benchmarks-synthetic-graal-core} ${common} ${graal-core} ${bench-caps} ${jruby-truffle} ${synthetic-benchmarks},
{name: ruby-benchmarks-synthetic-graal-enterprise} ${common} ${graal-enterprise} ${bench-caps} ${jruby-truffle} ${synthetic-benchmarks},
{name: ruby-benchmarks-synthetic-graal-enterprise-no-om} ${common} ${graal-enterprise-no-om} ${bench-caps} ${jruby-truffle} ${synthetic-benchmarks},
{name: ruby-benchmarks-synthetic-graal-vm} ${common} ${graal-vm} ${daily-bench-caps} ${jruby-truffle} ${synthetic-benchmarks},

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

{name: ruby-benchmarks-server-noindy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-noindy-benchmark} ${server-benchmarks},
{name: ruby-benchmarks-server-indy} ${common} ${no-graal} ${daily-bench-caps} ${jruby-indy-benchmark} ${server-benchmarks},
{name: ruby-benchmarks-server-no-graal} ${common} ${no-graal} ${weekly-bench-caps} ${jruby-truffle} ${server-benchmarks},
37 changes: 18 additions & 19 deletions core/src/main/java/org/jruby/RubyClass.java
Original file line number Diff line number Diff line change
@@ -503,10 +503,6 @@ public IRubyObject invoke(ThreadContext context, IRubyObject self, int methodInd
return invoke(context, self, name, args, callType, block);
}

public boolean notVisibleAndNotMethodMissing(DynamicMethod method, String name, IRubyObject caller, CallType callType) {
return !method.isCallableFrom(caller, callType) && !name.equals("method_missing");
}

public IRubyObject invoke(ThreadContext context, IRubyObject self, String name,
CallType callType, Block block) {
DynamicMethod method = searchMethod(name);
@@ -958,14 +954,19 @@ private void generateMethodAnnotations(Map<Class, Map<String, Object>> methodAnn
}
}

private boolean shouldCallMethodMissing(DynamicMethod method) {
private static boolean shouldCallMethodMissing(DynamicMethod method) {
return method.isUndefined();
}
private boolean shouldCallMethodMissing(DynamicMethod method, String name, IRubyObject caller, CallType callType) {

private static boolean shouldCallMethodMissing(DynamicMethod method, String name, IRubyObject caller, CallType callType) {
return method.isUndefined() || notVisibleAndNotMethodMissing(method, name, caller, callType);
}

public IRubyObject invokeInherited(ThreadContext context, IRubyObject self, IRubyObject subclass) {
private static boolean notVisibleAndNotMethodMissing(DynamicMethod method, String name, IRubyObject caller, CallType callType) {
return !method.isCallableFrom(caller, callType) && !name.equals("method_missing");
}

public final IRubyObject invokeInherited(ThreadContext context, IRubyObject self, IRubyObject subclass) {
DynamicMethod method = getMetaClass().searchMethod("inherited");

if (method.isUndefined()) {
@@ -1081,20 +1082,18 @@ protected void setModuleSuperClass(RubyClass superClass) {
setSuperClass(superClass);
}

public Collection<RubyClass> subclasses(boolean includeDescendants) {
Set<RubyClass> mySubclasses = subclasses;
if (mySubclasses != null) {
Collection<RubyClass> mine = new ArrayList<RubyClass>(mySubclasses);
public final Collection<RubyClass> subclasses(boolean includeDescendants) {
final Set<RubyClass> subclasses = this.subclasses;
if (subclasses != null) {
Collection<RubyClass> classes = new ArrayList<RubyClass>(subclasses);
if (includeDescendants) {
for (RubyClass i: mySubclasses) {
mine.addAll(i.subclasses(includeDescendants));
for ( RubyClass klass: subclasses ) {
classes.addAll(klass.subclasses(includeDescendants));
}
}

return mine;
} else {
return Collections.EMPTY_LIST;
return classes;
}
return Collections.EMPTY_LIST;
}

/**
@@ -1145,9 +1144,9 @@ public synchronized void replaceSubclass(RubyClass subclass, RubyClass newSubcla
}

@Override
public void becomeSynchronized() {
public final void becomeSynchronized() {
// make this class and all subclasses sync
synchronized (getRuntime().getHierarchyLock()) {
synchronized (runtime.getHierarchyLock()) {
super.becomeSynchronized();
Set<RubyClass> mySubclasses = subclasses;
if (mySubclasses != null) for (RubyClass subclass : mySubclasses) {
6 changes: 3 additions & 3 deletions core/src/main/java/org/jruby/RubyIO.java
Original file line number Diff line number Diff line change
@@ -2539,15 +2539,15 @@ private static IRubyObject inspectPuts(ThreadContext context, IRubyObject maybeI
}

protected IRubyObject write(ThreadContext context, ByteList byteList) {
return callMethod(context, "write", RubyString.newStringShared(context.runtime, byteList));
return sites(context).write.call(context, this, this, RubyString.newStringShared(context.runtime, byteList));
}

protected static IRubyObject write(ThreadContext context, IRubyObject maybeIO, ByteList byteList) {
return maybeIO.callMethod(context, "write", RubyString.newStringShared(context.runtime, byteList));
return sites(context).write.call(context, maybeIO, maybeIO, RubyString.newStringShared(context.runtime, byteList));
}

public static IRubyObject write(ThreadContext context, IRubyObject maybeIO, IRubyObject str) {
return maybeIO.callMethod(context, "write", str);
return sites(context).write.call(context, maybeIO, maybeIO, str);
}

@Override
20 changes: 2 additions & 18 deletions core/src/main/java/org/jruby/RubyNumeric.java
Original file line number Diff line number Diff line change
@@ -925,7 +925,7 @@ private IRubyObject stepCommon(ThreadContext context, IRubyObject to, IRubyObjec
((RubyFixnum)step).getLongValue(),
block);
} else if (this instanceof RubyFloat || to instanceof RubyFloat || step instanceof RubyFloat) {
floatStep19(context, runtime, this, to, step, false, block);
floatStep(context, runtime, this, to, step, false, block);
} else {
duckStep(context, runtime, this, to, step, block);
}
@@ -957,23 +957,7 @@ private static void fixnumStep(ThreadContext context, Ruby runtime, long from, l
}
}

protected static void floatStep(ThreadContext context, Ruby runtime, IRubyObject from, IRubyObject to, IRubyObject step, Block block) {
double beg = num2dbl(from);
double end = num2dbl(to);
double unit = num2dbl(step);

double n = (end - beg)/unit;
double err = (Math.abs(beg) + Math.abs(end) + Math.abs(end - beg)) / Math.abs(unit) * DBL_EPSILON;

if (err > 0.5) err = 0.5;
n = Math.floor(n + err) + 1;

for (long i = 0; i < n; i++) {
block.yield(context, RubyFloat.newFloat(runtime, i * unit + beg));
}
}

static void floatStep19(ThreadContext context, Ruby runtime, IRubyObject from, IRubyObject to, IRubyObject step, boolean excl, Block block) {
static void floatStep(ThreadContext context, Ruby runtime, IRubyObject from, IRubyObject to, IRubyObject step, boolean excl, Block block) {
double beg = num2dbl(from);
double end = num2dbl(to);
double unit = num2dbl(step);
Loading