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

Commits on Feb 7, 2015

  1. Copy the full SHA
    21e03b3 View commit details

Commits on Feb 9, 2015

  1. Make filepaths with null byte fail

    This patch applies to several methods that deal with filepaths in Dir,
    File, File::Stat, IO, and Kernel. All of these methods now raise an
    argument error if a null byte is detected in a path argument.
    
    Some of these methods are also slightly refactored, mostly by replacing
    context.runtime with just runtime where applicable.
    lumeet committed Feb 9, 2015
    Copy the full SHA
    6bd5f8d View commit details

Commits on Feb 10, 2015

  1. 1
    Copy the full SHA
    3d59f20 View commit details
  2. [Truffle] Remove RubyProc's declaringModule.

    * Not used anymore and we can get the current method to achieve
      RubyCallStack.getCurrentDeclaringModule().
    eregon committed Feb 10, 2015
    Copy the full SHA
    cb4c63d View commit details
  3. Copy the full SHA
    76e9453 View commit details
  4. [Truffle] The frame method as well as RubyProc's method are now alway…

    …s InternalMethod.
    
    * Only used by super and Module.nesting which are not interested in RubyProc.
    * For backtrace, this is done separetely with the call nodes,
      so there is no influence from this change.
    eregon committed Feb 10, 2015
    2
    Copy the full SHA
    bbcf625 View commit details
  5. [Truffle] Clarify comment.

    eregon committed Feb 10, 2015
    Copy the full SHA
    fff7a6c View commit details
  6. Copy the full SHA
    260e182 View commit details
  7. Copy the full SHA
    eadb23f View commit details
  8. Make Trace and ThreadPoll have their own interpret methods.

    These are both rarely encountered in scope bodies so it would be nice to remove an
    explicit impl from the in the body interpreter.
    enebo committed Feb 10, 2015
    Copy the full SHA
    730c677 View commit details
  9. Merge pull request #2576 from Who828/fix_2553

    Fix the bug with size with each_slice without block
    enebo committed Feb 10, 2015
    Copy the full SHA
    acb82d7 View commit details
  10. Copy the full SHA
    da25f93 View commit details
  11. [Truffle] Use a Phaser instead of a CyclicBarrier.

    * No need to reconstruct the barrier, it does not break on interrupt.
    * No need for tricky locking scheme.
    * Entirely unsynchronized leaveThread.
    eregon committed Feb 10, 2015
    5
    Copy the full SHA
    21576dd View commit details
  12. Copy the full SHA
    562f721 View commit details
  13. [Truffle] Fix Binding#local_variable_set to set in the current frame …

    …and implement #local_variables
    chrisseaton committed Feb 10, 2015
    Copy the full SHA
    10891a0 View commit details
  14. fixes directory glob inside jarfile with + in filename

    when you have embedded gems inside a jarfile and the filename was something
    like myjar-20150210+behappy.jar then the rubygems could not find those gems.
    
    Sponsored by Lookout Inc.
    mkristian committed Feb 10, 2015
    2
    Copy the full SHA
    d220103 View commit details
  15. Copy the full SHA
    850fad6 View commit details
  16. Copy the full SHA
    8999c9c View commit details
  17. revert some merge issue

    mkristian committed Feb 10, 2015
    Copy the full SHA
    e8c043d View commit details
  18. improve the case when the path for a jar-file needs to be URL-decoded

    it removes the case my.jar!/f%20o.rb which matches the behaviour of
    file:f%20o.rb
    
    Sponsored by Lookout Inc.
    mkristian committed Feb 10, 2015
    Copy the full SHA
    f3d806d View commit details
  19. Merge pull request #2584 from Who828/fix_2480

    Fixed arity issue with RubyMethod
    enebo committed Feb 10, 2015
    Copy the full SHA
    42c5b25 View commit details
  20. Copy the full SHA
    572dfd8 View commit details
  21. Copy the full SHA
    c0d3ac4 View commit details
  22. Copy the full SHA
    983d3f7 View commit details

Commits on Feb 11, 2015

  1. [Truffle] Use a Phaser instead of a CyclicBarrier. [Try #2]

    * No need to reconstruct the barrier, it does not break on interrupt.
    * No need for tricky locking scheme.
    * Entirely unsynchronized leaveThread.
    * Fix: main thread needs to call enterThread().
    eregon committed Feb 11, 2015
    Copy the full SHA
    f3756b7 View commit details
  2. Copy the full SHA
    ee68c63 View commit details
  3. Copy the full SHA
    8ddd5be View commit details
  4. Merge pull request #2583 from lumeet/filename_with_null_byte

    Make filepaths with null byte fail
    enebo committed Feb 11, 2015
    Copy the full SHA
    ab22fca View commit details
  5. [Truffle] Implement RubyThread.exit().

    * Kill all threads except main in RubyContext.shutdown.
    * Add aliases to KillNode.
    eregon committed Feb 11, 2015
    Copy the full SHA
    491618f View commit details
  6. [Truffle] Do not run finalizers on live objects.

    * This is the behavior of MRI.
    * If it turns out we still want it, we can add it in a finally block in run().
    * Do not catch Throwable but just Ruby exceptions.
    eregon committed Feb 11, 2015
    Copy the full SHA
    68c02ff View commit details
  7. [Truffle] "Fix" signal handlers.

    * They did not run anymore since they were waiting indefinitely for the global lock.
    * Stealing the global lock is not nice at all.
    * This assumes we do not re-enter the SafepointManager.
    eregon committed Feb 11, 2015
    Copy the full SHA
    03ccf32 View commit details
  8. 1
    Copy the full SHA
    b372ebd View commit details
  9. Copy the full SHA
    95a586e View commit details
  10. Merge pull request #2586 from jruby/revert-2584-fix_2480

    Revert "Fixed arity issue with RubyMethod"
    enebo committed Feb 11, 2015
    Copy the full SHA
    e8dce76 View commit details
  11. Copy the full SHA
    06aed17 View commit details
  12. [Truffle] Remove RubyCallStack.getCurrentMethod() in favor of using d…

    …irectly the VirtualFrame.
    eregon committed Feb 11, 2015
    Copy the full SHA
    af76b65 View commit details
  13. Copy the full SHA
    f641527 View commit details
  14. [Truffle] Simplify logic in ThreadManager.runOnce.

    * We do not need the global lock to poll anymore.
    eregon committed Feb 11, 2015
    Copy the full SHA
    b2446b7 View commit details
  15. Copy the full SHA
    a114161 View commit details
  16. Copy the full SHA
    35d6c95 View commit details
  17. [Truffle] Simplify Thread#value.

    * RubyThread.join() already raises if needed.
    * A node returning null is a bug.
    eregon committed Feb 11, 2015
    Copy the full SHA
    e268782 View commit details
  18. Revert "[Truffle] Simplify logic in ThreadManager.runOnce."

    * This reverts commit b2446b7.
    * The current SafepointManager needs for threads to have the global lock to know which RubyThread it is.
    eregon committed Feb 11, 2015
    Copy the full SHA
    aa84fc8 View commit details
  19. Copy the full SHA
    f05bc37 View commit details
  20. Fixed the errors with RubySpec

    Who828 committed Feb 11, 2015
    Copy the full SHA
    c758cab View commit details
  21. [Truffle] Added a temporary mspec hack to fix stuff on Windows.

    Our File.expand_path always canonicalizes a path, whereas MRI's does not.  By forcing the entire SPEC_TEMP_DIR through File.expand_path, we'll get uniformly wrong behavior, making any String comparisons using SPEC_TEMP_DIR and file paths pass.
    nirvdrum committed Feb 11, 2015
    Copy the full SHA
    3b7081a View commit details
  22. Copy the full SHA
    6fac61b View commit details
  23. Trivial: IDE de-warn

    enebo committed Feb 11, 2015
    Copy the full SHA
    2f6910d View commit details
  24. Copy the full SHA
    4827d56 View commit details
  25. All numeric Nodes in AST extend from the same NumericNode type. I am …

    …propagating whether
    
    subtrees have assignments in them and having more specific nodes makes it easier to know
    whether I need to check whether it has an assignment or not in it (numeric types cannot).
    enebo committed Feb 11, 2015
    Copy the full SHA
    ac37012 View commit details
  26. Flow control nodes changed to never receive a null value. This simpli…

    …fies truffle and IR
    
    since it does not need to do implicit nil check AND a null check.
    enebo committed Feb 11, 2015
    Copy the full SHA
    77d5737 View commit details
Showing with 1,409 additions and 1,255 deletions.
  1. +3 −3 core/src/main/java/org/jruby/Ruby.java
  2. +1 −1 core/src/main/java/org/jruby/RubyArray.java
  3. +6 −0 core/src/main/java/org/jruby/RubyBinding.java
  4. +22 −11 core/src/main/java/org/jruby/RubyDir.java
  5. +5 −0 core/src/main/java/org/jruby/RubyEnumerator.java
  6. +53 −35 core/src/main/java/org/jruby/RubyFile.java
  7. +5 −1 core/src/main/java/org/jruby/RubyFileStat.java
  8. +7 −7 core/src/main/java/org/jruby/RubyIO.java
  9. +7 −7 core/src/main/java/org/jruby/RubyInstanceConfig.java
  10. +9 −4 core/src/main/java/org/jruby/RubyKernel.java
  11. +0 −3 core/src/main/java/org/jruby/RubyObject.java
  12. +1 −1 core/src/main/java/org/jruby/ast/AliasNode.java
  13. +1 −1 core/src/main/java/org/jruby/ast/AndNode.java
  14. +1 −1 core/src/main/java/org/jruby/ast/ArgsCatNode.java
  15. +30 −1 core/src/main/java/org/jruby/ast/ArgsNode.java
  16. +1 −1 core/src/main/java/org/jruby/ast/ArgsPushNode.java
  17. +1 −1 core/src/main/java/org/jruby/ast/ArgumentNode.java
  18. +3 −3 core/src/main/java/org/jruby/ast/AssignableNode.java
  19. +1 −1 core/src/main/java/org/jruby/ast/AttrAssignNode.java
  20. +1 −1 core/src/main/java/org/jruby/ast/BackRefNode.java
  21. +1 −1 core/src/main/java/org/jruby/ast/BeginNode.java
  22. +1 −2 core/src/main/java/org/jruby/ast/BignumNode.java
  23. +1 −1 core/src/main/java/org/jruby/ast/BlockArgNode.java
  24. +1 −1 core/src/main/java/org/jruby/ast/BlockPassNode.java
  25. +1 −1 core/src/main/java/org/jruby/ast/BreakNode.java
  26. +3 −1 core/src/main/java/org/jruby/ast/CallNode.java
  27. +1 −1 core/src/main/java/org/jruby/ast/CaseNode.java
  28. +1 −1 core/src/main/java/org/jruby/ast/ClassNode.java
  29. +1 −1 core/src/main/java/org/jruby/ast/ClassVarAsgnNode.java
  30. +1 −1 core/src/main/java/org/jruby/ast/ClassVarDeclNode.java
  31. +1 −1 core/src/main/java/org/jruby/ast/ClassVarNode.java
  32. +1 −1 core/src/main/java/org/jruby/ast/Colon2Node.java
  33. +5 −1 core/src/main/java/org/jruby/ast/Colon3Node.java
  34. +5 −5 core/src/main/java/org/jruby/ast/ComplexNode.java
  35. +1 −1 core/src/main/java/org/jruby/ast/ConstDeclNode.java
  36. +1 −1 core/src/main/java/org/jruby/ast/ConstNode.java
  37. +1 −1 core/src/main/java/org/jruby/ast/DAsgnNode.java
  38. +1 −1 core/src/main/java/org/jruby/ast/DVarNode.java
  39. +1 −1 core/src/main/java/org/jruby/ast/DefinedNode.java
  40. +1 −1 core/src/main/java/org/jruby/ast/DotNode.java
  41. +1 −1 core/src/main/java/org/jruby/ast/EncodingNode.java
  42. +3 −3 core/src/main/java/org/jruby/ast/EnsureNode.java
  43. +1 −1 core/src/main/java/org/jruby/ast/EvStrNode.java
  44. +1 −1 core/src/main/java/org/jruby/ast/FCallNode.java
  45. +1 −1 core/src/main/java/org/jruby/ast/FalseNode.java
  46. +1 −1 core/src/main/java/org/jruby/ast/FixnumNode.java
  47. +1 −1 core/src/main/java/org/jruby/ast/FlipNode.java
  48. +1 −1 core/src/main/java/org/jruby/ast/FloatNode.java
  49. +1 −1 core/src/main/java/org/jruby/ast/GlobalAsgnNode.java
  50. +1 −1 core/src/main/java/org/jruby/ast/GlobalVarNode.java
  51. +5 −1 core/src/main/java/org/jruby/ast/HashNode.java
  52. +2 −1 core/src/main/java/org/jruby/ast/IfNode.java
  53. +1 −1 core/src/main/java/org/jruby/ast/InstAsgnNode.java
  54. +1 −1 core/src/main/java/org/jruby/ast/InstVarNode.java
  55. +2 −2 core/src/main/java/org/jruby/ast/IterNode.java
  56. +1 −1 core/src/main/java/org/jruby/ast/KeywordArgNode.java
  57. +8 −5 core/src/main/java/org/jruby/ast/ListNode.java
  58. +1 −1 core/src/main/java/org/jruby/ast/LiteralNode.java
  59. +1 −1 core/src/main/java/org/jruby/ast/LocalAsgnNode.java
  60. +1 −1 core/src/main/java/org/jruby/ast/LocalVarNode.java
  61. +1 −1 core/src/main/java/org/jruby/ast/Match2Node.java
  62. +1 −1 core/src/main/java/org/jruby/ast/Match3Node.java
  63. +1 −1 core/src/main/java/org/jruby/ast/MatchNode.java
  64. +3 −2 core/src/main/java/org/jruby/ast/MethodDefNode.java
  65. +1 −1 core/src/main/java/org/jruby/ast/ModuleNode.java
  66. +1 −1 core/src/main/java/org/jruby/ast/NewlineNode.java
  67. +1 −1 core/src/main/java/org/jruby/ast/NextNode.java
  68. +1 −1 core/src/main/java/org/jruby/ast/NilNode.java
  69. +31 −34 core/src/main/java/org/jruby/ast/Node.java
  70. +1 −1 core/src/main/java/org/jruby/ast/NthRefNode.java
  71. +13 −0 core/src/main/java/org/jruby/ast/NumericNode.java
  72. +1 −1 core/src/main/java/org/jruby/ast/OpAsgnAndNode.java
  73. +1 −1 core/src/main/java/org/jruby/ast/OpAsgnNode.java
  74. +1 −1 core/src/main/java/org/jruby/ast/OpAsgnOrNode.java
  75. +1 −1 core/src/main/java/org/jruby/ast/OpElementAsgnNode.java
  76. +1 −1 core/src/main/java/org/jruby/ast/OptArgNode.java
  77. +1 −1 core/src/main/java/org/jruby/ast/OrNode.java
  78. +1 −1 core/src/main/java/org/jruby/ast/RationalNode.java
  79. +1 −1 core/src/main/java/org/jruby/ast/RedoNode.java
  80. +1 −1 core/src/main/java/org/jruby/ast/RegexpNode.java
  81. +1 −1 core/src/main/java/org/jruby/ast/RequiredKeywordArgumentValueNode.java
  82. +2 −1 core/src/main/java/org/jruby/ast/RescueBodyNode.java
  83. +3 −1 core/src/main/java/org/jruby/ast/RescueNode.java
  84. +1 −1 core/src/main/java/org/jruby/ast/RetryNode.java
  85. +1 −1 core/src/main/java/org/jruby/ast/ReturnNode.java
  86. +1 −1 core/src/main/java/org/jruby/ast/RootNode.java
  87. +1 −1 core/src/main/java/org/jruby/ast/SClassNode.java
  88. +1 −1 core/src/main/java/org/jruby/ast/SValueNode.java
  89. +1 −1 core/src/main/java/org/jruby/ast/SelfNode.java
  90. +1 −1 core/src/main/java/org/jruby/ast/SplatNode.java
  91. +1 −1 core/src/main/java/org/jruby/ast/StarNode.java
  92. +2 −2 core/src/main/java/org/jruby/ast/StrNode.java
  93. +2 −1 core/src/main/java/org/jruby/ast/SuperNode.java
  94. +2 −2 core/src/main/java/org/jruby/ast/SymbolNode.java
  95. +1 −1 core/src/main/java/org/jruby/ast/TrueNode.java
  96. +1 −1 core/src/main/java/org/jruby/ast/UndefNode.java
  97. +1 −3 core/src/main/java/org/jruby/ast/UntilNode.java
  98. +1 −1 core/src/main/java/org/jruby/ast/VAliasNode.java
  99. +1 −1 core/src/main/java/org/jruby/ast/VCallNode.java
  100. +3 −1 core/src/main/java/org/jruby/ast/WhenNode.java
  101. +1 −3 core/src/main/java/org/jruby/ast/WhileNode.java
  102. +1 −1 core/src/main/java/org/jruby/ast/XStrNode.java
  103. +1 −1 core/src/main/java/org/jruby/ast/YieldNode.java
  104. +1 −1 core/src/main/java/org/jruby/ast/ZArrayNode.java
  105. +1 −1 core/src/main/java/org/jruby/ast/ZSuperNode.java
  106. +8 −7 core/src/main/java/org/jruby/embed/ScriptingContainer.java
  107. +42 −56 core/src/main/java/org/jruby/ir/IRBuilder.java
  108. +11 −20 core/src/main/java/org/jruby/ir/dataflow/analyses/LiveVariableNode.java
  109. +13 −0 core/src/main/java/org/jruby/ir/instructions/ThreadPollInstr.java
  110. +16 −0 core/src/main/java/org/jruby/ir/instructions/TraceInstr.java
  111. +0 −11 core/src/main/java/org/jruby/ir/interpreter/BodyInterpreterEngine.java
  112. +4 −4 core/src/main/java/org/jruby/lexer/yacc/RubyLexer.java
  113. +5 −3 core/src/main/java/org/jruby/parser/ParserSupport.java
  114. +24 −19 core/src/main/java/org/jruby/parser/RubyParser.java
  115. +10 −7 core/src/main/java/org/jruby/parser/RubyParser.y
  116. +1 −0 core/src/main/java/org/jruby/parser/Tokens.java
  117. +16 −13 core/src/main/java/org/jruby/util/JarResource.java
  118. +1 −1 core/src/main/java/org/jruby/util/cli/Options.java
  119. +0 −4 core/src/test/java/org/jruby/util/JarResourceTest.java
  120. +1 −1 lib/ruby/stdlib/rubygems/defaults/jruby.rb
  121. +1 −1 ...by-complete/src/it/bouncycastle-with-bc-gem/src/test/java/org/jruby/its/BouncyCastleTestCase.java
  122. +1 −1 maven/jruby-complete/src/it/bouncycastle/src/test/java/org/jruby/its/BouncyCastleTestCase.java
  123. +1 −1 maven/jruby/src/it/bouncycastle-with-bc-gem/src/test/java/org/jruby/its/BouncyCastleTestCase.java
  124. +1 −1 maven/jruby/src/it/bouncycastle/src/test/java/org/jruby/its/BouncyCastleTestCase.java
  125. +5 −29 maven/jruby/src/it/runnable/Mavenfile
  126. +1 −1 maven/jruby/src/it/runnable/pom.xml
  127. +33 −3 spec/regression/GH-2574_dont_clobber_variable.rb
  128. +0 −4 spec/truffle/tags/core/file/join_tags.txt
  129. +0 −1 spec/truffle/tags/rubysl/rubysl-erb/spec/new_tags.txt
  130. BIN test/jruby/jar_with+.jar
  131. +16 −0 test/jruby/test_higher_javasupport.rb
  132. +7 −0 test/jruby/test_load.rb
  133. +0 −1 test/mri/excludes/TestFile.rb
  134. +0 −1 test/mri/excludes/TestProc.rb
  135. +13 −0 tool/svm-populators.rb
  136. +1 −3 truffle/src/main/java/org/jruby/truffle/nodes/RubyNode.java
  137. +8 −8 truffle/src/main/java/org/jruby/truffle/nodes/array/ArrayReadNormalizedNode.java
  138. +15 −15 truffle/src/main/java/org/jruby/truffle/nodes/array/ArrayReadSliceNormalizedNode.java
  139. +26 −26 truffle/src/main/java/org/jruby/truffle/nodes/array/ArrayWriteNormalizedNode.java
  140. +6 −6 truffle/src/main/java/org/jruby/truffle/nodes/array/EnsureCapacityArrayNode.java
  141. +6 −6 truffle/src/main/java/org/jruby/truffle/nodes/array/GeneralizeArrayNode.java
  142. +3 −3 truffle/src/main/java/org/jruby/truffle/nodes/array/NewFixnumLowerNode.java
  143. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/ArrayCastNode.java
  144. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/cast/BooleanCastNode.java
  145. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/HashCastNode.java
  146. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/LambdaNode.java
  147. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/cast/NumericToFloatNode.java
  148. +3 −3 truffle/src/main/java/org/jruby/truffle/nodes/cast/SingleValueCastNode.java
  149. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/SplatCastNode.java
  150. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/cast/ToSNode.java
  151. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/coerce/ToStrNode.java
  152. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/control/TraceNode.java
  153. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayCoreMethodNode.java
  154. +7 −7 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayDropTailNode.java
  155. +7 −7 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayDupNode.java
  156. +7 −7 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayGetTailNode.java
  157. +132 −145 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayNodes.java
  158. +7 −7 truffle/src/main/java/org/jruby/truffle/nodes/core/ArraySliceNode.java
  159. +12 −9 truffle/src/main/java/org/jruby/truffle/nodes/core/BasicObjectNodes.java
  160. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/BignumNodes.java
  161. +51 −9 truffle/src/main/java/org/jruby/truffle/nodes/core/BindingNodes.java
  162. +2 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/CoreMethodNodeManager.java
  163. +5 −0 truffle/src/main/java/org/jruby/truffle/nodes/core/EncodingConverterNodes.java
  164. +5 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/EncodingNodes.java
  165. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/FileNodes.java
  166. +25 −25 truffle/src/main/java/org/jruby/truffle/nodes/core/FixnumNodes.java
  167. +19 −19 truffle/src/main/java/org/jruby/truffle/nodes/core/FloatNodes.java
  168. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/HashCoreMethodNode.java
  169. +44 −44 truffle/src/main/java/org/jruby/truffle/nodes/core/HashNodes.java
  170. +31 −22 truffle/src/main/java/org/jruby/truffle/nodes/core/KernelNodes.java
  171. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/MethodNodes.java
  172. +5 −6 truffle/src/main/java/org/jruby/truffle/nodes/core/ModuleNodes.java
  173. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/ObjectSpaceNodes.java
  174. +1 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/ProcNodes.java
  175. +12 −4 truffle/src/main/java/org/jruby/truffle/nodes/core/StringNodes.java
  176. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/SymbolNodes.java
  177. +5 −30 truffle/src/main/java/org/jruby/truffle/nodes/core/ThreadNodes.java
  178. +4 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/TruffleDebugNodes.java
  179. +10 −10 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBooleanDispatchNode.java
  180. +5 −5 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedDispatchNode.java
  181. +6 −6 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedMethodMissingDispatchNode.java
  182. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedReturnMissingDispatchNode.java
  183. +5 −5 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedSymbolDispatchNode.java
  184. +5 −5 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedUnboxedDispatchNode.java
  185. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/UncachedDispatchNode.java
  186. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/globals/GetFromThreadLocalNode.java
  187. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/instrument/RubyWrapperNode.java
  188. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/AliasNode.java
  189. +7 −15 truffle/src/main/java/org/jruby/truffle/nodes/methods/BlockDefinitionNode.java
  190. +14 −6 truffle/src/main/java/org/jruby/truffle/nodes/methods/ExceptionTranslatingNode.java
  191. +6 −9 truffle/src/main/java/org/jruby/truffle/nodes/methods/locals/FrameSlotNode.java
  192. +5 −5 truffle/src/main/java/org/jruby/truffle/nodes/methods/locals/WriteLevelVariableNode.java
  193. +5 −5 truffle/src/main/java/org/jruby/truffle/nodes/methods/locals/WriteLocalVariableNode.java
  194. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/objects/ClassNode.java
  195. +3 −0 truffle/src/main/java/org/jruby/truffle/nodes/objects/DefineOrGetModuleNode.java
  196. +67 −0 truffle/src/main/java/org/jruby/truffle/nodes/objects/MetaClassNode.java
  197. +3 −3 truffle/src/main/java/org/jruby/truffle/nodes/objects/SingletonClassNode.java
  198. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/EncodingPrimitiveNodes.java
  199. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/FixnumPrimitiveNodes.java
  200. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/ObjectPrimitiveNodes.java
  201. +5 −2 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/StringPrimitiveNodes.java
  202. +14 −12 truffle/src/main/java/org/jruby/truffle/nodes/supercall/AbstractGeneralSuperCallNode.java
  203. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/supercall/GeneralSuperCallNode.java
  204. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/supercall/GeneralSuperReCallNode.java
  205. +3 −3 truffle/src/main/java/org/jruby/truffle/nodes/yield/CachedYieldDispatchNode.java
  206. +6 −3 truffle/src/main/java/org/jruby/truffle/nodes/yield/GeneralYieldDispatchNode.java
  207. +10 −0 truffle/src/main/java/org/jruby/truffle/runtime/ModuleOperations.java
  208. +4 −6 truffle/src/main/java/org/jruby/truffle/runtime/RubyArguments.java
  209. +9 −46 truffle/src/main/java/org/jruby/truffle/runtime/RubyCallStack.java
  210. +22 −6 truffle/src/main/java/org/jruby/truffle/runtime/RubyContext.java
  211. +1 −12 truffle/src/main/java/org/jruby/truffle/runtime/backtrace/ImplementationDebugBacktraceFormatter.java
  212. +3 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/CoreLibrary.java
  213. +6 −0 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyEncoding.java
  214. +15 −2 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyFile.java
  215. +14 −0 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyModule.java
  216. +1 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyMutex.java
  217. +12 −16 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyProc.java
  218. +3 −0 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyRegexp.java
  219. +1 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/RubySymbol.java
  220. +5 −7 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyThread.java
  221. +4 −3 truffle/src/main/java/org/jruby/truffle/runtime/methods/InternalMethod.java
  222. +0 −19 truffle/src/main/java/org/jruby/truffle/runtime/methods/MethodLike.java
  223. +14 −4 truffle/src/main/java/org/jruby/truffle/runtime/signal/ProcSignalHandler.java
  224. +1 −1 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/FeatureManager.java
  225. +7 −49 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/ObjectSpaceManager.java
  226. +44 −83 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/SafepointManager.java
  227. +12 −3 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/ThreadManager.java
  228. +13 −37 truffle/src/main/java/org/jruby/truffle/translator/BodyTranslator.java
  229. +1 −1 truffle/src/main/java/org/jruby/truffle/translator/ReadLocalDummyNode.java
  230. +2 −0 truffle/src/main/java/org/jruby/truffle/translator/TranslatorDriver.java
6 changes: 3 additions & 3 deletions core/src/main/java/org/jruby/Ruby.java
Original file line number Diff line number Diff line change
@@ -2620,11 +2620,11 @@ public static ClassLoader getClassLoader() {
public synchronized JRubyClassLoader getJRubyClassLoader() {
// FIXME: Get rid of laziness and handle restricted access elsewhere
if (!Ruby.isSecurityRestricted() && jrubyClassLoader == null) {
if (config.isSelfFirstClassLoader()){
jrubyClassLoader = new SelfFirstJRubyClassLoader(config.getLoader());
if (config.isClassloaderDelegate()){
jrubyClassLoader = new JRubyClassLoader(config.getLoader());
}
else {
jrubyClassLoader = new JRubyClassLoader(config.getLoader());
jrubyClassLoader = new SelfFirstJRubyClassLoader(config.getLoader());
}

// if jit code cache is used, we need to add the cache directory to the classpath
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/RubyArray.java
Original file line number Diff line number Diff line change
@@ -1608,7 +1608,7 @@ public IRubyObject each_slice(ThreadContext context, IRubyObject arg, Block bloc
final int size = RubyNumeric.num2int(arg);
final Ruby runtime = context.runtime;
if (size <= 0) throw runtime.newArgumentError("invalid slice size");
return block.isGiven() ? eachSlice(context, size, block) : enumeratorize(context.runtime, this, "each_slice", arg);
return block.isGiven() ? eachSlice(context, size, block) : enumeratorizeWithSize(context, this, "each_slice", arg, arg);
}

/** rb_ary_each_index
6 changes: 6 additions & 0 deletions core/src/main/java/org/jruby/RubyBinding.java
Original file line number Diff line number Diff line change
@@ -135,4 +135,10 @@ public IRubyObject eval(ThreadContext context, IRubyObject[] args) {

return RubyKernel.eval(context, this, newArgs, Block.NULL_BLOCK);
}


@JRubyMethod(name = "receiver")
public IRubyObject receiver(ThreadContext context) {
return binding.getSelf();
}
}
33 changes: 22 additions & 11 deletions core/src/main/java/org/jruby/RubyDir.java
Original file line number Diff line number Diff line change
@@ -64,6 +64,7 @@
import org.jruby.util.FileResource;
import org.jruby.util.JRubyFile;
import org.jruby.util.ByteList;
import org.jruby.util.StringSupport;

/**
* .The Ruby built-in class Dir.
@@ -134,11 +135,12 @@ public IRubyObject initialize(ThreadContext context, IRubyObject arg) {

@JRubyMethod(name = "initialize")
public IRubyObject initialize19(ThreadContext context, IRubyObject arg) {
RubyString newPath = RubyFile.get_path(getRuntime().getCurrentContext(), arg).convertToString();
Ruby runtime = context.runtime;
RubyString newPath = StringSupport.checkEmbeddedNulls(runtime, RubyFile.get_path(context, arg));
path = newPath;
pos = 0;

String adjustedPath = RubyFile.adjustRootPathOnWindows(context.runtime, newPath.toString(), null);
String adjustedPath = RubyFile.adjustRootPathOnWindows(runtime, newPath.toString(), null);
checkDirIsTwoSlashesOnWindows(getRuntime(), adjustedPath);

dir = JRubyFile.createResource(context, adjustedPath);
@@ -256,13 +258,15 @@ public static RubyArray entries(IRubyObject recv, IRubyObject path) {

@JRubyMethod(name = "entries", meta = true)
public static RubyArray entries19(ThreadContext context, IRubyObject recv, IRubyObject arg) {
return entriesCommon(context, RubyFile.get_path(context, arg).asJavaString());
RubyString path = StringSupport.checkEmbeddedNulls(context.runtime, RubyFile.get_path(context, arg));
return entriesCommon(context, path.asJavaString());
}

@JRubyMethod(name = "entries", meta = true)
public static RubyArray entries19(ThreadContext context, IRubyObject recv, IRubyObject arg, IRubyObject opts) {
RubyString path = StringSupport.checkEmbeddedNulls(context.runtime, RubyFile.get_path(context, arg));
// FIXME: do something with opts
return entriesCommon(context, RubyFile.get_path(context, arg).asJavaString());
return entriesCommon(context, path.asJavaString());
}

private static RubyArray entriesCommon(ThreadContext context, String path) {
@@ -297,7 +301,8 @@ private static void checkDirIsTwoSlashesOnWindows(Ruby runtime, String path) {
public static IRubyObject chdir(ThreadContext context, IRubyObject recv, IRubyObject[] args, Block block) {
Ruby runtime = context.runtime;
RubyString path = args.length == 1 ?
RubyFile.get_path(context, args[0]) : getHomeDirectoryPath(context);
StringSupport.checkEmbeddedNulls(runtime, RubyFile.get_path(context, args[0])) :
getHomeDirectoryPath(context);
String adjustedPath = RubyFile.adjustRootPathOnWindows(runtime, path.asJavaString(), null);
checkDirIsTwoSlashesOnWindows(runtime, adjustedPath);
String realPath = null;
@@ -355,7 +360,9 @@ public static IRubyObject rmdir(IRubyObject recv, IRubyObject path) {

@JRubyMethod(name = {"rmdir", "unlink", "delete"}, required = 1, meta = true)
public static IRubyObject rmdir19(ThreadContext context, IRubyObject recv, IRubyObject path) {
return rmdirCommon(context.runtime, RubyFile.get_path(context, path).asJavaString());
Ruby runtime = context.runtime;
RubyString cleanPath = StringSupport.checkEmbeddedNulls(runtime, RubyFile.get_path(context, path));
return rmdirCommon(runtime, cleanPath.asJavaString());
}

private static IRubyObject rmdirCommon(Ruby runtime, String path) {
@@ -427,7 +434,9 @@ public static IRubyObject mkdir(IRubyObject recv, IRubyObject[] args) {

@JRubyMethod(name = "mkdir", required = 1, optional = 1, meta = true)
public static IRubyObject mkdir19(ThreadContext context, IRubyObject recv, IRubyObject[] args) {
return mkdirCommon(context.runtime, RubyFile.get_path(context, args[0]).asJavaString(), args);
Ruby runtime = context.runtime;
RubyString path = StringSupport.checkEmbeddedNulls(runtime, RubyFile.get_path(context, args[0]));
return mkdirCommon(runtime, path.asJavaString(), args);
}

private static IRubyObject mkdirCommon(Ruby runtime, String path, IRubyObject[] args) {
@@ -591,15 +600,17 @@ public IRubyObject rewind() {

@JRubyMethod(name = "exist?", meta = true)
public static IRubyObject exist(ThreadContext context, IRubyObject recv, IRubyObject arg) {
Ruby runtime = context.runtime;
// Capture previous exception if any.
IRubyObject exception = context.runtime.getGlobalVariables().get("$!");
IRubyObject exception = runtime.getGlobalVariables().get("$!");
RubyString path = StringSupport.checkEmbeddedNulls(runtime, RubyFile.get_path(context, arg));

try {
return context.runtime.newFileStat(RubyFile.get_path(context, arg).asJavaString(), false).directory_p();
return runtime.newFileStat(path.asJavaString(), false).directory_p();
} catch (Exception e) {
// Restore $!
context.runtime.getGlobalVariables().set("$!", exception);
return context.runtime.newBoolean(false);
runtime.getGlobalVariables().set("$!", exception);
return runtime.newBoolean(false);
}
}

5 changes: 5 additions & 0 deletions core/src/main/java/org/jruby/RubyEnumerator.java
Original file line number Diff line number Diff line change
@@ -124,6 +124,11 @@ public static IRubyObject enumeratorizeWithSize(ThreadContext context, IRubyObje
return enumeratorizeWithSize(context, object, method, NULL_ARRAY, sizeFn);
}

public static IRubyObject enumeratorizeWithSize(ThreadContext context, IRubyObject object, String method,IRubyObject arg, IRubyObject size) {
Ruby runtime = context.runtime;
return new RubyEnumerator(runtime, runtime.getEnumerator(), object, runtime.fastNewSymbol(method), new IRubyObject[] { arg }, size);
}

public static IRubyObject enumeratorize(Ruby runtime, IRubyObject object, String method) {
return new RubyEnumerator(runtime, runtime.getEnumerator(), object, runtime.fastNewSymbol(method), IRubyObject.NULL_ARRAY);
}
Loading