ruby-internal 0.7.3 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -2,6 +2,9 @@
2
2
 
3
3
  #ifdef RUBY_VM
4
4
 
5
+ #include "iseq.h"
6
+ #include "vm_core.h"
7
+
5
8
  static rb_compile_option_t COMPILE_OPTION_DEFAULT = {
6
9
  OPT_INLINE_CONST_CACHE, /* int inline_const_cache; */
7
10
  OPT_PEEPHOLE_OPTIMIZATION, /* int peephole_optimization; */
@@ -1,9 +1,28 @@
1
1
  #ifndef ruby_internal_iseq_load__inc_
2
2
  #define ruby_internal_iseq_load__inc_
3
3
 
4
- #include "internal/yarv-headers/gc.h"
5
- #include "internal/yarv-headers/iseq.h"
4
+ #ifdef HAVE_TYPE_STRUCT_RTYPEDDATA
6
5
 
6
+ static rb_data_type_t const * p_iseq_data_type;
7
+
8
+ static void init_iseq_data_type()
9
+ {
10
+ rb_proc_t * p;
11
+ VALUE body;
12
+
13
+ VALUE binding = rb_binding_new();
14
+ VALUE new_proc = rb_funcall(
15
+ rb_cObject, rb_intern("eval"), 2, rb_str_new2("proc { }"), binding);
16
+ GetProcPtr(new_proc, p);
17
+ body = p->block.iseq->self;
18
+
19
+ p_iseq_data_type = RTYPEDDATA_TYPE(body);
20
+ }
21
+
22
+ #else
23
+
24
+ #endif
25
+ #
7
26
  static void
8
27
  compile_data_free(struct iseq_compile_data *compile_data)
9
28
  {
@@ -124,7 +143,7 @@ set_relation(rb_iseq_t *iseq, const VALUE parent)
124
143
  }
125
144
  static VALUE
126
145
  prepare_iseq_build(rb_iseq_t *iseq,
127
- VALUE name, VALUE filename,
146
+ VALUE name, VALUE filename, VALUE line_no,
128
147
  VALUE parent, VALUE type, VALUE block_opt,
129
148
  const rb_compile_option_t *option)
130
149
  {
@@ -133,6 +152,7 @@ prepare_iseq_build(rb_iseq_t *iseq,
133
152
 
134
153
  iseq->name = name;
135
154
  iseq->filename = filename;
155
+ iseq->line_no = line_no;
136
156
  iseq->defined_method_id = 0;
137
157
  iseq->mark_ary = rb_ary_new();
138
158
  RBASIC(iseq->mark_ary)->klass = 0;
@@ -166,6 +186,7 @@ prepare_iseq_build(rb_iseq_t *iseq,
166
186
  iseq->compile_data->storage_head->buff =
167
187
  (char *)(&iseq->compile_data->storage_head->buff + 1);
168
188
  iseq->compile_data->option = option;
189
+ iseq->compile_data->last_coverable_line = -1;
169
190
 
170
191
  set_relation(iseq, parent);
171
192
 
@@ -278,7 +299,7 @@ iseq_load(VALUE self, VALUE data, VALUE parent, VALUE opt)
278
299
  VALUE iseqval = iseq_alloc(self);
279
300
 
280
301
  VALUE magic, version1, version2, format_type, misc;
281
- VALUE name, filename;
302
+ VALUE name, filename, line_no;
282
303
  VALUE type, body, locals, args, exception;
283
304
 
284
305
  VALUE iseq_type;
@@ -288,7 +309,7 @@ iseq_load(VALUE self, VALUE data, VALUE parent, VALUE opt)
288
309
  int i = 0;
289
310
 
290
311
  /* [magic, major_version, minor_version, format_type, misc,
291
- * name, filename,
312
+ * name, filename, line_no,
292
313
  * type, locals, args, exception_table, body]
293
314
  */
294
315
 
@@ -302,6 +323,7 @@ iseq_load(VALUE self, VALUE data, VALUE parent, VALUE opt)
302
323
 
303
324
  name = CHECK_STRING(rb_ary_entry(data, i++));
304
325
  filename = CHECK_STRING(rb_ary_entry(data, i++));
326
+ line_no = CHECK_INTEGER(rb_ary_entry(data, i++));
305
327
 
306
328
  type = CHECK_SYMBOL(rb_ary_entry(data, i++));
307
329
  locals = CHECK_ARRAY(rb_ary_entry(data, i++));
@@ -343,7 +365,7 @@ iseq_load(VALUE self, VALUE data, VALUE parent, VALUE opt)
343
365
  }
344
366
 
345
367
  make_compile_option(&option, opt);
346
- prepare_iseq_build(iseq, name, filename,
368
+ prepare_iseq_build(iseq, name, filename, line_no,
347
369
  parent, iseq_type, 0, &option);
348
370
 
349
371
  rb_iseq_build_from_ary(iseq, locals, args, exception, body);
@@ -82,6 +82,7 @@ struct iseq_compile_data {
82
82
  struct iseq_compile_data_storage *storage_head;
83
83
  struct iseq_compile_data_storage *storage_current;
84
84
  int last_line;
85
+ int last_coverable_line;
85
86
  int flip_cnt;
86
87
  int label_no;
87
88
  int node_level;
@@ -1,10 +1,9 @@
1
-
2
- /* A Bison parser, made by GNU Bison 2.4.1. */
1
+ /* A Bison parser, made by GNU Bison 2.4.3. */
3
2
 
4
3
  /* Skeleton interface for Bison's Yacc-like parsers in C
5
4
 
6
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
7
- Free Software Foundation, Inc.
5
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
6
+ 2009, 2010 Free Software Foundation, Inc.
8
7
 
9
8
  This program is free software: you can redistribute it and/or modify
10
9
  it under the terms of the GNU General Public License as published by
@@ -167,16 +166,17 @@
167
166
  typedef union YYSTYPE
168
167
  {
169
168
 
170
- /* Line 1676 of yacc.c */
169
+ /* Line 1685 of yacc.c */
171
170
 
172
171
  VALUE val;
173
172
  NODE *node;
174
173
  ID id;
175
174
  int num;
175
+ const struct vtable *vars;
176
176
 
177
177
 
178
178
 
179
- /* Line 1676 of yacc.c */
179
+ /* Line 1685 of yacc.c */
180
180
  } YYSTYPE;
181
181
  # define YYSTYPE_IS_TRIVIAL 1
182
182
  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
@@ -1 +1 @@
1
- #define RUBY_REVISION 24175
1
+ #define RUBY_REVISION 30908
@@ -1,12 +1,13 @@
1
1
  #define RUBY_VERSION "1.9.1"
2
- #define RUBY_RELEASE_DATE "2009-07-16"
3
- #define RUBY_PATCHLEVEL 243
2
+ #define RUBY_PATCHLEVEL 431
4
3
  #define RUBY_VERSION_MAJOR 1
5
4
  #define RUBY_VERSION_MINOR 9
6
5
  #define RUBY_VERSION_TEENY 1
7
- #define RUBY_RELEASE_YEAR 2009
8
- #define RUBY_RELEASE_MONTH 7
9
- #define RUBY_RELEASE_DAY 12
6
+
7
+ #define RUBY_RELEASE_YEAR 2011
8
+ #define RUBY_RELEASE_MONTH 2
9
+ #define RUBY_RELEASE_DAY 18
10
+ #define RUBY_RELEASE_DATE "2011-02-18"
10
11
 
11
12
  #ifdef RUBY_EXTERN
12
13
  RUBY_EXTERN const char ruby_version[];
@@ -132,6 +132,7 @@ struct rb_iseq_struct {
132
132
  unsigned long iseq_size;
133
133
  VALUE mark_ary; /* Array: includes operands which should be GC marked */
134
134
  VALUE coverage; /* coverage array */
135
+ unsigned short line_no;
135
136
 
136
137
  /* insn info, must be freed */
137
138
  struct iseq_insn_info_entry *insn_info_table;
@@ -433,8 +434,8 @@ typedef struct rb_thread_struct
433
434
  VALUE rb_iseq_new(NODE*, VALUE, VALUE, VALUE, VALUE);
434
435
  VALUE rb_iseq_new_top(NODE *node, VALUE name, VALUE filename, VALUE parent);
435
436
  VALUE rb_iseq_new_main(NODE *node, VALUE filename);
436
- VALUE rb_iseq_new_with_bopt(NODE*, VALUE, VALUE, VALUE, VALUE, VALUE);
437
- VALUE rb_iseq_new_with_opt(NODE*, VALUE, VALUE, VALUE, VALUE, const rb_compile_option_t*);
437
+ VALUE rb_iseq_new_with_bopt(NODE*, VALUE, VALUE, VALUE, VALUE, VALUE, VALUE);
438
+ VALUE rb_iseq_new_with_opt(NODE*, VALUE, VALUE, VALUE, VALUE, VALUE, const rb_compile_option_t*);
438
439
  VALUE rb_iseq_compile(VALUE src, VALUE file, VALUE line);
439
440
  VALUE rb_iseq_disasm(VALUE self);
440
441
  VALUE rb_iseq_disasm_insn(VALUE str, VALUE *iseqval, int pos, rb_iseq_t *iseq, VALUE child);
@@ -41,6 +41,7 @@ enum {
41
41
  BOP_DIV,
42
42
  BOP_MOD,
43
43
  BOP_EQ,
44
+ BOP_EQQ,
44
45
  BOP_LT,
45
46
  BOP_LE,
46
47
  BOP_LTLT,
@@ -3,17 +3,28 @@
3
3
 
4
4
  #include <ruby.h>
5
5
 
6
+ #ifdef RUBY_VM
7
+ #include "method.h"
8
+ #endif
9
+
6
10
  #include "internal/node/ruby_internal_node.h"
7
11
 
12
+ #ifndef FALSE
13
+ #define FALSE 0
14
+ #endif
15
+
16
+ #ifndef TRUE
17
+ #define TRUE (!FALSE)
18
+ #endif
19
+
8
20
  struct METHOD {
9
- VALUE oclass; /* class that holds the method */
10
- VALUE rclass; /* class of the receiver */
11
21
  VALUE recv;
12
- ID id, oid;
13
- NODE *body;
22
+ VALUE rclass;
23
+ ID id;
24
+ rb_method_entry_t me;
14
25
  };
15
26
 
16
- #define METHOD_OCLASS(m) m->oclass
27
+ #define METHOD_OCLASS(m) m->klass
17
28
  #define METHOD_RCLASS(m) m->rclass
18
29
 
19
30
  #endif
@@ -0,0 +1,40 @@
1
+ #include "classpath.h"
2
+
3
+ VALUE
4
+ class2path(VALUE klass)
5
+ {
6
+ VALUE path = rb_class_path(klass);
7
+ const char *n;
8
+
9
+ n = must_not_be_anonymous((TYPE(klass) == T_CLASS ? "class" : "module"), path);
10
+ if (rb_path_to_class(path) != rb_class_real(klass)) {
11
+ rb_raise(rb_eTypeError, "%s can't be referred to", n);
12
+ }
13
+ return path;
14
+ }
15
+
16
+ VALUE
17
+ path2class(VALUE path)
18
+ {
19
+ VALUE v = rb_path_to_class(path);
20
+
21
+ if (TYPE(v) != T_CLASS) {
22
+ rb_raise(rb_eArgError, "%.*s does not refer to class",
23
+ (int)RSTRING_LEN(path), RSTRING_PTR(path));
24
+ }
25
+ return v;
26
+ }
27
+
28
+ VALUE
29
+ path2module(VALUE path)
30
+ {
31
+ VALUE v = rb_path_to_class(path);
32
+
33
+ if (TYPE(v) != T_MODULE) {
34
+ rb_raise(rb_eArgError, "%.*s does not refer to module",
35
+ (int)RSTRING_LEN(path), RSTRING_PTR(path));
36
+ }
37
+ return v;
38
+ }
39
+
40
+
@@ -0,0 +1,25 @@
1
+ #ifndef getcfp__h
2
+ #define getcfp__h
3
+
4
+ #include "ruby.h"
5
+
6
+ #ifdef RUBY_VM
7
+
8
+ #include "vm_core.h"
9
+
10
+ static rb_control_frame_t *
11
+ getcfp(rb_thread_t *th, rb_control_frame_t *cfp)
12
+ {
13
+ while (!RUBY_VM_CONTROL_FRAME_STACK_OVERFLOW_P(th, cfp)) {
14
+ if (RUBY_VM_NORMAL_ISEQ_P(cfp->iseq)) {
15
+ return cfp;
16
+ }
17
+ cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);
18
+ }
19
+ return 0;
20
+ }
21
+
22
+
23
+ #endif
24
+
25
+ #endif
@@ -0,0 +1,93 @@
1
+ #ifndef global_entry__h_
2
+ #define global_entry__h_
3
+
4
+ st_table * rb_global_tbl;
5
+
6
+ #define global_entry rb_global_entry
7
+ #define gvar_getter_t rb_gvar_getter_t
8
+ #define gvar_setter_t rb_gvar_setter_t
9
+ #define gvar_marker_t rb_gvar_marker_t
10
+ struct trace_var {
11
+ int removed;
12
+ void (*func)(VALUE arg, VALUE val);
13
+ VALUE data;
14
+ struct trace_var *next;
15
+ };
16
+ struct global_variable {
17
+ int counter;
18
+ void *data;
19
+ gvar_getter_t *getter;
20
+ gvar_setter_t *setter;
21
+ gvar_marker_t *marker;
22
+ int block_trace;
23
+ struct trace_var *trace;
24
+ };
25
+ #define undef_getter rb_gvar_undef_getter
26
+ #define undef_setter rb_gvar_undef_setter
27
+ #define undef_marker rb_gvar_undef_marker
28
+ struct global_entry*
29
+ rb_global_entry(ID id)
30
+ {
31
+ struct global_entry *entry;
32
+ st_data_t data;
33
+
34
+ if (!st_lookup(rb_global_tbl, (st_data_t)id, &data)) {
35
+ struct global_variable *var;
36
+ entry = ALLOC(struct global_entry);
37
+ var = ALLOC(struct global_variable);
38
+ entry->id = id;
39
+ entry->var = var;
40
+ var->counter = 1;
41
+ var->data = 0;
42
+ var->getter = undef_getter;
43
+ var->setter = undef_setter;
44
+ var->marker = undef_marker;
45
+
46
+ var->block_trace = 0;
47
+ var->trace = 0;
48
+ st_add_direct(rb_global_tbl, id, (st_data_t)entry);
49
+ }
50
+ else {
51
+ entry = (struct global_entry *)data;
52
+ }
53
+ return entry;
54
+ }
55
+ VALUE
56
+ undef_getter(ID id, void *data, struct global_variable *var)
57
+ {
58
+ rb_warning("global variable `%s' not initialized", rb_id2name(id));
59
+
60
+ return Qnil;
61
+ }
62
+ void
63
+ undef_setter(VALUE val, ID id, void *data, struct global_variable *var)
64
+ {
65
+ var->getter = val_getter;
66
+ var->setter = val_setter;
67
+ var->marker = val_marker;
68
+
69
+ var->data = (void*)val;
70
+ }
71
+ void
72
+ undef_marker(VALUE *var)
73
+ {
74
+ }
75
+ VALUE
76
+ val_getter(ID id, void *data, struct global_variable *var)
77
+ {
78
+ return (VALUE)data;
79
+ }
80
+ void
81
+ val_setter(VALUE val, ID id, void *data, struct global_variable *var)
82
+ {
83
+ var->data = (void*)val;
84
+ }
85
+ void
86
+ val_marker(VALUE *var)
87
+ {
88
+ VALUE data = (VALUE)var;
89
+ if (data) rb_gc_mark_maybe(data);
90
+ }
91
+
92
+ #endif
93
+
@@ -2,30 +2,28 @@
2
2
  #include "version.h"
3
3
 
4
4
  Node_Type_Descrip node_type_descrips_unsorted[] = {
5
- { NODE_ALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "ALIAS" },
5
+ { NODE_ALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "ALIAS" },
6
6
  #ifdef HAVE_NODE_ALLOCA
7
- { NODE_ALLOCA, NEN_CFNC, NEN_VALUE, NEN_CNT, "ALLOCA" },
7
+ { NODE_ALLOCA, NEN_CFNC, NEN_CNT, NEN_VALUE, "ALLOCA" },
8
8
  #endif
9
- { NODE_AND, NEN_1ST, NEN_2ND, NEN_NONE, "AND" },
10
- { NODE_ARGS, NEN_REST, NEN_OPT, NEN_CNT, "ARGS" },
11
- { NODE_ARGSCAT, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSCAT" },
12
- { NODE_ARGSPUSH, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSPUSH" },
13
- { NODE_ARRAY, NEN_HEAD, NEN_ALEN, NEN_NEXT, "ARRAY" },
14
- { NODE_ATTRASGN, NEN_ARGS, NEN_MID, NEN_RECV, "ATTRASGN" },
15
- { NODE_ATTRSET, NEN_VID, NEN_NONE, NEN_NONE, "ATTRSET" },
9
+ { NODE_AND, NEN_2ND, NEN_1ST, NEN_NONE, "AND" },
10
+ { NODE_ARGS, NEN_CNT, NEN_REST, NEN_OPT, "ARGS" },
11
+ { NODE_ARGSCAT, NEN_BODY, NEN_HEAD, NEN_NONE, "ARGSCAT" },
12
+ { NODE_ARGSPUSH, NEN_BODY, NEN_HEAD, NEN_NONE, "ARGSPUSH" },
13
+ { NODE_ARRAY, NEN_ALEN, NEN_NEXT, NEN_HEAD, "ARRAY" },
14
+ { NODE_ATTRASGN, NEN_RECV, NEN_MID, NEN_ARGS, "ATTRASGN" },
16
15
  { NODE_BACK_REF, NEN_NTH, NEN_CNT, NEN_NONE, "BACK_REF" },
17
16
  { NODE_BEGIN, NEN_BODY, NEN_NONE, NEN_NONE, "BEGIN" },
18
- { NODE_BLOCK, NEN_HEAD, NEN_NEXT, NEN_NONE, "BLOCK" },
17
+ { NODE_BLOCK, NEN_NEXT, NEN_HEAD, NEN_NONE, "BLOCK" },
19
18
  { NODE_BLOCK_ARG, NEN_CNT, NEN_NONE, NEN_NONE, "BLOCK_ARG" },
20
19
  { NODE_BLOCK_PASS, NEN_BODY, NEN_ITER, NEN_NONE, "BLOCK_PASS" },
21
20
  { NODE_BMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "BMETHOD" },
22
21
  { NODE_BREAK, NEN_STTS, NEN_NONE, NEN_NONE, "BREAK" },
23
- { NODE_CALL, NEN_ARGS, NEN_MID, NEN_RECV, "CALL" },
24
- { NODE_CASE, NEN_HEAD, NEN_BODY, NEN_NEXT, "CASE" },
22
+ { NODE_CALL, NEN_RECV, NEN_MID, NEN_ARGS, "CALL" },
23
+ { NODE_CASE, NEN_BODY, NEN_NEXT, NEN_HEAD, "CASE" },
25
24
  { NODE_CDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CDECL" },
26
- { NODE_CFUNC, NEN_CFNC, NEN_ARGC, NEN_NONE, "CFUNC" },
27
- { NODE_CLASS, NEN_CPATH, NEN_BODY, NEN_SUPER, "CLASS" },
28
- { NODE_COLON2, NEN_HEAD, NEN_MID, NEN_NONE, "COLON2" },
25
+ { NODE_CLASS, NEN_BODY, NEN_SUPER, NEN_CPATH, "CLASS" },
26
+ { NODE_COLON2, NEN_MID, NEN_HEAD, NEN_NONE, "COLON2" },
29
27
  { NODE_COLON3, NEN_MID, NEN_NONE, NEN_NONE, "COLON3" },
30
28
  { NODE_CONST, NEN_VID, NEN_NONE, NEN_NONE, "CONST" },
31
29
  { NODE_CVAR, NEN_VID, NEN_NONE, NEN_NONE, "CVAR" },
@@ -34,56 +32,54 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
34
32
  { NODE_DASGN, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN" },
35
33
  { NODE_DASGN_CURR, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN_CURR" },
36
34
  { NODE_DEFINED, NEN_HEAD, NEN_NONE, NEN_NONE, "DEFINED" },
37
- { NODE_DEFN, NEN_DEFN, NEN_MID, NEN_NOEX, "DEFN" },
38
- { NODE_DEFS, NEN_DEFN, NEN_MID, NEN_RECV, "DEFS" },
39
- { NODE_DOT2, NEN_BEG, NEN_END, NEN_STATE, "DOT2" },
40
- { NODE_DOT3, NEN_BEG, NEN_END, NEN_STATE, "DOT3" },
41
- { NODE_DREGX, NEN_LIT, NEN_CFLAG, NEN_NEXT, "DREGX" },
42
- { NODE_DREGX_ONCE, NEN_LIT, NEN_CFLAG, NEN_NEXT, "DREGX_ONCE" },
35
+ { NODE_DEFN, NEN_DEFN, NEN_NOEX, NEN_MID, "DEFN" },
36
+ { NODE_DEFS, NEN_DEFN, NEN_RECV, NEN_MID, "DEFS" },
37
+ { NODE_DOT2, NEN_END, NEN_STATE, NEN_BEG, "DOT2" },
38
+ { NODE_DOT3, NEN_END, NEN_STATE, NEN_BEG, "DOT3" },
39
+ { NODE_DREGX, NEN_CFLAG, NEN_LIT, NEN_NEXT, "DREGX" },
40
+ { NODE_DREGX_ONCE, NEN_CFLAG, NEN_LIT, NEN_NEXT, "DREGX_ONCE" },
43
41
  { NODE_DSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DSTR" },
44
42
  { NODE_DSYM, NEN_LIT, NEN_NEXT, NEN_NONE, "DSYM" },
45
43
  { NODE_DVAR, NEN_VID, NEN_NONE, NEN_NONE, "DVAR" },
46
44
  { NODE_DXSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DXSTR" },
47
- { NODE_ENSURE, NEN_HEAD, NEN_ENSR, NEN_NONE, "ENSURE" },
45
+ { NODE_ENSURE, NEN_ENSR, NEN_HEAD, NEN_NONE, "ENSURE" },
48
46
  { NODE_EVSTR, NEN_BODY, NEN_NONE, NEN_NONE, "EVSTR" },
49
47
  { NODE_FALSE, NEN_NONE, NEN_NONE, NEN_NONE, "FALSE" },
50
- { NODE_FBODY, NEN_BODY, NEN_CNT, NEN_OID, "FBODY" },
51
- { NODE_FCALL, NEN_ARGS, NEN_MID, NEN_NONE, "FCALL" },
52
- { NODE_FLIP2, NEN_BEG, NEN_END, NEN_CNT, "FLIP2" },
53
- { NODE_FLIP3, NEN_BEG, NEN_END, NEN_CNT, "FLIP3" },
48
+ { NODE_FCALL, NEN_MID, NEN_ARGS, NEN_NONE, "FCALL" },
49
+ { NODE_FLIP2, NEN_CNT, NEN_END, NEN_BEG, "FLIP2" },
50
+ { NODE_FLIP3, NEN_CNT, NEN_END, NEN_BEG, "FLIP3" },
54
51
  { NODE_FOR, NEN_BODY, NEN_ITER, NEN_VAR, "FOR" },
55
- { NODE_GASGN, NEN_VALUE, NEN_VID, NEN_ENTRY, "GASGN" },
56
- { NODE_GVAR, NEN_VID, NEN_ENTRY, NEN_NONE, "GVAR" },
52
+ { NODE_GASGN, NEN_ENTRY, NEN_VALUE, NEN_VID, "GASGN" },
53
+ { NODE_GVAR, NEN_ENTRY, NEN_VID, NEN_NONE, "GVAR" },
57
54
  { NODE_HASH, NEN_HEAD, NEN_NONE, NEN_NONE, "HASH" },
58
55
  { NODE_IASGN, NEN_VALUE, NEN_VID, NEN_NONE, "IASGN" },
59
- { NODE_IF, NEN_COND, NEN_BODY, NEN_ELSE, "IF" },
60
- { NODE_IFUNC, NEN_CFNC, NEN_TVAL, NEN_STATE, "IFUNC" },
56
+ { NODE_IF, NEN_BODY, NEN_COND, NEN_ELSE, "IF" },
57
+ { NODE_IFUNC, NEN_CFNC, NEN_STATE, NEN_TVAL, "IFUNC" },
61
58
  { NODE_ITER, NEN_BODY, NEN_ITER, NEN_VAR, "ITER" },
62
59
  { NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
63
- { NODE_LASGN, NEN_VALUE, NEN_VID, NEN_CNT, "LASGN" },
60
+ { NODE_LASGN, NEN_CNT, NEN_VALUE, NEN_VID, "LASGN" },
64
61
  { NODE_LIT, NEN_LIT, NEN_NONE, NEN_NONE, "LIT" },
65
- { NODE_LVAR, NEN_VID, NEN_CNT, NEN_NONE, "LVAR" },
66
- { NODE_MASGN, NEN_ARGS, NEN_HEAD, NEN_VALUE, "MASGN" },
62
+ { NODE_LVAR, NEN_CNT, NEN_VID, NEN_NONE, "LVAR" },
63
+ { NODE_MASGN, NEN_VALUE, NEN_ARGS, NEN_HEAD, "MASGN" },
67
64
  { NODE_MATCH, NEN_LIT, NEN_VALUE, NEN_NONE, "MATCH" },
68
- { NODE_MATCH2, NEN_VALUE, NEN_RECV, NEN_NONE, "MATCH2" },
69
- { NODE_MATCH3, NEN_VALUE, NEN_RECV, NEN_NONE, "MATCH3" },
65
+ { NODE_MATCH2, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH2" },
66
+ { NODE_MATCH3, NEN_RECV, NEN_VALUE, NEN_NONE, "MATCH3" },
70
67
  { NODE_MEMO, NEN_NONE, NEN_NONE, NEN_NONE, "MEMO" },
71
- { NODE_METHOD, NEN_BODY, NEN_CLSS, NEN_NOEX, "METHOD" },
72
- { NODE_MODULE, NEN_CPATH, NEN_BODY, NEN_NONE, "MODULE" },
68
+ { NODE_MODULE, NEN_BODY, NEN_CPATH, NEN_NONE, "MODULE" },
73
69
  { NODE_NEXT, NEN_STTS, NEN_NONE, NEN_NONE, "NEXT" },
74
70
  { NODE_NIL, NEN_NONE, NEN_NONE, NEN_NONE, "NIL" },
75
71
  { NODE_NTH_REF, NEN_NTH, NEN_CNT, NEN_NONE, "NTH_REF" },
76
72
  { NODE_OPT_N, NEN_BODY, NEN_NONE, NEN_NONE, "OPT_N" },
77
- { NODE_OP_ASGN1, NEN_ARGS, NEN_MID, NEN_RECV, "OP_ASGN1" },
78
- { NODE_OP_ASGN2, NEN_VALUE, NEN_NEXT, NEN_RECV, "OP_ASGN2" },
79
- { NODE_OP_ASGN2_ARG, NEN_VID, NEN_AID, NEN_MID, "OP_ASGN2_ARG" },
80
- { NODE_OP_ASGN_AND, NEN_VALUE, NEN_RECV, NEN_NONE, "OP_ASGN_AND" },
81
- { NODE_OP_ASGN_OR, NEN_AID, NEN_VALUE, NEN_RECV, "OP_ASGN_OR" },
82
- { NODE_OR, NEN_1ST, NEN_2ND, NEN_NONE, "OR" },
73
+ { NODE_OP_ASGN1, NEN_RECV, NEN_MID, NEN_ARGS, "OP_ASGN1" },
74
+ { NODE_OP_ASGN2, NEN_RECV, NEN_NEXT, NEN_VALUE, "OP_ASGN2" },
75
+ { NODE_OP_ASGN2_ARG, NEN_AID, NEN_MID, NEN_VID, "OP_ASGN2_ARG" },
76
+ { NODE_OP_ASGN_AND, NEN_RECV, NEN_VALUE, NEN_NONE, "OP_ASGN_AND" },
77
+ { NODE_OP_ASGN_OR, NEN_RECV, NEN_AID, NEN_VALUE, "OP_ASGN_OR" },
78
+ { NODE_OR, NEN_2ND, NEN_1ST, NEN_NONE, "OR" },
83
79
  { NODE_POSTEXE, NEN_NONE, NEN_NONE, NEN_NONE, "POSTEXE" },
84
80
  { NODE_REDO, NEN_NONE, NEN_NONE, NEN_NONE, "REDO" },
85
- { NODE_RESBODY, NEN_HEAD, NEN_ARGS, NEN_BODY, "RESBODY" },
86
- { NODE_RESCUE, NEN_HEAD, NEN_ELSE, NEN_RESQ, "RESCUE" },
81
+ { NODE_RESBODY, NEN_BODY, NEN_ARGS, NEN_HEAD, "RESBODY" },
82
+ { NODE_RESCUE, NEN_RESQ, NEN_ELSE, NEN_HEAD, "RESCUE" },
87
83
  { NODE_RETRY, NEN_NONE, NEN_NONE, NEN_NONE, "RETRY" },
88
84
  { NODE_RETURN, NEN_STTS, NEN_NONE, NEN_NONE, "RETURN" },
89
85
  { NODE_SCLASS, NEN_BODY, NEN_RECV, NEN_NONE, "SCLASS" },
@@ -96,12 +92,12 @@ Node_Type_Descrip node_type_descrips_unsorted[] = {
96
92
  { NODE_TRUE, NEN_NONE, NEN_NONE, NEN_NONE, "TRUE" },
97
93
  { NODE_UNDEF, NEN_BODY, NEN_NONE, NEN_NONE, "UNDEF" },
98
94
  { NODE_UNTIL, NEN_BODY, NEN_COND, NEN_STATE, "UNTIL" },
99
- { NODE_VALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "VALIAS" },
95
+ { NODE_VALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "VALIAS" },
100
96
  { NODE_VCALL, NEN_MID, NEN_NONE, NEN_NONE, "VCALL" },
101
- { NODE_WHEN, NEN_HEAD, NEN_BODY, NEN_NEXT, "WHEN" },
97
+ { NODE_WHEN, NEN_BODY, NEN_NEXT, NEN_HEAD, "WHEN" },
102
98
  { NODE_WHILE, NEN_BODY, NEN_COND, NEN_STATE, "WHILE" },
103
99
  { NODE_XSTR, NEN_LIT, NEN_NONE, NEN_NONE, "XSTR" },
104
- { NODE_YIELD, NEN_HEAD, NEN_STATE, NEN_NONE, "YIELD" },
100
+ { NODE_YIELD, NEN_STATE, NEN_HEAD, NEN_NONE, "YIELD" },
105
101
  { NODE_ZARRAY, NEN_NONE, NEN_NONE, NEN_NONE, "ZARRAY" },
106
102
  { NODE_ZSUPER, NEN_NONE, NEN_NONE, NEN_NONE, "ZSUPER" },
107
103
  { NODE_LAST, NEN_NONE, NEN_NONE, NEN_NONE, "LAST" },