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

Commits on Sep 3, 2015

  1. Copy the full SHA
    4bee414 View commit details

Commits on Sep 4, 2015

  1. [build] use yecht-1.1-SNAPSHOT

    fixes #3307
    
    Sponsored by Lookout Inc.
    mkristian committed Sep 4, 2015
    Copy the full SHA
    1183a80 View commit details

Commits on Sep 8, 2015

  1. Copy the full SHA
    2769587 View commit details
  2. Copy the full SHA
    2c3ebd1 View commit details

Commits on Sep 11, 2015

  1. Copy the full SHA
    63ab92d View commit details

Commits on Sep 13, 2015

  1. [Truffle] Typo.

    chrisseaton committed Sep 13, 2015
    Copy the full SHA
    c90af6a View commit details

Commits on Sep 14, 2015

  1. give priority for jruby-home to embedded one from classpath

    jruby home will be found in the following order:
    * system property jruby.home
    * if there is META-INF/jruby.home on the classloader
    * JRUBY_HOME environment
    * fallback to systemp temp directory
    
    fixes #3257
    mkristian committed Sep 14, 2015
    Copy the full SHA
    f25d0a8 View commit details
  2. Copy the full SHA
    25f0e1f View commit details
  3. [Truffle] Formatting.

    chrisseaton committed Sep 14, 2015
    Copy the full SHA
    77063ef View commit details
  4. Copy the full SHA
    1f0f67d View commit details
  5. Copy the full SHA
    50492b7 View commit details
  6. Copy the full SHA
    aa8f4ae View commit details
  7. Merge branch 'master' into truffle-objspace

    Conflicts:
    	truffle/src/main/java/org/jruby/truffle/nodes/core/ObjectSpaceNodes.java
    	truffle/src/main/java/org/jruby/truffle/runtime/core/CoreLibrary.java
    chrisseaton committed Sep 14, 2015
    Copy the full SHA
    88c716e View commit details
  8. Copy the full SHA
    389f1f1 View commit details
  9. [Truffle] Cleanup of Fixnum#<< and #>>.

    * Fixes some edge cases as well.
    eregon committed Sep 14, 2015
    Copy the full SHA
    8f737b4 View commit details
  10. Copy the full SHA
    33007cb View commit details
  11. Synchronize Fixnum#<< and #>>

    * The removed code is already covered just above.
    eregon committed Sep 14, 2015
    Copy the full SHA
    4fb2e0f View commit details
  12. Copy the full SHA
    718c7c3 View commit details
  13. 3
    Copy the full SHA
    7b78f76 View commit details
  14. Copy the full SHA
    ea0d8c1 View commit details
  15. Copy the full SHA
    c38e5ce View commit details
  16. Copy the full SHA
    8c3aa43 View commit details
  17. 5
    Copy the full SHA
    089d126 View commit details
  18. Copy the full SHA
    9991034 View commit details
  19. Copy the full SHA
    68cf9fc View commit details
  20. Copy the full SHA
    85e38aa View commit details
  21. 1
    Copy the full SHA
    de630e0 View commit details
  22. Copy the full SHA
    8834164 View commit details
  23. Copy the full SHA
    22fe01d View commit details
  24. Copy the full SHA
    f1d583f View commit details
  25. 1
    Copy the full SHA
    407033b View commit details
  26. Copy the full SHA
    d5f7c47 View commit details
  27. Copy the full SHA
    a786ac3 View commit details
  28. Copy the full SHA
    4f02209 View commit details
  29. Copy the full SHA
    cdbfbc5 View commit details
  30. Copy the full SHA
    2b6db65 View commit details
  31. Copy the full SHA
    8c0411a View commit details
  32. Copy the full SHA
    24a7440 View commit details
  33. Copy the full SHA
    bf6d5cf View commit details
  34. Copy the full SHA
    68f8f7a View commit details
  35. Copy the full SHA
    3978423 View commit details

Commits on Sep 15, 2015

  1. Copy the full SHA
    f6b4753 View commit details
  2. Copy the full SHA
    7878a2e View commit details
  3. Copy the full SHA
    fec312a View commit details
  4. Copy the full SHA
    bc6523f View commit details
  5. Copy the full SHA
    f8d0c9f View commit details
  6. Copy the full SHA
    e530293 View commit details
  7. Copy the full SHA
    de5c075 View commit details
  8. [Truffle] allow Kernel#system and Process.spawn to be called with arr…

    …ay of arguments
    
    only :unsetenv_others is supported for now
    pitr-ch committed Sep 15, 2015
    Copy the full SHA
    e5952d1 View commit details
  9. [Truffle] code formatting

    pitr-ch committed Sep 15, 2015
    Copy the full SHA
    592098f View commit details
Showing with 2,710 additions and 2,474 deletions.
  1. +7 −5 COPYING
  2. +5 −5 antlib/extra.xml
  3. +13 −8 core/src/main/java/org/jruby/IncludedModuleWrapper.java
  4. +2 −3 core/src/main/java/org/jruby/Ruby.java
  5. +2 −0 core/src/main/java/org/jruby/RubyFixnum.java
  6. +4 −1 core/src/main/java/org/jruby/RubyInstanceConfig.java
  7. +46 −27 core/src/main/java/org/jruby/RubyModule.java
  8. +1 −1 core/src/main/java/org/jruby/RubyObjectSpace.java
  9. +2 −1 core/src/main/java/org/jruby/embed/ScriptingContainer.java
  10. +3 −0 core/src/main/java/org/jruby/embed/util/SystemPropertyCatcher.java
  11. +15 −16 core/src/main/java/org/jruby/java/dispatch/CallableSelector.java
  12. +1 −3 core/src/main/java/org/jruby/java/invokers/ConstructorInvoker.java
  13. +2 −4 core/src/main/java/org/jruby/java/invokers/MethodInvoker.java
  14. +82 −31 core/src/main/java/org/jruby/java/invokers/RubyToJavaInvoker.java
  15. +7 −1 core/src/main/java/org/jruby/java/proxies/JavaProxy.java
  16. +37 −5 core/src/main/java/org/jruby/javasupport/Java.java
  17. +4 −0 core/src/main/java/org/jruby/javasupport/JavaMethod.java
  18. +154 −166 core/src/main/java/org/jruby/runtime/ThreadContext.java
  19. +16 −14 core/src/main/java/org/jruby/runtime/backtrace/TraceType.java
  20. +0 −347 core/src/main/java/org/jruby/util/Join.java
  21. +1 −1 lib/ruby/stdlib/jruby/compiler/java_class.rb
  22. +253 −0 lib/ruby/truffle/truffle/objspace.rb
  23. +16 −0 maven/jruby-complete/src/it/integrity/pom.xml
  24. +3 −0 maven/jruby-complete/src/it/integrity/verify.bsh
  25. +16 −0 maven/jruby-dist/src/it/integrity/pom.xml
  26. +3 −0 maven/jruby-dist/src/it/integrity/verify.bsh
  27. +16 −0 maven/jruby-jars/src/it/integrity/pom.xml
  28. +3 −0 maven/jruby-jars/src/it/integrity/verify.bsh
  29. +17 −0 maven/jruby/src/it/integrity/pom.xml
  30. +3 −0 maven/jruby/src/it/integrity/verify.bsh
  31. +14 −0 spec/java_integration/fixtures/InnerClasses.java
  32. +29 −8 spec/java_integration/methods/basics_spec.rb
  33. +27 −23 spec/java_integration/methods/dispatch_spec.rb
  34. +8 −8 spec/java_integration/types/extension_spec.rb
  35. +46 −6 spec/java_integration/types/retrieval_spec.rb
  36. +2 −2 spec/jrubyc/java/implements_spec.rb
  37. +5 −0 spec/ruby/core/enumerable/find_index_spec.rb
  38. +20 −2 spec/ruby/core/fixnum/left_shift_spec.rb
  39. +17 −9 spec/ruby/core/fixnum/right_shift_spec.rb
  40. +14 −0 spec/ruby/language/case_spec.rb
  41. +15 −0 spec/ruby/language/super_spec.rb
  42. +0 −1 spec/truffle/tags/core/argf/gets_tags.txt
  43. +0 −3 spec/truffle/tags/core/argf/read_tags.txt
  44. +0 −1 spec/truffle/tags/core/argf/readline_tags.txt
  45. +0 −4 spec/truffle/tags/core/argf/set_encoding_tags.txt
  46. +0 −1 spec/truffle/tags/core/array/element_set_tags.txt
  47. +0 −2 spec/truffle/tags/core/binding/eval_tags.txt
  48. +0 −1 spec/truffle/tags/core/binding/local_variable_set_tags.txt
  49. +0 −2 spec/truffle/tags/core/binding/location_tags.txt
  50. +0 −2 spec/truffle/tags/core/dir/entries_tags.txt
  51. +0 −1 spec/truffle/tags/core/encoding/converter/convert_tags.txt
  52. +0 −6 spec/truffle/tags/core/encoding/converter/finish_tags.txt
  53. 0 spec/truffle/tags/core/encoding/converter/inspect_tags.txt
  54. +0 −1 spec/truffle/tags/core/encoding/converter/primitive_convert_tags.txt
  55. +0 −1 spec/truffle/tags/core/encoding/converter/primitive_errinfo_tags.txt
  56. +0 −3 spec/truffle/tags/core/encoding/default_external_tags.txt
  57. +0 −3 spec/truffle/tags/core/encoding/default_internal_tags.txt
  58. +0 −2 spec/truffle/tags/core/enumerator/lazy/collect_concat_tags.txt
  59. +0 −1 spec/truffle/tags/core/enumerator/lazy/collect_tags.txt
  60. +0 −1 spec/truffle/tags/core/enumerator/lazy/drop_while_tags.txt
  61. +0 −1 spec/truffle/tags/core/enumerator/lazy/enum_for_tags.txt
  62. +0 −1 spec/truffle/tags/core/enumerator/lazy/find_all_tags.txt
  63. +0 −3 spec/truffle/tags/core/enumerator/lazy/flat_map_tags.txt
  64. +0 −2 spec/truffle/tags/core/enumerator/lazy/force_tags.txt
  65. +0 −1 spec/truffle/tags/core/enumerator/lazy/grep_tags.txt
  66. +0 −1 spec/truffle/tags/core/enumerator/lazy/map_tags.txt
  67. +0 −1 spec/truffle/tags/core/enumerator/lazy/reject_tags.txt
  68. +0 −1 spec/truffle/tags/core/enumerator/lazy/select_tags.txt
  69. +0 −2 spec/truffle/tags/core/enumerator/lazy/take_tags.txt
  70. +0 −3 spec/truffle/tags/core/enumerator/lazy/take_while_tags.txt
  71. +0 −1 spec/truffle/tags/core/enumerator/lazy/to_enum_tags.txt
  72. +0 −1 spec/truffle/tags/core/enumerator/lazy/zip_tags.txt
  73. +0 −1 spec/truffle/tags/core/enumerator/rewind_tags.txt
  74. +0 −2 spec/truffle/tags/core/enumerator/to_enum_tags.txt
  75. +0 −1 spec/truffle/tags/core/io/bytes_tags.txt
  76. +0 −2 spec/truffle/tags/core/io/chars_tags.txt
  77. +0 −3 spec/truffle/tags/core/io/codepoints_tags.txt
  78. +0 −18 spec/truffle/tags/core/io/copy_stream_tags.txt
  79. +0 −2 spec/truffle/tags/core/io/each_char_tags.txt
  80. +0 −4 spec/truffle/tags/core/io/each_codepoint_tags.txt
  81. +0 −1 spec/truffle/tags/core/io/getbyte_tags.txt
  82. +0 −1 spec/truffle/tags/core/io/getc_tags.txt
  83. +0 −2 spec/truffle/tags/core/io/gets_tags.txt
  84. +0 −5 spec/truffle/tags/core/io/read_nonblock_tags.txt
  85. +0 −5 spec/truffle/tags/core/io/read_tags.txt
  86. +0 −1 spec/truffle/tags/core/io/readpartial_tags.txt
  87. +0 −14 spec/truffle/tags/core/marshal/load_tags.txt
  88. +0 −14 spec/truffle/tags/core/marshal/restore_tags.txt
  89. +0 −1 spec/truffle/tags/core/module/class_eval_tags.txt
  90. +0 −1 spec/truffle/tags/core/module/module_eval_tags.txt
  91. +0 −1 spec/truffle/tags/core/module/name_tags.txt
  92. 0 spec/truffle/tags/core/string/crypt_tags.txt
  93. +0 −2 spec/truffle/tags/library/bigdecimal/add_tags.txt
  94. +0 −2 spec/truffle/tags/library/bigdecimal/divmod_tags.txt
  95. +0 −1 spec/truffle/tags/library/bigdecimal/mode_tags.txt
  96. +0 −2 spec/truffle/tags/library/bigdecimal/modulo_tags.txt
  97. +0 −5 spec/truffle/tags/library/csv/generate_line_tags.txt
  98. +0 −3 spec/truffle/tags/library/csv/generate_tags.txt
  99. +0 −1 spec/truffle/tags/library/date/strftime_tags.txt
  100. +0 −1 spec/truffle/tags/library/delegate/delegate_class/respond_to_missing_tags.txt
  101. 0 spec/truffle/tags/library/delegate/delegator/trust_tags.txt
  102. +0 −5 spec/truffle/tags/library/socket/basicsocket/close_read_tags.txt
  103. +0 −5 spec/truffle/tags/library/socket/basicsocket/close_write_tags.txt
  104. +0 −1 spec/truffle/tags/library/socket/basicsocket/getsockopt_tags.txt
  105. 0 spec/truffle/tags/library/stringio/bytes_tags.txt
  106. 0 spec/truffle/tags/library/stringio/each_byte_tags.txt
  107. 0 spec/truffle/tags/library/stringio/each_line_tags.txt
  108. 0 spec/truffle/tags/library/stringio/each_tags.txt
  109. 0 spec/truffle/tags/library/stringio/getbyte_tags.txt
  110. 0 spec/truffle/tags/library/stringio/lines_tags.txt
  111. 0 spec/truffle/tags/library/stringio/open_tags.txt
  112. 0 spec/truffle/tags/library/stringio/path_tags.txt
  113. 0 spec/truffle/tags/library/stringio/read_tags.txt
  114. 0 spec/truffle/tags/library/stringio/readpartial_tags.txt
  115. 0 spec/truffle/tags/library/stringio/reopen_tags.txt
  116. 0 spec/truffle/tags/library/stringio/seek_tags.txt
  117. 0 spec/truffle/tags/library/stringio/sysread_tags.txt
  118. 0 spec/truffle/tags/library/stringio/ungetc_tags.txt
  119. +0 −1 spec/truffle/tags/library/stringscanner/peek_tags.txt
  120. +0 −1 spec/truffle/tags/library/stringscanner/peep_tags.txt
  121. +0 −2 spec/truffle/tags/library/tempfile/_close_tags.txt
  122. +0 −6 spec/truffle/tags/library/tempfile/close_tags.txt
  123. +0 −1 spec/truffle/tags/library/tempfile/delete_tags.txt
  124. +0 −3 spec/truffle/tags/library/tempfile/initialize_tags.txt
  125. +0 −2 spec/truffle/tags/library/tempfile/length_tags.txt
  126. +0 −7 spec/truffle/tags/library/tempfile/open_tags.txt
  127. +0 −1 spec/truffle/tags/library/tempfile/path_tags.txt
  128. +0 −2 spec/truffle/tags/library/tempfile/size_tags.txt
  129. +0 −1 spec/truffle/tags/library/tempfile/unlink_tags.txt
  130. +0 −8 spec/truffle/tags/library/tmpdir/dir/mktmpdir_tags.txt
  131. +1 −1 test/jruby/test_higher_javasupport.rb
  132. +46 −3 test/jruby/test_module.rb
  133. +9 −0 test/mri/excludes_truffle/TestObjSpace.rb
  134. +1 −1 test/mri_truffle.index
  135. +10 −9 test/truffle/memory/minimum-heap.rb
  136. +5 −3 test/truffle/memory/total-allocation.rb
  137. +5 −3 test/truffle/startup/count-classes.rb
  138. +11 −5 test/truffle/startup/process-times.rb
  139. +0 −90 test/truffle/subjects/big-tree.rb
  140. +0 −21 test/truffle/subjects/client.rb
  141. +13 −2 test/truffle/subjects/{server.rb → one-request.rb}
  142. +24 −10 tool/jt.rb
  143. +123 −9 tool/truffle/jruby_truffle_runner/README.md
  144. +0 −8 tool/truffle/jruby_truffle_runner/gem_configurations/activesupport.yaml
  145. +1 −1 tool/truffle/jruby_truffle_runner/gem_configurations/concurrent-ruby.yaml
  146. +28 −18 tool/truffle/jruby_truffle_runner/lib/jruby+truffle_runner.rb
  147. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/LazyRubyRootNode.java
  148. +13 −12 truffle/src/main/java/org/jruby/truffle/nodes/RubyNode.java
  149. +2 −4 truffle/src/main/java/org/jruby/truffle/nodes/arguments/CheckArityNode.java
  150. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/arguments/ReadKeywordArgumentNode.java
  151. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/arguments/ReadRestArgumentNode.java
  152. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/SingleValueCastNode.java
  153. +98 −0 truffle/src/main/java/org/jruby/truffle/nodes/control/TraceNode.java
  154. +4 −3 truffle/src/main/java/org/jruby/truffle/nodes/core/BasicObjectNodes.java
  155. +99 −90 truffle/src/main/java/org/jruby/truffle/nodes/core/BindingNodes.java
  156. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/CoreMethodNodeManager.java
  157. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/EncodingNodes.java
  158. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/ExceptionNodes.java
  159. +16 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/FloatNodes.java
  160. +40 −4 truffle/src/main/java/org/jruby/truffle/nodes/core/IntegerNodes.java
  161. +63 −77 truffle/src/main/java/org/jruby/truffle/nodes/core/KernelNodes.java
  162. +1 −4 truffle/src/main/java/org/jruby/truffle/nodes/core/MethodNodes.java
  163. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/ModuleNodes.java
  164. +28 −38 truffle/src/main/java/org/jruby/truffle/nodes/core/ObjectSpaceNodes.java
  165. +12 −13 truffle/src/main/java/org/jruby/truffle/nodes/core/ProcNodes.java
  166. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/QueueNodes.java
  167. +4 −4 truffle/src/main/java/org/jruby/truffle/nodes/core/RegexpNodes.java
  168. +1 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/SetTopLevelBindingNode.java
  169. +7 −7 truffle/src/main/java/org/jruby/truffle/nodes/core/StringNodes.java
  170. +12 −8 truffle/src/main/java/org/jruby/truffle/nodes/core/SymbolNodes.java
  171. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/ThreadNodes.java
  172. +125 −6 truffle/src/main/java/org/jruby/truffle/nodes/core/TrufflePrimitiveNodes.java
  173. +1 −5 truffle/src/main/java/org/jruby/truffle/nodes/core/UnboundMethodNodes.java
  174. +9 −7 truffle/src/main/java/org/jruby/truffle/nodes/core/array/ArrayLiteralNode.java
  175. +12 −6 truffle/src/main/java/org/jruby/truffle/nodes/core/array/ArrayNodes.java
  176. +51 −107 truffle/src/main/java/org/jruby/truffle/nodes/core/fixnum/FixnumNodes.java
  177. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/hash/HashLiteralNode.java
  178. +1 −5 truffle/src/main/java/org/jruby/truffle/nodes/core/hash/HashNodes.java
  179. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/hash/SetNode.java
  180. +13 −77 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBooleanDispatchNode.java
  181. +8 −49 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedDispatchNode.java
  182. +26 −59 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedMethodMissingDispatchNode.java
  183. +6 −9 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedReturnMissingDispatchNode.java
  184. +9 −44 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedSymbolDispatchNode.java
  185. +20 −6 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedDispatchNode.java
  186. +5 −8 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedForeignDispatchNode.java
  187. +7 −7 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedForeignGlobalDispatchNode.java
  188. +8 −56 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedSingletonDispatchNode.java
  189. +9 −42 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedUnboxedDispatchNode.java
  190. +2 −3 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CallDispatchHeadNode.java
  191. +5 −7 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/DispatchHeadNode.java
  192. +0 −4 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/DispatchHeadNodeFactory.java
  193. +3 −3 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/DispatchNode.java
  194. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/DoesRespondDispatchHeadNode.java
  195. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/RespondToNode.java
  196. +24 −14 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/RubyCallNode.java
  197. +25 −33 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/UncachedDispatchNode.java
  198. +20 −36 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/UnresolvedDispatchNode.java
  199. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/ext/BigDecimalNodes.java
  200. +152 −0 truffle/src/main/java/org/jruby/truffle/nodes/ext/ObjSpaceNodes.java
  201. +8 −10 truffle/src/main/java/org/jruby/truffle/nodes/interop/InteropNode.java
  202. +6 −4 truffle/src/main/java/org/jruby/truffle/nodes/literal/StringLiteralNode.java
  203. +0 −5 truffle/src/main/java/org/jruby/truffle/nodes/methods/ExceptionTranslatingNode.java
  204. +5 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/MethodDefinitionNode.java
  205. +73 −3 truffle/src/main/java/org/jruby/truffle/nodes/objects/AllocateObjectNode.java
  206. +5 −6 truffle/src/main/java/org/jruby/truffle/nodes/objects/IsFrozenNode.java
  207. +5 −6 truffle/src/main/java/org/jruby/truffle/nodes/objects/IsTaintedNode.java
  208. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/objects/ReadInstanceVariableNode.java
  209. +3 −10 truffle/src/main/java/org/jruby/truffle/nodes/objectstorage/ReadHeadObjectFieldNode.java
  210. +3 −115 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/ExceptionPrimitiveNodes.java
  211. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/FixnumPrimitiveNodes.java
  212. +13 −3 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/IOPrimitiveNodes.java
  213. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/ObjectPrimitiveNodes.java
  214. +2 −0 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/PointerPrimitiveNodes.java
  215. +15 −0 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/PosixNodes.java
  216. +3 −0 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/RubiniusPrimitiveManager.java
  217. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/StatPrimitiveNodes.java
  218. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/ThreadPrimitiveNodes.java
  219. +28 −20 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/VMPrimitiveNodes.java
  220. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/WeakRefPrimitiveNodes.java
  221. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/supercall/GeneralSuperCallNode.java
  222. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/supercall/LookupSuperMethodNode.java
  223. +4 −5 truffle/src/main/java/org/jruby/truffle/nodes/yield/CallBlockNode.java
  224. +0 −1 truffle/src/main/java/org/jruby/truffle/om/dsl/processor/OMProcessor.java
  225. +9 −0 truffle/src/main/java/org/jruby/truffle/om/dsl/processor/layout/LayoutGenerator.java
  226. +0 −1 truffle/src/main/java/org/jruby/truffle/pack/nodes/control/NNode.java
  227. +1 −0 truffle/src/main/java/org/jruby/truffle/pack/parser/PackParser.java
  228. +17 −1 truffle/src/main/java/org/jruby/truffle/runtime/RubyArguments.java
  229. +6 −4 truffle/src/main/java/org/jruby/truffle/runtime/RubyContext.java
  230. +0 −3 truffle/src/main/java/org/jruby/truffle/runtime/RubyObjectType.java
  231. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/array/ArrayUtils.java
  232. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/backtrace/BacktraceFormatter.java
  233. +1 −0 truffle/src/main/java/org/jruby/truffle/runtime/cext/CExtManager.java
  234. +30 −99 truffle/src/main/java/org/jruby/truffle/runtime/core/CoreLibrary.java
  235. +26 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/ModuleFields.java
  236. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/hash/HashOperations.java
  237. +1 −7 truffle/src/main/java/org/jruby/truffle/runtime/layouts/BindingLayout.java
  238. +2 −2 truffle/src/main/java/org/jruby/truffle/runtime/layouts/QueueLayout.java
  239. +3 −3 truffle/src/main/java/org/jruby/truffle/runtime/layouts/SizedQueueLayout.java
  240. +3 −4 truffle/src/main/java/org/jruby/truffle/runtime/layouts/rubinius/WeakRefLayout.java
  241. +1 −1 truffle/src/main/java/org/jruby/truffle/runtime/loader/SourceLoader.java
  242. +22 −2 truffle/src/main/java/org/jruby/truffle/runtime/methods/InternalMethod.java
  243. +9 −7 truffle/src/main/java/org/jruby/truffle/runtime/methods/SharedMethodInfo.java
  244. +99 −131 truffle/src/main/java/org/jruby/truffle/runtime/object/ObjectGraph.java
  245. +5 −3 ...e/src/main/java/org/jruby/truffle/runtime/object/{ObjectGraphVisitor.java → ObjectGraphNode.java}
  246. +0 −15 truffle/src/main/java/org/jruby/truffle/runtime/object/StopVisitingObjectsException.java
  247. +2 −2 truffle/src/main/java/org/jruby/truffle/runtime/signal/SignalOperations.java
  248. +3 −4 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/AttachmentsManager.java
  249. +48 −0 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/ObjectSpaceManager.java
  250. +0 −3 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/TraceManager.java
  251. +13 −8 truffle/src/main/java/org/jruby/truffle/translator/BodyTranslator.java
  252. +3 −3 truffle/src/main/java/org/jruby/truffle/translator/MethodTranslator.java
  253. +2 −1 truffle/src/main/java/org/jruby/truffle/translator/ModuleTranslator.java
  254. +1 −2 truffle/src/main/java/org/jruby/truffle/translator/TranslatorDriver.java
  255. +1 −0 truffle/src/main/ruby/core.rb
  256. +13 −0 truffle/src/main/ruby/core/binding.rb
  257. +5 −2 truffle/src/main/ruby/core/hash.rb
  258. +0 −2 truffle/src/main/ruby/core/rubinius/README.md
  259. +0 −1 truffle/src/main/ruby/core/rubinius/common/object_space.rb
  260. +15 −0 truffle/src/main/ruby/core/rubinius/primitives.rb
  261. +33 −4 truffle/src/main/ruby/core/shims.rb
12 changes: 7 additions & 5 deletions COPYING
Original file line number Diff line number Diff line change
@@ -64,11 +64,13 @@ below. Also see LICENSE.RUBY for most files found in lib/ruby/stdlib.
The Rubinius API implementation in truffle/src/main/ruby/core/rubinius/api
is copyright (c) 2011, Evan Phoenix, and released under the 3-clause BSD license.

The Rubinius core library implementation
in truffle/src/main/ruby/core/rubinius/bootstrap
and truffle/src/main/ruby/core/rubinius/common is
copyright (c) 2007-2014, Evan Phoenix and contributors,
and released under the 3-clause BSD license.
The Rubinius core library implementation in truffle/src/main/ruby/core/rubinius
is copyright (c) 2007-2015, Evan Phoenix and contributors, and released under
the 3-clause BSD license.

Some parts of the Truffle Java code is derived from Rubinius C++ code which is
copyright (c) 2007-2015, Evan Phoenix and contributors, and released under the
3-clause BSD license.

Some parts of the RubySL implementations of the stdlib in lib/ruby/truffle/rubysl
are copyright (c) 2013 Brian Shirai and are licensed under the 3-clause BSD license.
10 changes: 5 additions & 5 deletions antlib/extra.xml
Original file line number Diff line number Diff line change
@@ -25,7 +25,7 @@ build jruby-complete.jar
<env key='GEM_PATH' value='lib/ruby/gems/shared'/>
<arg value='-Djruby.home=uri:classloader://META-INF/jruby.home'/>
<arg value='-cp'/>
<arg value='core/target/test-classes:test/target/test-classes:lib/jruby.jar:maven/jruby-stdlib/target/jruby-stdlib-9.0.0.0.rc1.jar'/>
<arg value='core/target/test-classes:test/target/test-classes:lib/jruby.jar:maven/jruby-stdlib/target/jruby-stdlib-9.0.0.0.jar'/>
<arg value='org.jruby.Main'/>
<arg value='-I.:test/externals/ruby1.9:test/externals/ruby1.9/ruby'/>
<arg value='-r./test/ruby19_env.rb'/>
@@ -136,7 +136,7 @@ build jruby-complete.jar
<env key='GEM_PATH' value='lib/ruby/gems/shared'/>
<arg value='-Djruby.home=uri:classloader://META-INF/jruby.home'/>
<arg value='-cp'/>
<arg value='core/target/test-classes:test/target/test-classes:maven/jruby-complete/target/jruby-complete-9.0.0.0.rc1.jar'/>
<arg value='core/target/test-classes:test/target/test-classes:maven/jruby-complete/target/jruby-complete-9.0.0.0.jar'/>
<arg value='org.jruby.Main'/>
<arg value='-I.:test/externals/ruby1.9:test/externals/ruby1.9/ruby'/>
<arg value='-r./test/ruby19_env.rb'/>
@@ -152,7 +152,7 @@ build jruby-complete.jar
<env key='GEM_PATH' value='lib/ruby/gems/shared'/>
<arg value='-Djruby.home=uri:classloader://META-INF/jruby.home'/>
<arg value='-cp'/>
<arg value='core/target/test-classes:test/target/test-classes:lib/jruby.jar:maven/jruby-stdlib/target/jruby-stdlib-9.0.0.0.rc1.jar'/>
<arg value='core/target/test-classes:test/target/test-classes:lib/jruby.jar:maven/jruby-stdlib/target/jruby-stdlib-9.0.0.0.jar'/>
<arg value='org.jruby.Main'/>
<arg value='-I.:test/externals/ruby1.9:test/externals/ruby1.9/ruby'/>
<arg value='-r./test/ruby19_env.rb'/>
@@ -168,7 +168,7 @@ build jruby-complete.jar
<env key='GEM_PATH' value='lib/ruby/gems/shared'/>
<arg value='-Djruby.home=uri:classloader://META-INF/jruby.home'/>
<arg value='-cp'/>
<arg value='core/target/test-classes:test/target/test-classes:lib/jruby.jar:maven/jruby-stdlib/target/jruby-stdlib-9.0.0.0.rc1.jar'/>
<arg value='core/target/test-classes:test/target/test-classes:lib/jruby.jar:maven/jruby-stdlib/target/jruby-stdlib-9.0.0.0.jar'/>
<arg value='org.jruby.Main'/>
<arg value='-I.:test/externals/ruby1.9:test/externals/ruby1.9/ruby'/>
<arg value='-r./test/ruby19_env.rb'/>
@@ -460,7 +460,7 @@ build jruby-complete.jar
<env key='GEM_PATH' value='lib/ruby/gems/shared'/>
<arg value='-Djruby.home=uri:classloader://META-INF/jruby.home'/>
<arg value='-cp'/>
<arg value='core/target/test-classes:test/target/test-classes:maven/jruby-complete/target/jruby-complete-9.0.0.0.rc1.jar'/>
<arg value='core/target/test-classes:test/target/test-classes:maven/jruby-complete/target/jruby-complete-9.0.0.0.jar'/>
<arg value='org.jruby.Main'/>
<arg value='-I.:test/externals/ruby1.9:test/externals/ruby1.9/ruby'/>
<arg value='-r./test/ruby19_env.rb'/>
21 changes: 13 additions & 8 deletions core/src/main/java/org/jruby/IncludedModuleWrapper.java
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@
* Copyright (C) 2005 Charles O Nutter <headius@headius.com>
* Copyright (C) 2006 Miguel Covarrubias <mlcovarrubias@gmail.com>
* Copyright (C) 2007 William N Dortch <bill.dortch@gmail.com>
*
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
@@ -48,11 +48,11 @@
* other modules. It inserts itself as the immediate superClass of the includer, but defers all
* module methods to the actual superclass. Multiple of these intermediate superclasses can be
* added for multiple included modules.
*
*
* This allows the normal superclass-based searches (searchMethod, getConstant, etc) to traverse
* the superclass ancestors as normal while the included modules do not actually show up in
* direct inheritance traversal.
*
*
* @see org.jruby.RubyModule
*/
public class IncludedModuleWrapper extends IncludedModule {
@@ -65,19 +65,19 @@ public IncludedModuleWrapper(Ruby runtime, RubyClass superClass, RubyModule orig
/**
* Overridden newIncludeClass implementation to allow attaching future includes to the correct module
* (i.e. the one to which this is attached)
*
*
* @see org.jruby.RubyModule#newIncludeClass(RubyClass)
*/
@Override
@Deprecated
public IncludedModuleWrapper newIncludeClass(RubyClass superClass) {
IncludedModuleWrapper includedModule = new IncludedModuleWrapper(getRuntime(), superClass, getNonIncludedClass());

// include its parent (and in turn that module's parents)
if (getSuperClass() != null) {
includedModule.includeModule(getSuperClass());
}

return includedModule;
}

@@ -179,18 +179,23 @@ protected IRubyObject constantTableStore(String name, IRubyObject value) {
return origin.constantTableStore(name, value);
}

protected IRubyObject constantTableStore(String name, IRubyObject value, boolean hidden) {
// FIXME: legal here? may want UnsupportedOperationException
return origin.constantTableStore(name, value, hidden);
}

@Override
protected IRubyObject constantTableRemove(String name) {
// this _is_ legal (when removing an undef)
return origin.constantTableRemove(name);
}

@Override
@Deprecated
public List<String> getStoredConstantNameList() {
return origin.getStoredConstantNameList();
}

@Override
public Collection<String> getConstantNames() {
return origin.getConstantNames();
5 changes: 2 additions & 3 deletions core/src/main/java/org/jruby/Ruby.java
Original file line number Diff line number Diff line change
@@ -548,9 +548,7 @@ public void runFromMain(InputStream inputStream, String filename) {
return;
}

Main.printTruffleTimeMetric("before-parse-initial");
ParseResult parseResult = parseFromMain(filename, inputStream);
Main.printTruffleTimeMetric("after-parse-initial");

// if no DATA, we're done with the stream, shut it down
if (fetchGlobalConstant("DATA") == null) {
@@ -844,8 +842,9 @@ public IRubyObject runInterpreter(ThreadContext context, Node rootNode, IRubyObj
if (getInstanceConfig().getCompileMode() == CompileMode.TRUFFLE) {
assert rootNode instanceof RootNode;
assert self == getTopSelf();
final TruffleContextInterface truffleContext = getTruffleContext();
Main.printTruffleTimeMetric("before-run");
getTruffleContext().execute((RootNode) rootNode);
truffleContext.execute((RootNode) rootNode);
Main.printTruffleTimeMetric("after-run");
return getNil();
} else {
2 changes: 2 additions & 0 deletions core/src/main/java/org/jruby/RubyFixnum.java
Original file line number Diff line number Diff line change
@@ -269,6 +269,8 @@ public boolean equals(Object other) {
if (num.value == value) {
return true;
}
} else if (other instanceof RubyFloat) {
return (double)value == ((RubyFloat) other).getDoubleValue();
}

return false;
5 changes: 4 additions & 1 deletion core/src/main/java/org/jruby/RubyInstanceConfig.java
Original file line number Diff line number Diff line change
@@ -305,12 +305,15 @@ private String calculateJRubyHome() {
newJRubyHome = SafePropertyAccessor.getProperty("jruby.home");
}

if (newJRubyHome == null && getLoader().getResource("META-INF/jruby.home/.jrubydir") != null) {
newJRubyHome = "uri:classloader://META-INF/jruby.home";
}
if (newJRubyHome != null) {
// verify it if it's there
newJRubyHome = verifyHome(newJRubyHome, error);
} else {
try {
newJRubyHome = SystemPropertyCatcher.findJRubyHome(this);
newJRubyHome = SafePropertyAccessor.getenv("JRUBY_HOME");
} catch (Exception e) {}

if (newJRubyHome != null) {
73 changes: 46 additions & 27 deletions core/src/main/java/org/jruby/RubyModule.java
Original file line number Diff line number Diff line change
@@ -128,7 +128,6 @@ public class RubyModule extends RubyObject {

private static final boolean DEBUG = false;
protected static final String ERR_INSECURE_SET_CONSTANT = "Insecure: can't modify constant";
protected static final String ERR_FROZEN_CONST_TYPE = "class/module ";

public static final ObjectAllocator MODULE_ALLOCATOR = new ObjectAllocator() {
@Override
@@ -3239,10 +3238,7 @@ public IRubyObject private_constant(ThreadContext context, IRubyObject rubyName)
@JRubyMethod(required = 1, rest = true)
public IRubyObject private_constant(ThreadContext context, IRubyObject[] rubyNames) {
for (IRubyObject rubyName : rubyNames) {
String name = validateConstant(rubyName);

setConstantVisibility(context, name, true);
invalidateConstantCache(name);
private_constant(context, rubyName);
}
return this;
}
@@ -3259,9 +3255,7 @@ public IRubyObject public_constant(ThreadContext context, IRubyObject rubyName)
@JRubyMethod(required = 1, rest = true)
public IRubyObject public_constant(ThreadContext context, IRubyObject[] rubyNames) {
for (IRubyObject rubyName : rubyNames) {
String name = validateConstant(rubyName);
setConstantVisibility(context, name, false);
invalidateConstantCache(name);
public_constant(context, rubyName);
}
return this;
}
@@ -3295,7 +3289,7 @@ private void setConstantVisibility(ThreadContext context, String name, boolean h
throw context.runtime.newNameError("constant " + getName() + "::" + name + " not defined", name);
}

getConstantMapForWrite().put(name, new ConstantEntry(entry.value, hidden));
storeConstant(name, entry.value, hidden);
}

//
@@ -3570,7 +3564,7 @@ public IRubyObject resolveUndefConstant(String name) {
* @return The result of setting the variable.
*/
public IRubyObject setConstantQuiet(String name, IRubyObject value) {
return setConstantCommon(name, value, false);
return setConstantCommon(name, value, false, false);
}

/**
@@ -3582,7 +3576,11 @@ public IRubyObject setConstantQuiet(String name, IRubyObject value) {
* @return The result of setting the variable.
*/
public IRubyObject setConstant(String name, IRubyObject value) {
return setConstantCommon(name, value, true);
return setConstantCommon(name, value, false, true);
}

public IRubyObject setConstant(String name, IRubyObject value, boolean hidden) {
return setConstantCommon(name, value, hidden, true);
}

/**
@@ -3593,7 +3591,7 @@ public IRubyObject setConstant(String name, IRubyObject value) {
* @param value The value to assign to it; if an unnamed Module, also set its basename to name
* @return The result of setting the variable.
*/
private IRubyObject setConstantCommon(String name, IRubyObject value, boolean warn) {
private IRubyObject setConstantCommon(String name, IRubyObject value, boolean hidden, boolean warn) {
IRubyObject oldValue = fetchConstant(name);
if (oldValue != null) {
if (oldValue == UNDEF) {
@@ -3602,10 +3600,14 @@ private IRubyObject setConstantCommon(String name, IRubyObject value, boolean wa
if (warn) {
getRuntime().getWarnings().warn(ID.CONSTANT_ALREADY_INITIALIZED, "already initialized constant " + name);
}
storeConstant(name, value);
// might just call storeConstant(name, value, hidden) but to maintain
// backwards compatibility with calling #storeConstant overrides
if (hidden) storeConstant(name, value, true);
else storeConstant(name, value);
}
} else {
storeConstant(name, value);
if (hidden) storeConstant(name, value, true);
else storeConstant(name, value);
}

invalidateConstantCache(name);
@@ -3874,7 +3876,6 @@ public List<String> getClassVariableNameList() {
}

protected static final String ERR_INSECURE_SET_CLASS_VAR = "Insecure: can't modify class variable";
protected static final String ERR_FROZEN_CVAR_TYPE = "class/module ";

protected final String validateClassVariable(String name) {
if (IdUtil.isValidClassVariableName(name)) {
@@ -3884,17 +3885,7 @@ protected final String validateClassVariable(String name) {
}

protected final void ensureClassVariablesSettable() {
Ruby runtime = getRuntime();

if (!isFrozen()) {
return;
}

if (this instanceof RubyModule) {
throw runtime.newFrozenError(ERR_FROZEN_CONST_TYPE);
} else {
throw runtime.newFrozenError("");
}
checkAndRaiseIfFrozen();
}

//
@@ -3944,6 +3935,14 @@ public IRubyObject storeConstant(String name, IRubyObject value) {
return constantTableStore(name, value);
}

public IRubyObject storeConstant(String name, IRubyObject value, boolean hidden) {
assert IdUtil.isConstant(name) : name + " is not a valid constant name";
assert value != null : "value is null";

ensureConstantsSettable();
return constantTableStore(name, value, hidden);
}

@Deprecated
public IRubyObject fastStoreConstant(String internedName, IRubyObject value) {
return storeConstant(internedName, value);
@@ -4014,7 +4013,21 @@ protected final String validateConstant(String name, IRubyObject errorName) {
}

protected final void ensureConstantsSettable() {
if (isFrozen()) throw getRuntime().newFrozenError(ERR_FROZEN_CONST_TYPE);
checkAndRaiseIfFrozen();
}

private void checkAndRaiseIfFrozen() throws RaiseException {
if ( isFrozen() ) {
if (this instanceof RubyClass) {
if (getBaseName() == null) { // anonymous
// MRI 2.2.2 does get ugly ... as it skips this logic :
// RuntimeError: can't modify frozen #<Class:#<Class:0x0000000095a920>>
throw getRuntime().newFrozenError(getName());
}
throw getRuntime().newFrozenError("#<Class:" + getName() + '>');
}
throw getRuntime().newFrozenError("Module");
}
}

protected boolean constantTableContains(String name) {
@@ -4042,6 +4055,12 @@ protected IRubyObject constantTableStore(String name, IRubyObject value) {
return value;
}

protected IRubyObject constantTableStore(String name, IRubyObject value, boolean hidden) {
Map<String, ConstantEntry> constMap = getConstantMapForWrite();
constMap.put(name, new ConstantEntry(value, hidden));
return value;
}

protected IRubyObject constantTableRemove(String name) {
ConstantEntry entry = getConstantMapForWrite().remove(name);
if (entry == null) return null;
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/RubyObjectSpace.java
Original file line number Diff line number Diff line change
@@ -114,7 +114,7 @@ public static IRubyObject id2ref(IRubyObject recv, IRubyObject id) {
return object;
} else {
runtime.getWarnings().warn("ObjectSpace is disabled; _id2ref only supports immediates, pass -X+O to enable");
return runtime.getNil();
throw recv.getRuntime().newRangeError(String.format("0x%016x is not id value", longId));
}
}
}
3 changes: 2 additions & 1 deletion core/src/main/java/org/jruby/embed/ScriptingContainer.java
Original file line number Diff line number Diff line change
@@ -67,6 +67,7 @@
import org.jruby.runtime.builtin.IRubyObject;
import org.jruby.runtime.profile.builtin.ProfileOutput;
import org.jruby.util.KCode;
import org.jruby.util.SafePropertyAccessor;
import org.jruby.util.cli.OutputStrings;
import org.jruby.util.cli.Options;

@@ -264,7 +265,7 @@ static LocalContextProvider getProviderInstance(LocalContextScope scope, LocalVa
}

private void initRubyInstanceConfig() throws RaiseException {
String home = SystemPropertyCatcher.findJRubyHome(this);
String home = SafePropertyAccessor.getenv("JRUBY_HOME");
if (home != null) {
provider.getRubyInstanceConfig().setJRubyHome(home);
}
Original file line number Diff line number Diff line change
@@ -180,6 +180,7 @@ public static void setJRubyHome(ScriptingContainer container) {
* @param instance any instance to get a resource
* @return JRuby home path if exists, null when failed to find it.
*/
@Deprecated
public static String findJRubyHome(Object instance) {
String jrubyhome;
if ((jrubyhome = SafePropertyAccessor.getenv("JRUBY_HOME")) != null) {
@@ -191,6 +192,7 @@ public static String findJRubyHome(Object instance) {
return "uri:classloader://META-INF/jruby.home";
}

@Deprecated
public static String findFromJar(Object instance) {
URL resource = instance.getClass().getResource("/META-INF/jruby.home");
if (resource == null) {
@@ -229,6 +231,7 @@ public static String findFromJar(Object instance) {
*
* @return a list of load paths.
*/
@Deprecated
public static List<String> findLoadPaths() {
String paths = SafePropertyAccessor.getProperty(PropertyName.CLASSPATH.toString());
List<String> loadPaths = new ArrayList<String>();
Loading