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

Commits on Sep 29, 2014

  1. Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    nomadium Miguel Landaeta
    Copy the full SHA
    ece5da4 View commit details
  2. Verified

    This commit was signed with the committer’s verified signature. The key has expired.
    nomadium Miguel Landaeta
    Copy the full SHA
    10d65cd View commit details
  3. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
    Copy the full SHA
    f8dddc8 View commit details
  4. Copy the full SHA
    9d0a04b View commit details
  5. Copy the full SHA
    28a77e2 View commit details
  6. Copy the full SHA
    796189a View commit details

Commits on Sep 30, 2014

  1. Copy the full SHA
    e0ca0a4 View commit details
  2. Copy the full SHA
    c6627b9 View commit details
  3. Copy the full SHA
    0a0adb6 View commit details
  4. Copy the full SHA
    c934ced View commit details
  5. Copy the full SHA
    48f53df View commit details
  6. Copy the full SHA
    d3df63c View commit details

Commits on Oct 1, 2014

  1. Copy the full SHA
    629264d View commit details
  2. Copy the full SHA
    86e4e15 View commit details
  3. Copy the full SHA
    4a2d5ad View commit details
  4. Copy the full SHA
    ab3ec49 View commit details
  5. Copy the full SHA
    eb7f72e View commit details

Commits on Oct 2, 2014

  1. 1
    Copy the full SHA
    1c35453 View commit details
  2. Copy the full SHA
    39c9ca5 View commit details
  3. Copy the full SHA
    5073469 View commit details
  4. Copy the full SHA
    bf3fee8 View commit details
  5. Copy the full SHA
    92c6221 View commit details
  6. [Truffle] Fix call target to use when a proc is turned into a method …

    …- fixes last return spec.
    chrisseaton committed Oct 2, 2014
    Copy the full SHA
    36a762a View commit details
  7. Copy the full SHA
    27b2756 View commit details
  8. Copy the full SHA
    3e4161a View commit details
  9. Copy the full SHA
    6be98c4 View commit details
  10. Revert "[Truffle] :: looks up constants slightly differently."

    This reverts commit d3df63c.
    
    Conflicts:
    	core/src/main/java/org/jruby/truffle/nodes/ReadConstantNode.java
    chrisseaton committed Oct 2, 2014
    Copy the full SHA
    8b0e25d View commit details
  11. Copy the full SHA
    f50ddf5 View commit details

Commits on Oct 3, 2014

  1. fix some info about releasing, testing, etc

    [skip ci]
    mkristian committed Oct 3, 2014
    Copy the full SHA
    18232b2 View commit details
  2. Merge branch 'jruby-1_7'

    Conflicts:
    	BUILDING.md
    	lib/pom.rb
    	lib/pom.xml
    mkristian committed Oct 3, 2014
    Copy the full SHA
    c528a96 View commit details
  3. Copy the full SHA
    bf66099 View commit details
  4. address the fact that the new jruby-openssl gem does not require kryp…

    …t any more
    
    moved around the osgi integration tests to be easier managed
    mkristian committed Oct 3, 2014
    Copy the full SHA
    b1df10c View commit details
  5. Copy the full SHA
    38a1b25 View commit details
  6. Copy the full SHA
    c81d188 View commit details
  7. * fix version in GH-1983 test

    * fix not more loadService debug
    * fix list of activated gems
    mkristian committed Oct 3, 2014
    Copy the full SHA
    a0f96db View commit details
  8. Copy the full SHA
    7d97cfc View commit details
  9. 3
    Copy the full SHA
    cf817d7 View commit details
  10. Copy the full SHA
    9a1b609 View commit details
  11. Consolidate fixes for #305

    enebo committed Oct 3, 2014
    Copy the full SHA
    6d43d9f View commit details

Commits on Oct 4, 2014

  1. 3
    Copy the full SHA
    fb49596 View commit details
  2. Copy the full SHA
    b775ac1 View commit details
  3. 2
    Copy the full SHA
    a9a9d25 View commit details

Commits on Oct 5, 2014

  1. Copy the full SHA
    d82e749 View commit details
  2. Copy the full SHA
    8d1f6d2 View commit details

Commits on Oct 6, 2014

  1. Cleanup some arbitrary contraints on REQUIRES_DYNSCOPE flag

    * Use 'DYNSCOPE_ELIMINATED' flag consistently to decide whether
      to push/pop scopes during interpretation.
    
    * Refactor 'unsafeScope' in IRScope and use it to decide whether
      we can only run a restricted set of passes on a scope.
    subbuss committed Oct 6, 2014
    Copy the full SHA
    a5a6787 View commit details
  2. Fix LiveVariableAnalysis for standalone runs on closures.

    * So far, LVA could only be initiated on methods -- in turn, nested
      closures would get LVA run on them.
    
    * However, in upcoming patches, we might end up running LVA on
      closures independently because of dependency issues. Rather than
      try to work around those, it is simpler to allow LVA to run on
      closures independently.
    
    * Fixed/pre-empted a possible crasher in LVA for nested clossures.
    subbuss committed Oct 6, 2014
    Copy the full SHA
    2689915 View commit details
  3. Add previouslyRun / invalidate options to DCE pass.

    * Base this on LVA state for the scope.
    * Can prevent useless duplicate runs in some scenarios.
    subbuss committed Oct 6, 2014
    Copy the full SHA
    43f3403 View commit details
  4. Allow dynscopes to be eliminated for block scopes as well.

    * So far, dynscopes were only being eliminated for method scopes
      and all blocks had a dynscope pushed/popped.
    
    * This patch enables this for blocks as well.
    
    * Required a whole bunch of changes.
      - Ensure that scope-flags are initialized before passes are run.
      - Split AddLocalVarLoadStoreInstructions into two pieces.
      - Use the 'ensureInstrsReady' pattern in InterpretedIRBlockBody
        to run necessary passes and figure out whether the scope can
        be fully eliminated, whether the parent's scope can be reused,
        or whether we need a full dynscope for this block.
      - Overall, there are some quick-and-dirty fixes in this patch
        to get things working. Cleanup will come in later patches.
    subbuss committed Oct 6, 2014
    Copy the full SHA
    0630462 View commit details
  5. Copy the full SHA
    b988911 View commit details
  6. Copy the full SHA
    e5e3c1e View commit details
Showing with 5,686 additions and 3,017 deletions.
  1. +2 −4 .gitignore
  2. +4 −0 .travis.yml
  3. +48 −7 BUILDING.md
  4. +8 −0 COPYING
  5. +1 −1 core/pom.rb
  6. +57 −0 core/pom.xml
  7. +1 −1 core/src/main/java/org/jruby/internal/runtime/methods/InterpretedIRMethod.java
  8. +2 −0 core/src/main/java/org/jruby/ir/IRFlags.java
  9. +41 −21 core/src/main/java/org/jruby/ir/IRScope.java
  10. +6 −2 core/src/main/java/org/jruby/ir/IRScriptBody.java
  11. +1 −1 core/src/main/java/org/jruby/ir/dataflow/DataFlowProblem.java
  12. +9 −0 core/src/main/java/org/jruby/ir/dataflow/analyses/LiveVariableNode.java
  13. +3 −0 core/src/main/java/org/jruby/ir/dataflow/analyses/StoreLocalVarPlacementNode.java
  14. +1 −0 core/src/main/java/org/jruby/ir/instructions/BreakInstr.java
  15. +6 −1 core/src/main/java/org/jruby/ir/instructions/LoadLocalVarInstr.java
  16. +6 −1 core/src/main/java/org/jruby/ir/instructions/StoreLocalVarInstr.java
  17. +2 −8 core/src/main/java/org/jruby/ir/passes/AddCallProtocolInstructions.java
  18. +86 −32 core/src/main/java/org/jruby/ir/passes/AddLocalVarLoadStoreInstructions.java
  19. +9 −1 core/src/main/java/org/jruby/ir/passes/DeadCodeElimination.java
  20. +63 −1 core/src/main/java/org/jruby/ir/passes/LiveVariableAnalysis.java
  21. +3 −1 core/src/main/java/org/jruby/ir/passes/LocalOptimizationPass.java
  22. +2 −4 core/src/main/java/org/jruby/ir/passes/OptimizeTempVarsPass.java
  23. +1 −1 core/src/main/java/org/jruby/ir/runtime/IRRuntimeHelpers.java
  24. +7 −5 core/src/main/java/org/jruby/parser/RubyParser.java
  25. +4 −2 core/src/main/java/org/jruby/parser/RubyParser.y
  26. +41 −5 core/src/main/java/org/jruby/runtime/InterpretedIRBlockBody.java
  27. +22 −8 core/src/main/java/org/jruby/truffle/nodes/ReadConstantNode.java
  28. +6 −2 core/src/main/java/org/jruby/truffle/nodes/RubyCallNode.java
  29. +10 −0 core/src/main/java/org/jruby/truffle/nodes/RubyNode.java
  30. +5 −0 core/src/main/java/org/jruby/truffle/nodes/RubyTypes.java
  31. +2 −2 core/src/main/java/org/jruby/truffle/nodes/control/RescueClassesNode.java
  32. +2 −2 core/src/main/java/org/jruby/truffle/nodes/control/RescueSplatNode.java
  33. +20 −1 core/src/main/java/org/jruby/truffle/nodes/core/ArrayNodes.java
  34. +59 −3 core/src/main/java/org/jruby/truffle/nodes/core/BasicObjectNodes.java
  35. +5 −4 core/src/main/java/org/jruby/truffle/nodes/core/ClassNodes.java
  36. +5 −3 core/src/main/java/org/jruby/truffle/nodes/core/CoreMethodNodeManager.java
  37. +1 −1 core/src/main/java/org/jruby/truffle/nodes/core/FixnumLowerNode.java
  38. +18 −0 core/src/main/java/org/jruby/truffle/nodes/core/FixnumNodes.java
  39. +948 −40 core/src/main/java/org/jruby/truffle/nodes/core/KernelNodes.java
  40. +8 −22 core/src/main/java/org/jruby/truffle/nodes/core/MainNodes.java
  41. +12 −12 core/src/main/java/org/jruby/truffle/nodes/core/MathNodes.java
  42. +78 −42 core/src/main/java/org/jruby/truffle/nodes/core/ModuleNodes.java
  43. +0 −937 core/src/main/java/org/jruby/truffle/nodes/core/ObjectNodes.java
  44. +1 −1 core/src/main/java/org/jruby/truffle/nodes/core/ObjectSpaceNodes.java
  45. +1 −1 core/src/main/java/org/jruby/truffle/nodes/core/RegexpNodes.java
  46. +23 −5 core/src/main/java/org/jruby/truffle/nodes/core/StringNodes.java
  47. +9 −0 core/src/main/java/org/jruby/truffle/nodes/core/SymbolNodes.java
  48. +1 −1 core/src/main/java/org/jruby/truffle/nodes/core/SystemNode.java
  49. +28 −1 core/src/main/java/org/jruby/truffle/nodes/core/TimeNodes.java
  50. +4 −4 core/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBooleanDispatchNode.java
  51. +9 −9 core/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedDispatchNode.java
  52. +9 −10 core/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedMethodMissingDispatchNode.java
  53. +10 −11 core/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedReturnMissingDispatchNode.java
  54. +2 −19 core/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedSymbolDispatchNode.java
  55. +2 −2 core/src/main/java/org/jruby/truffle/nodes/dispatch/CachedUnboxedDispatchNode.java
  56. +3 −13 core/src/main/java/org/jruby/truffle/nodes/dispatch/Dispatch.java
  57. +27 −10 core/src/main/java/org/jruby/truffle/nodes/dispatch/DispatchHeadNode.java
  58. +8 −9 core/src/main/java/org/jruby/truffle/nodes/dispatch/DispatchNode.java
  59. +21 −19 core/src/main/java/org/jruby/truffle/nodes/dispatch/GenericDispatchNode.java
  60. +18 −14 core/src/main/java/org/jruby/truffle/nodes/dispatch/UnresolvedDispatchNode.java
  61. +43 −4 core/src/main/java/org/jruby/truffle/nodes/literal/HashLiteralNode.java
  62. +1 −1 core/src/main/java/org/jruby/truffle/nodes/methods/ExceptionTranslatingNode.java
  63. +1 −1 core/src/main/java/org/jruby/truffle/nodes/objects/ClassNode.java
  64. +1 −1 core/src/main/java/org/jruby/truffle/nodes/objects/DefineOrGetClassNode.java
  65. +4 −4 core/src/main/java/org/jruby/truffle/nodes/objects/ReadClassVariableNode.java
  66. +2 −1 core/src/main/java/org/jruby/truffle/nodes/objects/WriteClassVariableNode.java
  67. +292 −0 core/src/main/java/org/jruby/truffle/nodes/rubinius/ByteArrayNodes.java
  68. +99 −0 core/src/main/java/org/jruby/truffle/nodes/rubinius/ChannelNodes.java
  69. +30 −0 core/src/main/java/org/jruby/truffle/nodes/rubinius/TypeNodes.java
  70. +2 −5 core/src/main/java/org/jruby/truffle/nodes/supercall/AbstractGeneralSuperCallNode.java
  71. +44 −0 core/src/main/java/org/jruby/truffle/runtime/DebugOperations.java
  72. +84 −0 core/src/main/java/org/jruby/truffle/runtime/IncludedModule.java
  73. +42 −0 core/src/main/java/org/jruby/truffle/runtime/ModuleChain.java
  74. +296 −0 core/src/main/java/org/jruby/truffle/runtime/ModuleOperations.java
  75. +19 −0 core/src/main/java/org/jruby/truffle/runtime/RubyArguments.java
  76. +1 −1 core/src/main/java/org/jruby/truffle/runtime/RubyCallStack.java
  77. +3 −2 core/src/main/java/org/jruby/truffle/runtime/backtrace/DebugBacktraceFormatter.java
  78. +1 −1 core/src/main/java/org/jruby/truffle/runtime/backtrace/ImplementationDebugBacktraceFormatter.java
  79. +2 −2 core/src/main/java/org/jruby/truffle/runtime/backtrace/MRIBacktraceFormatter.java
  80. +20 −6 core/src/main/java/org/jruby/truffle/runtime/core/CoreLibrary.java
  81. +1 −1 core/src/main/java/org/jruby/truffle/runtime/core/RubyArray.java
  82. +49 −73 core/src/main/java/org/jruby/truffle/runtime/core/RubyBasicObject.java
  83. +1 −1 core/src/main/java/org/jruby/truffle/runtime/core/RubyBinding.java
  84. +44 −59 core/src/main/java/org/jruby/truffle/runtime/core/RubyClass.java
  85. +1 −1 core/src/main/java/org/jruby/truffle/runtime/core/RubyContinuation.java
  86. +1 −1 core/src/main/java/org/jruby/truffle/runtime/core/RubyEncoding.java
  87. +3 −3 core/src/main/java/org/jruby/truffle/runtime/core/RubyException.java
  88. +5 −0 core/src/main/java/org/jruby/truffle/runtime/core/RubyFalseClass.java
  89. +1 −1 core/src/main/java/org/jruby/truffle/runtime/core/RubyFiber.java
  90. +5 −0 core/src/main/java/org/jruby/truffle/runtime/core/RubyFixnum.java
  91. +2 −2 core/src/main/java/org/jruby/truffle/runtime/core/RubyHash.java
  92. +1 −1 core/src/main/java/org/jruby/truffle/runtime/core/RubyMatchData.java
  93. +59 −197 core/src/main/java/org/jruby/truffle/runtime/core/RubyModule.java
  94. +5 −0 core/src/main/java/org/jruby/truffle/runtime/core/RubyNilClass.java
  95. +6 −2 core/src/main/java/org/jruby/truffle/runtime/core/RubyObject.java
  96. +1 −1 core/src/main/java/org/jruby/truffle/runtime/core/RubyProc.java
  97. +4 −4 core/src/main/java/org/jruby/truffle/runtime/core/RubyRange.java
  98. +10 −10 core/src/main/java/org/jruby/truffle/runtime/core/RubyRegexp.java
  99. +1 −1 core/src/main/java/org/jruby/truffle/runtime/core/RubyString.java
  100. +6 −9 core/src/main/java/org/jruby/truffle/runtime/core/RubySymbol.java
  101. +2 −2 core/src/main/java/org/jruby/truffle/runtime/core/RubyThread.java
  102. +38 −8 core/src/main/java/org/jruby/truffle/runtime/core/RubyTime.java
  103. +5 −0 core/src/main/java/org/jruby/truffle/runtime/core/RubyTrueClass.java
  104. +0 −102 core/src/main/java/org/jruby/truffle/runtime/lookup/LookupFork.java
  105. +0 −40 core/src/main/java/org/jruby/truffle/runtime/lookup/LookupNode.java
  106. +0 −62 core/src/main/java/org/jruby/truffle/runtime/lookup/LookupTerminal.java
  107. +8 −9 core/src/main/java/org/jruby/truffle/runtime/methods/RubyMethod.java
  108. +184 −0 core/src/main/java/org/jruby/truffle/runtime/rubinius/RubiniusByteArray.java
  109. +80 −0 core/src/main/java/org/jruby/truffle/runtime/rubinius/RubiniusChannel.java
  110. +131 −0 core/src/main/java/org/jruby/truffle/runtime/rubinius/RubiniusLibrary.java
  111. +1 −1 core/src/main/java/org/jruby/truffle/runtime/subsystems/FeatureManager.java
  112. +20 −0 core/src/main/java/org/jruby/truffle/runtime/util/TypeConversionUtils.java
  113. +13 −5 core/src/main/java/org/jruby/truffle/translator/BodyTranslator.java
  114. +1 −1 core/src/main/java/org/jruby/truffle/translator/ModuleTranslator.java
  115. +24 −0 core/src/main/java/org/jruby/util/cli/ArgumentProcessor.java
  116. +15 −2 core/src/main/java/org/jruby/util/cli/Options.java
  117. +1 −0 core/src/main/ruby/jruby/truffle/core/kernel.rb
  118. +132 −0 core/src/main/ruby/jruby/truffle/core/rubinius/api/bootstrap/channel.rb
  119. +50 −0 core/src/main/ruby/jruby/truffle/core/rubinius/api/common/bytearray.rb
  120. +47 −0 core/src/main/ruby/jruby/truffle/core/rubinius/api/common/channel.rb
  121. +144 −0 core/src/main/ruby/jruby/truffle/core/rubinius/api/common/thread.rb
  122. +227 −0 core/src/main/ruby/jruby/truffle/core/rubinius/api/common/tuple.rb
  123. +140 −0 core/src/main/ruby/jruby/truffle/core/rubinius/api/common/type.rb
  124. +277 −0 core/src/main/ruby/jruby/truffle/core/rubinius/kernel/common/struct.rb
  125. +498 −0 core/src/main/ruby/jruby/truffle/core/rubinius/kernel/common/time.rb
  126. +5 −3 lib/pom.rb
  127. +7 −1 lib/pom.xml
  128. +13 −4 maven/jruby-complete/pom.rb
  129. +25 −0 maven/jruby-complete/pom.xml
  130. +1 −1 maven/jruby-complete/src/it/GH-1983_jruby-completedotjar-S-irb-doesnt-work-anymore/irb.sh
  131. +3 −2 maven/jruby-complete/src/it/GH-1983_jruby-completedotjar-S-irb-doesnt-work-anymore/pom.xml
  132. +0 −3 maven/jruby-complete/src/it/helloworld/invoker.properties
  133. +0 −45 maven/jruby-complete/src/it/helloworld/pom.xml
  134. +0 −20 maven/jruby-complete/src/it/helloworld/verify.bsh
  135. +25 −0 maven/jruby-complete/src/it/integrity/pom.xml
  136. +5 −0 maven/jruby-complete/src/it/integrity/verify.bsh
  137. +0 −439 maven/jruby-complete/src/it/osgi_many_bundles_with_embedded_gems/build.log
  138. 0 maven/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/gems-bundle/Gemfile
  139. 0 maven/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/gems-bundle/pom.rb
  140. 0 maven/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/gems-bundle/pom.xml
  141. 0 ...tes}/osgi_many_bundles_with_embedded_gems/gems-bundle/src/main/java/org/jruby/osgi/gems/Gems.java
  142. 0 maven/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/invoker.properties
  143. 0 maven/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/pom.rb
  144. 0 maven/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/pom.xml
  145. 0 maven/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/scripts-bundle/pom.rb
  146. 0 ...n/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/scripts-bundle/pom.xml
  147. 0 ..._many_bundles_with_embedded_gems/scripts-bundle/src/main/java/org/jruby/osgi/scripts/Scripts.java
  148. 0 .../src/{it → templates}/osgi_many_bundles_with_embedded_gems/scripts-bundle/src/main/ruby/.jrubydir
  149. 0 ...e/src/{it → templates}/osgi_many_bundles_with_embedded_gems/scripts-bundle/src/main/ruby/hello.rb
  150. 0 ...e/src/{it → templates}/osgi_many_bundles_with_embedded_gems/scripts-bundle/src/main/ruby/world.rb
  151. 0 maven/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/test/pom.rb
  152. 0 maven/jruby-complete/src/{it → templates}/osgi_many_bundles_with_embedded_gems/test/pom.xml
  153. +2 −1 ...y_bundles_with_embedded_gems/test/src/test/java/org/jruby/embed/osgi/test/JRubyOsgiEmbedTest.java
  154. +23 −0 maven/jruby-dist/src/it/integrity/pom.xml
  155. +5 −0 maven/jruby-dist/src/it/integrity/verify.bsh
  156. +0 −3 maven/jruby-jars/src/it/helloworld/invoker.properties
  157. +0 −50 maven/jruby-jars/src/it/helloworld/pom.xml
  158. +0 −20 maven/jruby-jars/src/it/helloworld/verify.bsh
  159. +23 −0 maven/jruby-jars/src/it/integrity/pom.xml
  160. +5 −0 maven/jruby-jars/src/it/integrity/verify.bsh
  161. +0 −3 maven/jruby-noasm/src/it/helloworld/invoker.properties
  162. +0 −42 maven/jruby-noasm/src/it/helloworld/pom.xml
  163. +0 −20 maven/jruby-noasm/src/it/helloworld/verify.bsh
  164. +25 −0 maven/jruby-noasm/src/it/integrity/pom.xml
  165. +5 −0 maven/jruby-noasm/src/it/integrity/verify.bsh
  166. +14 −5 maven/jruby/pom.rb
  167. +27 −0 maven/jruby/pom.xml
  168. +0 −3 maven/jruby/src/it/helloworld/invoker.properties
  169. +0 −42 maven/jruby/src/it/helloworld/pom.xml
  170. +0 −20 maven/jruby/src/it/helloworld/verify.bsh
  171. +25 −0 maven/jruby/src/it/integrity/pom.xml
  172. +5 −0 maven/jruby/src/it/integrity/verify.bsh
  173. 0 maven/jruby/src/{it → templates}/osgi_all_inclusive/Gemfile
  174. 0 maven/jruby/src/{it → templates}/osgi_all_inclusive/invoker.properties
  175. 0 maven/jruby/src/{it → templates}/osgi_all_inclusive/pom.rb
  176. 0 maven/jruby/src/{it → templates}/osgi_all_inclusive/pom.xml
  177. 0 maven/jruby/src/{it → templates}/osgi_all_inclusive/src/main/ruby/hello.rb
  178. 0 maven/jruby/src/{it → templates}/osgi_all_inclusive/src/main/ruby/world.rb
  179. +1 −0 ...t → templates}/osgi_all_inclusive/src/test/java/org/jruby/embed/osgi/test/JRubyOsgiEmbedTest.java
  180. +7 −6 maven/pom.rb
  181. +16 −1 maven/pom.xml
  182. +17 −4 pom.rb
  183. +49 −0 pom.xml
  184. +306 −287 spec/compiler/general_spec.rb
  185. +0 −1 spec/tags/ruby/language/return_tags.txt
  186. +0 −3 spec/truffle/tags/core/basicobject/__id__tags.txt
  187. +1 −0 spec/truffle/tags/core/string/dup_tags.txt
  188. +1 −0 spec/truffle/tags/language/alias_tags.txt
  189. +0 −1 spec/truffle/tags/language/case_tags.txt
  190. +3 −0 spec/truffle/tags/language/class_tags.txt
  191. +6 −3 spec/truffle/tags/language/constants_tags.txt
  192. +2 −0 spec/truffle/tags/language/defined_tags.txt
  193. +0 −2 spec/truffle/tags/language/hash_tags.txt
  194. +2 −0 spec/truffle/tags/language/metaclass_tags.txt
  195. +0 −40 spec/truffle/tags/language/regexp/character_classes_tags.txt
  196. +0 −3 spec/truffle/tags/language/return_tags.txt
  197. +3 −0 spec/truffle/tags/language/singleton_class_tags.txt
  198. +5 −2 spec/truffle/truffle.mspec
  199. +2 −2 tool/remove-bundled-truffle.sh
6 changes: 2 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -79,11 +79,9 @@ dependency-reduced-pom.xml
install/updates.xml

# generated ITs
maven/jruby/src/it/osgi_*equinox*
maven/jruby/src/it/osgi_*felix-3*
maven/jruby/src/it/osgi_*knoplerfish
maven/jruby/src/it/osgi_*
maven/jruby/src/it/j2ee_wlp
maven/jruby-complete/src/it/osgi_many_bundles_with_embedded_gems_*
maven/jruby-complete/src/it/osgi*

# IntelliJ project files
.idea
4 changes: 4 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -42,6 +42,10 @@ matrix:
jdk: oraclejdk7
- env: TARGET='-Pcomplete'
jdk: oraclejdk8
- env: TARGET='-Posgi'
jdk: openjdk7
- env: TARGET='-Pj2ee'
jdk: oraclejdk7
fast_finish: true
allow_failures:
- env: TARGET='-Prake -Dtask=spec:compiler'
55 changes: 48 additions & 7 deletions BUILDING.md
Original file line number Diff line number Diff line change
@@ -188,6 +188,35 @@ The complete CI test suite will take anywhere from 20 to 45 minutes to
complete, but provides the most accurate indication of the stability of
your local JRuby source.

### maven integration tests - -Pjruby-complete or -Pmain

maven integration test will use the packed maven artifact to run the tests in a forked maven instance. these maven projects are locatated in

```
maven/jruby/src/it
maven/jruby-complete/src/it
maven/jruby-jars/src/it
maven/jruby-dist/src/it
```

to trigger the tests with the build:

```
mvn -Pmain -Dinvoker.skip=false
mvn -Pcomplete -Dinvoker.skip=false
mvn -Pdist -Dinvoker.skip=false
mvn -Pjruby-jars -Dinvoker.skip=false
```

to pick a particular test add the name of the directory inside the respective *src/it* folder, like (wildcards are possible):


```
mvn -Pmain -Dinvoker.skip=false -Dinvoker.test=integrity
mvn -Pmain -Dinvoker.skip=false -Dinvoker.test=j2ee*
mvn -Pmain -Dinvoker.skip=false -Dinvoker.test=osgi*
```

Clean Build
-----------

@@ -205,6 +234,12 @@ that everything is rebuilt properly.

NOTE: ```mvn clean``` just cleans the **jruby-core** artifact and the **./lib/jruby.jar** !

clean everything:

```
mvn -Pclean
```

Distribution Packages
---------------------

@@ -240,7 +275,6 @@ mvn -Pjruby-jars

the gem will be in ./maven/jruby-jars/pkg

<<<<<<< HEAD
### building ALL packages ###

```
@@ -257,10 +291,13 @@ jruby -S rmvn -Pclean

## release ##

first set the new version (on jruby-1_7 branch):
first set the new version in the file *VERSION* inside the root directory and then

```
mvn versions:set -DnewVersion=1.7.5
rake maven:dump_poms
```
or
```
rmvn validate -Pall
```

@@ -279,7 +316,8 @@ mvn clean deploy -Psonatype-oss-release -Prelease

go to oss.sonatype.org and close the deployment which will check if all 'required' files are in place and then finally push the release to maven central and . . .

# hacking the build system #
hacking the build system
------------------------

the build system uses the **ruby-maven** gem and with this the build files are **pom.rb** and **Mavenfile**. the **Mavenfile** are used whenever the module produces a gem and uses the gemspec file for the gem for setting up the POM. otherwise **pom.rb** are used. so any change in the build-system is done in those files !!!!

@@ -297,11 +335,14 @@ regular maven uses the the jruby from the installation, i.e. 9000.dev. this also

at some parts there are **inline** plugins in **pom.rb** or **Mavenfile** which will work directly with regular maven where there is a special plugin running those ruby parts. see **./lib/pom.rb**.

### Start development
### Start a new version

After the release set the new development version:
After the release set the new development version in *VERSION* and generate the pom.xml files

```
mvn versions:set -DnewVersion=1.7.6-SNAPSHOT
rake maven:dump_poms
```
or
```
rmvn validate -Pall
```
8 changes: 8 additions & 0 deletions COPYING
Original file line number Diff line number Diff line change
@@ -105,6 +105,14 @@ lib/ruby/1.9, and lib/ruby/site_ruby/1.8/rubygems*.
The "yecht" library is Copyright (c) 2009-2011 Ola Bini, and released
under the MIT license.

The Rubinius API implementation in core/src/main/ruby/jruby/truffle/core/rubinius/api
and core/src/main/java/org/jruby/truffle/runtime/rubinius is copyright (c) 2011,
Evan Phoenix, and released under the 3-clause BSD license.

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

The complete text of the Eclipse Public License is as follows:

Eclipse Public License - v 1.0
2 changes: 1 addition & 1 deletion core/pom.rb
Original file line number Diff line number Diff line change
@@ -259,7 +259,7 @@
end


[ :dist, :'jruby-jars', :main, :all, :complete, :release, :snapshots ].each do |name|
[ :osgi, :dist, :'jruby-jars', :main, :all, :complete, :release, :snapshots ].each do |name|
profile name do
plugin :shade do
execute_goals( 'shade',
57 changes: 57 additions & 0 deletions core/pom.xml
Original file line number Diff line number Diff line change
@@ -555,6 +555,63 @@
</plugins>
</build>
<profiles>
<profile>
<id>osgi</id>
<build>
<plugins>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<id>pack jruby-core-noasm.jar</id>
<phase>verify</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>noasm</shadedClassifierName>
<artifactSet>
<includes>
<include>com.github.jnr:jnr-ffi</include>
<include>org.ow2.asm:*</include>
</includes>
</artifactSet>
<relocations>
<relocation>
<pattern>org.objectweb</pattern>
<shadedPattern>org.jruby.org.objectweb</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
<execution>
<id>pack jruby-core-complete.jar</id>
<phase>verify</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>complete</shadedClassifierName>
<relocations>
<relocation>
<pattern>org.objectweb</pattern>
<shadedPattern>org.jruby.org.objectweb</shadedPattern>
</relocation>
</relocations>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>org.jruby.Main</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>dist</id>
<build>
Original file line number Diff line number Diff line change
@@ -140,7 +140,7 @@ public void ensureInstrsReady() {
// Prepare method if not yet done so we know if the method has an explicit/implicit call protocol
if (method.getInstrsForInterpretation() == null) {
method.prepareForInterpretation(false);
this.pushScope = method.getFlags().contains(IRFlags.REQUIRES_DYNSCOPE) || !method.getFlags().contains(IRFlags.DYNSCOPE_ELIMINATED);
this.pushScope = !method.getFlags().contains(IRFlags.DYNSCOPE_ELIMINATED);
}
}

2 changes: 2 additions & 0 deletions core/src/main/java/org/jruby/ir/IRFlags.java
Original file line number Diff line number Diff line change
@@ -44,6 +44,7 @@ public enum IRFlags {
HAS_EXPLICIT_CALL_PROTOCOL, // contains call protocol instrs. if so we don't need to manage bindings frame implicitly.
HAS_LOOPS, // has a loop
HAS_NONLOCAL_RETURNS, // has a non-local return
HAS_OPTIMIZED_TEMPORARY_VARIABLES, // we simplified number of temp vars (before CFG was built). we can only do once.
HAS_UNUSED_IMPLICIT_BLOCK_ARG,// Is %block implicit block arg unused?
RECEIVES_CLOSURE_ARG, // This scope (or parent receives a closure
RECEIVES_KEYWORD_ARGS, // receives keyword args
@@ -55,4 +56,5 @@ public enum IRFlags {
REQUIRES_VISIBILITY, // callee may read/write caller's visibility

DYNSCOPE_ELIMINATED, // local var load/stores have been converted to tmp var accesses
REUSE_PARENT_DYNSCOPE, // for clsoures -- reuse parent's dynscope
}
62 changes: 41 additions & 21 deletions core/src/main/java/org/jruby/ir/IRScope.java
Original file line number Diff line number Diff line change
@@ -11,6 +11,8 @@
import org.jruby.ir.passes.CompilerPass;
import org.jruby.ir.passes.CompilerPassScheduler;
import org.jruby.ir.passes.DeadCodeElimination;
import org.jruby.ir.dataflow.analyses.StoreLocalVarPlacementProblem;
import org.jruby.ir.dataflow.analyses.LiveVariablesProblem;
import org.jruby.ir.passes.UnboxingPass;
import org.jruby.ir.persistence.IRReaderDecoder;
import org.jruby.ir.representations.BasicBlock;
@@ -398,6 +400,14 @@ public boolean isNestedInClosure(IRClosure closure) {
return false;
}

public boolean hasHasOptimizedTemporaryVariables() {
return flags.contains(HAS_OPTIMIZED_TEMPORARY_VARIABLES);
}

public void setHasOptimizedTemporaryVariables() {
flags.add(HAS_OPTIMIZED_TEMPORARY_VARIABLES);
}

public void setHasLoopsFlag() {
flags.add(HAS_LOOPS);
}
@@ -451,7 +461,7 @@ public CFG buildCFG() {
}

protected void setCFG(CFG cfg) {
this.cfg = cfg;
this.cfg = cfg;
}

public CFG getCFG() {
@@ -517,19 +527,7 @@ public void setupRescueMap() {
}
}

private void runCompilerPasses(List<CompilerPass> passes) {
// SSS FIXME: Why is this again? Document this weirdness!
// Forcibly clear out the shared eval-scope variable allocator each time this method executes
initEvalScopeVariableAllocator(true);

// SSS FIXME: We should configure different optimization levels
// and run different kinds of analysis depending on time budget.
// Accordingly, we need to set IR levels/states (basic, optimized, etc.)
// ENEBO: If we use a MT optimization mechanism we cannot mutate CFG
// while another thread is using it. This may need to happen on a clone()
// and we may need to update the method to return the new method. Also,
// if this scope is held in multiple locations how do we update all references?

private boolean isUnsafeScope() {
boolean unsafeScope = false;
if (flags.contains(HAS_END_BLOCKS) || this.isBeginEndBlock()) {
unsafeScope = true;
@@ -545,12 +543,27 @@ private void runCompilerPasses(List<CompilerPass> passes) {
unsafeScope = true;
}
}
return unsafeScope;
}

private void runCompilerPasses(List<CompilerPass> passes) {
// SSS FIXME: Why is this again? Document this weirdness!
// Forcibly clear out the shared eval-scope variable allocator each time this method executes
initEvalScopeVariableAllocator(true);

// SSS FIXME: We should configure different optimization levels
// and run different kinds of analysis depending on time budget.
// Accordingly, we need to set IR levels/states (basic, optimized, etc.)
// ENEBO: If we use a MT optimization mechanism we cannot mutate CFG
// while another thread is using it. This may need to happen on a clone()
// and we may need to update the method to return the new method. Also,
// if this scope is held in multiple locations how do we update all references?

// All passes are disabled in scopes where BEGIN and END scopes might
// screw around with escaped variables. Optimizing for them is not
// worth the effort. It is simpler to just go fully safe in scopes
// influenced by their presence.
if (unsafeScope) {
if (isUnsafeScope()) {
passes = getManager().getSafePasses(this);
}

@@ -567,17 +580,23 @@ private void runCompilerPasses(List<CompilerPass> passes) {
}

private void runDeadCodeAndVarLoadStorePasses() {
// For methods that don't require a dynamic scope,
// For scopes that don't require a dynamic scope,
// inline-add lvar loads/store to tmp-var loads/stores.
if (!flags.contains(HAS_END_BLOCKS) && !flags.contains(REQUIRES_DYNSCOPE)) {
if (!isUnsafeScope() && !flags.contains(REQUIRES_DYNSCOPE)) {
CompilerPass pass;
pass = new DeadCodeElimination();
if (pass.previouslyRun(this) == null) {
pass.run(this);
}

// This will run the simplified version of the pass
// that doesn't require dataflow analysis and hence
// can run on closures independent of enclosing scopes.
pass = new AddLocalVarLoadStoreInstructions();
if (pass.previouslyRun(this) == null) {
pass.run(this);
((AddLocalVarLoadStoreInstructions)pass).eliminateLocalVars(this);
setDataFlowSolution(StoreLocalVarPlacementProblem.NAME, new StoreLocalVarPlacementProblem());
setDataFlowSolution(LiveVariablesProblem.NAME, null);
}
}
}
@@ -730,7 +749,7 @@ public void computeScopeFlags() {
}

// Compute flags for nested closures (recursively) and set derived flags.
for (IRClosure cl : getClosures()) {
for (IRClosure cl: getClosures()) {
cl.computeScopeFlags();
if (cl.usesEval()) {
flags.add(CAN_RECEIVE_BREAKS);
@@ -749,8 +768,8 @@ public void computeScopeFlags() {
}
}

if (!(this instanceof IRMethod)
|| flags.contains(CAN_RECEIVE_BREAKS)
if (flags.contains(CAN_RECEIVE_BREAKS)
|| flags.contains(HAS_NONLOCAL_RETURNS)
|| flags.contains(CAN_RECEIVE_NONLOCAL_RETURNS)
|| flags.contains(BINDING_HAS_ESCAPED)
// SSS FIXME: checkArity for keyword args
@@ -1087,6 +1106,7 @@ protected void depends(Object obj) {
"up wrong. Use depends(build()) not depends(build).";
}

// SSS FIXME: Why do we have cfg() with this assertion and a getCFG() without an assertion??
public CFG cfg() {
assert cfg != null: "Trying to access build before build started";
return cfg;
8 changes: 6 additions & 2 deletions core/src/main/java/org/jruby/ir/IRScriptBody.java
Original file line number Diff line number Diff line change
@@ -104,7 +104,9 @@ public IRubyObject interpret(ThreadContext context, IRubyObject self) {
IRubyObject retVal;

scope.setModule(currModule);
context.preMethodScopeOnly(currModule, scope);
if (!this.flags.contains(IRFlags.DYNSCOPE_ELIMINATED)) {
context.preMethodScopeOnly(currModule, scope);
}
context.setCurrentVisibility(Visibility.PRIVATE);

try {
@@ -116,7 +118,9 @@ public IRubyObject interpret(ThreadContext context, IRubyObject self) {
} catch (IRBreakJump bj) {
throw IRException.BREAK_LocalJumpError.getException(context.runtime);
} finally {
context.popScope();
if (!this.flags.contains(IRFlags.DYNSCOPE_ELIMINATED)) {
context.popScope();
}
}

return retVal;
Loading