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

Commits on Mar 13, 2015

  1. Copy the full SHA
    ddba396 View commit details
  2. Copy the full SHA
    5b35bd4 View commit details
  3. Copy the full SHA
    dbe83ee View commit details
  4. Copy the full SHA
    ed6da74 View commit details
  5. Copy the full SHA
    a60d255 View commit details

Commits on Mar 14, 2015

  1. Copy the full SHA
    db1231b View commit details
  2. Copy the full SHA
    488098c View commit details

Commits on Mar 18, 2015

  1. Copy the full SHA
    814264d View commit details
  2. Copy the full SHA
    8862201 View commit details
  3. Copy the full SHA
    f2a3815 View commit details

Commits on Mar 19, 2015

  1. [Truffle] Work on pack.

    chrisseaton committed Mar 19, 2015
    Copy the full SHA
    ed15c20 View commit details

Commits on Mar 28, 2015

  1. Merge branch 'truffle-head' into truffle-pack

    Conflicts:
    	truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayNodes.java
    chrisseaton committed Mar 28, 2015
    Copy the full SHA
    5a136a4 View commit details

Commits on Mar 29, 2015

  1. [Truffle] Work on pack.

    chrisseaton committed Mar 29, 2015
    Copy the full SHA
    4b7c68f View commit details
  2. Copy the full SHA
    ca774d0 View commit details
  3. Copy the full SHA
    383cf75 View commit details
  4. Copy the full SHA
    18678ea View commit details
  5. Copy the full SHA
    4bef395 View commit details
  6. Copy the full SHA
    0de9ed4 View commit details
  7. Copy the full SHA
    a234bf4 View commit details
  8. [Truffle] Pack comments.

    chrisseaton committed Mar 29, 2015
    Copy the full SHA
    cbb12f8 View commit details
  9. Copy the full SHA
    f30c96b View commit details
  10. Copy the full SHA
    c054767 View commit details
  11. [Truffle] Pack %

    chrisseaton committed Mar 29, 2015
    Copy the full SHA
    a76bf7f View commit details
  12. [Truffle] Pack p.

    chrisseaton committed Mar 29, 2015
    Copy the full SHA
    60adf34 View commit details
  13. Copy the full SHA
    fbc3f97 View commit details
  14. Copy the full SHA
    0fe0650 View commit details

Commits on Mar 30, 2015

  1. [Truffle] Work on pack M.

    chrisseaton committed Mar 30, 2015
    Copy the full SHA
    d27bd5d View commit details
  2. Copy the full SHA
    0d6af53 View commit details
  3. Copy the full SHA
    2d5c402 View commit details
  4. Copy the full SHA
    4a4d09a View commit details
  5. Copy the full SHA
    d9868d0 View commit details
  6. Copy the full SHA
    aa2cf77 View commit details
  7. Copy the full SHA
    5c71dbe View commit details
  8. Copy the full SHA
    60674f4 View commit details
  9. Copy the full SHA
    1c0c6e1 View commit details
  10. Copy the full SHA
    40fd721 View commit details
  11. Copy the full SHA
    90131cc View commit details
  12. Copy the full SHA
    55dc411 View commit details
  13. [Truffle] All of pack a.

    chrisseaton committed Mar 30, 2015
    Copy the full SHA
    ab519eb View commit details
  14. [Truffle] Fix pack.

    chrisseaton committed Mar 30, 2015
    Copy the full SHA
    f2aa10f View commit details

Commits on Mar 31, 2015

  1. [Truffle] All of pack h.

    chrisseaton committed Mar 31, 2015
    Copy the full SHA
    801416b View commit details
  2. [Truffle] Some more of m.

    chrisseaton committed Mar 31, 2015
    Copy the full SHA
    80fe78e View commit details

Commits on Apr 5, 2015

  1. Copy the full SHA
    fa0bf6f View commit details
  2. Copy the full SHA
    a384d62 View commit details
  3. Copy the full SHA
    aa98236 View commit details
  4. Revert "[Truffle] First attempt at caching pack."

    This reverts commit aa98236.
    chrisseaton committed Apr 5, 2015
    Copy the full SHA
    9be9688 View commit details
  5. Copy the full SHA
    7a28160 View commit details
  6. [Truffle] All of #pack U

    chrisseaton committed Apr 5, 2015
    Copy the full SHA
    2457d88 View commit details

Commits on Apr 6, 2015

  1. Copy the full SHA
    4478ac9 View commit details
  2. Copy the full SHA
    842eba0 View commit details
Showing with 8,690 additions and 1,122 deletions.
  1. +2 −0 .travis.yml
  2. +2 −7 core/src/main/java/org/jruby/Ruby.java
  3. +1 −0 core/src/main/java/org/jruby/TruffleBridge.java
  4. +23 −75 core/src/main/java/org/jruby/util/Pack.java
  5. +100 −0 core/src/main/java/org/jruby/util/PackUtils.java
  6. +0 −8 spec/truffle/tags/core/array/pack/c_tags.txt
  7. +0 −20 spec/truffle/tags/core/array/pack/i_tags.txt
  8. +0 −96 spec/truffle/tags/core/array/pack/l_tags.txt
  9. +0 −6 spec/truffle/tags/core/array/pack/m_tags.txt
  10. +0 −8 spec/truffle/tags/core/array/pack/n_tags.txt
  11. +0 −2 spec/truffle/tags/core/array/pack/p_tags.txt
  12. +0 −36 spec/truffle/tags/core/array/pack/q_tags.txt
  13. +0 −24 spec/truffle/tags/core/array/pack/s_tags.txt
  14. +0 −8 spec/truffle/tags/core/array/pack/u_tags.txt
  15. +0 −8 spec/truffle/tags/core/array/pack/v_tags.txt
  16. +0 −5 spec/truffle/tags/core/array/pack/w_tags.txt
  17. +4,680 −0 test/truffle/pack-real-usage.rb
  18. +5 −0 test/truffle/pe/core/array_pe.rb
  19. +7 −0 test/truffle/run.sh
  20. +19 −4 tool/jt.rb
  21. +0 −3 truffle/src/main/java/org/jruby/truffle/TruffleBridgeImpl.java
  22. +36 −42 truffle/src/main/java/org/jruby/truffle/nodes/RubyNode.java
  23. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/RubyTypes.java
  24. +2 −0 truffle/src/main/java/org/jruby/truffle/nodes/TopLevelRaiseHandler.java
  25. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/WriteConstantNode.java
  26. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/array/ArrayReadNormalizedNode.java
  27. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/array/ArrayWriteNormalizedNode.java
  28. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/array/GeneralizeArrayNode.java
  29. +4 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/ArrayCastNode.java
  30. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/cast/BooleanCastNode.java
  31. +4 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/HashCastNode.java
  32. +6 −7 truffle/src/main/java/org/jruby/truffle/nodes/cast/NumericToFloatNode.java
  33. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/ProcCastNode.java
  34. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/ProcOrNullNode.java
  35. +3 −4 truffle/src/main/java/org/jruby/truffle/nodes/cast/SingleValueCastNode.java
  36. +4 −1 truffle/src/main/java/org/jruby/truffle/nodes/cast/SplatCastNode.java
  37. +1 −2 truffle/src/main/java/org/jruby/truffle/nodes/cast/ToSNode.java
  38. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/coerce/SymbolOrToStrNode.java
  39. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/control/BreakNode.java
  40. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/control/FlipFlopNode.java
  41. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/control/IfNode.java
  42. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/control/NotNode.java
  43. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/control/OrNode.java
  44. +3 −1 truffle/src/main/java/org/jruby/truffle/nodes/control/TraceNode.java
  45. +2 −1 truffle/src/main/java/org/jruby/truffle/nodes/control/WhenSplatNode.java
  46. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/control/WhileNode.java
  47. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayDropTailNode.java
  48. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayGetTailNode.java
  49. +117 −132 truffle/src/main/java/org/jruby/truffle/nodes/core/ArrayNodes.java
  50. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/core/ArraySliceNode.java
  51. +4 −8 truffle/src/main/java/org/jruby/truffle/nodes/core/BasicObjectNodes.java
  52. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/core/BignumNodes.java
  53. +4 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/BindingNodes.java
  54. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/ClassNodes.java
  55. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/CoreMethodNodeManager.java
  56. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/EncodingConverterNodes.java
  57. +1 −7 truffle/src/main/java/org/jruby/truffle/nodes/core/EncodingNodes.java
  58. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/ExceptionNodes.java
  59. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/FalseClassNodes.java
  60. +1 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/FiberNodes.java
  61. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/FixnumLowerNode.java
  62. +1 −7 truffle/src/main/java/org/jruby/truffle/nodes/core/FixnumNodes.java
  63. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/core/FloatNodes.java
  64. +10 −9 truffle/src/main/java/org/jruby/truffle/nodes/core/HashNodes.java
  65. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/IntegerNodes.java
  66. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/InteroplatedRegexpNode.java
  67. +2 −6 truffle/src/main/java/org/jruby/truffle/nodes/core/KernelNodes.java
  68. +1 −6 truffle/src/main/java/org/jruby/truffle/nodes/core/MatchDataNodes.java
  69. +4 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/MathNodes.java
  70. +1 −9 truffle/src/main/java/org/jruby/truffle/nodes/core/MethodNodes.java
  71. +11 −17 truffle/src/main/java/org/jruby/truffle/nodes/core/ModuleNodes.java
  72. +6 −12 truffle/src/main/java/org/jruby/truffle/nodes/core/MutexNodes.java
  73. +1 −8 truffle/src/main/java/org/jruby/truffle/nodes/core/ObjectSpaceNodes.java
  74. +1 −5 truffle/src/main/java/org/jruby/truffle/nodes/core/ProcNodes.java
  75. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/ProcessNodes.java
  76. +0 −6 truffle/src/main/java/org/jruby/truffle/nodes/core/RangeNodes.java
  77. +7 −14 truffle/src/main/java/org/jruby/truffle/nodes/core/RegexpNodes.java
  78. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/ReturnEnumeratorIfNoBlockNode.java
  79. +7 −21 truffle/src/main/java/org/jruby/truffle/nodes/core/StringNodes.java
  80. +1 −6 truffle/src/main/java/org/jruby/truffle/nodes/core/SymbolNodes.java
  81. +0 −5 truffle/src/main/java/org/jruby/truffle/nodes/core/ThreadNodes.java
  82. +2 −3 truffle/src/main/java/org/jruby/truffle/nodes/core/ThreadPassNode.java
  83. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/core/TimeNodes.java
  84. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/TrueClassNodes.java
  85. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/core/TruffleInteropNodes.java
  86. +4 −5 truffle/src/main/java/org/jruby/truffle/nodes/core/TrufflePrimitiveNodes.java
  87. +1 −8 truffle/src/main/java/org/jruby/truffle/nodes/core/UnboundMethodNodes.java
  88. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/debug/AssertConstantNode.java
  89. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/debug/AssertNotCompiledNode.java
  90. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBooleanDispatchNode.java
  91. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedDispatchNode.java
  92. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedMethodMissingDispatchNode.java
  93. +0 −4 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedReturnMissingDispatchNode.java
  94. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedBoxedSymbolDispatchNode.java
  95. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedDispatchNode.java
  96. +2 −9 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedForeignDispatchNode.java
  97. +3 −4 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedForeignGlobalDispatchNode.java
  98. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/CachedUnboxedDispatchNode.java
  99. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/DispatchHeadNode.java
  100. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/DispatchHeadNodeFactory.java
  101. +0 −4 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/DispatchNode.java
  102. +6 −3 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/UncachedDispatchNode.java
  103. +3 −9 truffle/src/main/java/org/jruby/truffle/nodes/dispatch/UnresolvedDispatchNode.java
  104. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/globals/ReadLastBacktraceNode.java
  105. +2 −3 truffle/src/main/java/org/jruby/truffle/nodes/globals/UpdateVerbosityNode.java
  106. +2 −2 truffle/src/main/java/org/jruby/truffle/nodes/hash/FindEntryNode.java
  107. +4 −2 truffle/src/main/java/org/jruby/truffle/nodes/instrument/RubyDefaultASTProber.java
  108. +2 −8 truffle/src/main/java/org/jruby/truffle/nodes/interop/InteropNode.java
  109. +0 −4 truffle/src/main/java/org/jruby/truffle/nodes/interop/TargetableRubyNode.java
  110. +2 −1 truffle/src/main/java/org/jruby/truffle/nodes/literal/HashLiteralNode.java
  111. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/AddMethodNode.java
  112. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/methods/BlockDefinitionNode.java
  113. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/CatchBreakAsProcErrorNode.java
  114. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/CatchBreakFromCallNode.java
  115. +3 −2 truffle/src/main/java/org/jruby/truffle/nodes/methods/ExceptionTranslatingNode.java
  116. +2 −3 truffle/src/main/java/org/jruby/truffle/nodes/methods/MarkerNode.java
  117. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/MethodDefinitionNode.java
  118. +4 −5 truffle/src/main/java/org/jruby/truffle/nodes/methods/SetMethodDeclarationContext.java
  119. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/methods/SymbolProcNode.java
  120. +2 −3 truffle/src/main/java/org/jruby/truffle/nodes/methods/arguments/OptionalKeywordArgMissingNode.java
  121. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/methods/arguments/ReadKeywordArgumentNode.java
  122. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/methods/arguments/ReadRestArgumentNode.java
  123. +2 −3 truffle/src/main/java/org/jruby/truffle/nodes/methods/arguments/UnknownArgumentErrorNode.java
  124. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/objects/Allocator.java
  125. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/objects/ClassNode.java
  126. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/objects/DefineOrGetClassNode.java
  127. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/objects/DefineOrGetModuleNode.java
  128. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/objects/FreezeNode.java
  129. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/objects/IsFrozenNode.java
  130. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/objects/ReadInstanceVariableNode.java
  131. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/objects/WriteInstanceVariableNode.java
  132. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/ArrayPrimitiveNodes.java
  133. +2 −6 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/BignumPrimitiveNodes.java
  134. +4 −2 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/DirPrimitiveNodes.java
  135. +1 −2 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/EncodingPrimitiveNodes.java
  136. +2 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/ExceptionPrimitiveNodes.java
  137. +4 −8 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/FixnumPrimitiveNodes.java
  138. +4 −3 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/IOBufferPrimitiveNodes.java
  139. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/InvokeRubiniusPrimitiveNode.java
  140. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/ModulePrimitiveNodes.java
  141. +0 −5 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/NativeFunctionPrimitiveNodes.java
  142. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/ObjectPrimitiveNodes.java
  143. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/PointerPrimitiveNodes.java
  144. +0 −6 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/PosixNodes.java
  145. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/RandomPrimitiveNodes.java
  146. +6 −4 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/RegexpPrimitiveNodes.java
  147. +1 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/RubiniusSingleBlockArgNode.java
  148. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/RubiniusTypeNodes.java
  149. +2 −0 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/StringPrimitiveNodes.java
  150. +0 −9 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/SymbolPrimitiveNodes.java
  151. +0 −3 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/TimePrimitiveNodes.java
  152. +7 −9 truffle/src/main/java/org/jruby/truffle/nodes/rubinius/VMPrimitiveNodes.java
  153. +0 −2 truffle/src/main/java/org/jruby/truffle/nodes/supercall/AbstractGeneralSuperCallNode.java
  154. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/supercall/GeneralSuperCallNode.java
  155. +2 −3 truffle/src/main/java/org/jruby/truffle/nodes/supercall/GeneralSuperReCallNode.java
  156. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/time/ReadTimeZoneNode.java
  157. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/yield/CachedYieldDispatchNode.java
  158. +0 −1 truffle/src/main/java/org/jruby/truffle/nodes/yield/GeneralYieldDispatchNode.java
  159. +2 −3 truffle/src/main/java/org/jruby/truffle/nodes/yield/UninitializedYieldDispatchNode.java
  160. +7 −3 truffle/src/main/java/org/jruby/truffle/nodes/yield/YieldDispatchHeadNode.java
  161. +9 −6 truffle/src/main/java/org/jruby/truffle/nodes/yield/YieldNode.java
  162. +56 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/PackGuards.java
  163. +183 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/PackNode.java
  164. +94 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/PackRootNode.java
  165. +40 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/PackTypes.java
  166. +33 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/SourceNode.java
  167. +36 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/control/AtNode.java
  168. +40 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/control/BackNode.java
  169. +51 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/control/NNode.java
  170. +44 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/control/SequenceNode.java
  171. +48 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/control/StarNode.java
  172. +75 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/read/ReadDoubleNode.java
  173. +76 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/read/ReadLongNode.java
  174. +89 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/read/ReadLongOrBigIntegerNode.java
  175. +87 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/read/ReadStringNode.java
  176. +35 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/type/AsLongNode.java
  177. +30 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/type/AsSinglePrecisionNode.java
  178. +43 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/type/ToDoubleNode.java
  179. +125 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/type/ToLongNode.java
  180. +164 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/type/ToStringNode.java
  181. +28 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/NullNode.java
  182. +38 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/PNode.java
  183. +31 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/Write16BigNode.java
  184. +31 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/Write16LittleNode.java
  185. +33 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/Write32BigNode.java
  186. +33 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/Write32LittleNode.java
  187. +37 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/Write64BigNode.java
  188. +37 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/Write64LittleNode.java
  189. +29 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/Write8Node.java
  190. +116 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/WriteBERNode.java
  191. +59 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/WriteBase64StringNode.java
  192. +87 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/WriteBinaryStringNode.java
  193. +113 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/WriteBitStringNode.java
  194. +110 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/WriteHexStringNode.java
  195. +56 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/WriteMIMEStringNode.java
  196. +99 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/WriteUTF8CharacterNode.java
  197. +68 −0 truffle/src/main/java/org/jruby/truffle/pack/nodes/write/WriteUUStringNode.java
  198. +605 −0 truffle/src/main/java/org/jruby/truffle/pack/parser/PackParser.java
  199. +128 −0 truffle/src/main/java/org/jruby/truffle/pack/parser/PackTokenizer.java
  200. +15 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/Endianness.java
  201. +64 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/PackEncoding.java
  202. +26 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/PackFrameDescriptor.java
  203. +41 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/PackResult.java
  204. +15 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/Signedness.java
  205. +14 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/exceptions/CantCompressNegativeException.java
  206. +17 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/exceptions/CantConvertException.java
  207. +17 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/exceptions/FormatException.java
  208. +30 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/exceptions/NoImplicitConversionException.java
  209. +13 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/exceptions/OutsideOfStringException.java
  210. +20 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/exceptions/PackException.java
  211. +17 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/exceptions/RangeException.java
  212. +13 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/exceptions/TooFewArgumentsException.java
  213. +30 −0 truffle/src/main/java/org/jruby/truffle/pack/runtime/exceptions/WrongArgumentTypeException.java
  214. +0 −4 truffle/src/main/java/org/jruby/truffle/runtime/DebugOperations.java
  215. +0 −3 truffle/src/main/java/org/jruby/truffle/runtime/ModuleOperations.java
  216. +3 −4 truffle/src/main/java/org/jruby/truffle/runtime/RubyArguments.java
  217. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/RubyCallStack.java
  218. +3 −7 truffle/src/main/java/org/jruby/truffle/runtime/RubyContext.java
  219. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/backtrace/DebugBacktraceFormatter.java
  220. +10 −15 truffle/src/main/java/org/jruby/truffle/runtime/backtrace/MRIBacktraceFormatter.java
  221. +1 −3 truffle/src/main/java/org/jruby/truffle/runtime/control/BreakException.java
  222. +8 −5 truffle/src/main/java/org/jruby/truffle/runtime/core/ArrayForeignAccessFactory.java
  223. +8 −6 truffle/src/main/java/org/jruby/truffle/runtime/core/BasicForeignAccessFactory.java
  224. +0 −6 truffle/src/main/java/org/jruby/truffle/runtime/core/CoreLibrary.java
  225. +8 −6 truffle/src/main/java/org/jruby/truffle/runtime/core/HashForeignAccessFactory.java
  226. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyArray.java
  227. +1 −6 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyBasicObject.java
  228. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyBignum.java
  229. +0 −2 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyBinding.java
  230. +0 −7 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyClass.java
  231. +1 −3 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyEncoding.java
  232. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyEncodingConverter.java
  233. +0 −5 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyFiber.java
  234. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyHash.java
  235. +0 −7 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyModule.java
  236. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyProc.java
  237. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyRange.java
  238. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyRegexp.java
  239. +0 −2 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyString.java
  240. +1 −2 truffle/src/main/java/org/jruby/truffle/runtime/core/RubySymbol.java
  241. +0 −11 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyThread.java
  242. +0 −2 truffle/src/main/java/org/jruby/truffle/runtime/core/RubyTime.java
  243. +8 −6 truffle/src/main/java/org/jruby/truffle/runtime/core/StringForeignAccessFactory.java
  244. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/hash/HashOperations.java
  245. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/methods/InternalMethod.java
  246. +0 −10 truffle/src/main/java/org/jruby/truffle/runtime/methods/SharedMethodInfo.java
  247. +0 −3 truffle/src/main/java/org/jruby/truffle/runtime/signal/ProcSignalHandler.java
  248. +4 −5 truffle/src/main/java/org/jruby/truffle/runtime/signal/SignalOperations.java
  249. +8 −2 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/AttachmentsManager.java
  250. +0 −3 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/FeatureManager.java
  251. +0 −2 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/InstrumentationServerManager.java
  252. +9 −15 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/ObjectSpaceManager.java
  253. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/SafepointManager.java
  254. +0 −1 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/SimpleShell.java
  255. +0 −2 truffle/src/main/java/org/jruby/truffle/runtime/subsystems/ThreadManager.java
  256. +0 −2 truffle/src/main/java/org/jruby/truffle/runtime/util/ArrayUtils.java
  257. +4 −4 truffle/src/main/java/org/jruby/truffle/runtime/util/FileUtils.java
  258. +1 −3 truffle/src/main/java/org/jruby/truffle/translator/BodyTranslator.java
  259. +4 −3 truffle/src/main/java/org/jruby/truffle/translator/MethodTranslator.java
  260. +0 −1 truffle/src/main/java/org/jruby/truffle/translator/ModuleTranslator.java
  261. +1 −6 truffle/src/main/java/org/jruby/truffle/translator/Translator.java
  262. +0 −4 truffle/src/main/java/org/jruby/truffle/translator/TranslatorDriver.java
  263. +0 −4 truffle/src/main/java/org/jruby/truffle/translator/TranslatorEnvironment.java
2 changes: 2 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -69,6 +69,8 @@ matrix:
jdk: oraclejdk8
- env: COMMAND=tool/truffle-findbugs.sh
jdk: oraclejdk8
- env: COMMAND=test/truffle/run.sh
jdk: oraclejdk8
fast_finish: true


9 changes: 2 additions & 7 deletions core/src/main/java/org/jruby/Ruby.java
Original file line number Diff line number Diff line change
@@ -920,17 +920,12 @@ public TruffleBridge getTruffleBridge() {
}

private TruffleBridge loadTruffleBridge() {
/*
* It's possible to remove Truffle classes from the JRuby distribution, so we provide a sensible
* explanation when the classes are not found.
*/

final Class<?> clazz;

try {
clazz = getJRubyClassLoader().loadClass("org.jruby.truffle.TruffleBridgeImpl");
} catch (Exception e) {
throw new UnsupportedOperationException("Support for Truffle has been removed from this distribution", e);
throw new UnsupportedOperationException("Truffle classes not available", e);
}

final TruffleBridge truffleBridge;
@@ -939,7 +934,7 @@ private TruffleBridge loadTruffleBridge() {
Constructor<?> con = clazz.getConstructor(Ruby.class);
truffleBridge = (TruffleBridge) con.newInstance(this);
} catch (Exception e) {
throw new UnsupportedOperationException("Error while calling the constructor of Truffle Bridge", e);
throw new UnsupportedOperationException("Error while calling the constructor of TruffleBridgeImpl", e);
}

truffleBridge.init();
1 change: 1 addition & 0 deletions core/src/main/java/org/jruby/TruffleBridge.java
Original file line number Diff line number Diff line change
@@ -10,6 +10,7 @@
package org.jruby;

import org.jruby.runtime.builtin.IRubyObject;
import org.jruby.util.ByteList;

public interface TruffleBridge {

98 changes: 23 additions & 75 deletions core/src/main/java/org/jruby/util/Pack.java
Original file line number Diff line number Diff line change
@@ -76,7 +76,6 @@ public class Pack {
private static final String PACK_IGNORE_NULL_CODES = "cCiIlLnNqQsSvV";
private static final String PACK_IGNORE_NULL_CODES_WITH_MODIFIERS = "lLsS";
private static final String sTooFew = "too few arguments";
private static final byte[] hex_table;
private static final byte[] uu_table;
private static final byte[] b64_table;
private static final byte[] sHexDigits;
@@ -103,7 +102,6 @@ private static double obj2dbl(Ruby runtime, IRubyObject o) {
}

static {
hex_table = ByteList.plain("0123456789ABCDEF");
uu_table =
ByteList.plain("`!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_");
b64_table =
@@ -474,6 +472,25 @@ public static ByteList packInt_i(ByteList result, int s) {
return result;
}

public static void encodeUM(Ruby runtime, ByteList lCurElemString, int occurrences, boolean ignoreStar, char type, ByteList result) {
if (occurrences == 0 && type == 'm' && !ignoreStar) {
encodes(runtime, result, lCurElemString.getUnsafeBytes(),
lCurElemString.getBegin(), lCurElemString.length(),
lCurElemString.length(), (byte) type, false);
return;
}

occurrences = occurrences <= 2 ? 45 : occurrences / 3 * 3;
if (lCurElemString.length() == 0) return;

byte[] charsToEncode = lCurElemString.getUnsafeBytes();
for (int i = 0; i < lCurElemString.length(); i += occurrences) {
encodes(runtime, result, charsToEncode,
i + lCurElemString.getBegin(), lCurElemString.length() - i,
occurrences, (byte)type, true);
}
}

/**
* encodes a String in base64 or its uuencode variant.
* appends the result of the encoding in a StringBuffer
@@ -534,61 +551,6 @@ private static ByteList encodes(Ruby runtime, ByteList io2Append,byte[]charsToEn
return io2Append;
}

/**
* encodes a String with the Quoted printable, MIME encoding (see RFC2045).
* appends the result of the encoding in a StringBuffer
* @param io2Append The StringBuffer which should receive the result
* @param i2Encode The String to encode
* @param iLength The max number of characters to encode
* @return the io2Append buffer
**/
private static ByteList qpencode(ByteList io2Append, ByteList i2Encode, int iLength) {
io2Append.ensure(1024);
int lCurLineLength = 0;
int lPrevChar = -1;
byte[] l2Encode = i2Encode.getUnsafeBytes();
try {
int end = i2Encode.getBegin() + i2Encode.getRealSize();
for (int i = i2Encode.getBegin(); i < end; i++) {
int lCurChar = l2Encode[i] & 0xff;
if (lCurChar > 126 || (lCurChar < 32 && lCurChar != '\n' && lCurChar != '\t') || lCurChar == '=') {
io2Append.append('=');
io2Append.append(hex_table[lCurChar >>> 4]);
io2Append.append(hex_table[lCurChar & 0x0f]);
lCurLineLength += 3;
lPrevChar = -1;
} else if (lCurChar == '\n') {
if (lPrevChar == ' ' || lPrevChar == '\t') {
io2Append.append('=');
io2Append.append(lCurChar);
}
io2Append.append(lCurChar);
lCurLineLength = 0;
lPrevChar = lCurChar;
} else {
io2Append.append(lCurChar);
lCurLineLength++;
lPrevChar = lCurChar;
}
if (lCurLineLength > iLength) {
io2Append.append('=');
io2Append.append('\n');
lCurLineLength = 0;
lPrevChar = '\n';
}
}
} catch (ArrayIndexOutOfBoundsException e) {
//normal exit, this should be faster than a test at each iterations for string with more than
//about 40 char
}

if (lCurLineLength > 0) {
io2Append.append('=');
io2Append.append('\n');
}
return io2Append;
}

/**
* Decodes <i>str</i> (which may contain binary data) according to the format
* string, returning an array of each value extracted.
@@ -1995,22 +1957,7 @@ private static RubyString packCommon(Ruby runtime, RubyArray list, ByteList form
IRubyObject from = list.eltInternal(idx++);
if (from == runtime.getNil()) throw runtime.newTypeError(from, "Integer");
lCurElemString = from.convertToString().getByteList();
if (occurrences == 0 && type == 'm' && !ignoreStar) {
encodes(runtime, result, lCurElemString.getUnsafeBytes(),
lCurElemString.getBegin(), lCurElemString.length(),
lCurElemString.length(), (byte)type, false);
break;
}

occurrences = occurrences <= 2 ? 45 : occurrences / 3 * 3;
if (lCurElemString.length() == 0) break;

byte[] charsToEncode = lCurElemString.getUnsafeBytes();
for (int i = 0; i < lCurElemString.length(); i += occurrences) {
encodes(runtime, result, charsToEncode,
i + lCurElemString.getBegin(), lCurElemString.length() - i,
occurrences, (byte)type, true);
}
encodeUM(runtime, lCurElemString, occurrences, ignoreStar, (char) type, result);
}
break;
case 'M' : {
@@ -2023,7 +1970,7 @@ private static RubyString packCommon(Ruby runtime, RubyArray list, ByteList form
occurrences = 72;
}

qpencode(result, lCurElemString, occurrences);
PackUtils.qpencode(result, lCurElemString, occurrences);
}
break;
case 'U' :
@@ -2174,7 +2121,7 @@ private static long decodeIntUnsignedLittleEndian(ByteBuffer encode) {
*/
private static void encodeIntLittleEndian(ByteList result, int s) {
result.append((byte) (s & 0xff)).append((byte) ((s >> 8) & 0xff));
result.append((byte) ((s>>16) & 0xff)).append((byte) ((s>>24) &0xff));
result.append((byte) ((s>>16) & 0xff)).append((byte) ((s >> 24) & 0xff));
}

/**
@@ -2380,4 +2327,5 @@ private static void encodeShortLittleEndian(ByteList result, int s) {
private static void encodeShortBigEndian(ByteList result, int s) {
result.append((byte) ((s & 0xff00) >> 8)).append((byte) (s & 0xff));
}

}
100 changes: 100 additions & 0 deletions core/src/main/java/org/jruby/util/PackUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
/***** BEGIN LICENSE BLOCK *****
* Version: EPL 1.0/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Eclipse Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.eclipse.org/legal/epl-v10.html
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* Copyright (C) 2002-2004 Jan Arne Petersen <jpetersen@uni-bonn.de>
* Copyright (C) 2002-2004 Anders Bengtsson <ndrsbngtssn@yahoo.se>
* Copyright (C) 2003-2004 Thomas E Enebo <enebo@acm.org>
* Copyright (C) 2004 Charles O Nutter <headius@headius.com>
* Copyright (C) 2004 Stefan Matthias Aust <sma@3plus4.de>
* Copyright (C) 2005 Derek Berner <derek.berner@state.nm.us>
* Copyright (C) 2006 Evan Buswell <ebuswell@gmail.com>
* Copyright (C) 2007 Nick Sieger <nicksieger@gmail.com>
* Copyright (C) 2009 Joseph LaFata <joe@quibb.org>
*
* 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"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the EPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the EPL, the GPL or the LGPL.
***** END LICENSE BLOCK *****/
package org.jruby.util;

public class PackUtils {

private static final byte[] hex_table;

static {
hex_table = ByteList.plain("0123456789ABCDEF");
}

/**
* encodes a String with the Quoted printable, MIME encoding (see RFC2045).
* appends the result of the encoding in a StringBuffer
* @param io2Append The StringBuffer which should receive the result
* @param i2Encode The String to encode
* @param iLength The max number of characters to encode
* @return the io2Append buffer
**/
public static ByteList qpencode(ByteList io2Append, ByteList i2Encode, int iLength) {
io2Append.ensure(1024);
int lCurLineLength = 0;
int lPrevChar = -1;
byte[] l2Encode = i2Encode.getUnsafeBytes();
try {
int end = i2Encode.getBegin() + i2Encode.getRealSize();
for (int i = i2Encode.getBegin(); i < end; i++) {
int lCurChar = l2Encode[i] & 0xff;
if (lCurChar > 126 || (lCurChar < 32 && lCurChar != '\n' && lCurChar != '\t') || lCurChar == '=') {
io2Append.append('=');
io2Append.append(hex_table[lCurChar >>> 4]);
io2Append.append(hex_table[lCurChar & 0x0f]);
lCurLineLength += 3;
lPrevChar = -1;
} else if (lCurChar == '\n') {
if (lPrevChar == ' ' || lPrevChar == '\t') {
io2Append.append('=');
io2Append.append(lCurChar);
}
io2Append.append(lCurChar);
lCurLineLength = 0;
lPrevChar = lCurChar;
} else {
io2Append.append(lCurChar);
lCurLineLength++;
lPrevChar = lCurChar;
}
if (lCurLineLength > iLength) {
io2Append.append('=');
io2Append.append('\n');
lCurLineLength = 0;
lPrevChar = '\n';
}
}
} catch (ArrayIndexOutOfBoundsException e) {
//normal exit, this should be faster than a test at each iterations for string with more than
//about 40 char
}

if (lCurLineLength > 0) {
io2Append.append('=');
io2Append.append('\n');
}
return io2Append;
}
}
8 changes: 0 additions & 8 deletions spec/truffle/tags/core/array/pack/c_tags.txt

This file was deleted.

20 changes: 0 additions & 20 deletions spec/truffle/tags/core/array/pack/i_tags.txt

This file was deleted.

Loading