ruby-internal 0.7.3 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (254) hide show
  1. data/bin/ruby-internal-node-dump +1 -1
  2. data/bin/ruby-internal-obfuscate +1 -1
  3. data/ext/cached/ruby-1.8.4/internal/method/{method.h → internal_method.h} +12 -0
  4. data/ext/cached/ruby-1.8.4/internal/module/getcfp.h +13 -0
  5. data/ext/cached/ruby-1.8.4/internal/node/global_entry.h +94 -0
  6. data/ext/cached/ruby-1.8.4/internal/node/node_type_descrip.c +41 -41
  7. data/ext/cached/ruby-1.8.4/internal/node/nodeinfo.c +288 -273
  8. data/ext/cached/ruby-1.8.4/internal/vm/instruction/insns_info.c +3 -0
  9. data/ext/cached/ruby-1.8.4/internal/vm/iseq/iseq_load.inc +21 -2
  10. data/ext/cached/{ruby-1.8.3/internal/method/method.h → ruby-1.8.5/internal/method/internal_method.h} +12 -0
  11. data/ext/cached/ruby-1.8.5/internal/module/getcfp.h +13 -0
  12. data/ext/cached/ruby-1.8.5/internal/node/global_entry.h +94 -0
  13. data/ext/cached/ruby-1.8.5/internal/node/node_type_descrip.c +45 -45
  14. data/ext/cached/ruby-1.8.5/internal/node/nodeinfo.c +310 -295
  15. data/ext/cached/ruby-1.8.5/internal/vm/instruction/insns_info.c +3 -0
  16. data/ext/cached/ruby-1.8.5/internal/vm/iseq/iseq_load.inc +21 -2
  17. data/ext/cached/{ruby-1.8.5/internal/method/method.h → ruby-1.8.6/internal/method/internal_method.h} +12 -0
  18. data/ext/cached/ruby-1.8.6/internal/module/getcfp.h +13 -0
  19. data/ext/cached/ruby-1.8.6/internal/node/global_entry.h +94 -0
  20. data/ext/cached/ruby-1.8.6/internal/node/node_type_descrip.c +48 -48
  21. data/ext/cached/ruby-1.8.6/internal/node/nodeinfo.c +323 -308
  22. data/ext/cached/ruby-1.8.6/internal/vm/instruction/insns_info.c +3 -0
  23. data/ext/cached/ruby-1.8.6/internal/vm/iseq/iseq_load.inc +21 -2
  24. data/ext/cached/{ruby-1.8.6/internal/method/method.h → ruby-1.8.7/internal/method/internal_method.h} +12 -0
  25. data/ext/cached/ruby-1.8.7/internal/module/getcfp.h +13 -0
  26. data/ext/cached/ruby-1.8.7/internal/node/global_entry.h +98 -0
  27. data/ext/cached/ruby-1.8.7/internal/node/node_type_descrip.c +42 -42
  28. data/ext/cached/ruby-1.8.7/internal/node/nodeinfo.c +276 -261
  29. data/ext/cached/ruby-1.8.7/internal/vm/instruction/insns_info.c +3 -0
  30. data/ext/cached/ruby-1.8.7/internal/vm/iseq/iseq_load.inc +21 -2
  31. data/ext/cached/{ruby-1.9.0/internal/method/method.h → ruby-1.9.1/internal/method/internal_method.h} +12 -0
  32. data/ext/cached/ruby-1.9.1/internal/module/classpath.c +12 -14
  33. data/ext/cached/ruby-1.9.1/internal/module/getcfp.h +25 -0
  34. data/ext/cached/ruby-1.9.1/internal/node/global_entry.h +86 -0
  35. data/ext/cached/ruby-1.9.1/internal/node/node_type_descrip.c +46 -48
  36. data/ext/cached/ruby-1.9.1/internal/node/nodeinfo.c +311 -412
  37. data/ext/cached/ruby-1.9.1/internal/vm/instruction/insns_info.c +3 -0
  38. data/ext/cached/ruby-1.9.1/internal/vm/iseq/iseq_load.inc +28 -6
  39. data/ext/cached/ruby-1.9.1/internal/yarv-headers/iseq.h +1 -0
  40. data/ext/cached/ruby-1.9.1/internal/yarv-headers/parse.h +6 -6
  41. data/ext/cached/ruby-1.9.1/internal/yarv-headers/revision.h +1 -1
  42. data/ext/cached/ruby-1.9.1/internal/yarv-headers/version.h +6 -5
  43. data/ext/cached/ruby-1.9.1/internal/yarv-headers/vm_core.h +3 -2
  44. data/ext/cached/ruby-1.9.1/internal/yarv-headers/vm_insnhelper.h +1 -0
  45. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/binding/block.h +0 -0
  46. data/ext/cached/{ruby-1.9.1/internal/method/method.h → ruby-1.9.2/internal/method/internal_method.h} +16 -5
  47. data/ext/cached/ruby-1.9.2/internal/module/classpath.c +40 -0
  48. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/module/classpath.h +0 -0
  49. data/ext/cached/ruby-1.9.2/internal/module/getcfp.h +25 -0
  50. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/block.h +0 -0
  51. data/ext/cached/ruby-1.9.2/internal/node/global_entry.h +93 -0
  52. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/node_type_descrip.c +44 -48
  53. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/nodeinfo.c +291 -439
  54. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/node/nodeinfo.h +0 -0
  55. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/proc/block.h +0 -0
  56. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/tag/tag.h +0 -0
  57. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/vm/instruction/insns_info.c +141 -64
  58. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/vm/instruction/insns_info.h +88 -80
  59. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/vm/iseq/insns_info.inc +77 -70
  60. data/ext/cached/ruby-1.9.2/internal/vm/iseq/iseq_load.inc +426 -0
  61. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/debug.h +1 -1
  62. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/dln.h +3 -3
  63. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/encdb.h +18 -2
  64. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/eval_intern.h +39 -28
  65. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/gc.h +7 -5
  66. data/ext/cached/ruby-1.9.2/internal/yarv-headers/id.h +170 -0
  67. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/iseq.h +20 -10
  68. data/ext/cached/ruby-1.9.2/internal/yarv-headers/method.h +103 -0
  69. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/node.h +14 -47
  70. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/parse.h +31 -148
  71. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/regenc.h +7 -3
  72. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/regint.h +16 -17
  73. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/regparse.h +4 -1
  74. data/ext/cached/ruby-1.9.2/internal/yarv-headers/revision.h +1 -0
  75. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/thread_pthread.h +4 -1
  76. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/thread_win32.h +1 -1
  77. data/ext/cached/ruby-1.9.2/internal/yarv-headers/timev.h +21 -0
  78. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/transcode_data.h +20 -10
  79. data/ext/cached/ruby-1.9.2/internal/yarv-headers/transdb.h +179 -0
  80. data/ext/cached/ruby-1.9.2/internal/yarv-headers/version.h +55 -0
  81. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_core.h +127 -84
  82. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_exec.h +4 -7
  83. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_insnhelper.h +53 -36
  84. data/ext/cached/{ruby-1.9.0 → ruby-1.9.2}/internal/yarv-headers/vm_opts.h +1 -1
  85. data/ext/cached/ruby-1.9.3/internal/binding/block.h +12 -0
  86. data/ext/cached/ruby-1.9.3/internal/method/internal_method.h +32 -0
  87. data/ext/cached/ruby-1.9.3/internal/module/classpath.c +40 -0
  88. data/ext/cached/{ruby-1.8.0 → ruby-1.9.3}/internal/module/classpath.h +5 -2
  89. data/ext/cached/ruby-1.9.3/internal/module/getcfp.h +25 -0
  90. data/ext/cached/ruby-1.9.3/internal/node/block.h +12 -0
  91. data/ext/cached/ruby-1.9.3/internal/node/global_entry.h +93 -0
  92. data/ext/cached/{ruby-1.8.3 → ruby-1.9.3}/internal/node/node_type_descrip.c +48 -57
  93. data/ext/cached/{ruby-1.6.8 → ruby-1.9.3}/internal/node/nodeinfo.c +589 -740
  94. data/ext/cached/{ruby-1.8.0 → ruby-1.9.3}/internal/node/nodeinfo.h +4 -3
  95. data/ext/cached/ruby-1.9.3/internal/proc/block.h +12 -0
  96. data/ext/cached/ruby-1.9.3/internal/tag/tag.h +6 -0
  97. data/ext/cached/ruby-1.9.3/internal/vm/instruction/insns_info.c +6013 -0
  98. data/ext/cached/ruby-1.9.3/internal/vm/instruction/insns_info.h +899 -0
  99. data/ext/cached/ruby-1.9.3/internal/vm/iseq/insns_info.inc +707 -0
  100. data/ext/cached/ruby-1.9.3/internal/vm/iseq/iseq_load.inc +423 -0
  101. data/ext/cached/ruby-1.9.3/internal/yarv-headers/addr2line.h +21 -0
  102. data/ext/cached/ruby-1.9.3/internal/yarv-headers/atomic.h +56 -0
  103. data/ext/cached/ruby-1.9.3/internal/yarv-headers/constant.h +34 -0
  104. data/ext/cached/ruby-1.9.3/internal/yarv-headers/debug.h +41 -0
  105. data/ext/cached/ruby-1.9.3/internal/yarv-headers/dln.h +50 -0
  106. data/ext/cached/ruby-1.9.3/internal/yarv-headers/encdb.h +167 -0
  107. data/ext/cached/ruby-1.9.3/internal/yarv-headers/eval_intern.h +234 -0
  108. data/ext/cached/ruby-1.9.3/internal/yarv-headers/gc.h +98 -0
  109. data/ext/cached/ruby-1.9.3/internal/yarv-headers/id.h +175 -0
  110. data/ext/cached/ruby-1.9.3/internal/yarv-headers/internal.h +232 -0
  111. data/ext/cached/ruby-1.9.3/internal/yarv-headers/iseq.h +125 -0
  112. data/ext/cached/ruby-1.9.3/internal/yarv-headers/method.h +105 -0
  113. data/ext/cached/ruby-1.9.3/internal/yarv-headers/node.h +503 -0
  114. data/ext/cached/ruby-1.9.3/internal/yarv-headers/parse.h +186 -0
  115. data/ext/cached/ruby-1.9.3/internal/yarv-headers/regenc.h +219 -0
  116. data/ext/cached/ruby-1.9.3/internal/yarv-headers/regint.h +850 -0
  117. data/ext/cached/ruby-1.9.3/internal/yarv-headers/regparse.h +362 -0
  118. data/ext/cached/ruby-1.9.3/internal/yarv-headers/revision.h +1 -0
  119. data/ext/cached/ruby-1.9.3/internal/yarv-headers/thread_pthread.h +51 -0
  120. data/ext/cached/ruby-1.9.3/internal/yarv-headers/thread_win32.h +40 -0
  121. data/ext/cached/ruby-1.9.3/internal/yarv-headers/timev.h +21 -0
  122. data/ext/cached/ruby-1.9.3/internal/yarv-headers/transcode_data.h +117 -0
  123. data/ext/cached/ruby-1.9.3/internal/yarv-headers/transdb.h +189 -0
  124. data/ext/cached/ruby-1.9.3/internal/yarv-headers/version.h +52 -0
  125. data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_core.h +756 -0
  126. data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_exec.h +184 -0
  127. data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_insnhelper.h +220 -0
  128. data/ext/cached/ruby-1.9.3/internal/yarv-headers/vm_opts.h +51 -0
  129. data/ext/internal/binding/block.h +20 -0
  130. data/ext/internal/method/internal_method.h +5 -38
  131. data/ext/internal/method/internal_method.h.rpp +0 -7
  132. data/ext/internal/method/method.c +52 -32
  133. data/ext/internal/module/classpath.c +18 -13
  134. data/ext/internal/module/classpath.h +3 -3
  135. data/ext/internal/module/extconf.rb +3 -2
  136. data/ext/internal/module/getcfp.h +13 -0
  137. data/ext/internal/module/getcfp.h.rpp +44 -0
  138. data/ext/internal/module/module.c +58 -21
  139. data/ext/internal/node/block.h +20 -0
  140. data/ext/internal/node/extconf.rb +2 -0
  141. data/ext/internal/node/global_entry.h +69 -13
  142. data/ext/internal/node/global_entry.h.rpp +11 -2
  143. data/ext/internal/node/node.c +30 -3
  144. data/ext/internal/node/node_type_descrip.c +47 -38
  145. data/ext/internal/node/nodeinfo.c +622 -306
  146. data/ext/internal/node/nodeinfo.h +1 -4
  147. data/ext/internal/proc/block.h +20 -0
  148. data/ext/internal/tag/tag.h +10 -0
  149. data/ext/internal/thread/thread.c +9 -3
  150. data/ext/internal/vm/extconf.rb +1 -0
  151. data/ext/internal/vm/instruction/insns_info.c +3 -5974
  152. data/ext/internal/vm/instruction/insns_info.h +0 -878
  153. data/ext/internal/vm/iseq/extconf.rb +1 -0
  154. data/ext/internal/vm/iseq/iseq.c +38 -4
  155. data/ext/internal/vm/iseq/iseq_load.inc.rpp +23 -5
  156. data/ext/internal/vm/vm.c +28 -0
  157. data/lib/internal/classtree.rb +28 -0
  158. data/lib/internal/debug.rb +10 -2
  159. data/lib/internal/method/as_code.rb +25 -0
  160. data/lib/internal/method/as_expression.rb +2 -3
  161. data/lib/internal/method/origin.rb +29 -0
  162. data/lib/internal/method/signature.rb +5 -300
  163. data/lib/internal/method/signature/argument.rb +102 -0
  164. data/lib/internal/method/signature/iseq.rb +52 -0
  165. data/lib/internal/method/signature/node.rb +160 -0
  166. data/lib/internal/method/signature/signature.rb +23 -0
  167. data/lib/internal/proc/as_code.rb +2 -0
  168. data/lib/internal/proc/as_expression.rb +2 -0
  169. data/lib/internal/vm/bytedecoder.rb +5 -5
  170. data/lib/internal/vm/iseq/as_code.rb +2 -2
  171. data/lib/internal/vm/iseq/as_expression.rb +2 -2
  172. data/test/test_dump_method.rb +1 -1
  173. data/test/test_method.rb +21 -3
  174. data/test/test_node.rb +20 -4
  175. metadata +152 -155
  176. data/ext/cached/ruby-1.6.8/internal/binding/block.h +0 -35
  177. data/ext/cached/ruby-1.6.8/internal/method/method.h +0 -19
  178. data/ext/cached/ruby-1.6.8/internal/module/classpath.c +0 -3
  179. data/ext/cached/ruby-1.6.8/internal/module/classpath.h +0 -8
  180. data/ext/cached/ruby-1.6.8/internal/node/block.h +0 -35
  181. data/ext/cached/ruby-1.6.8/internal/node/global_entry.h +0 -15
  182. data/ext/cached/ruby-1.6.8/internal/node/node_type_descrip.c +0 -149
  183. data/ext/cached/ruby-1.6.8/internal/node/nodeinfo.h +0 -69
  184. data/ext/cached/ruby-1.6.8/internal/proc/block.h +0 -35
  185. data/ext/cached/ruby-1.6.8/internal/tag/tag.h +0 -15
  186. data/ext/cached/ruby-1.6.8/internal/vm/instruction/insns_info.c +0 -39
  187. data/ext/cached/ruby-1.6.8/internal/vm/instruction/insns_info.h +0 -21
  188. data/ext/cached/ruby-1.6.8/internal/vm/iseq/insns_info.inc +0 -12
  189. data/ext/cached/ruby-1.6.8/internal/vm/iseq/iseq_load.inc +0 -9
  190. data/ext/cached/ruby-1.8.0/internal/binding/block.h +0 -37
  191. data/ext/cached/ruby-1.8.0/internal/method/method.h +0 -19
  192. data/ext/cached/ruby-1.8.0/internal/module/classpath.c +0 -27
  193. data/ext/cached/ruby-1.8.0/internal/node/block.h +0 -37
  194. data/ext/cached/ruby-1.8.0/internal/node/global_entry.h +0 -10
  195. data/ext/cached/ruby-1.8.0/internal/node/node_type_descrip.c +0 -155
  196. data/ext/cached/ruby-1.8.0/internal/node/nodeinfo.c +0 -5744
  197. data/ext/cached/ruby-1.8.0/internal/proc/block.h +0 -37
  198. data/ext/cached/ruby-1.8.0/internal/tag/tag.h +0 -15
  199. data/ext/cached/ruby-1.8.0/internal/vm/instruction/insns_info.c +0 -39
  200. data/ext/cached/ruby-1.8.0/internal/vm/instruction/insns_info.h +0 -21
  201. data/ext/cached/ruby-1.8.0/internal/vm/iseq/insns_info.inc +0 -12
  202. data/ext/cached/ruby-1.8.0/internal/vm/iseq/iseq_load.inc +0 -9
  203. data/ext/cached/ruby-1.8.1/internal/binding/block.h +0 -31
  204. data/ext/cached/ruby-1.8.1/internal/method/method.h +0 -19
  205. data/ext/cached/ruby-1.8.1/internal/module/classpath.c +0 -27
  206. data/ext/cached/ruby-1.8.1/internal/module/classpath.h +0 -14
  207. data/ext/cached/ruby-1.8.1/internal/node/block.h +0 -31
  208. data/ext/cached/ruby-1.8.1/internal/node/global_entry.h +0 -10
  209. data/ext/cached/ruby-1.8.1/internal/node/node_type_descrip.c +0 -154
  210. data/ext/cached/ruby-1.8.1/internal/node/nodeinfo.c +0 -5736
  211. data/ext/cached/ruby-1.8.1/internal/node/nodeinfo.h +0 -69
  212. data/ext/cached/ruby-1.8.1/internal/proc/block.h +0 -31
  213. data/ext/cached/ruby-1.8.1/internal/tag/tag.h +0 -16
  214. data/ext/cached/ruby-1.8.1/internal/vm/instruction/insns_info.c +0 -39
  215. data/ext/cached/ruby-1.8.1/internal/vm/instruction/insns_info.h +0 -21
  216. data/ext/cached/ruby-1.8.1/internal/vm/iseq/insns_info.inc +0 -12
  217. data/ext/cached/ruby-1.8.1/internal/vm/iseq/iseq_load.inc +0 -9
  218. data/ext/cached/ruby-1.8.2/internal/binding/block.h +0 -32
  219. data/ext/cached/ruby-1.8.2/internal/method/method.h +0 -19
  220. data/ext/cached/ruby-1.8.2/internal/module/classpath.c +0 -45
  221. data/ext/cached/ruby-1.8.2/internal/module/classpath.h +0 -17
  222. data/ext/cached/ruby-1.8.2/internal/node/block.h +0 -32
  223. data/ext/cached/ruby-1.8.2/internal/node/global_entry.h +0 -10
  224. data/ext/cached/ruby-1.8.2/internal/node/node_type_descrip.c +0 -154
  225. data/ext/cached/ruby-1.8.2/internal/node/nodeinfo.c +0 -5736
  226. data/ext/cached/ruby-1.8.2/internal/node/nodeinfo.h +0 -69
  227. data/ext/cached/ruby-1.8.2/internal/proc/block.h +0 -32
  228. data/ext/cached/ruby-1.8.2/internal/tag/tag.h +0 -16
  229. data/ext/cached/ruby-1.8.2/internal/vm/instruction/insns_info.c +0 -39
  230. data/ext/cached/ruby-1.8.2/internal/vm/instruction/insns_info.h +0 -21
  231. data/ext/cached/ruby-1.8.2/internal/vm/iseq/insns_info.inc +0 -12
  232. data/ext/cached/ruby-1.8.2/internal/vm/iseq/iseq_load.inc +0 -9
  233. data/ext/cached/ruby-1.8.3/internal/binding/block.h +0 -32
  234. data/ext/cached/ruby-1.8.3/internal/module/classpath.c +0 -45
  235. data/ext/cached/ruby-1.8.3/internal/module/classpath.h +0 -17
  236. data/ext/cached/ruby-1.8.3/internal/node/block.h +0 -32
  237. data/ext/cached/ruby-1.8.3/internal/node/global_entry.h +0 -10
  238. data/ext/cached/ruby-1.8.3/internal/node/nodeinfo.c +0 -5736
  239. data/ext/cached/ruby-1.8.3/internal/node/nodeinfo.h +0 -69
  240. data/ext/cached/ruby-1.8.3/internal/proc/block.h +0 -32
  241. data/ext/cached/ruby-1.8.3/internal/tag/tag.h +0 -16
  242. data/ext/cached/ruby-1.8.3/internal/vm/instruction/insns_info.c +0 -39
  243. data/ext/cached/ruby-1.8.3/internal/vm/instruction/insns_info.h +0 -21
  244. data/ext/cached/ruby-1.8.3/internal/vm/iseq/insns_info.inc +0 -12
  245. data/ext/cached/ruby-1.8.3/internal/vm/iseq/iseq_load.inc +0 -9
  246. data/ext/cached/ruby-1.8.7/internal/method/method.h +0 -20
  247. data/ext/cached/ruby-1.9.0/internal/module/classpath.c +0 -42
  248. data/ext/cached/ruby-1.9.0/internal/node/global_entry.h +0 -10
  249. data/ext/cached/ruby-1.9.0/internal/vm/iseq/iseq_load.inc +0 -13
  250. data/ext/cached/ruby-1.9.0/internal/yarv-headers/id.h +0 -83
  251. data/ext/cached/ruby-1.9.0/internal/yarv-headers/revision.h +0 -1
  252. data/ext/cached/ruby-1.9.0/internal/yarv-headers/transdb.h +0 -67
  253. data/ext/cached/ruby-1.9.0/internal/yarv-headers/version.h +0 -57
  254. data/ext/internal/module/cfp.h +0 -13
@@ -13,7 +13,7 @@
13
13
 
14
14
  /** -*-c-*-
15
15
  This file contains YARV instructions list.
16
-
16
+
17
17
  ----
18
18
  This file is auto generated by insns2vm.rb
19
19
  DO NOT TOUCH!
@@ -171,47 +171,48 @@ enum ruby_vminsn_type {
171
171
 
172
172
  BIN(opt_length) = 71,
173
173
 
174
- BIN(opt_succ) = 72,
174
+ BIN(opt_size) = 72,
175
175
 
176
- BIN(opt_not) = 73,
176
+ BIN(opt_succ) = 73,
177
177
 
178
- BIN(opt_regexpmatch1) = 74,
178
+ BIN(opt_not) = 74,
179
179
 
180
- BIN(opt_regexpmatch2) = 75,
180
+ BIN(opt_regexpmatch1) = 75,
181
181
 
182
- BIN(opt_call_c_function) = 76,
182
+ BIN(opt_regexpmatch2) = 76,
183
183
 
184
- BIN(bitblt) = 77,
184
+ BIN(opt_call_c_function) = 77,
185
185
 
186
- BIN(answer) = 78,
186
+ BIN(bitblt) = 78,
187
187
 
188
- };
188
+ BIN(answer) = 79,
189
189
 
190
- #define VM_INSTRUCTION_SIZE 79
190
+ VM_INSTRUCTION_SIZE = 80
191
+ };
191
192
 
192
193
  /** -*-c-*-
193
194
  This file contains instruction information for yarv instruction sequence.
194
-
195
+
195
196
  ----
196
197
  This file is auto generated by insns2vm.rb
197
198
  DO NOT TOUCH!
198
-
199
+
199
200
  If you want to fix something, you must edit 'template/insns_info.inc.tmpl'
200
201
  or insns2vm.rb
201
202
  */
202
203
 
203
- #define TS_ISEQ 'S'
204
204
  #define TS_OFFSET 'O'
205
- #define TS_GENTRY 'G'
205
+ #define TS_NUM 'N'
206
+ #define TS_LINDEX 'L'
206
207
  #define TS_DINDEX 'D'
207
- #define TS_VARIABLE '.'
208
- #define TS_CDHASH 'H'
209
- #define TS_IC 'C'
208
+ #define TS_VALUE 'V'
210
209
  #define TS_ID 'I'
211
- #define TS_NUM 'N'
210
+ #define TS_GENTRY 'G'
211
+ #define TS_IC 'C'
212
+ #define TS_CDHASH 'H'
213
+ #define TS_ISEQ 'S'
214
+ #define TS_VARIABLE '.'
212
215
  #define TS_FUNCPTR 'F'
213
- #define TS_VALUE 'V'
214
- #define TS_LINDEX 'L'
215
216
 
216
217
  static const char *const insn_name_info[] = {
217
218
  "nop",
@@ -286,6 +287,7 @@ static const char *const insn_name_info[] = {
286
287
  "opt_aref",
287
288
  "opt_aset",
288
289
  "opt_length",
290
+ "opt_size",
289
291
  "opt_succ",
290
292
  "opt_not",
291
293
  "opt_regexpmatch1",
@@ -304,8 +306,8 @@ static const char *const insn_operand_info[] = {
304
306
  "V",
305
307
  "DN",
306
308
  "DN",
307
- "I",
308
- "I",
309
+ "IC",
310
+ "IC",
309
311
  "I",
310
312
  "I",
311
313
  "I",
@@ -349,27 +351,28 @@ static const char *const insn_operand_info[] = {
349
351
  "O",
350
352
  "O",
351
353
  "O",
352
- "CO",
353
- "CO",
354
- "O",
354
+ "OC",
355
+ "OC",
356
+ "C",
355
357
  "HO",
356
358
  "",
357
- "",
358
- "",
359
- "",
360
- "",
361
- "",
359
+ "C",
360
+ "C",
361
+ "C",
362
+ "C",
363
+ "C",
362
364
  "C",
363
365
  "CC",
364
- "",
365
- "",
366
- "",
367
- "",
368
- "",
369
- "",
370
- "",
371
- "",
372
- "",
366
+ "C",
367
+ "C",
368
+ "C",
369
+ "C",
370
+ "C",
371
+ "C",
372
+ "C",
373
+ "C",
374
+ "C",
375
+ "C",
373
376
  "C",
374
377
  "V",
375
378
  "",
@@ -387,8 +390,8 @@ static const int insn_len_info[] = {
387
390
  2,
388
391
  3,
389
392
  3,
390
- 2,
391
- 2,
393
+ 3,
394
+ 3,
392
395
  2,
393
396
  2,
394
397
  2,
@@ -437,22 +440,23 @@ static const int insn_len_info[] = {
437
440
  2,
438
441
  3,
439
442
  1,
440
- 1,
441
- 1,
442
- 1,
443
- 1,
444
- 1,
443
+ 2,
444
+ 2,
445
+ 2,
446
+ 2,
447
+ 2,
445
448
  2,
446
449
  3,
447
- 1,
448
- 1,
449
- 1,
450
- 1,
451
- 1,
452
- 1,
453
- 1,
454
- 1,
455
- 1,
450
+ 2,
451
+ 2,
452
+ 2,
453
+ 2,
454
+ 2,
455
+ 2,
456
+ 2,
457
+ 2,
458
+ 2,
459
+ 2,
456
460
  2,
457
461
  2,
458
462
  1,
@@ -540,6 +544,7 @@ static const int insn_stack_push_num_info[] = {
540
544
  1,
541
545
  1,
542
546
  1,
547
+ 1,
543
548
  0,
544
549
  1,
545
550
  1,
@@ -617,7 +622,7 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
617
622
  }
618
623
  case BIN(concatstrings):{
619
624
  int inc = 0;
620
- rb_num_t num = FIX2INT(opes[0]);
625
+ int num = FIX2INT(opes[0]);
621
626
  inc += 1 - num;;
622
627
  return depth + inc;
623
628
  }
@@ -626,13 +631,13 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
626
631
  }
627
632
  case BIN(toregexp):{
628
633
  int inc = 0;
629
- rb_num_t cnt = FIX2INT(opes[1]);
634
+ int cnt = FIX2INT(opes[1]);
630
635
  inc += 1 - cnt;;
631
636
  return depth + inc;
632
637
  }
633
638
  case BIN(newarray):{
634
639
  int inc = 0;
635
- rb_num_t num = FIX2INT(opes[0]);
640
+ int num = FIX2INT(opes[0]);
636
641
  inc += 1 - num;;
637
642
  return depth + inc;
638
643
  }
@@ -641,8 +646,8 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
641
646
  }
642
647
  case BIN(expandarray):{
643
648
  int inc = 0;
644
- rb_num_t num = FIX2INT(opes[0]);
645
- rb_num_t flag = FIX2INT(opes[1]);
649
+ int num = FIX2INT(opes[0]);
650
+ int flag = FIX2INT(opes[1]);
646
651
  inc += num - 1 + (flag & 1 ? 1 : 0);;
647
652
  return depth + inc;
648
653
  }
@@ -657,7 +662,7 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
657
662
  }
658
663
  case BIN(newhash):{
659
664
  int inc = 0;
660
- rb_num_t num = FIX2INT(opes[0]);
665
+ int num = FIX2INT(opes[0]);
661
666
  inc += 1 - num;;
662
667
  return depth + inc;
663
668
  }
@@ -672,7 +677,7 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
672
677
  }
673
678
  case BIN(dupn):{
674
679
  int inc = 0;
675
- rb_num_t n = FIX2INT(opes[0]);
680
+ int n = FIX2INT(opes[0]);
676
681
  inc += n;;
677
682
  return depth + inc;
678
683
  }
@@ -696,7 +701,7 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
696
701
  }
697
702
  case BIN(adjuststack):{
698
703
  int inc = 0;
699
- rb_num_t n = FIX2INT(opes[0]);
704
+ int n = FIX2INT(opes[0]);
700
705
  inc -= n;
701
706
  return depth + inc;
702
707
  }
@@ -711,21 +716,21 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
711
716
  }
712
717
  case BIN(send):{
713
718
  int inc = 0;
714
- rb_num_t op_argc = FIX2INT(opes[1]);
715
- rb_num_t op_flag = FIX2INT(opes[3]);
716
- inc += - (op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
719
+ int op_argc = FIX2INT(opes[1]);
720
+ int op_flag = FIX2INT(opes[3]);
721
+ inc += - (int)(op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
717
722
  return depth + inc;
718
723
  }
719
724
  case BIN(invokesuper):{
720
725
  int inc = 0;
721
- rb_num_t op_argc = FIX2INT(opes[0]);
722
- rb_num_t op_flag = FIX2INT(opes[2]);
723
- inc += - (op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
726
+ int op_argc = FIX2INT(opes[0]);
727
+ int op_flag = FIX2INT(opes[2]);
728
+ inc += - (int)(op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
724
729
  return depth + inc;
725
730
  }
726
731
  case BIN(invokeblock):{
727
732
  int inc = 0;
728
- rb_num_t num = FIX2INT(opes[0]);
733
+ int num = FIX2INT(opes[0]);
729
734
  inc += 1 - num;;
730
735
  return depth + inc;
731
736
  }
@@ -809,6 +814,9 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
809
814
  case BIN(opt_length):{
810
815
  return depth + 0;
811
816
  }
817
+ case BIN(opt_size):{
818
+ return depth + 0;
819
+ }
812
820
  case BIN(opt_succ):{
813
821
  return depth + 0;
814
822
  }
@@ -841,29 +849,29 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
841
849
  /* some utilities */
842
850
 
843
851
  static int
844
- insn_len(int insn)
852
+ insn_len(VALUE insn)
845
853
  {
846
- return insn_len_info[insn];
854
+ return insn_len_info[(int)insn];
847
855
  }
848
856
 
849
857
  static const char *
850
- insn_name(int insn)
858
+ insn_name(VALUE insn)
851
859
  {
852
- return insn_name_info[insn];
860
+ return insn_name_info[(int)insn];
853
861
  }
854
862
 
855
863
  static const char *
856
- insn_op_types(int insn)
864
+ insn_op_types(VALUE insn)
857
865
  {
858
- return insn_operand_info[insn];
866
+ return insn_operand_info[(int)insn];
859
867
  }
860
868
 
861
869
  static int
862
- insn_op_type(int insn, int pos)
870
+ insn_op_type(VALUE insn, long pos)
863
871
  {
864
872
  int len = insn_len(insn) - 1;
865
873
  if(pos < len){
866
- return insn_operand_info[insn][pos];
874
+ return insn_operand_info[(int)insn][pos];
867
875
  }
868
876
  else{
869
877
  return 0;
@@ -872,9 +880,9 @@ insn_op_type(int insn, int pos)
872
880
 
873
881
  #ifdef USE_INSN_RET_NUM
874
882
  static int
875
- insn_ret_num(int insn)
883
+ insn_ret_num(VALUE insn)
876
884
  {
877
- return insn_stack_push_num_info[insn];
885
+ return insn_stack_push_num_info[(int)insn];
878
886
  }
879
887
  #endif
880
888
  void
@@ -9,27 +9,27 @@
9
9
 
10
10
  /** -*-c-*-
11
11
  This file contains instruction information for yarv instruction sequence.
12
-
12
+
13
13
  ----
14
14
  This file is auto generated by insns2vm.rb
15
15
  DO NOT TOUCH!
16
-
16
+
17
17
  If you want to fix something, you must edit 'template/insns_info.inc.tmpl'
18
18
  or insns2vm.rb
19
19
  */
20
20
 
21
- #define TS_ISEQ 'S'
22
21
  #define TS_OFFSET 'O'
23
- #define TS_GENTRY 'G'
22
+ #define TS_NUM 'N'
23
+ #define TS_LINDEX 'L'
24
24
  #define TS_DINDEX 'D'
25
- #define TS_VARIABLE '.'
26
- #define TS_CDHASH 'H'
27
- #define TS_IC 'C'
25
+ #define TS_VALUE 'V'
28
26
  #define TS_ID 'I'
29
- #define TS_NUM 'N'
27
+ #define TS_GENTRY 'G'
28
+ #define TS_IC 'C'
29
+ #define TS_CDHASH 'H'
30
+ #define TS_ISEQ 'S'
31
+ #define TS_VARIABLE '.'
30
32
  #define TS_FUNCPTR 'F'
31
- #define TS_VALUE 'V'
32
- #define TS_LINDEX 'L'
33
33
 
34
34
  static const char *const insn_name_info[] = {
35
35
  "nop",
@@ -104,6 +104,7 @@ static const char *const insn_name_info[] = {
104
104
  "opt_aref",
105
105
  "opt_aset",
106
106
  "opt_length",
107
+ "opt_size",
107
108
  "opt_succ",
108
109
  "opt_not",
109
110
  "opt_regexpmatch1",
@@ -122,8 +123,8 @@ static const char *const insn_operand_info[] = {
122
123
  "V",
123
124
  "DN",
124
125
  "DN",
125
- "I",
126
- "I",
126
+ "IC",
127
+ "IC",
127
128
  "I",
128
129
  "I",
129
130
  "I",
@@ -167,27 +168,28 @@ static const char *const insn_operand_info[] = {
167
168
  "O",
168
169
  "O",
169
170
  "O",
170
- "CO",
171
- "CO",
172
- "O",
171
+ "OC",
172
+ "OC",
173
+ "C",
173
174
  "HO",
174
175
  "",
175
- "",
176
- "",
177
- "",
178
- "",
179
- "",
176
+ "C",
177
+ "C",
178
+ "C",
179
+ "C",
180
+ "C",
180
181
  "C",
181
182
  "CC",
182
- "",
183
- "",
184
- "",
185
- "",
186
- "",
187
- "",
188
- "",
189
- "",
190
- "",
183
+ "C",
184
+ "C",
185
+ "C",
186
+ "C",
187
+ "C",
188
+ "C",
189
+ "C",
190
+ "C",
191
+ "C",
192
+ "C",
191
193
  "C",
192
194
  "V",
193
195
  "",
@@ -205,8 +207,8 @@ static const int insn_len_info[] = {
205
207
  2,
206
208
  3,
207
209
  3,
208
- 2,
209
- 2,
210
+ 3,
211
+ 3,
210
212
  2,
211
213
  2,
212
214
  2,
@@ -255,22 +257,23 @@ static const int insn_len_info[] = {
255
257
  2,
256
258
  3,
257
259
  1,
258
- 1,
259
- 1,
260
- 1,
261
- 1,
262
- 1,
260
+ 2,
261
+ 2,
262
+ 2,
263
+ 2,
264
+ 2,
263
265
  2,
264
266
  3,
265
- 1,
266
- 1,
267
- 1,
268
- 1,
269
- 1,
270
- 1,
271
- 1,
272
- 1,
273
- 1,
267
+ 2,
268
+ 2,
269
+ 2,
270
+ 2,
271
+ 2,
272
+ 2,
273
+ 2,
274
+ 2,
275
+ 2,
276
+ 2,
274
277
  2,
275
278
  2,
276
279
  1,
@@ -358,6 +361,7 @@ static const int insn_stack_push_num_info[] = {
358
361
  1,
359
362
  1,
360
363
  1,
364
+ 1,
361
365
  0,
362
366
  1,
363
367
  1,
@@ -435,7 +439,7 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
435
439
  }
436
440
  case BIN(concatstrings):{
437
441
  int inc = 0;
438
- rb_num_t num = FIX2INT(opes[0]);
442
+ int num = FIX2INT(opes[0]);
439
443
  inc += 1 - num;;
440
444
  return depth + inc;
441
445
  }
@@ -444,13 +448,13 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
444
448
  }
445
449
  case BIN(toregexp):{
446
450
  int inc = 0;
447
- rb_num_t cnt = FIX2INT(opes[1]);
451
+ int cnt = FIX2INT(opes[1]);
448
452
  inc += 1 - cnt;;
449
453
  return depth + inc;
450
454
  }
451
455
  case BIN(newarray):{
452
456
  int inc = 0;
453
- rb_num_t num = FIX2INT(opes[0]);
457
+ int num = FIX2INT(opes[0]);
454
458
  inc += 1 - num;;
455
459
  return depth + inc;
456
460
  }
@@ -459,8 +463,8 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
459
463
  }
460
464
  case BIN(expandarray):{
461
465
  int inc = 0;
462
- rb_num_t num = FIX2INT(opes[0]);
463
- rb_num_t flag = FIX2INT(opes[1]);
466
+ int num = FIX2INT(opes[0]);
467
+ int flag = FIX2INT(opes[1]);
464
468
  inc += num - 1 + (flag & 1 ? 1 : 0);;
465
469
  return depth + inc;
466
470
  }
@@ -475,7 +479,7 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
475
479
  }
476
480
  case BIN(newhash):{
477
481
  int inc = 0;
478
- rb_num_t num = FIX2INT(opes[0]);
482
+ int num = FIX2INT(opes[0]);
479
483
  inc += 1 - num;;
480
484
  return depth + inc;
481
485
  }
@@ -490,7 +494,7 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
490
494
  }
491
495
  case BIN(dupn):{
492
496
  int inc = 0;
493
- rb_num_t n = FIX2INT(opes[0]);
497
+ int n = FIX2INT(opes[0]);
494
498
  inc += n;;
495
499
  return depth + inc;
496
500
  }
@@ -514,7 +518,7 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
514
518
  }
515
519
  case BIN(adjuststack):{
516
520
  int inc = 0;
517
- rb_num_t n = FIX2INT(opes[0]);
521
+ int n = FIX2INT(opes[0]);
518
522
  inc -= n;
519
523
  return depth + inc;
520
524
  }
@@ -529,21 +533,21 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
529
533
  }
530
534
  case BIN(send):{
531
535
  int inc = 0;
532
- rb_num_t op_argc = FIX2INT(opes[1]);
533
- rb_num_t op_flag = FIX2INT(opes[3]);
534
- inc += - (op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
536
+ int op_argc = FIX2INT(opes[1]);
537
+ int op_flag = FIX2INT(opes[3]);
538
+ inc += - (int)(op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
535
539
  return depth + inc;
536
540
  }
537
541
  case BIN(invokesuper):{
538
542
  int inc = 0;
539
- rb_num_t op_argc = FIX2INT(opes[0]);
540
- rb_num_t op_flag = FIX2INT(opes[2]);
541
- inc += - (op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
543
+ int op_argc = FIX2INT(opes[0]);
544
+ int op_flag = FIX2INT(opes[2]);
545
+ inc += - (int)(op_argc + ((op_flag & VM_CALL_ARGS_BLOCKARG_BIT) ? 1 : 0));;
542
546
  return depth + inc;
543
547
  }
544
548
  case BIN(invokeblock):{
545
549
  int inc = 0;
546
- rb_num_t num = FIX2INT(opes[0]);
550
+ int num = FIX2INT(opes[0]);
547
551
  inc += 1 - num;;
548
552
  return depth + inc;
549
553
  }
@@ -627,6 +631,9 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
627
631
  case BIN(opt_length):{
628
632
  return depth + 0;
629
633
  }
634
+ case BIN(opt_size):{
635
+ return depth + 0;
636
+ }
630
637
  case BIN(opt_succ):{
631
638
  return depth + 0;
632
639
  }
@@ -659,29 +666,29 @@ insn_stack_increase(int depth, int insn, VALUE *opes)
659
666
  /* some utilities */
660
667
 
661
668
  static int
662
- insn_len(int insn)
669
+ insn_len(VALUE insn)
663
670
  {
664
- return insn_len_info[insn];
671
+ return insn_len_info[(int)insn];
665
672
  }
666
673
 
667
674
  static const char *
668
- insn_name(int insn)
675
+ insn_name(VALUE insn)
669
676
  {
670
- return insn_name_info[insn];
677
+ return insn_name_info[(int)insn];
671
678
  }
672
679
 
673
680
  static const char *
674
- insn_op_types(int insn)
681
+ insn_op_types(VALUE insn)
675
682
  {
676
- return insn_operand_info[insn];
683
+ return insn_operand_info[(int)insn];
677
684
  }
678
685
 
679
686
  static int
680
- insn_op_type(int insn, int pos)
687
+ insn_op_type(VALUE insn, long pos)
681
688
  {
682
689
  int len = insn_len(insn) - 1;
683
690
  if(pos < len){
684
- return insn_operand_info[insn][pos];
691
+ return insn_operand_info[(int)insn][pos];
685
692
  }
686
693
  else{
687
694
  return 0;
@@ -690,9 +697,9 @@ insn_op_type(int insn, int pos)
690
697
 
691
698
  #ifdef USE_INSN_RET_NUM
692
699
  static int
693
- insn_ret_num(int insn)
700
+ insn_ret_num(VALUE insn)
694
701
  {
695
- return insn_stack_push_num_info[insn];
702
+ return insn_stack_push_num_info[(int)insn];
696
703
  }
697
704
  #endif
698
705