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,15 +2,15 @@
2
2
 
3
3
  vm.h -
4
4
 
5
- $Author: ko1 $
5
+ $Author: yugui $
6
6
  created at: 04/01/01 16:56:59 JST
7
7
 
8
8
  Copyright (C) 2004-2007 Koichi Sasada
9
9
 
10
10
  **********************************************************************/
11
11
 
12
- #ifndef RUBY_VM_H
13
- #define RUBY_VM_H
12
+ #ifndef RUBY_VM_EXEC_H
13
+ #define RUBY_VM_EXEC_H
14
14
 
15
15
  typedef long OFFSET;
16
16
  typedef unsigned long lindex_t;
@@ -59,9 +59,6 @@ typedef rb_iseq_t *ISEQ;
59
59
  #define throwdebug if(0)printf
60
60
  /* #define throwdebug printf */
61
61
 
62
- #define SDR2(cfp) vm_stack_dump_raw(GET_THREAD(), (cfp))
63
-
64
-
65
62
  /************************************************/
66
63
  #if DISPATCH_XXX
67
64
  error !
@@ -184,4 +181,4 @@ default: \
184
181
 
185
182
  #define SCREG(r) (reg_##r)
186
183
 
187
- #endif /* RUBY_VM_H */
184
+ #endif /* RUBY_VM_EXEC_H */
@@ -2,7 +2,7 @@
2
2
 
3
3
  insnhelper.h - helper macros to implement each instructions
4
4
 
5
- $Author: ko1 $
5
+ $Author: wanabe $
6
6
  created at: 04/01/01 15:50:34 JST
7
7
 
8
8
  Copyright (C) 2004-2007 Koichi Sasada
@@ -34,32 +34,33 @@
34
34
  #define VMDEBUG 3
35
35
  #endif
36
36
 
37
- /* VM state version */
38
-
39
- extern VALUE ruby_vm_global_state_version;
40
- extern VALUE ruby_vm_redefined_flag;
41
-
42
- #define GET_VM_STATE_VERSION() (ruby_vm_global_state_version)
43
- #define INC_VM_STATE_VERSION() \
44
- (ruby_vm_global_state_version = (ruby_vm_global_state_version+1) & 0x8fffffff)
45
-
46
- #define BOP_PLUS 0x01
47
- #define BOP_MINUS 0x02
48
- #define BOP_MULT 0x04
49
- #define BOP_DIV 0x08
50
- #define BOP_MOD 0x10
51
- #define BOP_EQ 0x20
52
- #define BOP_LT 0x40
53
- #define BOP_LE 0x80
54
- #define BOP_LTLT 0x100
55
- #define BOP_AREF 0x200
56
- #define BOP_ASET 0x400
57
- #define BOP_LENGTH 0x800
58
- #define BOP_SUCC 0x1000
59
- #define BOP_GT 0x2000
60
- #define BOP_GE 0x4000
61
- #define BOP_NOT 0x8000
62
- #define BOP_NEQ 0x10000
37
+ enum {
38
+ BOP_PLUS,
39
+ BOP_MINUS,
40
+ BOP_MULT,
41
+ BOP_DIV,
42
+ BOP_MOD,
43
+ BOP_EQ,
44
+ BOP_EQQ,
45
+ BOP_LT,
46
+ BOP_LE,
47
+ BOP_LTLT,
48
+ BOP_AREF,
49
+ BOP_ASET,
50
+ BOP_LENGTH,
51
+ BOP_SIZE,
52
+ BOP_SUCC,
53
+ BOP_GT,
54
+ BOP_GE,
55
+ BOP_NOT,
56
+ BOP_NEQ,
57
+
58
+ BOP_LAST_
59
+ };
60
+
61
+ extern char ruby_vm_redefined_flag[BOP_LAST_];
62
+ extern VALUE ruby_vm_const_missing_count;
63
+
63
64
 
64
65
  /**********************************************************/
65
66
  /* deal with stack */
@@ -133,10 +134,10 @@ extern VALUE ruby_vm_redefined_flag;
133
134
 
134
135
  #define GET_PREV_DFP(dfp) ((VALUE *)((dfp)[0] & ~0x03))
135
136
 
136
- #define GET_GLOBAL(entry) rb_gvar_get((struct global_entry*)entry)
137
- #define SET_GLOBAL(entry, val) rb_gvar_set((struct global_entry*)entry, val)
137
+ #define GET_GLOBAL(entry) rb_gvar_get((struct rb_global_entry*)entry)
138
+ #define SET_GLOBAL(entry, val) rb_gvar_set((struct rb_global_entry*)entry, val)
138
139
 
139
- #define GET_CONST_INLINE_CACHE(dst) ((IC) * (GET_PC() + (dst) + 1))
140
+ #define GET_CONST_INLINE_CACHE(dst) ((IC) * (GET_PC() + (dst) + 2))
140
141
 
141
142
  /**********************************************************/
142
143
  /* deal with values */
@@ -151,12 +152,12 @@ extern VALUE ruby_vm_redefined_flag;
151
152
  #define COPY_CREF(c1, c2) do { \
152
153
  NODE *__tmp_c2 = (c2); \
153
154
  c1->nd_clss = __tmp_c2->nd_clss; \
154
- c1->nd_visi = __tmp_c2->nd_visi; \
155
+ c1->nd_visi = __tmp_c2->nd_visi;\
155
156
  c1->nd_next = __tmp_c2->nd_next; \
156
157
  } while (0)
157
158
 
158
- #define CALL_METHOD(num, blockptr, flag, id, mn, recv, klass) do { \
159
- VALUE v = vm_call_method(th, GET_CFP(), num, blockptr, flag, id, mn, recv, klass); \
159
+ #define CALL_METHOD(num, blockptr, flag, id, me, recv) do { \
160
+ VALUE v = vm_call_method(th, GET_CFP(), num, blockptr, flag, id, me, recv); \
160
161
  if (v == Qundef) { \
161
162
  RESTORE_REGS(); \
162
163
  NEXT_INSN(); \
@@ -167,7 +168,8 @@ extern VALUE ruby_vm_redefined_flag;
167
168
  } while (0)
168
169
 
169
170
  #define GET_BLOCK_PTR() \
170
- ((rb_block_t *)(GC_GUARDED_PTR_REF(GET_LFP()[0])))
171
+ ((rb_block_t *)(GC_GUARDED_PTR_REF(GET_LFP()[0] & \
172
+ ((GET_LFP()[0] & 0x02) - 0x02))))
171
173
 
172
174
  /**********************************************************/
173
175
  /* deal with control flow 3: exception */
@@ -180,12 +182,27 @@ extern VALUE ruby_vm_redefined_flag;
180
182
 
181
183
  /* optimize insn */
182
184
  #define FIXNUM_2_P(a, b) ((a) & (b) & 1)
183
- #define BASIC_OP_UNREDEFINED_P(op) (LIKELY((ruby_vm_redefined_flag & (op)) == 0))
185
+ #define BASIC_OP_UNREDEFINED_P(op) (LIKELY(ruby_vm_redefined_flag[op] == 0))
184
186
  #define HEAP_CLASS_OF(obj) RBASIC(obj)->klass
185
187
 
188
+ #ifndef USE_IC_FOR_SPECIALIZED_METHOD
189
+ #define USE_IC_FOR_SPECIALIZED_METHOD 1
190
+ #endif
191
+
192
+ #if USE_IC_FOR_SPECIALIZED_METHOD
193
+
194
+ #define CALL_SIMPLE_METHOD(num, id, recv) do { \
195
+ VALUE klass = CLASS_OF(recv); \
196
+ CALL_METHOD(num, 0, 0, id, vm_method_search(id, klass, ic), recv); \
197
+ } while (0)
198
+
199
+ #else
200
+
186
201
  #define CALL_SIMPLE_METHOD(num, id, recv) do { \
187
202
  VALUE klass = CLASS_OF(recv); \
188
- CALL_METHOD(num, 0, 0, id, rb_method_node(klass, id), recv, CLASS_OF(recv)); \
203
+ CALL_METHOD(num, 0, 0, id, rb_method_entry(klass, id), recv); \
189
204
  } while (0)
190
205
 
206
+ #endif
207
+
191
208
  #endif /* RUBY_INSNHELPER_H */
@@ -3,7 +3,7 @@
3
3
 
4
4
  vm_opts.h - VM optimize option
5
5
 
6
- $Author: ko1 $
6
+ $Author: akr $
7
7
 
8
8
  Copyright (C) 2004-2007 Koichi Sasada
9
9
 
@@ -0,0 +1,12 @@
1
+ #ifndef ruby_internal_block__h_
2
+ #define ruby_internal_block__h_
3
+
4
+ #include <ruby.h>
5
+
6
+ #ifndef RUBY_VM
7
+ #include "env.h"
8
+ #endif
9
+
10
+
11
+ #endif
12
+
@@ -0,0 +1,32 @@
1
+ #ifndef ruby_internal_method__h_
2
+ #define ruby_internal_method__h_
3
+
4
+ #include <ruby.h>
5
+
6
+ #ifdef RUBY_VM
7
+ #include "method.h"
8
+ #endif
9
+
10
+ #include "internal/node/ruby_internal_node.h"
11
+
12
+ #ifndef FALSE
13
+ #define FALSE 0
14
+ #endif
15
+
16
+ #ifndef TRUE
17
+ #define TRUE (!FALSE)
18
+ #endif
19
+
20
+ struct METHOD {
21
+ VALUE recv;
22
+ VALUE rclass;
23
+ ID id;
24
+ rb_method_entry_t *me;
25
+ struct unlinked_method_entry_list_entry *ume;
26
+ };
27
+
28
+ #define METHOD_OCLASS(m) m->klass
29
+ #define METHOD_RCLASS(m) m->rclass
30
+
31
+ #endif
32
+
@@ -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
+
@@ -3,11 +3,14 @@
3
3
 
4
4
  #include "ruby.h"
5
5
 
6
+ VALUE class2path(
7
+
8
+ );
6
9
  VALUE path2class(
7
- char *path
10
+
8
11
  );
9
12
  VALUE path2module(
10
- char *path
13
+
11
14
  );
12
15
 
13
16
  #endif
@@ -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,12 @@
1
+ #ifndef ruby_internal_block__h_
2
+ #define ruby_internal_block__h_
3
+
4
+ #include <ruby.h>
5
+
6
+ #ifndef RUBY_VM
7
+ #include "env.h"
8
+ #endif
9
+
10
+
11
+ #endif
12
+
@@ -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,111 +2,102 @@
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" },
9
+ { NODE_AND, NEN_2ND, NEN_1ST, NEN_NONE, "AND" },
10
+ { NODE_ARGS, NEN_OPT, NEN_REST, NEN_CNT, "ARGS" },
11
11
  { NODE_ARGSCAT, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSCAT" },
12
12
  { NODE_ARGSPUSH, NEN_HEAD, NEN_BODY, NEN_NONE, "ARGSPUSH" },
13
- { NODE_ARRAY, NEN_HEAD, NEN_ALEN, NEN_NEXT, "ARRAY" },
13
+ { NODE_ARRAY, NEN_NEXT, NEN_HEAD, NEN_ALEN, "ARRAY" },
14
14
  { NODE_ATTRASGN, NEN_ARGS, NEN_MID, NEN_RECV, "ATTRASGN" },
15
- { NODE_ATTRSET, NEN_VID, NEN_NONE, NEN_NONE, "ATTRSET" },
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
- { NODE_BLOCK_PASS, NEN_BODY, NEN_ITER, NEN_NONE, "BLOCK_PASS" },
19
+ { NODE_BLOCK_PASS, NEN_ITER, NEN_BODY, 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
22
  { NODE_CALL, NEN_ARGS, NEN_MID, NEN_RECV, "CALL" },
24
- { NODE_CASE, NEN_HEAD, NEN_BODY, NEN_NEXT, "CASE" },
25
- { 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" },
23
+ { NODE_CASE, NEN_NEXT, NEN_HEAD, NEN_BODY, "CASE" },
24
+ { NODE_CDECL, NEN_VID, NEN_VALUE, NEN_NONE, "CDECL" },
25
+ { NODE_CLASS, NEN_SUPER, NEN_CPATH, NEN_BODY, "CLASS" },
28
26
  { NODE_COLON2, NEN_HEAD, NEN_MID, 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
- { NODE_CREF, NEN_BODY, NEN_NEXT, NEN_CLSS, "CREF" },
32
29
  { NODE_CVAR, NEN_VID, NEN_NONE, NEN_NONE, "CVAR" },
33
- { NODE_CVASGN, NEN_VALUE, NEN_VID, NEN_NONE, "CVASGN" },
34
- { NODE_CVDECL, NEN_VALUE, NEN_VID, NEN_NONE, "CVDECL" },
35
- { NODE_DASGN, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN" },
36
- { NODE_DASGN_CURR, NEN_VALUE, NEN_VID, NEN_NONE, "DASGN_CURR" },
30
+ { NODE_CVASGN, NEN_VID, NEN_VALUE, NEN_NONE, "CVASGN" },
31
+ { NODE_CVDECL, NEN_VID, NEN_VALUE, NEN_NONE, "CVDECL" },
32
+ { NODE_DASGN, NEN_VID, NEN_VALUE, NEN_NONE, "DASGN" },
33
+ { NODE_DASGN_CURR, NEN_VID, NEN_VALUE, NEN_NONE, "DASGN_CURR" },
37
34
  { NODE_DEFINED, NEN_HEAD, NEN_NONE, NEN_NONE, "DEFINED" },
38
- { NODE_DEFN, NEN_DEFN, NEN_MID, NEN_NOEX, "DEFN" },
35
+ { NODE_DEFN, NEN_NOEX, NEN_DEFN, NEN_MID, "DEFN" },
39
36
  { NODE_DEFS, NEN_DEFN, NEN_MID, NEN_RECV, "DEFS" },
40
- { NODE_DMETHOD, NEN_CVAL, NEN_NONE, NEN_NONE, "DMETHOD" },
41
- { NODE_DOT2, NEN_BEG, NEN_END, NEN_STATE, "DOT2" },
42
- { NODE_DOT3, NEN_BEG, NEN_END, NEN_STATE, "DOT3" },
43
- { NODE_DREGX, NEN_LIT, NEN_CFLAG, NEN_NEXT, "DREGX" },
44
- { NODE_DREGX_ONCE, NEN_LIT, NEN_CFLAG, NEN_NEXT, "DREGX_ONCE" },
45
- { NODE_DSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DSTR" },
46
- { NODE_DSYM, NEN_LIT, NEN_NEXT, NEN_NONE, "DSYM" },
37
+ { NODE_DOT2, NEN_STATE, NEN_BEG, NEN_END, "DOT2" },
38
+ { NODE_DOT3, NEN_STATE, NEN_BEG, NEN_END, "DOT3" },
39
+ { NODE_DREGX, NEN_NEXT, NEN_CFLAG, NEN_LIT, "DREGX" },
40
+ { NODE_DREGX_ONCE, NEN_NEXT, NEN_CFLAG, NEN_LIT, "DREGX_ONCE" },
41
+ { NODE_DSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DSTR" },
42
+ { NODE_DSYM, NEN_NEXT, NEN_LIT, NEN_NONE, "DSYM" },
47
43
  { NODE_DVAR, NEN_VID, NEN_NONE, NEN_NONE, "DVAR" },
48
- { NODE_DXSTR, NEN_LIT, NEN_NEXT, NEN_NONE, "DXSTR" },
44
+ { NODE_DXSTR, NEN_NEXT, NEN_LIT, NEN_NONE, "DXSTR" },
49
45
  { NODE_ENSURE, NEN_HEAD, NEN_ENSR, NEN_NONE, "ENSURE" },
50
46
  { NODE_EVSTR, NEN_BODY, NEN_NONE, NEN_NONE, "EVSTR" },
51
47
  { NODE_FALSE, NEN_NONE, NEN_NONE, NEN_NONE, "FALSE" },
52
- { NODE_FBODY, NEN_HEAD, NEN_ORIG, NEN_MID, "FBODY" },
53
48
  { NODE_FCALL, NEN_ARGS, NEN_MID, NEN_NONE, "FCALL" },
54
- { NODE_FLIP2, NEN_BEG, NEN_END, NEN_CNT, "FLIP2" },
55
- { NODE_FLIP3, NEN_BEG, NEN_END, NEN_CNT, "FLIP3" },
56
- { NODE_FOR, NEN_BODY, NEN_ITER, NEN_VAR, "FOR" },
57
- { NODE_GASGN, NEN_VALUE, NEN_VID, NEN_ENTRY, "GASGN" },
49
+ { NODE_FLIP2, NEN_CNT, NEN_BEG, NEN_END, "FLIP2" },
50
+ { NODE_FLIP3, NEN_CNT, NEN_BEG, NEN_END, "FLIP3" },
51
+ { NODE_FOR, NEN_ITER, NEN_VAR, NEN_BODY, "FOR" },
52
+ { NODE_GASGN, NEN_VID, NEN_ENTRY, NEN_VALUE, "GASGN" },
58
53
  { NODE_GVAR, NEN_VID, NEN_ENTRY, NEN_NONE, "GVAR" },
59
54
  { NODE_HASH, NEN_HEAD, NEN_NONE, NEN_NONE, "HASH" },
60
- { NODE_IASGN, NEN_VALUE, NEN_VID, NEN_NONE, "IASGN" },
61
- { NODE_IF, NEN_COND, NEN_BODY, NEN_ELSE, "IF" },
62
- { NODE_IFUNC, NEN_CFNC, NEN_TVAL, NEN_STATE, "IFUNC" },
63
- { NODE_ITER, NEN_BODY, NEN_ITER, NEN_VAR, "ITER" },
55
+ { NODE_IASGN, NEN_VID, NEN_VALUE, NEN_NONE, "IASGN" },
56
+ { NODE_IF, NEN_ELSE, NEN_COND, NEN_BODY, "IF" },
57
+ { NODE_IFUNC, NEN_TVAL, NEN_STATE, NEN_CFNC, "IFUNC" },
58
+ { NODE_ITER, NEN_ITER, NEN_VAR, NEN_BODY, "ITER" },
64
59
  { NODE_IVAR, NEN_VID, NEN_NONE, NEN_NONE, "IVAR" },
65
- { NODE_LASGN, NEN_VALUE, NEN_VID, NEN_CNT, "LASGN" },
60
+ { NODE_LASGN, NEN_VID, NEN_CNT, NEN_VALUE, "LASGN" },
66
61
  { NODE_LIT, NEN_LIT, NEN_NONE, NEN_NONE, "LIT" },
67
62
  { NODE_LVAR, NEN_VID, NEN_CNT, NEN_NONE, "LVAR" },
68
63
  { NODE_MASGN, NEN_ARGS, NEN_HEAD, NEN_VALUE, "MASGN" },
69
64
  { NODE_MATCH, NEN_LIT, NEN_VALUE, NEN_NONE, "MATCH" },
70
- { NODE_MATCH2, NEN_VALUE, NEN_RECV, NEN_NONE, "MATCH2" },
71
- { 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" },
72
67
  { NODE_MEMO, NEN_NONE, NEN_NONE, NEN_NONE, "MEMO" },
73
- { NODE_METHOD, NEN_BODY, NEN_NOEX, NEN_NONE, "METHOD" },
74
68
  { NODE_MODULE, NEN_CPATH, NEN_BODY, NEN_NONE, "MODULE" },
75
- { NODE_NEWLINE, NEN_NEXT, NEN_NONE, NEN_NONE, "NEWLINE" },
76
69
  { NODE_NEXT, NEN_STTS, NEN_NONE, NEN_NONE, "NEXT" },
77
70
  { NODE_NIL, NEN_NONE, NEN_NONE, NEN_NONE, "NIL" },
78
- { NODE_NOT, NEN_BODY, NEN_NONE, NEN_NONE, "NOT" },
79
71
  { NODE_NTH_REF, NEN_NTH, NEN_CNT, NEN_NONE, "NTH_REF" },
80
72
  { NODE_OPT_N, NEN_BODY, NEN_NONE, NEN_NONE, "OPT_N" },
81
73
  { NODE_OP_ASGN1, NEN_ARGS, NEN_MID, NEN_RECV, "OP_ASGN1" },
82
- { NODE_OP_ASGN2, NEN_VALUE, NEN_NEXT, NEN_RECV, "OP_ASGN2" },
83
- { NODE_OP_ASGN2_ARG, NEN_VID, NEN_AID, NEN_MID, "OP_ASGN2_ARG" },
84
- { NODE_OP_ASGN_AND, NEN_VALUE, NEN_RECV, NEN_NONE, "OP_ASGN_AND" },
85
- { NODE_OP_ASGN_OR, NEN_AID, NEN_VALUE, NEN_RECV, "OP_ASGN_OR" },
86
- { NODE_OR, NEN_1ST, NEN_2ND, NEN_NONE, "OR" },
74
+ { NODE_OP_ASGN2, NEN_NEXT, NEN_RECV, 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_AID, NEN_RECV, NEN_VALUE, "OP_ASGN_OR" },
78
+ { NODE_OR, NEN_2ND, NEN_1ST, NEN_NONE, "OR" },
87
79
  { NODE_POSTEXE, NEN_NONE, NEN_NONE, NEN_NONE, "POSTEXE" },
88
80
  { NODE_REDO, NEN_NONE, NEN_NONE, NEN_NONE, "REDO" },
89
- { NODE_RESBODY, NEN_HEAD, NEN_ARGS, NEN_BODY, "RESBODY" },
90
- { NODE_RESCUE, NEN_HEAD, NEN_ELSE, NEN_RESQ, "RESCUE" },
81
+ { NODE_RESBODY, NEN_ARGS, NEN_HEAD, NEN_BODY, "RESBODY" },
82
+ { NODE_RESCUE, NEN_ELSE, NEN_HEAD, NEN_RESQ, "RESCUE" },
91
83
  { NODE_RETRY, NEN_NONE, NEN_NONE, NEN_NONE, "RETRY" },
92
84
  { NODE_RETURN, NEN_STTS, NEN_NONE, NEN_NONE, "RETURN" },
93
- { NODE_SCLASS, NEN_BODY, NEN_RECV, NEN_NONE, "SCLASS" },
94
- { NODE_SCOPE, NEN_TBL, NEN_RVAL, NEN_NEXT, "SCOPE" },
85
+ { NODE_SCLASS, NEN_RECV, NEN_BODY, NEN_NONE, "SCLASS" },
86
+ { NODE_SCOPE, NEN_NEXT, NEN_TBL, NEN_RVAL, "SCOPE" },
95
87
  { NODE_SELF, NEN_NONE, NEN_NONE, NEN_NONE, "SELF" },
96
88
  { NODE_SPLAT, NEN_HEAD, NEN_NONE, NEN_NONE, "SPLAT" },
97
89
  { NODE_STR, NEN_LIT, NEN_NONE, NEN_NONE, "STR" },
98
90
  { NODE_SUPER, NEN_ARGS, NEN_NONE, NEN_NONE, "SUPER" },
99
- { NODE_SVALUE, NEN_HEAD, NEN_NONE, NEN_NONE, "SVALUE" },
100
91
  { NODE_TO_ARY, NEN_HEAD, NEN_NONE, NEN_NONE, "TO_ARY" },
101
92
  { NODE_TRUE, NEN_NONE, NEN_NONE, NEN_NONE, "TRUE" },
102
- { NODE_UNDEF, NEN_MID, NEN_NONE, NEN_NONE, "UNDEF" },
103
- { NODE_UNTIL, NEN_BODY, NEN_COND, NEN_STATE, "UNTIL" },
104
- { NODE_VALIAS, NEN_1ST, NEN_2ND, NEN_NONE, "VALIAS" },
93
+ { NODE_UNDEF, NEN_BODY, NEN_NONE, NEN_NONE, "UNDEF" },
94
+ { NODE_UNTIL, NEN_STATE, NEN_COND, NEN_BODY, "UNTIL" },
95
+ { NODE_VALIAS, NEN_2ND, NEN_1ST, NEN_NONE, "VALIAS" },
105
96
  { NODE_VCALL, NEN_MID, NEN_NONE, NEN_NONE, "VCALL" },
106
- { NODE_WHEN, NEN_HEAD, NEN_BODY, NEN_NEXT, "WHEN" },
107
- { NODE_WHILE, NEN_BODY, NEN_COND, NEN_STATE, "WHILE" },
97
+ { NODE_WHEN, NEN_NEXT, NEN_HEAD, NEN_BODY, "WHEN" },
98
+ { NODE_WHILE, NEN_STATE, NEN_COND, NEN_BODY, "WHILE" },
108
99
  { NODE_XSTR, NEN_LIT, NEN_NONE, NEN_NONE, "XSTR" },
109
- { NODE_YIELD, NEN_HEAD, NEN_STATE, NEN_NONE, "YIELD" },
100
+ { NODE_YIELD, NEN_STATE, NEN_HEAD, NEN_NONE, "YIELD" },
110
101
  { NODE_ZARRAY, NEN_NONE, NEN_NONE, NEN_NONE, "ZARRAY" },
111
102
  { NODE_ZSUPER, NEN_NONE, NEN_NONE, NEN_NONE, "ZSUPER" },
112
103
  { NODE_LAST, NEN_NONE, NEN_NONE, NEN_NONE, "LAST" },