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: 7b14eb765969
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 9edd069b4594
Choose a head ref
Loading
Showing with 20,133 additions and 2,954 deletions.
  1. +4 −3 .gitignore
  2. +3 −2 .travis.yml
  3. +24 −4 bench/java/bench_array_to_java.rb
  4. +45 −3 ci.hocon
  5. +4 −8 core/src/main/java/org/jruby/RubyArray.java
  6. +96 −37 core/src/main/java/org/jruby/RubyEnumerable.java
  7. +88 −43 core/src/main/java/org/jruby/RubyEnumerator.java
  8. +1 −1 core/src/main/java/org/jruby/RubyObject.java
  9. +0 −34 core/src/main/java/org/jruby/demo/ext/MethodMissing.java
  10. +0 −1 core/src/main/java/org/jruby/ir/IRFlags.java
  11. +0 −16 core/src/main/java/org/jruby/ir/instructions/Instr.java
  12. +0 −232 core/src/main/java/org/jruby/ir/interpreter/BodyInterpreterEngine.java
  13. +28 −10 core/src/main/java/org/jruby/ir/interpreter/FullInterpreterContext.java
  14. +0 −13 core/src/main/java/org/jruby/ir/interpreter/InterpreterContext.java
  15. +2 −1 core/src/main/java/org/jruby/ir/interpreter/InterpreterEngine.java
  16. +0 −935 core/src/main/java/org/jruby/ir/interpreter/SimpleMethodInterpreterEngine.java
  17. +0 −4 core/src/main/java/org/jruby/ir/interpreter/StartupInterpreterEngine.java
  18. +5 −6 core/src/main/java/org/jruby/ir/representations/BasicBlock.java
  19. +1 −0 core/src/main/java/org/jruby/ir/targets/IRBytecodeAdapter.java
  20. +1 −4 core/src/main/java/org/jruby/ir/targets/JVMVisitor.java
  21. +5 −4 core/src/main/java/org/jruby/ir/transformations/inlining/CFGInliner.java
  22. +16 −12 core/src/main/java/org/jruby/java/addons/KernelJavaAddons.java
  23. +329 −25 core/src/main/java/org/jruby/java/proxies/ArrayJavaProxy.java
  24. +7 −8 core/src/main/java/org/jruby/java/proxies/ArrayJavaProxyCreator.java
  25. +121 −62 core/src/main/java/org/jruby/java/util/ArrayUtils.java
  26. +15 −13 core/src/main/java/org/jruby/javasupport/Java.java
  27. +7 −15 core/src/main/java/org/jruby/javasupport/JavaArray.java
  28. +8 −8 core/src/main/java/org/jruby/javasupport/JavaClass.java
  29. +2 −2 core/src/main/java/org/jruby/javasupport/JavaSupportImpl.java
  30. +18 −3 core/src/main/java/org/jruby/javasupport/JavaUtil.java
  31. +8 −15 core/src/main/java/org/jruby/javasupport/binding/ClassInitializer.java
  32. +29 −4 core/src/main/java/org/jruby/javasupport/binding/Initializer.java
  33. +2 −6 core/src/main/java/org/jruby/javasupport/binding/InterfaceInitializer.java
  34. +39 −3 core/src/main/java/org/jruby/javasupport/ext/JavaLang.java
  35. +16 −0 core/src/main/java/org/jruby/javasupport/ext/JavaUtil.java
  36. +5 −4 core/src/main/java/org/jruby/runtime/ThreadContext.java
  37. +2 −0 core/src/main/java/org/jruby/util/cli/Options.java
  38. +17 −0 core/src/main/ruby/jruby/java/java_ext/java.lang.rb
  39. +3 −1 core/src/main/ruby/jruby/java/java_ext/java.util.rb
  40. +159 −91 lib/ruby/truffle/cext/ruby.h
  41. +1 −13 lib/ruby/truffle/jruby+truffle/lib/truffle/actionpack_exclusions.yaml
  42. +2 −1 lib/ruby/truffle/jruby+truffle/lib/truffle/config.rb
  43. +10 −7 lib/ruby/truffle/truffle/openssl.rb
  44. +280 −171 mx.jruby/mx_jruby.py
  45. +100 −52 mx.jruby/suite.py
  46. +52 −0 samples/truffle/interop/asciidoctor/Asciidoctor.java
  47. +16 −2 spec/java_integration/extensions/collection_spec.rb
  48. +33 −3 spec/java_integration/extensions/iterable_spec.rb
  49. +186 −5 spec/java_integration/types/array_spec.rb
  50. +9 −0 spec/regression/GH-4029_Hash_aref_with_string_dedefd_spec.rb
  51. +8 −0 spec/ruby/core/kernel/select_spec.rb
  52. +1 −1 spec/ruby/core/signal/trap_spec.rb
  53. +1 −0 spec/ruby/shared/process/fixtures/env.rb
  54. +13 −13 spec/ruby/shared/process/spawn.rb
  55. +0 −1 spec/truffle/tags/core/basicobject/method_missing_tags.txt
  56. +0 −2 spec/truffle/tags/core/encoding/converter/new_tags.txt
  57. +0 −6 spec/truffle/tags/core/enumerable/grep_v_tags.txt
  58. +0 −7 spec/truffle/tags/core/enumerable/slice_after_tags.txt
  59. +0 −2 spec/truffle/tags/core/enumerable/slice_before_tags.txt
  60. +0 −9 spec/truffle/tags/core/enumerator/lazy/grep_v_tags.txt
  61. +0 −7 spec/truffle/tags/core/file/mkfifo_tags.txt
  62. +0 −1 spec/truffle/tags/core/file/read_tags.txt
  63. +0 −1 spec/truffle/tags/core/file/unlink_tags.txt
  64. +0 −1 spec/truffle/tags/core/integer/chr_tags.txt
  65. +0 −1 spec/truffle/tags/core/kernel/backtick_tags.txt
  66. +0 −8 spec/truffle/tags/core/kernel/exec_tags.txt
  67. +0 −2 spec/truffle/tags/core/kernel/instance_variables_tags.txt
  68. +0 −101 spec/truffle/tags/core/kernel/spawn_tags.txt
  69. +0 −3 spec/truffle/tags/core/marshal/load_tags.txt
  70. +0 −3 spec/truffle/tags/core/marshal/restore_tags.txt
  71. +0 −16 spec/truffle/tags/core/process/kill_tags.txt
  72. +0 −1 spec/truffle/tags/core/time/at_tags.txt
  73. +69 −8 test/jruby/test_higher_javasupport.rb
  74. +17 −0 test/truffle/gems/asciidoctor.sh
  75. +18 −0 test/truffle/gems/asciidoctor/customers.csv
  76. +10,370 −0 test/truffle/gems/asciidoctor/userguide-expected.html
  77. +6,046 −0 test/truffle/gems/asciidoctor/userguide.adoc
  78. +1 −0 test/truffle/gems/install-gems.sh
  79. +5 −2 tool/jruby_eclipse
  80. +63 −0 tool/jruby_mx
  81. +110 −98 tool/jt.rb
  82. +87 −0 truffle/src/main/c/cext/ruby.c
  83. +3 −0 truffle/src/main/java/org/jruby/truffle/Layouts.java
  84. +4 −1 truffle/src/main/java/org/jruby/truffle/RubyContext.java
  85. +3 −1 truffle/src/main/java/org/jruby/truffle/builtins/CoreMethodNodeManager.java
  86. +81 −28 truffle/src/main/java/org/jruby/truffle/core/CoreLibrary.java
  87. +2 −1 truffle/src/main/java/org/jruby/truffle/core/MathNodes.java
  88. +0 −30 truffle/src/main/java/org/jruby/truffle/core/ProcessNodes.java
  89. +5 −8 truffle/src/main/java/org/jruby/truffle/core/TruffleProcessNodes.java
  90. +1 −1 truffle/src/main/java/org/jruby/truffle/core/VMPrimitiveNodes.java
  91. +4 −0 truffle/src/main/java/org/jruby/truffle/core/array/ArrayBuilderNode.java
  92. +1 −1 truffle/src/main/java/org/jruby/truffle/core/array/ArrayDupNode.java
  93. +7 −7 truffle/src/main/java/org/jruby/truffle/core/array/ArrayNodes.java
  94. +1 −1 truffle/src/main/java/org/jruby/truffle/core/array/ArrayReadSliceNormalizedNode.java
  95. +51 −0 truffle/src/main/java/org/jruby/truffle/core/array/ArrayStrategy.java
  96. +38 −5 truffle/src/main/java/org/jruby/truffle/core/basicobject/BasicObjectNodes.java
  97. +1 −1 truffle/src/main/java/org/jruby/truffle/core/binding/BindingNodes.java
  98. +2 −1 truffle/src/main/java/org/jruby/truffle/core/cast/ArrayAttributeCastNode.java
  99. +2 −1 truffle/src/main/java/org/jruby/truffle/core/cast/CmpIntNode.java
  100. +1 −1 truffle/src/main/java/org/jruby/truffle/core/dir/DirNodes.java
  101. +8 −18 truffle/src/main/java/org/jruby/truffle/core/encoding/EncodingConverterNodes.java
  102. +4 −4 truffle/src/main/java/org/jruby/truffle/core/encoding/EncodingManager.java
  103. +76 −55 truffle/src/main/java/org/jruby/truffle/core/exception/CoreExceptions.java
  104. +12 −1 truffle/src/main/java/org/jruby/truffle/core/exception/ExceptionNodes.java
  105. +4 −8 truffle/src/main/java/org/jruby/truffle/core/exception/ExceptionOperations.java
  106. +1 −1 truffle/src/main/java/org/jruby/truffle/core/exception/NameErrorNodes.java
  107. +1 −1 truffle/src/main/java/org/jruby/truffle/core/exception/NoMethodErrorNodes.java
  108. +1 −1 truffle/src/main/java/org/jruby/truffle/core/exception/SystemCallErrorNodes.java
  109. +3 −1 truffle/src/main/java/org/jruby/truffle/core/format/DescriptionTruncater.java
  110. +2 −1 truffle/src/main/java/org/jruby/truffle/core/format/convert/ToStringNode.java
  111. +2 −0 truffle/src/main/java/org/jruby/truffle/core/format/exceptions/CantCompressNegativeException.java
  112. +2 −0 truffle/src/main/java/org/jruby/truffle/core/format/exceptions/CantConvertException.java
  113. +2 −0 truffle/src/main/java/org/jruby/truffle/core/format/exceptions/FormatException.java
  114. +2 −0 truffle/src/main/java/org/jruby/truffle/core/format/exceptions/InvalidFormatException.java
  115. +2 −0 truffle/src/main/java/org/jruby/truffle/core/format/exceptions/NoImplicitConversionException.java
  116. +2 −0 truffle/src/main/java/org/jruby/truffle/core/format/exceptions/OutsideOfStringException.java
  117. +2 −0 truffle/src/main/java/org/jruby/truffle/core/format/exceptions/RangeException.java
  118. +2 −0 truffle/src/main/java/org/jruby/truffle/core/format/exceptions/TooFewArgumentsException.java
  119. +3 −2 truffle/src/main/java/org/jruby/truffle/core/format/format/FormatCharacterNode.java
  120. +3 −2 truffle/src/main/java/org/jruby/truffle/core/format/format/FormatFloatNode.java
  121. +3 −2 truffle/src/main/java/org/jruby/truffle/core/format/format/FormatIntegerNode.java
  122. +1 −0 truffle/src/main/java/org/jruby/truffle/core/format/printf/PrintfSimpleParser.java
  123. +2 −1 truffle/src/main/java/org/jruby/truffle/core/format/read/bytes/ReadUTF8CharacterNode.java
  124. +9 −29 truffle/src/main/java/org/jruby/truffle/core/hash/BucketsStrategy.java
  125. +2 −3 truffle/src/main/java/org/jruby/truffle/core/hash/ConcatHashLiteralNode.java
  126. +15 −15 truffle/src/main/java/org/jruby/truffle/core/hash/HashNodes.java
  127. +11 −11 truffle/src/main/java/org/jruby/truffle/core/hash/HashOperations.java
  128. +39 −0 truffle/src/main/java/org/jruby/truffle/core/hash/KeyValue.java
  129. +6 −22 truffle/src/main/java/org/jruby/truffle/core/hash/PackedArrayStrategy.java
  130. +30 −12 truffle/src/main/java/org/jruby/truffle/core/kernel/KernelNodes.java
  131. +2 −1 truffle/src/main/java/org/jruby/truffle/core/klass/ClassNodes.java
  132. +8 −3 truffle/src/main/java/org/jruby/truffle/core/module/ModuleFields.java
  133. +5 −3 truffle/src/main/java/org/jruby/truffle/core/module/ModuleNodes.java
  134. +3 −2 truffle/src/main/java/org/jruby/truffle/core/module/ModuleOperations.java
  135. +3 −1 truffle/src/main/java/org/jruby/truffle/core/mutex/ConditionVariableNodes.java
  136. +1 −1 truffle/src/main/java/org/jruby/truffle/core/mutex/MutexNodes.java
  137. +40 −84 truffle/src/main/java/org/jruby/truffle/core/numeric/FloatNodes.java
  138. +2 −1 truffle/src/main/java/org/jruby/truffle/core/objectspace/ObjectSpaceNodes.java
  139. +2 −2 truffle/src/main/java/org/jruby/truffle/core/proc/ProcNodes.java
  140. +1 −1 truffle/src/main/java/org/jruby/truffle/core/queue/QueueNodes.java
  141. +6 −2 truffle/src/main/java/org/jruby/truffle/core/queue/SizedQueueNodes.java
  142. +3 −3 truffle/src/main/java/org/jruby/truffle/core/range/RangeNodes.java
  143. +2 −1 truffle/src/main/java/org/jruby/truffle/core/regexp/InterpolatedRegexpNode.java
  144. +5 −4 truffle/src/main/java/org/jruby/truffle/core/regexp/MatchDataNodes.java
  145. +13 −15 truffle/src/main/java/org/jruby/truffle/core/regexp/RegexpNodes.java
  146. +9 −6 truffle/src/main/java/org/jruby/truffle/core/rope/RopeNodes.java
  147. +18 −3 truffle/src/main/java/org/jruby/truffle/core/rope/RopeOperations.java
  148. +9 −4 truffle/src/main/java/org/jruby/truffle/core/rope/SubstringRope.java
  149. +2 −1 truffle/src/main/java/org/jruby/truffle/core/rope/TruffleRopesNodes.java
  150. +1 −1 truffle/src/main/java/org/jruby/truffle/core/rubinius/AtomicReferenceNodes.java
  151. +0 −31 truffle/src/main/java/org/jruby/truffle/core/rubinius/ChannelPrimitiveNodes.java
  152. +1 −1 truffle/src/main/java/org/jruby/truffle/core/rubinius/IOBufferPrimitiveNodes.java
  153. +3 −1 truffle/src/main/java/org/jruby/truffle/core/rubinius/IOPrimitiveNodes.java
  154. +2 −1 truffle/src/main/java/org/jruby/truffle/core/rubinius/RegexpPrimitiveNodes.java
  155. +3 −0 truffle/src/main/java/org/jruby/truffle/core/string/ConvertBytes.java
  156. +65 −63 truffle/src/main/java/org/jruby/truffle/core/string/StringNodes.java
  157. +7 −3 truffle/src/main/java/org/jruby/truffle/core/string/StringOperations.java
  158. +3 −2 truffle/src/main/java/org/jruby/truffle/core/string/TruffleStringNodes.java
  159. +4 −12 truffle/src/main/java/org/jruby/truffle/core/symbol/SymbolTable.java
  160. +1 −5 truffle/src/main/java/org/jruby/truffle/core/thread/ThreadNodes.java
  161. +16 −13 truffle/src/main/java/org/jruby/truffle/core/time/TimeNodes.java
  162. +6 −6 truffle/src/main/java/org/jruby/truffle/core/tracepoint/TracePointLayout.java
  163. +15 −13 truffle/src/main/java/org/jruby/truffle/core/tracepoint/TracePointNodes.java
  164. +43 −3 truffle/src/main/java/org/jruby/truffle/extra/TrufflePosixNodes.java
  165. +5 −5 truffle/src/main/java/org/jruby/truffle/extra/ffi/PointerPrimitiveNodes.java
  166. +3 −3 truffle/src/main/java/org/jruby/truffle/gem/bcrypt/BCrypt.java
  167. +8 −3 truffle/src/main/java/org/jruby/truffle/interop/InteropNodes.java
  168. +3 −2 truffle/src/main/java/org/jruby/truffle/interop/JRubyInterop.java
  169. +5 −1 truffle/src/main/java/org/jruby/truffle/interop/OutgoingForeignCallNode.java
  170. +2 −2 truffle/src/main/java/org/jruby/truffle/language/DataNode.java
  171. +39 −0 truffle/src/main/java/org/jruby/truffle/language/PerformanceWarnings.java
  172. +0 −5 truffle/src/main/java/org/jruby/truffle/language/RubyBaseNode.java
  173. +4 −1 truffle/src/main/java/org/jruby/truffle/language/RubyObjectType.java
  174. +2 −1 truffle/src/main/java/org/jruby/truffle/language/TruffleBootNodes.java
  175. +5 −1 truffle/src/main/java/org/jruby/truffle/language/arguments/CheckArityNode.java
  176. +32 −28 truffle/src/main/java/org/jruby/truffle/language/arguments/CheckKeywordArityNode.java
  177. +3 −3 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadKeywordArgumentNode.java
  178. +11 −6 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadKeywordRestArgumentNode.java
  179. +3 −1 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadOptionalArgumentNode.java
  180. +2 −2 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadRestArgumentNode.java
  181. +24 −12 truffle/src/main/java/org/jruby/truffle/language/arguments/ReadUserKeywordsHashNode.java
  182. +3 −1 truffle/src/main/java/org/jruby/truffle/language/arguments/RunBlockKWArgsHelperNode.java
  183. +3 −1 truffle/src/main/java/org/jruby/truffle/language/backtrace/BacktraceFormatter.java
  184. +3 −1 truffle/src/main/java/org/jruby/truffle/language/backtrace/BacktraceInterleaver.java
  185. +2 −1 truffle/src/main/java/org/jruby/truffle/language/constants/GetConstantNode.java
  186. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/BreakException.java
  187. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/ExitException.java
  188. +10 −1 truffle/src/main/java/org/jruby/truffle/language/control/JavaException.java
  189. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/NextException.java
  190. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/RaiseException.java
  191. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/RedoException.java
  192. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/RetryException.java
  193. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/ReturnException.java
  194. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/ThreadExitException.java
  195. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/ThrowException.java
  196. +2 −0 truffle/src/main/java/org/jruby/truffle/language/control/TruffleFatalException.java
  197. +2 −1 truffle/src/main/java/org/jruby/truffle/language/dispatch/CachedBoxedDispatchNode.java
  198. +2 −1 truffle/src/main/java/org/jruby/truffle/language/dispatch/CachedSingletonDispatchNode.java
  199. +1 −0 truffle/src/main/java/org/jruby/truffle/language/dispatch/DispatchNode.java
  200. +1 −0 truffle/src/main/java/org/jruby/truffle/language/dispatch/RespondToNode.java
  201. +1 −0 truffle/src/main/java/org/jruby/truffle/language/globals/CheckMatchVariableTypeNode.java
  202. +1 −0 truffle/src/main/java/org/jruby/truffle/language/globals/CheckOutputSeparatorVariableTypeNode.java
  203. +1 −0 truffle/src/main/java/org/jruby/truffle/language/globals/CheckProgramNameVariableTypeNode.java
  204. +1 −0 truffle/src/main/java/org/jruby/truffle/language/globals/CheckRecordSeparatorVariableTypeNode.java
  205. +1 −0 truffle/src/main/java/org/jruby/truffle/language/globals/CheckStdoutVariableTypeNode.java
  206. +1 −0 truffle/src/main/java/org/jruby/truffle/language/globals/UpdateVerbosityNode.java
  207. +8 −2 truffle/src/main/java/org/jruby/truffle/language/loader/RequireNode.java
  208. +2 −1 truffle/src/main/java/org/jruby/truffle/language/loader/SourceLoader.java
  209. +16 −9 truffle/src/main/java/org/jruby/truffle/language/methods/ExceptionTranslatingNode.java
  210. +8 −4 truffle/src/main/java/org/jruby/truffle/language/objects/AllocateObjectNode.java
  211. +2 −1 truffle/src/main/java/org/jruby/truffle/language/objects/SingletonClassNode.java
  212. +0 −1 truffle/src/main/java/org/jruby/truffle/language/objects/TaintNode.java
  213. +4 −3 truffle/src/main/java/org/jruby/truffle/language/parser/jruby/BodyTranslator.java
  214. +1 −0 truffle/src/main/java/org/jruby/truffle/language/threadlocal/ThreadLocalObjectNode.java
  215. +2 −1 truffle/src/main/java/org/jruby/truffle/platform/posix/FDSet.java
  216. +8 −3 truffle/src/main/java/org/jruby/truffle/platform/posix/JNRTrufflePosix.java
  217. +2 −1 truffle/src/main/java/org/jruby/truffle/platform/posix/TrufflePosix.java
  218. +19 −10 truffle/src/main/java/org/jruby/truffle/stdlib/bigdecimal/BigDecimalCastNode.java
  219. +16 −2 truffle/src/main/java/org/jruby/truffle/stdlib/bigdecimal/BigDecimalNodes.java
  220. +1 −1 truffle/src/main/java/org/jruby/truffle/stdlib/digest/DigestNodes.java
  221. +2 −1 truffle/src/main/java/org/jruby/truffle/stdlib/psych/PsychEmitterNodes.java
  222. +117 −57 truffle/src/main/java/org/jruby/truffle/stdlib/psych/PsychParserNodes.java
  223. +2 −1 truffle/src/main/java/org/jruby/truffle/tools/InstrumentationServerManager.java
  224. +1 −1 truffle/src/main/java/org/jruby/truffle/tools/callgraph/CallGraph.java
  225. +2 −1 truffle/src/main/java/org/jruby/truffle/tools/simpleshell/SimpleShell.java
  226. +63 −0 truffle/src/main/java/org/jruby/truffle/util/BoundaryUtils.java
  227. +22 −0 truffle/src/main/java/org/jruby/truffle/util/ByteListUtils.java
  228. +21 −0 truffle/src/main/java/org/jruby/truffle/util/DoubleUtils.java
  229. +48 −0 truffle/src/main/java/org/jruby/truffle/util/StringUtils.java
  230. +4 −4 truffle/src/main/ruby/core/comparable.rb
  231. +1 −7 truffle/src/main/ruby/core/encoding.rb
  232. +55 −1 truffle/src/main/ruby/core/enumerable.rb
  233. +20 −0 truffle/src/main/ruby/core/enumerator.rb
  234. +8 −0 truffle/src/main/ruby/core/file.rb
  235. +5 −3 truffle/src/main/ruby/core/float.rb
  236. +1 −1 truffle/src/main/ruby/core/marshal.rb
  237. +40 −0 truffle/src/main/ruby/core/process.rb
  238. +17 −3 truffle/src/main/ruby/core/process_mirror.rb
  239. +21 −0 truffle/src/main/ruby/core/truffle/cext.rb
  240. +19 −0 truffle/src/main/ruby/core/type.rb
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -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
5 changes: 3 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -99,6 +99,7 @@ matrix:
- env:
- JT=check_ambiguous_arguments
- SKIP_BUILD=true
- V=1
jdk: oraclejdk8
- env:
- USE_BUILD_PACK=yes
@@ -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
28 changes: 24 additions & 4 deletions bench/java/bench_array_to_java.rb
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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]
@@ -269,7 +287,7 @@ test-cexts: {
downloads: {
JVMCI_JAVA_HOME: {
name: labsjdk,
version: "8u92-jvmci-0.17",
version: "8u92-jvmci-0.18",
platformspecific: true
}
}
@@ -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: {
@@ -320,7 +338,7 @@ sulong-benchmarks: {
downloads: {
JVMCI_JAVA_HOME: {
name: labsjdk,
version: "8u92-jvmci-0.17",
version: "8u92-jvmci-0.18",
platformspecific: true
}
}
@@ -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},
12 changes: 4 additions & 8 deletions core/src/main/java/org/jruby/RubyArray.java
Original file line number Diff line number Diff line change
@@ -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);
}

/**
@@ -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) {
@@ -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;
@@ -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;
}
Loading