ruby2d-rpeck-windows 0.11.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (289) hide show
  1. checksums.yaml +7 -0
  2. data/assets/README.md +22 -0
  3. data/assets/Rakefile +85 -0
  4. data/assets/app.icns +0 -0
  5. data/assets/include/SDL2/SDL.h +138 -0
  6. data/assets/include/SDL2/SDL_assert.h +293 -0
  7. data/assets/include/SDL2/SDL_atomic.h +295 -0
  8. data/assets/include/SDL2/SDL_audio.h +859 -0
  9. data/assets/include/SDL2/SDL_bits.h +121 -0
  10. data/assets/include/SDL2/SDL_blendmode.h +123 -0
  11. data/assets/include/SDL2/SDL_clipboard.h +71 -0
  12. data/assets/include/SDL2/SDL_config.h +55 -0
  13. data/assets/include/SDL2/SDL_config_android.h +182 -0
  14. data/assets/include/SDL2/SDL_config_iphoneos.h +207 -0
  15. data/assets/include/SDL2/SDL_config_macosx.h +266 -0
  16. data/assets/include/SDL2/SDL_config_minimal.h +85 -0
  17. data/assets/include/SDL2/SDL_config_os2.h +188 -0
  18. data/assets/include/SDL2/SDL_config_pandora.h +135 -0
  19. data/assets/include/SDL2/SDL_config_psp.h +165 -0
  20. data/assets/include/SDL2/SDL_config_windows.h +288 -0
  21. data/assets/include/SDL2/SDL_config_winrt.h +243 -0
  22. data/assets/include/SDL2/SDL_config_wiz.h +149 -0
  23. data/assets/include/SDL2/SDL_copying.h +20 -0
  24. data/assets/include/SDL2/SDL_cpuinfo.h +299 -0
  25. data/assets/include/SDL2/SDL_egl.h +1676 -0
  26. data/assets/include/SDL2/SDL_endian.h +263 -0
  27. data/assets/include/SDL2/SDL_error.h +112 -0
  28. data/assets/include/SDL2/SDL_events.h +827 -0
  29. data/assets/include/SDL2/SDL_filesystem.h +136 -0
  30. data/assets/include/SDL2/SDL_gamecontroller.h +541 -0
  31. data/assets/include/SDL2/SDL_gesture.h +87 -0
  32. data/assets/include/SDL2/SDL_haptic.h +1247 -0
  33. data/assets/include/SDL2/SDL_hints.h +1578 -0
  34. data/assets/include/SDL2/SDL_image.h +161 -0
  35. data/assets/include/SDL2/SDL_joystick.h +499 -0
  36. data/assets/include/SDL2/SDL_keyboard.h +217 -0
  37. data/assets/include/SDL2/SDL_keycode.h +351 -0
  38. data/assets/include/SDL2/SDL_loadso.h +81 -0
  39. data/assets/include/SDL2/SDL_locale.h +101 -0
  40. data/assets/include/SDL2/SDL_log.h +211 -0
  41. data/assets/include/SDL2/SDL_main.h +180 -0
  42. data/assets/include/SDL2/SDL_messagebox.h +146 -0
  43. data/assets/include/SDL2/SDL_metal.h +117 -0
  44. data/assets/include/SDL2/SDL_misc.h +75 -0
  45. data/assets/include/SDL2/SDL_mixer.h +651 -0
  46. data/assets/include/SDL2/SDL_mouse.h +302 -0
  47. data/assets/include/SDL2/SDL_mutex.h +251 -0
  48. data/assets/include/SDL2/SDL_name.h +33 -0
  49. data/assets/include/SDL2/SDL_opengl.h +2183 -0
  50. data/assets/include/SDL2/SDL_opengl_glext.h +11180 -0
  51. data/assets/include/SDL2/SDL_opengles.h +39 -0
  52. data/assets/include/SDL2/SDL_opengles2.h +52 -0
  53. data/assets/include/SDL2/SDL_opengles2_gl2.h +621 -0
  54. data/assets/include/SDL2/SDL_opengles2_gl2ext.h +2050 -0
  55. data/assets/include/SDL2/SDL_opengles2_gl2platform.h +30 -0
  56. data/assets/include/SDL2/SDL_opengles2_khrplatform.h +282 -0
  57. data/assets/include/SDL2/SDL_pixels.h +479 -0
  58. data/assets/include/SDL2/SDL_platform.h +198 -0
  59. data/assets/include/SDL2/SDL_power.h +75 -0
  60. data/assets/include/SDL2/SDL_quit.h +58 -0
  61. data/assets/include/SDL2/SDL_rect.h +174 -0
  62. data/assets/include/SDL2/SDL_render.h +1158 -0
  63. data/assets/include/SDL2/SDL_revision.h +2 -0
  64. data/assets/include/SDL2/SDL_rwops.h +283 -0
  65. data/assets/include/SDL2/SDL_scancode.h +413 -0
  66. data/assets/include/SDL2/SDL_sensor.h +267 -0
  67. data/assets/include/SDL2/SDL_shape.h +144 -0
  68. data/assets/include/SDL2/SDL_stdinc.h +647 -0
  69. data/assets/include/SDL2/SDL_surface.h +563 -0
  70. data/assets/include/SDL2/SDL_system.h +325 -0
  71. data/assets/include/SDL2/SDL_syswm.h +354 -0
  72. data/assets/include/SDL2/SDL_test.h +69 -0
  73. data/assets/include/SDL2/SDL_test_assert.h +105 -0
  74. data/assets/include/SDL2/SDL_test_common.h +218 -0
  75. data/assets/include/SDL2/SDL_test_compare.h +69 -0
  76. data/assets/include/SDL2/SDL_test_crc32.h +124 -0
  77. data/assets/include/SDL2/SDL_test_font.h +81 -0
  78. data/assets/include/SDL2/SDL_test_fuzzer.h +384 -0
  79. data/assets/include/SDL2/SDL_test_harness.h +134 -0
  80. data/assets/include/SDL2/SDL_test_images.h +78 -0
  81. data/assets/include/SDL2/SDL_test_log.h +67 -0
  82. data/assets/include/SDL2/SDL_test_md5.h +129 -0
  83. data/assets/include/SDL2/SDL_test_memory.h +63 -0
  84. data/assets/include/SDL2/SDL_test_random.h +115 -0
  85. data/assets/include/SDL2/SDL_thread.h +366 -0
  86. data/assets/include/SDL2/SDL_timer.h +115 -0
  87. data/assets/include/SDL2/SDL_touch.h +102 -0
  88. data/assets/include/SDL2/SDL_ttf.h +294 -0
  89. data/assets/include/SDL2/SDL_types.h +29 -0
  90. data/assets/include/SDL2/SDL_version.h +162 -0
  91. data/assets/include/SDL2/SDL_video.h +1282 -0
  92. data/assets/include/SDL2/SDL_vulkan.h +276 -0
  93. data/assets/include/SDL2/begin_code.h +166 -0
  94. data/assets/include/SDL2/close_code.h +40 -0
  95. data/assets/include/glew.h +23686 -0
  96. data/assets/ios/Assets.xcassets/AppIcon.appiconset/Contents.json +98 -0
  97. data/assets/ios/Assets.xcassets/Contents.json +6 -0
  98. data/assets/ios/Base.lproj/LaunchScreen.storyboard +27 -0
  99. data/assets/ios/Info.plist +43 -0
  100. data/assets/ios/MRuby.framework/Headers/mrbconf.h +143 -0
  101. data/assets/ios/MRuby.framework/Headers/mruby/array.h +280 -0
  102. data/assets/ios/MRuby.framework/Headers/mruby/boxing_nan.h +102 -0
  103. data/assets/ios/MRuby.framework/Headers/mruby/boxing_no.h +56 -0
  104. data/assets/ios/MRuby.framework/Headers/mruby/boxing_word.h +144 -0
  105. data/assets/ios/MRuby.framework/Headers/mruby/class.h +97 -0
  106. data/assets/ios/MRuby.framework/Headers/mruby/common.h +77 -0
  107. data/assets/ios/MRuby.framework/Headers/mruby/compile.h +195 -0
  108. data/assets/ios/MRuby.framework/Headers/mruby/data.h +75 -0
  109. data/assets/ios/MRuby.framework/Headers/mruby/debug.h +67 -0
  110. data/assets/ios/MRuby.framework/Headers/mruby/dump.h +196 -0
  111. data/assets/ios/MRuby.framework/Headers/mruby/error.h +75 -0
  112. data/assets/ios/MRuby.framework/Headers/mruby/gc.h +91 -0
  113. data/assets/ios/MRuby.framework/Headers/mruby/hash.h +215 -0
  114. data/assets/ios/MRuby.framework/Headers/mruby/irep.h +75 -0
  115. data/assets/ios/MRuby.framework/Headers/mruby/istruct.h +47 -0
  116. data/assets/ios/MRuby.framework/Headers/mruby/khash.h +274 -0
  117. data/assets/ios/MRuby.framework/Headers/mruby/numeric.h +161 -0
  118. data/assets/ios/MRuby.framework/Headers/mruby/object.h +44 -0
  119. data/assets/ios/MRuby.framework/Headers/mruby/opcode.h +69 -0
  120. data/assets/ios/MRuby.framework/Headers/mruby/ops.h +117 -0
  121. data/assets/ios/MRuby.framework/Headers/mruby/proc.h +131 -0
  122. data/assets/ios/MRuby.framework/Headers/mruby/range.h +49 -0
  123. data/assets/ios/MRuby.framework/Headers/mruby/re.h +16 -0
  124. data/assets/ios/MRuby.framework/Headers/mruby/string.h +444 -0
  125. data/assets/ios/MRuby.framework/Headers/mruby/throw.h +55 -0
  126. data/assets/ios/MRuby.framework/Headers/mruby/value.h +309 -0
  127. data/assets/ios/MRuby.framework/Headers/mruby/variable.h +136 -0
  128. data/assets/ios/MRuby.framework/Headers/mruby/version.h +110 -0
  129. data/assets/ios/MRuby.framework/Headers/mruby.h +1282 -0
  130. data/assets/ios/MRuby.framework/Info.plist +20 -0
  131. data/assets/ios/MRuby.framework/MRuby +0 -0
  132. data/assets/ios/MyApp.xcodeproj/project.pbxproj +368 -0
  133. data/assets/ios/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  134. data/assets/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  135. data/assets/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +30 -0
  136. data/assets/ios/main.c +1 -0
  137. data/assets/macos/lib/libFLAC.a +0 -0
  138. data/assets/macos/lib/libSDL2.a +0 -0
  139. data/assets/macos/lib/libSDL2_image.a +0 -0
  140. data/assets/macos/lib/libSDL2_mixer.a +0 -0
  141. data/assets/macos/lib/libSDL2_ttf.a +0 -0
  142. data/assets/macos/lib/libfreetype.a +0 -0
  143. data/assets/macos/lib/libjpeg.a +0 -0
  144. data/assets/macos/lib/libmodplug.a +0 -0
  145. data/assets/macos/lib/libmpg123.a +0 -0
  146. data/assets/macos/lib/libogg.a +0 -0
  147. data/assets/macos/lib/libpng16.a +0 -0
  148. data/assets/macos/lib/libtiff.a +0 -0
  149. data/assets/macos/lib/libvorbis.a +0 -0
  150. data/assets/macos/lib/libvorbisfile.a +0 -0
  151. data/assets/macos/lib/libwebp.a +0 -0
  152. data/assets/mingw/bin/SDL2.dll +0 -0
  153. data/assets/mingw/bin/SDL2_image.dll +0 -0
  154. data/assets/mingw/bin/SDL2_mixer.dll +0 -0
  155. data/assets/mingw/bin/SDL2_ttf.dll +0 -0
  156. data/assets/mingw/bin/glew32.dll +0 -0
  157. data/assets/mingw/bin/libFLAC-8.dll +0 -0
  158. data/assets/mingw/bin/libfreetype-6.dll +0 -0
  159. data/assets/mingw/bin/libjpeg-9.dll +0 -0
  160. data/assets/mingw/bin/libmodplug-1.dll +0 -0
  161. data/assets/mingw/bin/libmpg123-0.dll +0 -0
  162. data/assets/mingw/bin/libogg-0.dll +0 -0
  163. data/assets/mingw/bin/libopus-0.dll +0 -0
  164. data/assets/mingw/bin/libopusfile-0.dll +0 -0
  165. data/assets/mingw/bin/libpng16-16.dll +0 -0
  166. data/assets/mingw/bin/libtiff-5.dll +0 -0
  167. data/assets/mingw/bin/libvorbis-0.dll +0 -0
  168. data/assets/mingw/bin/libvorbisfile-3.dll +0 -0
  169. data/assets/mingw/bin/libwebp-7.dll +0 -0
  170. data/assets/mingw/bin/libwinpthread-1.dll +0 -0
  171. data/assets/mingw/bin/zlib1.dll +0 -0
  172. data/assets/mingw/lib/libSDL2.a +0 -0
  173. data/assets/mingw/lib/libSDL2.dll.a +0 -0
  174. data/assets/mingw/lib/libSDL2_image.a +0 -0
  175. data/assets/mingw/lib/libSDL2_image.dll.a +0 -0
  176. data/assets/mingw/lib/libSDL2_mixer.a +0 -0
  177. data/assets/mingw/lib/libSDL2_mixer.dll.a +0 -0
  178. data/assets/mingw/lib/libSDL2_test.a +0 -0
  179. data/assets/mingw/lib/libSDL2_ttf.a +0 -0
  180. data/assets/mingw/lib/libSDL2_ttf.dll.a +0 -0
  181. data/assets/mingw/lib/libSDL2main.a +0 -0
  182. data/assets/mingw/lib/libglew32.a +0 -0
  183. data/assets/mingw/lib/libglew32.dll.a +0 -0
  184. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +16 -0
  185. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json +6 -0
  186. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json +17 -0
  187. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +16 -0
  188. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json +6 -0
  189. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +16 -0
  190. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json +6 -0
  191. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +16 -0
  192. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json +6 -0
  193. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json +17 -0
  194. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +16 -0
  195. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json +6 -0
  196. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +16 -0
  197. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json +6 -0
  198. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json +32 -0
  199. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json +16 -0
  200. data/assets/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json +16 -0
  201. data/assets/tvos/Assets.xcassets/Contents.json +6 -0
  202. data/assets/tvos/Assets.xcassets/LaunchImage.launchimage/Contents.json +22 -0
  203. data/assets/tvos/Info.plist +30 -0
  204. data/assets/tvos/MRuby.framework/Headers/mrbconf.h +143 -0
  205. data/assets/tvos/MRuby.framework/Headers/mruby/array.h +280 -0
  206. data/assets/tvos/MRuby.framework/Headers/mruby/boxing_nan.h +102 -0
  207. data/assets/tvos/MRuby.framework/Headers/mruby/boxing_no.h +56 -0
  208. data/assets/tvos/MRuby.framework/Headers/mruby/boxing_word.h +144 -0
  209. data/assets/tvos/MRuby.framework/Headers/mruby/class.h +97 -0
  210. data/assets/tvos/MRuby.framework/Headers/mruby/common.h +77 -0
  211. data/assets/tvos/MRuby.framework/Headers/mruby/compile.h +195 -0
  212. data/assets/tvos/MRuby.framework/Headers/mruby/data.h +75 -0
  213. data/assets/tvos/MRuby.framework/Headers/mruby/debug.h +67 -0
  214. data/assets/tvos/MRuby.framework/Headers/mruby/dump.h +196 -0
  215. data/assets/tvos/MRuby.framework/Headers/mruby/error.h +75 -0
  216. data/assets/tvos/MRuby.framework/Headers/mruby/gc.h +91 -0
  217. data/assets/tvos/MRuby.framework/Headers/mruby/hash.h +215 -0
  218. data/assets/tvos/MRuby.framework/Headers/mruby/irep.h +75 -0
  219. data/assets/tvos/MRuby.framework/Headers/mruby/istruct.h +47 -0
  220. data/assets/tvos/MRuby.framework/Headers/mruby/khash.h +274 -0
  221. data/assets/tvos/MRuby.framework/Headers/mruby/numeric.h +161 -0
  222. data/assets/tvos/MRuby.framework/Headers/mruby/object.h +44 -0
  223. data/assets/tvos/MRuby.framework/Headers/mruby/opcode.h +69 -0
  224. data/assets/tvos/MRuby.framework/Headers/mruby/ops.h +117 -0
  225. data/assets/tvos/MRuby.framework/Headers/mruby/proc.h +131 -0
  226. data/assets/tvos/MRuby.framework/Headers/mruby/range.h +49 -0
  227. data/assets/tvos/MRuby.framework/Headers/mruby/re.h +16 -0
  228. data/assets/tvos/MRuby.framework/Headers/mruby/string.h +444 -0
  229. data/assets/tvos/MRuby.framework/Headers/mruby/throw.h +55 -0
  230. data/assets/tvos/MRuby.framework/Headers/mruby/value.h +309 -0
  231. data/assets/tvos/MRuby.framework/Headers/mruby/variable.h +136 -0
  232. data/assets/tvos/MRuby.framework/Headers/mruby/version.h +110 -0
  233. data/assets/tvos/MRuby.framework/Headers/mruby.h +1282 -0
  234. data/assets/tvos/MRuby.framework/Info.plist +20 -0
  235. data/assets/tvos/MRuby.framework/MRuby +0 -0
  236. data/assets/tvos/MyApp.xcodeproj/project.pbxproj +350 -0
  237. data/assets/tvos/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  238. data/assets/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  239. data/assets/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +30 -0
  240. data/assets/tvos/main.c +1 -0
  241. data/bin/ruby2d +142 -0
  242. data/ext/ruby2d/common.c +185 -0
  243. data/ext/ruby2d/controllers.c +110 -0
  244. data/ext/ruby2d/extconf.rb +147 -0
  245. data/ext/ruby2d/font.c +35 -0
  246. data/ext/ruby2d/gl.c +398 -0
  247. data/ext/ruby2d/gl2.c +86 -0
  248. data/ext/ruby2d/gl3.c +305 -0
  249. data/ext/ruby2d/gles.c +249 -0
  250. data/ext/ruby2d/image.c +58 -0
  251. data/ext/ruby2d/input.c +48 -0
  252. data/ext/ruby2d/music.c +127 -0
  253. data/ext/ruby2d/ruby2d.c +1374 -0
  254. data/ext/ruby2d/ruby2d.h +656 -0
  255. data/ext/ruby2d/shapes.c +154 -0
  256. data/ext/ruby2d/sound.c +118 -0
  257. data/ext/ruby2d/text.c +22 -0
  258. data/ext/ruby2d/window.c +414 -0
  259. data/lib/ruby2d/circle.rb +43 -0
  260. data/lib/ruby2d/cli/build.rb +237 -0
  261. data/lib/ruby2d/cli/colorize.rb +10 -0
  262. data/lib/ruby2d/cli/console.rb +65 -0
  263. data/lib/ruby2d/cli/enable_console.rb +5 -0
  264. data/lib/ruby2d/cli/launch.rb +50 -0
  265. data/lib/ruby2d/color.rb +136 -0
  266. data/lib/ruby2d/dsl.rb +46 -0
  267. data/lib/ruby2d/entity.rb +17 -0
  268. data/lib/ruby2d/exceptions.rb +6 -0
  269. data/lib/ruby2d/font.rb +96 -0
  270. data/lib/ruby2d/image.rb +58 -0
  271. data/lib/ruby2d/line.rb +89 -0
  272. data/lib/ruby2d/music.rb +67 -0
  273. data/lib/ruby2d/pixel.rb +17 -0
  274. data/lib/ruby2d/quad.rb +96 -0
  275. data/lib/ruby2d/rectangle.rb +65 -0
  276. data/lib/ruby2d/renderable.rb +40 -0
  277. data/lib/ruby2d/ruby2d.so +0 -0
  278. data/lib/ruby2d/sound.rb +55 -0
  279. data/lib/ruby2d/sprite.rb +232 -0
  280. data/lib/ruby2d/square.rb +37 -0
  281. data/lib/ruby2d/text.rb +76 -0
  282. data/lib/ruby2d/texture.rb +28 -0
  283. data/lib/ruby2d/tileset.rb +87 -0
  284. data/lib/ruby2d/triangle.rb +82 -0
  285. data/lib/ruby2d/version.rb +5 -0
  286. data/lib/ruby2d/vertices.rb +84 -0
  287. data/lib/ruby2d/window.rb +673 -0
  288. data/lib/ruby2d.rb +69 -0
  289. metadata +346 -0
@@ -0,0 +1,117 @@
1
+ /* operand types:
2
+ + Z: no operand (Z,Z,Z,Z)
3
+ + B: 8bit (B,S,B,B)
4
+ + BB: 8+8bit (BB,SB,BS,SS)
5
+ + BBB: 8+8+8bit (BBB,SBB,BSB,SSB)
6
+ + BS: 8+16bit (BS,SS,BS,BS)
7
+ + S: 16bit (S,S,S,S)
8
+ + W: 24bit (W,W,W,W)
9
+ */
10
+
11
+ /*-----------------------------------------------------------------------
12
+ operation code operands semantics
13
+ ------------------------------------------------------------------------*/
14
+ OPCODE(NOP, Z) /* no operation */
15
+ OPCODE(MOVE, BB) /* R(a) = R(b) */
16
+ OPCODE(LOADL, BB) /* R(a) = Pool(b) */
17
+ OPCODE(LOADI, BB) /* R(a) = mrb_int(b) */
18
+ OPCODE(LOADINEG, BB) /* R(a) = mrb_int(-b) */
19
+ OPCODE(LOADI__1, B) /* R(a) = mrb_int(-1) */
20
+ OPCODE(LOADI_0, B) /* R(a) = mrb_int(0) */
21
+ OPCODE(LOADI_1, B) /* R(a) = mrb_int(1) */
22
+ OPCODE(LOADI_2, B) /* R(a) = mrb_int(2) */
23
+ OPCODE(LOADI_3, B) /* R(a) = mrb_int(3) */
24
+ OPCODE(LOADI_4, B) /* R(a) = mrb_int(4) */
25
+ OPCODE(LOADI_5, B) /* R(a) = mrb_int(5) */
26
+ OPCODE(LOADI_6, B) /* R(a) = mrb_int(6) */
27
+ OPCODE(LOADI_7, B) /* R(a) = mrb_int(7) */
28
+ OPCODE(LOADSYM, BB) /* R(a) = Syms(b) */
29
+ OPCODE(LOADNIL, B) /* R(a) = nil */
30
+ OPCODE(LOADSELF, B) /* R(a) = self */
31
+ OPCODE(LOADT, B) /* R(a) = true */
32
+ OPCODE(LOADF, B) /* R(a) = false */
33
+ OPCODE(GETGV, BB) /* R(a) = getglobal(Syms(b)) */
34
+ OPCODE(SETGV, BB) /* setglobal(Syms(b), R(a)) */
35
+ OPCODE(GETSV, BB) /* R(a) = Special[Syms(b)] */
36
+ OPCODE(SETSV, BB) /* Special[Syms(b)] = R(a) */
37
+ OPCODE(GETIV, BB) /* R(a) = ivget(Syms(b)) */
38
+ OPCODE(SETIV, BB) /* ivset(Syms(b),R(a)) */
39
+ OPCODE(GETCV, BB) /* R(a) = cvget(Syms(b)) */
40
+ OPCODE(SETCV, BB) /* cvset(Syms(b),R(a)) */
41
+ OPCODE(GETCONST, BB) /* R(a) = constget(Syms(b)) */
42
+ OPCODE(SETCONST, BB) /* constset(Syms(b),R(a)) */
43
+ OPCODE(GETMCNST, BB) /* R(a) = R(a)::Syms(b) */
44
+ OPCODE(SETMCNST, BB) /* R(a+1)::Syms(b) = R(a) */
45
+ OPCODE(GETUPVAR, BBB) /* R(a) = uvget(b,c) */
46
+ OPCODE(SETUPVAR, BBB) /* uvset(b,c,R(a)) */
47
+ OPCODE(JMP, S) /* pc=a */
48
+ OPCODE(JMPIF, BS) /* if R(b) pc=a */
49
+ OPCODE(JMPNOT, BS) /* if !R(b) pc=a */
50
+ OPCODE(JMPNIL, BS) /* if R(b)==nil pc=a */
51
+ OPCODE(ONERR, S) /* rescue_push(a) */
52
+ OPCODE(EXCEPT, B) /* R(a) = exc */
53
+ OPCODE(RESCUE, BB) /* R(b) = R(a).isa?(R(b)) */
54
+ OPCODE(POPERR, B) /* a.times{rescue_pop()} */
55
+ OPCODE(RAISE, B) /* raise(R(a)) */
56
+ OPCODE(EPUSH, B) /* ensure_push(SEQ[a]) */
57
+ OPCODE(EPOP, B) /* A.times{ensure_pop().call} */
58
+ OPCODE(SENDV, BB) /* R(a) = call(R(a),Syms(b),*R(a+1)) */
59
+ OPCODE(SENDVB, BB) /* R(a) = call(R(a),Syms(b),*R(a+1),&R(a+2)) */
60
+ OPCODE(SEND, BBB) /* R(a) = call(R(a),Syms(b),R(a+1),...,R(a+c)) */
61
+ OPCODE(SENDB, BBB) /* R(a) = call(R(a),Syms(Bx),R(a+1),...,R(a+c),&R(a+c+1)) */
62
+ OPCODE(CALL, Z) /* R(0) = self.call(frame.argc, frame.argv) */
63
+ OPCODE(SUPER, BB) /* R(a) = super(R(a+1),... ,R(a+b+1)) */
64
+ OPCODE(ARGARY, BS) /* R(a) = argument array (16=m5:r1:m5:d1:lv4) */
65
+ OPCODE(ENTER, W) /* arg setup according to flags (23=m5:o5:r1:m5:k5:d1:b1) */
66
+ OPCODE(KEY_P, BB) /* R(a) = kdict.key?(Syms(b)) # todo */
67
+ OPCODE(KEYEND, Z) /* raise unless kdict.empty? # todo */
68
+ OPCODE(KARG, BB) /* R(a) = kdict[Syms(b)]; kdict.delete(Syms(b)) # todo */
69
+ OPCODE(RETURN, B) /* return R(a) (normal) */
70
+ OPCODE(RETURN_BLK, B) /* return R(a) (in-block return) */
71
+ OPCODE(BREAK, B) /* break R(a) */
72
+ OPCODE(BLKPUSH, BS) /* R(a) = block (16=m5:r1:m5:d1:lv4) */
73
+ OPCODE(ADD, B) /* R(a) = R(a)+R(a+1) */
74
+ OPCODE(ADDI, BB) /* R(a) = R(a)+mrb_int(c) */
75
+ OPCODE(SUB, B) /* R(a) = R(a)-R(a+1) */
76
+ OPCODE(SUBI, BB) /* R(a) = R(a)-C */
77
+ OPCODE(MUL, B) /* R(a) = R(a)*R(a+1) */
78
+ OPCODE(DIV, B) /* R(a) = R(a)/R(a+1) */
79
+ OPCODE(EQ, B) /* R(a) = R(a)==R(a+1) */
80
+ OPCODE(LT, B) /* R(a) = R(a)<R(a+1) */
81
+ OPCODE(LE, B) /* R(a) = R(a)<=R(a+1) */
82
+ OPCODE(GT, B) /* R(a) = R(a)>R(a+1) */
83
+ OPCODE(GE, B) /* R(a) = R(a)>=R(a+1) */
84
+ OPCODE(ARRAY, BB) /* R(a) = ary_new(R(a),R(a+1)..R(a+b)) */
85
+ OPCODE(ARRAY2, BBB) /* R(a) = ary_new(R(b),R(b+1)..R(b+c)) */
86
+ OPCODE(ARYCAT, B) /* ary_cat(R(a),R(a+1)) */
87
+ OPCODE(ARYPUSH, B) /* ary_push(R(a),R(a+1)) */
88
+ OPCODE(ARYDUP, B) /* R(a) = ary_dup(R(a)) */
89
+ OPCODE(AREF, BBB) /* R(a) = R(b)[c] */
90
+ OPCODE(ASET, BBB) /* R(a)[c] = R(b) */
91
+ OPCODE(APOST, BBB) /* *R(a),R(a+1)..R(a+C) = R(a)[b..] */
92
+ OPCODE(INTERN, B) /* R(a) = intern(R(a)) */
93
+ OPCODE(STRING, BB) /* R(a) = str_dup(Lit(b)) */
94
+ OPCODE(STRCAT, B) /* str_cat(R(a),R(a+1)) */
95
+ OPCODE(HASH, BB) /* R(a) = hash_new(R(a),R(a+1)..R(a+b)) */
96
+ OPCODE(HASHADD, BB) /* R(a) = hash_push(R(a),R(a+1)..R(a+b)) */
97
+ OPCODE(HASHCAT, B) /* R(a) = hash_cat(R(a),R(a+1)) */
98
+ OPCODE(LAMBDA, BB) /* R(a) = lambda(SEQ[b],L_LAMBDA) */
99
+ OPCODE(BLOCK, BB) /* R(a) = lambda(SEQ[b],L_BLOCK) */
100
+ OPCODE(METHOD, BB) /* R(a) = lambda(SEQ[b],L_METHOD) */
101
+ OPCODE(RANGE_INC, B) /* R(a) = range_new(R(a),R(a+1),FALSE) */
102
+ OPCODE(RANGE_EXC, B) /* R(a) = range_new(R(a),R(a+1),TRUE) */
103
+ OPCODE(OCLASS, B) /* R(a) = ::Object */
104
+ OPCODE(CLASS, BB) /* R(a) = newclass(R(a),Syms(b),R(a+1)) */
105
+ OPCODE(MODULE, BB) /* R(a) = newmodule(R(a),Syms(b)) */
106
+ OPCODE(EXEC, BB) /* R(a) = blockexec(R(a),SEQ[b]) */
107
+ OPCODE(DEF, BB) /* R(a).newmethod(Syms(b),R(a+1)) */
108
+ OPCODE(ALIAS, BB) /* alias_method(target_class,Syms(a),Syms(b)) */
109
+ OPCODE(UNDEF, B) /* undef_method(target_class,Syms(a)) */
110
+ OPCODE(SCLASS, B) /* R(a) = R(a).singleton_class */
111
+ OPCODE(TCLASS, B) /* R(a) = target_class */
112
+ OPCODE(DEBUG, BBB) /* print a,b,c */
113
+ OPCODE(ERR, B) /* raise(LocalJumpError, Lit(a)) */
114
+ OPCODE(EXT1, Z) /* make 1st operand 16bit */
115
+ OPCODE(EXT2, Z) /* make 2nd operand 16bit */
116
+ OPCODE(EXT3, Z) /* make 1st and 2nd operands 16bit */
117
+ OPCODE(STOP, Z) /* stop VM */
@@ -0,0 +1,131 @@
1
+ /*
2
+ ** mruby/proc.h - Proc class
3
+ **
4
+ ** See Copyright Notice in mruby.h
5
+ */
6
+
7
+ #ifndef MRUBY_PROC_H
8
+ #define MRUBY_PROC_H
9
+
10
+ #include "common.h"
11
+ #include <mruby/irep.h>
12
+
13
+ /**
14
+ * Proc class
15
+ */
16
+ MRB_BEGIN_DECL
17
+
18
+ struct REnv {
19
+ MRB_OBJECT_HEADER;
20
+ mrb_value *stack;
21
+ struct mrb_context *cxt;
22
+ mrb_sym mid;
23
+ };
24
+
25
+ /* flags (21bits): 1(shared flag):10(cioff/bidx):10(stack_len) */
26
+ #define MRB_ENV_SET_STACK_LEN(e,len) (e)->flags = (((e)->flags & ~0x3ff)|((unsigned int)(len) & 0x3ff))
27
+ #define MRB_ENV_STACK_LEN(e) ((mrb_int)((e)->flags & 0x3ff))
28
+ #define MRB_ENV_STACK_UNSHARED (1<<20)
29
+ #define MRB_ENV_UNSHARE_STACK(e) (e)->flags |= MRB_ENV_STACK_UNSHARED
30
+ #define MRB_ENV_STACK_SHARED_P(e) (((e)->flags & MRB_ENV_STACK_UNSHARED) == 0)
31
+ #define MRB_ENV_BIDX(e) (((e)->flags >> 10) & 0x3ff)
32
+ #define MRB_ENV_SET_BIDX(e,idx) (e)->flags = (((e)->flags & ~(0x3ff<<10))|((unsigned int)(idx) & 0x3ff)<<10)
33
+
34
+ void mrb_env_unshare(mrb_state*, struct REnv*);
35
+
36
+ struct RProc {
37
+ MRB_OBJECT_HEADER;
38
+ union {
39
+ mrb_irep *irep;
40
+ mrb_func_t func;
41
+ } body;
42
+ struct RProc *upper;
43
+ union {
44
+ struct RClass *target_class;
45
+ struct REnv *env;
46
+ } e;
47
+ };
48
+
49
+ /* aspec access */
50
+ #define MRB_ASPEC_REQ(a) (((a) >> 18) & 0x1f)
51
+ #define MRB_ASPEC_OPT(a) (((a) >> 13) & 0x1f)
52
+ #define MRB_ASPEC_REST(a) (((a) >> 12) & 0x1)
53
+ #define MRB_ASPEC_POST(a) (((a) >> 7) & 0x1f)
54
+ #define MRB_ASPEC_KEY(a) (((a) >> 2) & 0x1f)
55
+ #define MRB_ASPEC_KDICT(a) ((a) & (1<<1))
56
+ #define MRB_ASPEC_BLOCK(a) ((a) & 1)
57
+
58
+ #define MRB_PROC_CFUNC_FL 128
59
+ #define MRB_PROC_CFUNC_P(p) (((p)->flags & MRB_PROC_CFUNC_FL) != 0)
60
+ #define MRB_PROC_CFUNC(p) (p)->body.func
61
+ #define MRB_PROC_STRICT 256
62
+ #define MRB_PROC_STRICT_P(p) (((p)->flags & MRB_PROC_STRICT) != 0)
63
+ #define MRB_PROC_ORPHAN 512
64
+ #define MRB_PROC_ORPHAN_P(p) (((p)->flags & MRB_PROC_ORPHAN) != 0)
65
+ #define MRB_PROC_ENVSET 1024
66
+ #define MRB_PROC_ENV_P(p) (((p)->flags & MRB_PROC_ENVSET) != 0)
67
+ #define MRB_PROC_ENV(p) (MRB_PROC_ENV_P(p) ? (p)->e.env : NULL)
68
+ #define MRB_PROC_TARGET_CLASS(p) (MRB_PROC_ENV_P(p) ? (p)->e.env->c : (p)->e.target_class)
69
+ #define MRB_PROC_SET_TARGET_CLASS(p,tc) do {\
70
+ if (MRB_PROC_ENV_P(p)) {\
71
+ (p)->e.env->c = (tc);\
72
+ mrb_field_write_barrier(mrb, (struct RBasic*)(p)->e.env, (struct RBasic*)tc);\
73
+ }\
74
+ else {\
75
+ (p)->e.target_class = (tc);\
76
+ mrb_field_write_barrier(mrb, (struct RBasic*)p, (struct RBasic*)tc);\
77
+ }\
78
+ } while (0)
79
+ #define MRB_PROC_SCOPE 2048
80
+ #define MRB_PROC_SCOPE_P(p) (((p)->flags & MRB_PROC_SCOPE) != 0)
81
+
82
+ #define mrb_proc_ptr(v) ((struct RProc*)(mrb_ptr(v)))
83
+
84
+ struct RProc *mrb_proc_new(mrb_state*, mrb_irep*);
85
+ struct RProc *mrb_closure_new(mrb_state*, mrb_irep*);
86
+ MRB_API struct RProc *mrb_proc_new_cfunc(mrb_state*, mrb_func_t);
87
+ MRB_API struct RProc *mrb_closure_new_cfunc(mrb_state *mrb, mrb_func_t func, int nlocals);
88
+ void mrb_proc_copy(struct RProc *a, struct RProc *b);
89
+
90
+ /* implementation of #send method */
91
+ mrb_value mrb_f_send(mrb_state *mrb, mrb_value self);
92
+
93
+ /* following functions are defined in mruby-proc-ext so please include it when using */
94
+ MRB_API struct RProc *mrb_proc_new_cfunc_with_env(mrb_state*, mrb_func_t, mrb_int, const mrb_value*);
95
+ MRB_API mrb_value mrb_proc_cfunc_env_get(mrb_state*, mrb_int);
96
+ /* old name */
97
+ #define mrb_cfunc_env_get(mrb, idx) mrb_proc_cfunc_env_get(mrb, idx)
98
+
99
+ #ifdef MRB_METHOD_TABLE_INLINE
100
+
101
+ #define MRB_METHOD_FUNC_FL ((uintptr_t)1)
102
+ #define MRB_METHOD_FUNC_P(m) (((uintptr_t)(m))&MRB_METHOD_FUNC_FL)
103
+ #define MRB_METHOD_FUNC(m) ((mrb_func_t)((uintptr_t)(m)&(~MRB_METHOD_FUNC_FL)))
104
+ #define MRB_METHOD_FROM_FUNC(m,fn) m=(mrb_method_t)((struct RProc*)((uintptr_t)(fn)|MRB_METHOD_FUNC_FL))
105
+ #define MRB_METHOD_FROM_PROC(m,pr) m=(mrb_method_t)(struct RProc*)(pr)
106
+ #define MRB_METHOD_PROC_P(m) (!MRB_METHOD_FUNC_P(m))
107
+ #define MRB_METHOD_PROC(m) ((struct RProc*)(m))
108
+ #define MRB_METHOD_UNDEF_P(m) ((m)==0)
109
+
110
+ #else
111
+
112
+ #define MRB_METHOD_FUNC_P(m) ((m).func_p)
113
+ #define MRB_METHOD_FUNC(m) ((m).func)
114
+ #define MRB_METHOD_FROM_FUNC(m,fn) do{(m).func_p=TRUE;(m).func=(fn);}while(0)
115
+ #define MRB_METHOD_FROM_PROC(m,pr) do{(m).func_p=FALSE;(m).proc=(pr);}while(0)
116
+ #define MRB_METHOD_PROC_P(m) (!MRB_METHOD_FUNC_P(m))
117
+ #define MRB_METHOD_PROC(m) ((m).proc)
118
+ #define MRB_METHOD_UNDEF_P(m) ((m).proc==NULL)
119
+
120
+ #endif /* MRB_METHOD_TABLE_INLINE */
121
+
122
+ #define MRB_METHOD_CFUNC_P(m) (MRB_METHOD_FUNC_P(m)?TRUE:(MRB_METHOD_PROC(m)?(MRB_PROC_CFUNC_P(MRB_METHOD_PROC(m))):FALSE))
123
+ #define MRB_METHOD_CFUNC(m) (MRB_METHOD_FUNC_P(m)?MRB_METHOD_FUNC(m):((MRB_METHOD_PROC(m)&&MRB_PROC_CFUNC_P(MRB_METHOD_PROC(m)))?MRB_PROC_CFUNC(MRB_METHOD_PROC(m)):NULL))
124
+
125
+
126
+ #include <mruby/khash.h>
127
+ KHASH_DECLARE(mt, mrb_sym, mrb_method_t, TRUE)
128
+
129
+ MRB_END_DECL
130
+
131
+ #endif /* MRUBY_PROC_H */
@@ -0,0 +1,49 @@
1
+ /*
2
+ ** mruby/range.h - Range class
3
+ **
4
+ ** See Copyright Notice in mruby.h
5
+ */
6
+
7
+ #ifndef MRUBY_RANGE_H
8
+ #define MRUBY_RANGE_H
9
+
10
+ #include "common.h"
11
+
12
+ /**
13
+ * Range class
14
+ */
15
+ MRB_BEGIN_DECL
16
+
17
+ typedef struct mrb_range_edges {
18
+ mrb_value beg;
19
+ mrb_value end;
20
+ } mrb_range_edges;
21
+
22
+ struct RRange {
23
+ MRB_OBJECT_HEADER;
24
+ mrb_range_edges *edges;
25
+ mrb_bool excl : 1;
26
+ };
27
+
28
+ MRB_API struct RRange* mrb_range_ptr(mrb_state *mrb, mrb_value v);
29
+ #define mrb_range_raw_ptr(v) ((struct RRange*)mrb_ptr(v))
30
+ #define mrb_range_value(p) mrb_obj_value((void*)(p))
31
+
32
+ /*
33
+ * Initializes a Range.
34
+ *
35
+ * If the third parameter is FALSE then it includes the last value in the range.
36
+ * If the third parameter is TRUE then it excludes the last value in the range.
37
+ *
38
+ * @param start the beginning value.
39
+ * @param end the ending value.
40
+ * @param exclude represents the inclusion or exclusion of the last value.
41
+ */
42
+ MRB_API mrb_value mrb_range_new(mrb_state *mrb, mrb_value start, mrb_value end, mrb_bool exclude);
43
+
44
+ MRB_API mrb_int mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp, mrb_int len, mrb_bool trunc);
45
+ mrb_value mrb_get_values_at(mrb_state *mrb, mrb_value obj, mrb_int olen, mrb_int argc, const mrb_value *argv, mrb_value (*func)(mrb_state*, mrb_value, mrb_int));
46
+
47
+ MRB_END_DECL
48
+
49
+ #endif /* MRUBY_RANGE_H */
@@ -0,0 +1,16 @@
1
+ /*
2
+ ** mruby/re.h - Regexp class
3
+ **
4
+ ** See Copyright Notice in mruby.h
5
+ */
6
+
7
+ #ifndef MRUBY_RE_H
8
+ #define MRUBY_RE_H
9
+
10
+ MRB_BEGIN_DECL
11
+
12
+ #define REGEXP_CLASS "Regexp"
13
+
14
+ MRB_END_DECL
15
+
16
+ #endif /* RE_H */