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

Commits on Jul 26, 2016

  1. Add missing test/spec for GH #4029 UnsupportedOperationException: BUG…

    …: invoking UndefinedMethod.call; (doing warble)
    enebo committed Jul 26, 2016
    Copy the full SHA
    4f2ec94 View commit details

Commits on Jul 27, 2016

  1. Copy the full SHA
    8faec85 View commit details
  2. [test] that Java::void now returns correct Void.TYPE

    (due previous commit)
    kares committed Jul 27, 2016
    Copy the full SHA
    4cafd7b View commit details
  3. Copy the full SHA
    e77ae6e View commit details
  4. avoid reflected array-copy since its (still) slow + DRY out error map…

    …ping
    
    before:
    ```
                                         user     system      total        real
    control                          0.030000   0.000000   0.030000 (  0.030799)
    ary.to_java                      0.590000   0.010000   0.600000 (  0.596296)
    ary.to_java :object              0.580000   0.000000   0.580000 (  0.579356)
    ary.to_java java.lang.Integer    0.780000   0.000000   0.780000 (  0.752359)
    ary.to_java :int                 0.610000   0.000000   0.610000 (  0.602031)
    ary.to_java Java::int            0.670000   0.000000   0.670000 (  0.673567)
    ary.to_java :short               0.740000   0.000000   0.740000 (  0.641244)
    long_ary.to_java                 2.030000   0.000000   2.030000 (  1.605155)
    long_ary.to_java :int            1.530000   0.000000   1.530000 (  1.523951)
    long_ary.to_java Java::int       1.550000   0.000000   1.550000 (  1.547217)
    long_ary.to_java :short          1.610000   0.000000   1.610000 (  1.600562)
    
    ```
    
    after:
    ```
                                         user     system      total        real
    control                          0.030000   0.000000   0.030000 (  0.028998)
    ary.to_java                      0.150000   0.000000   0.150000 (  0.149893)
    ary.to_java :object              0.200000   0.000000   0.200000 (  0.199358)
    ary.to_java java.lang.Integer    0.390000   0.010000   0.400000 (  0.359931)
    ary.to_java :int                 0.200000   0.000000   0.200000 (  0.192432)
    ary.to_java Java::int            0.250000   0.000000   0.250000 (  0.247384)
    ary.to_java :short               0.940000   0.000000   0.940000 (  0.612951)
    long_ary.to_java                 0.440000   0.010000   0.450000 (  0.286344)
    long_ary.to_java :int            0.340000   0.000000   0.340000 (  0.329349)
    long_ary.to_java Java::int       0.330000   0.000000   0.330000 (  0.330533)
    long_ary.to_java :short          1.460000   0.000000   1.460000 (  1.454139)
    ```
    kares committed Jul 27, 2016
    Copy the full SHA
    ec7e985 View commit details
  5. one liner return piece

    kares committed Jul 27, 2016
    Copy the full SHA
    c30d1b1 View commit details
  6. Copy the full SHA
    975bda2 View commit details
  7. Copy the full SHA
    8fc7da6 View commit details
  8. Copy the full SHA
    f368201 View commit details
  9. Copy the full SHA
    cb1b2a3 View commit details
  10. Copy the full SHA
    7fc92ed View commit details
  11. Copy the full SHA
    12736d3 View commit details
  12. [Truffle] Fix Encoding::Converter.new

    Brandon Fish committed Jul 27, 2016
    2
    Copy the full SHA
    f10f15e View commit details
  13. Copy the full SHA
    a75adf0 View commit details
  14. Copy the full SHA
    6f6728f View commit details
  15. Copy the full SHA
    c0c7f50 View commit details
  16. Copy the full SHA
    41c675b View commit details
  17. Copy the full SHA
    ab5c470 View commit details
  18. Copy the full SHA
    1d0056c View commit details
  19. [Truffle] Added a wrapper around String.format to simplify TruffleBou…

    …ndary.
    
    String.format is too complex to compile and guarding each call to the method is tedious. This wrapper makes it easier to use something that looks like String.format without jumping through hoops to place it behind a boundary.
    nirvdrum committed Jul 27, 2016
    1
    Copy the full SHA
    c7c54cf View commit details
  20. 3
    Copy the full SHA
    4116919 View commit details
  21. [Truffle] Fixed incomplete character range checking in the `string_fr…

    …om_codepoint' primitive.
    nirvdrum committed Jul 27, 2016
    6
    Copy the full SHA
    6f11922 View commit details
  22. [Truffle] Fixed potentially bad substring index when searching for si…

    …ngle-byte optimizable child rope to index into.
    nirvdrum committed Jul 27, 2016
    Copy the full SHA
    67c010b View commit details
  23. Copy the full SHA
    75b925c View commit details

Commits on Jul 28, 2016

  1. Copy the full SHA
    2e4f15e View commit details
  2. Copy the full SHA
    ba9c631 View commit details
  3. Copy the full SHA
    7502bee View commit details
  4. Copy the full SHA
    d52fe8e View commit details
  5. Copy the full SHA
    29bb864 View commit details
  6. Copy the full SHA
    6ea0d6c View commit details
  7. Copy the full SHA
    3a6b828 View commit details
  8. Remove IPC from Instr. Not really used beyond inlining and our inlining

    branch no longer is using IPC for this.  So comments look like I am making
    broken code but this code is already broken and will be replaced when I
    merge the inliner stuff.
    enebo committed Jul 28, 2016
    Copy the full SHA
    a24633e View commit details
  9. Copy the full SHA
    09920db View commit details
  10. Remove RPC from instr. Remove unused interpreter engines (at least for

    now).
    
    The RPC not resides in a table in the FIC.  It is looked up via a list
    of pairs.  I have not measured performance but O(n) compared vs O(1)
    where n is the number of BBs (which is generally fairly small).  If
    we see any slowdown this can be changed to O(ln(n)).
    enebo committed Jul 28, 2016
    Copy the full SHA
    4175f39 View commit details
  11. [Truffle] Until we resolve the type of VALUE we can compile openssl w…

    …ith uintptr_t and everything else with void*
    chrisseaton committed Jul 28, 2016
    Copy the full SHA
    0630d85 View commit details
  12. Copy the full SHA
    276a9a0 View commit details
  13. Copy the full SHA
    0dbae41 View commit details
  14. Copy the full SHA
    ccedb7c View commit details
  15. 4
    Copy the full SHA
    5c88af6 View commit details
  16. Copy the full SHA
    e584c61 View commit details
  17. Copy the full SHA
    3613d42 View commit details
  18. Copy the full SHA
    8696f44 View commit details
  19. Copy the full SHA
    935d4b4 View commit details
  20. [Truffle] TIMET2NUM

    chrisseaton committed Jul 28, 2016
    Copy the full SHA
    80d68a0 View commit details
  21. Copy the full SHA
    0706ebe View commit details
  22. [Truffle] rb_mComparable

    chrisseaton committed Jul 28, 2016
    Copy the full SHA
    98045a6 View commit details
  23. Copy the full SHA
    30aa2f3 View commit details
  24. [Truffle] We need to protect RB_BLOCK_CALL_FUNC_ARGLIST because there…

    … are also user-named arguments.
    chrisseaton committed Jul 28, 2016
    Copy the full SHA
    bf01a99 View commit details
  25. Copy the full SHA
    3fa83dd View commit details
  26. Copy the full SHA
    9f00f5b View commit details
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