ruby2d 0.12.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE.md +7 -0
- data/README.md +141 -0
- data/USAGE.md +2435 -0
- data/assets/Rakefile +637 -0
- data/assets/build_support/CMakeLists.txt +94 -0
- data/assets/build_support/mruby/build_config.rb +34 -0
- data/assets/build_support/mruby/build_config_wasm.rb +30 -0
- data/assets/build_support/sdl_test.c +174 -0
- data/assets/deps.yaml +16 -0
- data/assets/platform/include/SDL3/SDL.h +91 -0
- data/assets/platform/include/SDL3/SDL_assert.h +705 -0
- data/assets/platform/include/SDL3/SDL_asyncio.h +550 -0
- data/assets/platform/include/SDL3/SDL_atomic.h +692 -0
- data/assets/platform/include/SDL3/SDL_audio.h +2370 -0
- data/assets/platform/include/SDL3/SDL_begin_code.h +553 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_bits.h +47 -27
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_blendmode.h +59 -55
- data/assets/platform/include/SDL3/SDL_camera.h +535 -0
- data/assets/platform/include/SDL3/SDL_clipboard.h +331 -0
- data/assets/{include/SDL2/close_code.h → platform/include/SDL3/SDL_close_code.h} +9 -8
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_copying.h +3 -1
- data/assets/platform/include/SDL3/SDL_cpuinfo.h +374 -0
- data/assets/platform/include/SDL3/SDL_dialog.h +343 -0
- data/assets/platform/include/SDL3/SDL_dlopennote.h +234 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_egl.h +11 -8
- data/assets/platform/include/SDL3/SDL_endian.h +645 -0
- data/assets/platform/include/SDL3/SDL_error.h +226 -0
- data/assets/platform/include/SDL3/SDL_events.h +1645 -0
- data/assets/platform/include/SDL3/SDL_filesystem.h +537 -0
- data/assets/platform/include/SDL3/SDL_gamepad.h +1656 -0
- data/assets/platform/include/SDL3/SDL_gpu.h +4608 -0
- data/assets/platform/include/SDL3/SDL_guid.h +106 -0
- data/assets/platform/include/SDL3/SDL_haptic.h +1461 -0
- data/assets/platform/include/SDL3/SDL_hidapi.h +571 -0
- data/assets/platform/include/SDL3/SDL_hints.h +5001 -0
- data/assets/platform/include/SDL3/SDL_init.h +507 -0
- data/assets/platform/include/SDL3/SDL_intrin.h +410 -0
- data/assets/platform/include/SDL3/SDL_iostream.h +1379 -0
- data/assets/platform/include/SDL3/SDL_joystick.h +1385 -0
- data/assets/platform/include/SDL3/SDL_keyboard.h +608 -0
- data/assets/platform/include/SDL3/SDL_keycode.h +347 -0
- data/assets/platform/include/SDL3/SDL_loadso.h +145 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_locale.h +40 -24
- data/assets/platform/include/SDL3/SDL_log.h +541 -0
- data/assets/platform/include/SDL3/SDL_main.h +704 -0
- data/assets/platform/include/SDL3/SDL_main_impl.h +151 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_messagebox.h +85 -48
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_metal.h +29 -29
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_misc.h +13 -12
- data/assets/platform/include/SDL3/SDL_mouse.h +813 -0
- data/assets/platform/include/SDL3/SDL_mutex.h +1117 -0
- data/assets/platform/include/SDL3/SDL_oldnames.h +1339 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengl.h +1247 -278
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengl_glext.h +5 -1
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles.h +6 -7
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2.h +10 -11
- data/assets/platform/include/SDL3/SDL_pen.h +198 -0
- data/assets/platform/include/SDL3/SDL_pixels.h +1441 -0
- data/assets/{include/SDL2/SDL_test_log.h → platform/include/SDL3/SDL_platform.h} +25 -26
- data/assets/platform/include/SDL3/SDL_platform_defines.h +497 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_power.h +40 -20
- data/assets/platform/include/SDL3/SDL_process.h +441 -0
- data/assets/platform/include/SDL3/SDL_properties.h +572 -0
- data/assets/platform/include/SDL3/SDL_rect.h +528 -0
- data/assets/platform/include/SDL3/SDL_render.h +3028 -0
- data/assets/platform/include/SDL3/SDL_revision.h +59 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_scancode.h +59 -68
- data/assets/platform/include/SDL3/SDL_sensor.h +321 -0
- data/assets/platform/include/SDL3/SDL_stdinc.h +6186 -0
- data/assets/platform/include/SDL3/SDL_storage.h +686 -0
- data/assets/platform/include/SDL3/SDL_surface.h +1769 -0
- data/assets/platform/include/SDL3/SDL_system.h +840 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test.h +16 -22
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_assert.h +27 -34
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_common.h +109 -52
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_compare.h +22 -14
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_crc32.h +27 -30
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_font.h +50 -49
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_fuzzer.h +64 -79
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_harness.h +47 -30
- data/assets/platform/include/SDL3/SDL_test_log.h +83 -0
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_md5.h +21 -28
- data/assets/{include/SDL2 → platform/include/SDL3}/SDL_test_memory.h +19 -16
- data/assets/platform/include/SDL3/SDL_thread.h +602 -0
- data/assets/platform/include/SDL3/SDL_time.h +249 -0
- data/assets/platform/include/SDL3/SDL_timer.h +454 -0
- data/assets/platform/include/SDL3/SDL_touch.h +184 -0
- data/assets/platform/include/SDL3/SDL_tray.h +544 -0
- data/assets/platform/include/SDL3/SDL_version.h +198 -0
- data/assets/platform/include/SDL3/SDL_video.h +3497 -0
- data/assets/platform/include/SDL3/SDL_vulkan.h +287 -0
- data/assets/platform/include/SDL3_image/SDL_image.h +3328 -0
- data/assets/platform/include/SDL3_mixer/SDL_mixer.h +3369 -0
- data/assets/platform/include/SDL3_ttf/SDL_textengine.h +181 -0
- data/assets/platform/include/SDL3_ttf/SDL_ttf.h +2833 -0
- data/assets/{include → platform/include}/mrbconf.h +42 -31
- data/assets/{include → platform/include}/mruby/array.h +3 -4
- data/assets/{include → platform/include}/mruby/boxing_nan.h +10 -0
- data/assets/platform/include/mruby/boxing_no.h +59 -0
- data/assets/{include → platform/include}/mruby/boxing_word.h +72 -26
- data/assets/platform/include/mruby/class.h +157 -0
- data/assets/{include → platform/include}/mruby/common.h +30 -1
- data/assets/{include → platform/include}/mruby/compile.h +52 -74
- data/assets/{include → platform/include}/mruby/data.h +2 -2
- data/assets/{include → platform/include}/mruby/debug.h +12 -5
- data/assets/{include → platform/include}/mruby/dump.h +7 -9
- data/assets/{include → platform/include}/mruby/endian.h +1 -1
- data/assets/platform/include/mruby/error.h +173 -0
- data/assets/platform/include/mruby/gc.h +79 -0
- data/assets/{include → platform/include}/mruby/hash.h +1 -7
- data/assets/platform/include/mruby/internal.h +282 -0
- data/assets/platform/include/mruby/irep.h +143 -0
- data/assets/{include → platform/include}/mruby/istruct.h +1 -1
- data/assets/platform/include/mruby/khash.h +455 -0
- data/assets/platform/include/mruby/mempool.h +19 -0
- data/assets/{include → platform/include}/mruby/numeric.h +7 -10
- data/assets/platform/include/mruby/object.h +51 -0
- data/assets/{include → platform/include}/mruby/opcode.h +5 -5
- data/assets/{include → platform/include}/mruby/ops.h +19 -6
- data/assets/platform/include/mruby/presym/id.h +1447 -0
- data/assets/{include → platform/include}/mruby/presym/scanning.h +10 -7
- data/assets/platform/include/mruby/presym/table.h +2893 -0
- data/assets/platform/include/mruby/presym.h +65 -0
- data/assets/platform/include/mruby/proc.h +184 -0
- data/assets/{include → platform/include}/mruby/range.h +0 -2
- data/assets/{include → platform/include}/mruby/string.h +33 -53
- data/assets/platform/include/mruby/throw.h +81 -0
- data/assets/{include → platform/include}/mruby/value.h +64 -29
- data/assets/{include → platform/include}/mruby/variable.h +6 -23
- data/assets/{include → platform/include}/mruby/version.h +7 -7
- data/assets/{include → platform/include}/mruby.h +238 -116
- data/assets/platform/macos-arm64/bin/mrbc +0 -0
- data/assets/platform/macos-arm64/lib/libSDL3.a +0 -0
- data/assets/platform/macos-arm64/lib/libSDL3_image.a +0 -0
- data/assets/platform/macos-arm64/lib/libSDL3_mixer.a +0 -0
- data/assets/platform/macos-arm64/lib/libSDL3_ttf.a +0 -0
- data/assets/platform/macos-arm64/lib/libmruby.a +0 -0
- data/assets/platform/wasm/lib/libFLAC.a +0 -0
- data/assets/platform/wasm/lib/libSDL3.a +0 -0
- data/assets/platform/wasm/lib/libSDL3_image.a +0 -0
- data/assets/platform/wasm/lib/libSDL3_mixer.a +0 -0
- data/assets/platform/wasm/lib/libSDL3_ttf.a +0 -0
- data/assets/platform/wasm/lib/libfreetype.a +0 -0
- data/assets/platform/wasm/lib/libharfbuzz.a +0 -0
- data/assets/platform/wasm/lib/libmruby.a +0 -0
- data/assets/platform/wasm/lib/libogg.a +0 -0
- data/assets/platform/wasm/lib/libplutosvg.a +0 -0
- data/assets/platform/wasm/lib/libplutovg.a +0 -0
- data/assets/platform/wasm/lib/libpng.a +0 -0
- data/assets/platform/wasm/lib/libpng16.a +0 -0
- data/assets/platform/wasm/lib/libvorbis.a +0 -0
- data/assets/platform/wasm/lib/libvorbisfile.a +0 -0
- data/assets/platform/wasm/lib/libzlibstatic.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/bin/mrbc.exe +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3_image.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3_mixer.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libSDL3_ttf.a +0 -0
- data/assets/platform/windows-arm64-mingw-ucrt/lib/libmruby.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/bin/mrbc.exe +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3_image.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3_mixer.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libSDL3_ttf.a +0 -0
- data/assets/platform/windows-x86_64-mingw-ucrt/lib/libmruby.a +0 -0
- data/assets/resources/fonts/outfit/OFL.txt +93 -0
- data/assets/resources/fonts/outfit/outfit.ttf +0 -0
- data/assets/resources/fonts/roboto_mono/OFL.txt +91 -0
- data/assets/resources/fonts/roboto_mono/roboto_mono.ttf +0 -0
- data/assets/resources/icons/icon.icns +0 -0
- data/assets/resources/icons/icon.png +0 -0
- data/assets/resources/spritesheets/License.txt +28 -0
- data/assets/resources/spritesheets/spritesheet-backgrounds.png +0 -0
- data/assets/resources/spritesheets/spritesheet-backgrounds.xml +16 -0
- data/assets/resources/spritesheets/spritesheet-characters.png +0 -0
- data/assets/resources/spritesheets/spritesheet-characters.xml +47 -0
- data/assets/resources/spritesheets/spritesheet-enemies.png +0 -0
- data/assets/resources/spritesheets/spritesheet-enemies.xml +62 -0
- data/assets/resources/spritesheets/spritesheet-tiles.png +0 -0
- data/assets/resources/spritesheets/spritesheet-tiles.xml +316 -0
- data/assets/{wasm → resources/web}/template.html +1 -1
- data/assets/target.rb +131 -0
- data/bin/ruby2d +281 -82
- data/examples/astar.rb +269 -0
- data/examples/asteroids.rb +403 -0
- data/examples/bezier_editor.rb +96 -0
- data/examples/boids.rb +191 -0
- data/examples/bouncing_balls.rb +119 -0
- data/examples/breakout.rb +186 -0
- data/examples/constellations.rb +100 -0
- data/examples/dashboard.rb +133 -0
- data/examples/double_pendulum.rb +254 -0
- data/examples/falling_sand.rb +291 -0
- data/examples/fireworks.rb +110 -0
- data/examples/fluid_dynamics.rb +340 -0
- data/examples/fourier_epicycles.rb +142 -0
- data/examples/fractal_tree.rb +326 -0
- data/examples/game_of_life.rb +148 -0
- data/examples/gamepads.rb +333 -0
- data/examples/hill_driver.rb +613 -0
- data/examples/logo_animation.rb +251 -0
- data/examples/lorenz_attractor.rb +115 -0
- data/examples/mandelbrot.rb +207 -0
- data/examples/marching_squares.rb +200 -0
- data/examples/maze.rb +323 -0
- data/examples/nbody.rb +338 -0
- data/examples/outrun.rb +391 -0
- data/examples/pixel_paint.rb +313 -0
- data/examples/platformer.rb +335 -0
- data/examples/ray_casting_maze.rb +175 -0
- data/examples/shadow_casting.rb +151 -0
- data/examples/shape_recognizer.rb +908 -0
- data/examples/snake.rb +144 -0
- data/examples/sprite_sheets.rb +246 -0
- data/examples/swarm.rb +206 -0
- data/examples/tsp_annealing.rb +104 -0
- data/examples/ui_controls.rb +163 -0
- data/examples/wireframe_3d.rb +139 -0
- data/ext/ruby2d/audio.c +324 -0
- data/ext/ruby2d/canvas.c +1715 -494
- data/ext/ruby2d/ext.c +541 -0
- data/ext/ruby2d/extconf.rb +122 -145
- data/ext/ruby2d/font.c +566 -20
- data/ext/ruby2d/fps.c +92 -0
- data/ext/ruby2d/image.c +466 -41
- data/ext/ruby2d/ruby2d.c +374 -1890
- data/ext/ruby2d/ruby2d.h +840 -460
- data/ext/ruby2d/shapes.c +931 -101
- data/ext/ruby2d/text.c +586 -21
- data/ext/ruby2d/window.c +1693 -283
- data/lib/ruby2d/atlas_parser.rb +194 -0
- data/lib/ruby2d/audio.rb +73 -0
- data/lib/ruby2d/benchmark.rb +259 -0
- data/lib/ruby2d/bitmap_text.rb +155 -0
- data/lib/ruby2d/button.rb +402 -0
- data/lib/ruby2d/canvas.rb +703 -279
- data/lib/ruby2d/circle.rb +206 -29
- data/lib/ruby2d/cli/browser.rb +314 -0
- data/lib/ruby2d/cli/build.rb +471 -257
- data/lib/ruby2d/cli/colorize.rb +7 -5
- data/lib/ruby2d/cli/examples.rb +127 -0
- data/lib/ruby2d/cli/launch.rb +24 -39
- data/lib/ruby2d/cli/lib_files.rb +48 -0
- data/lib/ruby2d/cli/messages.rb +40 -0
- data/lib/ruby2d/cli/setup.rb +273 -0
- data/lib/ruby2d/cli/static_server.rb +160 -0
- data/lib/ruby2d/cli/usage.rb +255 -0
- data/lib/ruby2d/color.rb +191 -69
- data/lib/ruby2d/core.rb +37 -19
- data/lib/ruby2d/deps_help.rb +89 -0
- data/lib/ruby2d/dsl.rb +51 -12
- data/lib/ruby2d/ellipse.rb +228 -0
- data/lib/ruby2d/exceptions.rb +0 -2
- data/lib/ruby2d/font.rb +34 -74
- data/lib/ruby2d/gamepad.rb +323 -0
- data/lib/ruby2d/gem_paths.rb +19 -0
- data/lib/ruby2d/image.rb +155 -52
- data/lib/ruby2d/interactive.rb +103 -0
- data/lib/ruby2d/json_parser.rb +268 -0
- data/lib/ruby2d/line.rb +194 -85
- data/lib/ruby2d/mruby_compat.rb +12 -0
- data/lib/ruby2d/polygon.rb +297 -0
- data/lib/ruby2d/polyline.rb +368 -0
- data/lib/ruby2d/quad.rb +358 -94
- data/lib/ruby2d/rectangle.rb +77 -19
- data/lib/ruby2d/renderable.rb +411 -11
- data/lib/ruby2d/sprite.rb +471 -180
- data/lib/ruby2d/sprite_sheet.rb +64 -0
- data/lib/ruby2d/square.rb +29 -17
- data/lib/ruby2d/text.rb +196 -65
- data/lib/ruby2d/tileset.rb +139 -81
- data/lib/ruby2d/triangle.rb +324 -89
- data/lib/ruby2d/version.rb +1 -3
- data/lib/ruby2d/vertices.rb +62 -85
- data/lib/ruby2d/warnings.rb +29 -0
- data/lib/ruby2d/window/class_methods.rb +218 -0
- data/lib/ruby2d/window/gamepad_events.rb +141 -0
- data/lib/ruby2d/window/key_events.rb +74 -0
- data/lib/ruby2d/window/mouse_events.rb +171 -0
- data/lib/ruby2d/window/object_events.rb +168 -0
- data/lib/ruby2d/window.rb +632 -585
- data/lib/ruby2d.rb +14 -19
- metadata +275 -443
- data/assets/app.icns +0 -0
- data/assets/include/GL/glew.h +0 -26427
- data/assets/include/GLES2/gl2.h +0 -656
- data/assets/include/GLES2/gl2ext.h +0 -3949
- data/assets/include/GLES2/gl2ext_angle.h +0 -701
- data/assets/include/GLES2/gl2platform.h +0 -27
- data/assets/include/GLES3/gl3.h +0 -1192
- data/assets/include/GLES3/gl31.h +0 -1507
- data/assets/include/GLES3/gl32.h +0 -1808
- data/assets/include/GLES3/gl3platform.h +0 -27
- data/assets/include/KHR/khrplatform.h +0 -290
- data/assets/include/SDL2/SDL.h +0 -233
- data/assets/include/SDL2/SDL_assert.h +0 -326
- data/assets/include/SDL2/SDL_atomic.h +0 -415
- data/assets/include/SDL2/SDL_audio.h +0 -1500
- data/assets/include/SDL2/SDL_clipboard.h +0 -141
- data/assets/include/SDL2/SDL_config.h +0 -61
- data/assets/include/SDL2/SDL_config_android.h +0 -194
- data/assets/include/SDL2/SDL_config_emscripten.h +0 -218
- data/assets/include/SDL2/SDL_config_iphoneos.h +0 -217
- data/assets/include/SDL2/SDL_config_macosx.h +0 -277
- data/assets/include/SDL2/SDL_config_minimal.h +0 -95
- data/assets/include/SDL2/SDL_config_ngage.h +0 -89
- data/assets/include/SDL2/SDL_config_os2.h +0 -207
- data/assets/include/SDL2/SDL_config_pandora.h +0 -141
- data/assets/include/SDL2/SDL_config_windows.h +0 -331
- data/assets/include/SDL2/SDL_config_wingdk.h +0 -253
- data/assets/include/SDL2/SDL_config_winrt.h +0 -220
- data/assets/include/SDL2/SDL_config_xbox.h +0 -235
- data/assets/include/SDL2/SDL_cpuinfo.h +0 -594
- data/assets/include/SDL2/SDL_endian.h +0 -348
- data/assets/include/SDL2/SDL_error.h +0 -163
- data/assets/include/SDL2/SDL_events.h +0 -1166
- data/assets/include/SDL2/SDL_filesystem.h +0 -149
- data/assets/include/SDL2/SDL_gamecontroller.h +0 -1074
- data/assets/include/SDL2/SDL_gesture.h +0 -117
- data/assets/include/SDL2/SDL_guid.h +0 -100
- data/assets/include/SDL2/SDL_haptic.h +0 -1341
- data/assets/include/SDL2/SDL_hidapi.h +0 -451
- data/assets/include/SDL2/SDL_hints.h +0 -2569
- data/assets/include/SDL2/SDL_image.h +0 -2173
- data/assets/include/SDL2/SDL_joystick.h +0 -1066
- data/assets/include/SDL2/SDL_keyboard.h +0 -353
- data/assets/include/SDL2/SDL_keycode.h +0 -358
- data/assets/include/SDL2/SDL_loadso.h +0 -115
- data/assets/include/SDL2/SDL_log.h +0 -404
- data/assets/include/SDL2/SDL_main.h +0 -275
- data/assets/include/SDL2/SDL_mixer.h +0 -2784
- data/assets/include/SDL2/SDL_mouse.h +0 -465
- data/assets/include/SDL2/SDL_mutex.h +0 -471
- data/assets/include/SDL2/SDL_name.h +0 -33
- data/assets/include/SDL2/SDL_pixels.h +0 -644
- data/assets/include/SDL2/SDL_platform.h +0 -261
- data/assets/include/SDL2/SDL_quit.h +0 -58
- data/assets/include/SDL2/SDL_rect.h +0 -376
- data/assets/include/SDL2/SDL_render.h +0 -1919
- data/assets/include/SDL2/SDL_revision.h +0 -6
- data/assets/include/SDL2/SDL_rwops.h +0 -841
- data/assets/include/SDL2/SDL_sensor.h +0 -322
- data/assets/include/SDL2/SDL_shape.h +0 -155
- data/assets/include/SDL2/SDL_stdinc.h +0 -830
- data/assets/include/SDL2/SDL_surface.h +0 -997
- data/assets/include/SDL2/SDL_system.h +0 -623
- data/assets/include/SDL2/SDL_syswm.h +0 -386
- data/assets/include/SDL2/SDL_test_images.h +0 -78
- data/assets/include/SDL2/SDL_test_random.h +0 -115
- data/assets/include/SDL2/SDL_thread.h +0 -464
- data/assets/include/SDL2/SDL_timer.h +0 -222
- data/assets/include/SDL2/SDL_touch.h +0 -150
- data/assets/include/SDL2/SDL_ttf.h +0 -2316
- data/assets/include/SDL2/SDL_types.h +0 -29
- data/assets/include/SDL2/SDL_version.h +0 -204
- data/assets/include/SDL2/SDL_video.h +0 -2150
- data/assets/include/SDL2/SDL_vulkan.h +0 -215
- data/assets/include/SDL2/begin_code.h +0 -187
- data/assets/include/mruby/boxing_no.h +0 -58
- data/assets/include/mruby/class.h +0 -108
- data/assets/include/mruby/error.h +0 -147
- data/assets/include/mruby/gc.h +0 -94
- data/assets/include/mruby/irep.h +0 -147
- data/assets/include/mruby/khash.h +0 -284
- data/assets/include/mruby/object.h +0 -43
- data/assets/include/mruby/presym/disable.h +0 -70
- data/assets/include/mruby/presym/enable.h +0 -37
- data/assets/include/mruby/presym.h +0 -40
- data/assets/include/mruby/proc.h +0 -211
- data/assets/include/mruby/throw.h +0 -66
- data/assets/macos/universal/bin/mrbc +0 -0
- data/assets/macos/universal/lib/libFLAC.a +0 -0
- data/assets/macos/universal/lib/libSDL2.a +0 -0
- data/assets/macos/universal/lib/libSDL2_image.a +0 -0
- data/assets/macos/universal/lib/libSDL2_mixer.a +0 -0
- data/assets/macos/universal/lib/libSDL2_ttf.a +0 -0
- data/assets/macos/universal/lib/libavif.a +0 -0
- data/assets/macos/universal/lib/libbrotlicommon-static.a +0 -0
- data/assets/macos/universal/lib/libbrotlidec-static.a +0 -0
- data/assets/macos/universal/lib/libfreetype.a +0 -0
- data/assets/macos/universal/lib/libgraphite2.a +0 -0
- data/assets/macos/universal/lib/libharfbuzz.a +0 -0
- data/assets/macos/universal/lib/libhwy.a +0 -0
- data/assets/macos/universal/lib/libjpeg.a +0 -0
- data/assets/macos/universal/lib/libjxl.a +0 -0
- data/assets/macos/universal/lib/libmodplug.a +0 -0
- data/assets/macos/universal/lib/libmpg123.a +0 -0
- data/assets/macos/universal/lib/libmruby.a +0 -0
- data/assets/macos/universal/lib/libogg.a +0 -0
- data/assets/macos/universal/lib/libpng.a +0 -0
- data/assets/macos/universal/lib/libtiff.a +0 -0
- data/assets/macos/universal/lib/libvorbis.a +0 -0
- data/assets/macos/universal/lib/libvorbisfile.a +0 -0
- data/assets/macos/universal/lib/libwebp.a +0 -0
- data/assets/macos/universal/lib/libzstd.a +0 -0
- data/assets/test_media/README.md +0 -3
- data/assets/test_media/bitstream_vera/COPYRIGHT.txt +0 -124
- data/assets/test_media/bitstream_vera/vera.ttf +0 -0
- data/assets/test_media/boom.png +0 -0
- data/assets/test_media/coin.png +0 -0
- data/assets/test_media/colors.png +0 -0
- data/assets/test_media/controller.png +0 -0
- data/assets/test_media/dial.wav +0 -0
- data/assets/test_media/hero.png +0 -0
- data/assets/test_media/image.bmp +0 -0
- data/assets/test_media/image.jpg +0 -0
- data/assets/test_media/image.png +0 -0
- data/assets/test_media/music.flac +0 -0
- data/assets/test_media/music.mp3 +0 -0
- data/assets/test_media/music.ogg +0 -0
- data/assets/test_media/music.wav +0 -0
- data/assets/test_media/originals/boom.pxm +0 -0
- data/assets/test_media/originals/coin.pxm +0 -0
- data/assets/test_media/originals/controller.sketch +0 -0
- data/assets/test_media/originals/hero.pxm +0 -0
- data/assets/test_media/originals/image.pxm +0 -0
- data/assets/test_media/originals/music.caf +0 -0
- data/assets/test_media/originals/texture_atlas.pxm +0 -0
- data/assets/test_media/rondo_alla_turka.ogg +0 -0
- data/assets/test_media/sound.flac +0 -0
- data/assets/test_media/sound.mp3 +0 -0
- data/assets/test_media/sound.ogg +0 -0
- data/assets/test_media/sound.wav +0 -0
- data/assets/test_media/sprite_sheet.png +0 -0
- data/assets/test_media/texture_atlas.png +0 -0
- data/assets/wasm/libmruby.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/bin/mrbc.exe +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libFLAC.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libLerc.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_image.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_mixer.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libSDL2_ttf.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlicommon.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbrotlidec.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libbz2.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libdeflate.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libfreetype.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libglew32.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libgraphite2.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libharfbuzz.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libhwy.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjbig.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjpeg.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libjxl.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/liblzma.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmodplug.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmpg123.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libmruby.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libogg.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopus.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libopusfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libpng.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libsndfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libssp.a +0 -1
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libstdc++.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libtiff.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbis.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libvorbisfile.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libwebp.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libz.a +0 -0
- data/assets/windows/mingw-w64-ucrt-x86_64/lib/libzstd.a +0 -0
- data/assets/windows/mingw-w64-x86_64/bin/mrbc.exe +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libFLAC.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libLerc.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2_image.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2_mixer.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libSDL2_ttf.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libbrotlicommon.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libbrotlidec.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libbz2.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libdeflate.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libfreetype.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libglew32.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libgraphite2.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libharfbuzz.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libhwy.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libjbig.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libjpeg.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libjxl.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/liblzma.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libmodplug.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libmpg123.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libmruby.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libogg.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libopus.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libopusfile.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libpng.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libsndfile.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libssp.a +0 -1
- data/assets/windows/mingw-w64-x86_64/lib/libstdc++.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libtiff.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libvorbis.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libvorbisfile.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libwebp.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libz.a +0 -0
- data/assets/windows/mingw-w64-x86_64/lib/libzstd.a +0 -0
- data/assets/xcode/ios/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -98
- data/assets/xcode/ios/Assets.xcassets/Contents.json +0 -6
- data/assets/xcode/ios/Base.lproj/LaunchScreen.storyboard +0 -27
- data/assets/xcode/ios/Info.plist +0 -43
- data/assets/xcode/ios/MRuby.framework/Headers/mrbconf.h +0 -143
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/array.h +0 -280
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_nan.h +0 -102
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_no.h +0 -56
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/boxing_word.h +0 -144
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/class.h +0 -97
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/common.h +0 -77
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/compile.h +0 -195
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/data.h +0 -75
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/debug.h +0 -67
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/dump.h +0 -196
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/error.h +0 -75
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/gc.h +0 -91
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/hash.h +0 -215
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/irep.h +0 -75
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/istruct.h +0 -47
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/khash.h +0 -274
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/numeric.h +0 -161
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/object.h +0 -44
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/opcode.h +0 -69
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/ops.h +0 -117
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/proc.h +0 -131
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/range.h +0 -49
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/re.h +0 -16
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/string.h +0 -444
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/throw.h +0 -55
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/value.h +0 -309
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/variable.h +0 -136
- data/assets/xcode/ios/MRuby.framework/Headers/mruby/version.h +0 -110
- data/assets/xcode/ios/MRuby.framework/Headers/mruby.h +0 -1282
- data/assets/xcode/ios/MRuby.framework/Info.plist +0 -20
- data/assets/xcode/ios/MRuby.framework/MRuby +0 -0
- data/assets/xcode/ios/MyApp.xcodeproj/project.pbxproj +0 -368
- data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- data/assets/xcode/ios/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +0 -30
- data/assets/xcode/ios/main.c +0 -1
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json +0 -17
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json +0 -17
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json +0 -32
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image Wide.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json +0 -16
- data/assets/xcode/tvos/Assets.xcassets/Contents.json +0 -6
- data/assets/xcode/tvos/Assets.xcassets/LaunchImage.launchimage/Contents.json +0 -22
- data/assets/xcode/tvos/Info.plist +0 -30
- data/assets/xcode/tvos/MRuby.framework/Headers/mrbconf.h +0 -143
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/array.h +0 -280
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_nan.h +0 -102
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_no.h +0 -56
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/boxing_word.h +0 -144
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/class.h +0 -97
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/common.h +0 -77
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/compile.h +0 -195
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/data.h +0 -75
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/debug.h +0 -67
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/dump.h +0 -196
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/error.h +0 -75
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/gc.h +0 -91
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/hash.h +0 -215
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/irep.h +0 -75
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/istruct.h +0 -47
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/khash.h +0 -274
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/numeric.h +0 -161
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/object.h +0 -44
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/opcode.h +0 -69
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/ops.h +0 -117
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/proc.h +0 -131
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/range.h +0 -49
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/re.h +0 -16
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/string.h +0 -444
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/throw.h +0 -55
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/value.h +0 -309
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/variable.h +0 -136
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby/version.h +0 -110
- data/assets/xcode/tvos/MRuby.framework/Headers/mruby.h +0 -1282
- data/assets/xcode/tvos/MRuby.framework/Info.plist +0 -20
- data/assets/xcode/tvos/MRuby.framework/MRuby +0 -0
- data/assets/xcode/tvos/MyApp.xcodeproj/project.pbxproj +0 -350
- data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- data/assets/xcode/tvos/MyApp.xcodeproj/project.xcworkspace/xcshareddata/MyApp.xcscmblueprint +0 -30
- data/assets/xcode/tvos/main.c +0 -1
- data/ext/ruby2d/common.c +0 -185
- data/ext/ruby2d/controllers.c +0 -110
- data/ext/ruby2d/gl.c +0 -398
- data/ext/ruby2d/gl2.c +0 -86
- data/ext/ruby2d/gl3.c +0 -304
- data/ext/ruby2d/gles.c +0 -302
- data/ext/ruby2d/input.c +0 -48
- data/ext/ruby2d/music.c +0 -127
- data/ext/ruby2d/sound.c +0 -132
- data/lib/ruby2d/cli/console.rb +0 -65
- data/lib/ruby2d/cli/enable_console.rb +0 -7
- data/lib/ruby2d/cli/platform.rb +0 -17
- data/lib/ruby2d/music.rb +0 -77
- data/lib/ruby2d/pixel.rb +0 -18
- data/lib/ruby2d/pixmap.rb +0 -39
- data/lib/ruby2d/pixmap_atlas.rb +0 -56
- data/lib/ruby2d/sound.rb +0 -61
- data/lib/ruby2d/texture.rb +0 -38
- /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2.h +0 -0
- /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2ext.h +0 -0
- /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_gl2platform.h +0 -0
- /data/assets/{include/SDL2 → platform/include/SDL3}/SDL_opengles2_khrplatform.h +0 -0
- /data/assets/{include → platform/include}/mruby/re.h +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
** @file mruby/presym.h - Preallocated Symbols
|
|
3
|
+
**
|
|
4
|
+
** See Copyright Notice in mruby.h
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef MRUBY_PRESYM_H
|
|
8
|
+
#define MRUBY_PRESYM_H
|
|
9
|
+
|
|
10
|
+
#if !defined(MRB_PRESYM_SCANNING)
|
|
11
|
+
|
|
12
|
+
#include <mruby/presym/id.h>
|
|
13
|
+
|
|
14
|
+
/*
|
|
15
|
+
* Where `mrb_intern_lit` is allowed for symbol interning, it is directly
|
|
16
|
+
* replaced by the symbol ID using the following macros.
|
|
17
|
+
*
|
|
18
|
+
* MRB_OPSYM(xor) //=> ^ (Operator)
|
|
19
|
+
* MRB_GVSYM(xor) //=> $xor (Global Variable)
|
|
20
|
+
* MRB_CVSYM(xor) //=> @@xor (Class Variable)
|
|
21
|
+
* MRB_IVSYM(xor) //=> @xor (Instance Variable)
|
|
22
|
+
* MRB_SYM_B(xor) //=> xor! (Method with Bang)
|
|
23
|
+
* MRB_SYM_Q(xor) //=> xor? (Method with Question mark)
|
|
24
|
+
* MRB_SYM_E(xor) //=> xor= (Method with Equal)
|
|
25
|
+
* MRB_SYM(xor) //=> xor (Word characters)
|
|
26
|
+
*
|
|
27
|
+
* For `MRB_OPSYM`, specify the names corresponding to operators (see
|
|
28
|
+
* `MRuby::Presym::OPERATORS` in `lib/mruby/presym.rb` for the names that
|
|
29
|
+
* can be specified for it). Other than that, describe only word characters
|
|
30
|
+
* excluding leading and ending punctuation.
|
|
31
|
+
*
|
|
32
|
+
* These macros are expanded to compile-time integer constants.
|
|
33
|
+
*/
|
|
34
|
+
|
|
35
|
+
#define MRB_OPSYM(name) MRB_OPSYM__##name
|
|
36
|
+
#define MRB_GVSYM(name) MRB_GVSYM__##name
|
|
37
|
+
#define MRB_CVSYM(name) MRB_CVSYM__##name
|
|
38
|
+
#define MRB_IVSYM(name) MRB_IVSYM__##name
|
|
39
|
+
#define MRB_SYM_B(name) MRB_SYM_B__##name
|
|
40
|
+
#define MRB_SYM_Q(name) MRB_SYM_Q__##name
|
|
41
|
+
#define MRB_SYM_E(name) MRB_SYM_E__##name
|
|
42
|
+
#define MRB_SYM(name) MRB_SYM__##name
|
|
43
|
+
|
|
44
|
+
/* backward compatibility: _2 variants accept but ignore mrb_state* */
|
|
45
|
+
#define MRB_OPSYM_2(mrb, name) MRB_OPSYM(name)
|
|
46
|
+
#define MRB_GVSYM_2(mrb, name) MRB_GVSYM(name)
|
|
47
|
+
#define MRB_CVSYM_2(mrb, name) MRB_CVSYM(name)
|
|
48
|
+
#define MRB_IVSYM_2(mrb, name) MRB_IVSYM(name)
|
|
49
|
+
#define MRB_SYM_B_2(mrb, name) MRB_SYM_B(name)
|
|
50
|
+
#define MRB_SYM_Q_2(mrb, name) MRB_SYM_Q(name)
|
|
51
|
+
#define MRB_SYM_E_2(mrb, name) MRB_SYM_E(name)
|
|
52
|
+
#define MRB_SYM_2(mrb, name) MRB_SYM(name)
|
|
53
|
+
|
|
54
|
+
#define MRB_PRESYM_DEFINE_VAR_AND_INITER(name, size, ...) \
|
|
55
|
+
static const mrb_sym name[] = {__VA_ARGS__};
|
|
56
|
+
|
|
57
|
+
#define MRB_PRESYM_INIT_SYMBOLS(mrb, name) (void)(mrb)
|
|
58
|
+
|
|
59
|
+
/* use MRB_SYM() for E_RUNTIME_ERROR etc. */
|
|
60
|
+
#undef MRB_ERROR_SYM
|
|
61
|
+
#define MRB_ERROR_SYM(sym) MRB_SYM(sym)
|
|
62
|
+
|
|
63
|
+
#endif /* !MRB_PRESYM_SCANNING */
|
|
64
|
+
|
|
65
|
+
#endif /* MRUBY_PRESYM_H */
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
** @file 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
|
+
#include <string.h>
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Proc class
|
|
16
|
+
*/
|
|
17
|
+
MRB_BEGIN_DECL
|
|
18
|
+
|
|
19
|
+
/*
|
|
20
|
+
* env object (for internal used)
|
|
21
|
+
*
|
|
22
|
+
* - don't create multiple envs on one ci.
|
|
23
|
+
* - don't share a env to different ci.
|
|
24
|
+
* - don't attach a closed env to any ci.
|
|
25
|
+
*/
|
|
26
|
+
struct REnv {
|
|
27
|
+
MRB_OBJECT_HEADER;
|
|
28
|
+
mrb_value *stack;
|
|
29
|
+
struct mrb_context *cxt; /* if not null, it means that the stack is shared with the call frame */
|
|
30
|
+
mrb_sym mid;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
/* flags (20bits): 1(ZERO):1(separate module):2(visibility):8(cioff/bidx):8(stack_len) */
|
|
34
|
+
#define MRB_ENV_SET_LEN(e,len) ((e)->flags = (((e)->flags & ~0xff)|((unsigned int)(len) & 0xff)))
|
|
35
|
+
#define MRB_ENV_LEN(e) ((mrb_int)((e)->flags & 0xff))
|
|
36
|
+
#define MRB_ENV_CLOSE(e) ((e)->cxt = NULL)
|
|
37
|
+
#define MRB_ENV_ONSTACK_P(e) ((e)->cxt != NULL)
|
|
38
|
+
#define MRB_ENV_BIDX(e) (((e)->flags >> 8) & 0xff)
|
|
39
|
+
#define MRB_ENV_SET_BIDX(e,idx) ((e)->flags = (((e)->flags & ~(0xff<<8))|((unsigned int)(idx) & 0xff)<<8))
|
|
40
|
+
#define MRB_ENV_SET_VISIBILITY(e, vis) MRB_FLAGS_SET((e)->flags, 16, 2, vis)
|
|
41
|
+
#define MRB_ENV_VISIBILITY(e) MRB_FLAGS_GET((e)->flags, 16, 2)
|
|
42
|
+
#define MRB_ENV_VISIBILITY_BREAK_P(e) MRB_FLAG_CHECK((e)->flags, 18)
|
|
43
|
+
#define MRB_ENV_COPY_FLAGS_FROM_CI(e, ci) MRB_FLAGS_SET((e)->flags, 16, 3, (ci)->vis)
|
|
44
|
+
|
|
45
|
+
/*
|
|
46
|
+
* Returns TRUE on success.
|
|
47
|
+
* If the function fails:
|
|
48
|
+
* * Returns FALSE if noraise is TRUE.
|
|
49
|
+
* * Raises a NoMemoryError exception if noraise is FALSE.
|
|
50
|
+
*/
|
|
51
|
+
mrb_bool mrb_env_unshare(mrb_state*, struct REnv*, mrb_bool noraise);
|
|
52
|
+
|
|
53
|
+
struct RProc {
|
|
54
|
+
MRB_OBJECT_HEADER;
|
|
55
|
+
union {
|
|
56
|
+
const mrb_irep *irep;
|
|
57
|
+
mrb_func_t func;
|
|
58
|
+
mrb_sym mid;
|
|
59
|
+
} body;
|
|
60
|
+
const struct RProc *upper;
|
|
61
|
+
union {
|
|
62
|
+
struct RClass *target_class;
|
|
63
|
+
struct REnv *env;
|
|
64
|
+
} e;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/* aspec access */
|
|
68
|
+
#define MRB_ASPEC_REQ(a) (((a) >> 18) & 0x1f)
|
|
69
|
+
#define MRB_ASPEC_OPT(a) (((a) >> 13) & 0x1f)
|
|
70
|
+
#define MRB_ASPEC_REST(a) (((a) >> 12) & 0x1)
|
|
71
|
+
#define MRB_ASPEC_POST(a) (((a) >> 7) & 0x1f)
|
|
72
|
+
#define MRB_ASPEC_KEY(a) (((a) >> 2) & 0x1f)
|
|
73
|
+
#define MRB_ASPEC_KDICT(a) (((a) >> 1) & 0x1)
|
|
74
|
+
#define MRB_ASPEC_BLOCK(a) ((a) & 1)
|
|
75
|
+
#define MRB_ASPEC_NOBLOCK(a) (((a) >> 23) & 0x1)
|
|
76
|
+
|
|
77
|
+
#define MRB_PROC_CFUNC_FL 128
|
|
78
|
+
#define MRB_PROC_CFUNC_P(p) (((p)->flags & MRB_PROC_CFUNC_FL) != 0)
|
|
79
|
+
#define MRB_PROC_CFUNC(p) (p)->body.func
|
|
80
|
+
#define MRB_PROC_STRICT 256
|
|
81
|
+
#define MRB_PROC_STRICT_P(p) (((p)->flags & MRB_PROC_STRICT) != 0)
|
|
82
|
+
#define MRB_PROC_ORPHAN 512
|
|
83
|
+
#define MRB_PROC_ORPHAN_P(p) (((p)->flags & MRB_PROC_ORPHAN) != 0)
|
|
84
|
+
#define MRB_PROC_ENVSET 1024
|
|
85
|
+
#define MRB_PROC_ENV_P(p) (((p)->flags & MRB_PROC_ENVSET) != 0)
|
|
86
|
+
#define MRB_PROC_ENV(p) (MRB_PROC_ENV_P(p) ? (p)->e.env : NULL)
|
|
87
|
+
#define MRB_PROC_TARGET_CLASS(p) (MRB_PROC_ENV_P(p) ? (p)->e.env->c : (p)->e.target_class)
|
|
88
|
+
#define MRB_PROC_SET_TARGET_CLASS(p,tc) do {\
|
|
89
|
+
if (MRB_PROC_ENV_P(p)) {\
|
|
90
|
+
(p)->e.env->c = (tc);\
|
|
91
|
+
mrb_field_write_barrier(mrb, (struct RBasic*)(p)->e.env, (struct RBasic*)(tc));\
|
|
92
|
+
}\
|
|
93
|
+
else {\
|
|
94
|
+
(p)->e.target_class = (tc);\
|
|
95
|
+
mrb_field_write_barrier(mrb, (struct RBasic*)p, (struct RBasic*)(tc));\
|
|
96
|
+
}\
|
|
97
|
+
} while (0)
|
|
98
|
+
#define MRB_PROC_SCOPE 2048
|
|
99
|
+
#define MRB_PROC_SCOPE_P(p) (((p)->flags & MRB_PROC_SCOPE) != 0)
|
|
100
|
+
#define MRB_PROC_NOARG 4096 /* for MRB_PROC_CFUNC_FL, aspec == MRB_ARGS_NONE() */
|
|
101
|
+
#define MRB_PROC_NOARG_P(p) (((p)->flags & MRB_PROC_NOARG) != 0)
|
|
102
|
+
#define MRB_PROC_ALIAS 8192
|
|
103
|
+
#define MRB_PROC_ALIAS_P(p) (((p)->flags & MRB_PROC_ALIAS) != 0)
|
|
104
|
+
|
|
105
|
+
#define mrb_proc_ptr(v) ((struct RProc*)(mrb_ptr(v)))
|
|
106
|
+
|
|
107
|
+
struct RProc *mrb_proc_new(mrb_state*, const mrb_irep*);
|
|
108
|
+
MRB_API struct RProc *mrb_proc_new_cfunc(mrb_state*, mrb_func_t);
|
|
109
|
+
MRB_API struct RProc *mrb_closure_new_cfunc(mrb_state *mrb, mrb_func_t func, int nlocals);
|
|
110
|
+
|
|
111
|
+
/* following functions are defined in mruby-proc-ext so please include it when using */
|
|
112
|
+
MRB_API struct RProc *mrb_proc_new_cfunc_with_env(mrb_state *mrb, mrb_func_t func, mrb_int argc, const mrb_value *argv);
|
|
113
|
+
MRB_API mrb_value mrb_proc_cfunc_env_get(mrb_state *mrb, mrb_int idx);
|
|
114
|
+
/* old name */
|
|
115
|
+
#define mrb_cfunc_env_get(mrb, idx) mrb_proc_cfunc_env_get(mrb, idx)
|
|
116
|
+
|
|
117
|
+
#define MRB_METHOD_FUNC_FL (1 << 24)
|
|
118
|
+
#define MRB_METHOD_PUBLIC_FL 0
|
|
119
|
+
#define MRB_METHOD_PRIVATE_FL (1 << 25)
|
|
120
|
+
#define MRB_METHOD_PROTECTED_FL (1 << 26)
|
|
121
|
+
#define MRB_METHOD_VDEFAULT_FL ((1 << 25) | (1 << 26))
|
|
122
|
+
#define MRB_METHOD_VISIBILITY_MASK ((1 << 25) | (1 << 26))
|
|
123
|
+
|
|
124
|
+
#define MRB_METHOD_FUNC_P(m) ((m).flags&MRB_METHOD_FUNC_FL)
|
|
125
|
+
#define MRB_METHOD_FUNC(m) ((m).as.func)
|
|
126
|
+
#define MRB_METHOD_FROM_FUNC(m,fn) do{(m).flags=MRB_METHOD_FUNC_FL;(m).as.func=(fn);}while(0)
|
|
127
|
+
#define MRB_METHOD_FROM_PROC(m,pr) do{(m).flags=0;(m).as.proc=(pr);}while(0)
|
|
128
|
+
#define MRB_METHOD_PROC_P(m) (!MRB_METHOD_FUNC_P(m))
|
|
129
|
+
#define MRB_METHOD_PROC(m) ((m).as.proc)
|
|
130
|
+
#define MRB_METHOD_UNDEF_P(m) ((m).as.proc==NULL)
|
|
131
|
+
#define MRB_METHOD_VISIBILITY(m) ((m).flags & MRB_METHOD_VISIBILITY_MASK)
|
|
132
|
+
#define MRB_SET_VISIBILITY_FLAGS(f,v) ((f)=(((f)&~MRB_METHOD_VISIBILITY_MASK)|(v)))
|
|
133
|
+
#define MRB_METHOD_SET_VISIBILITY(m,v) MRB_SET_VISIBILITY_FLAGS((m).flags,(v))
|
|
134
|
+
|
|
135
|
+
#define MRB_METHOD_CFUNC_P(m) (MRB_METHOD_FUNC_P(m) || (MRB_METHOD_PROC(m)?(MRB_PROC_CFUNC_P(MRB_METHOD_PROC(m))):FALSE))
|
|
136
|
+
/* use MRB_METHOD_CFUNC(m) only when MRB_METHOD_CFUNC_P(m) is true */
|
|
137
|
+
#define MRB_METHOD_CFUNC(m) (MRB_METHOD_FUNC_P(m)?MRB_METHOD_FUNC(m):MRB_PROC_CFUNC(MRB_METHOD_PROC(m)))
|
|
138
|
+
|
|
139
|
+
MRB_API mrb_value mrb_load_proc(mrb_state *mrb, const struct RProc *proc);
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* It can be used to isolate top-level scopes referenced by blocks generated by
|
|
143
|
+
* `mrb_load_string_cxt()` or similar called before entering the mruby VM (e.g. from `main()`).
|
|
144
|
+
* In that case, the `ci` parameter should be `mrb->c->cibase`.
|
|
145
|
+
*
|
|
146
|
+
* #include <mruby.h>
|
|
147
|
+
* #include <mruby/compile.h>
|
|
148
|
+
* #include <mruby/proc.h>
|
|
149
|
+
*
|
|
150
|
+
* int
|
|
151
|
+
* main(int argc, char **argv)
|
|
152
|
+
* {
|
|
153
|
+
* mrb_state *mrb;
|
|
154
|
+
* mrb_ccontext *cxt;
|
|
155
|
+
* mrb_value blk, ret;
|
|
156
|
+
*
|
|
157
|
+
* mrb = mrb_open();
|
|
158
|
+
* cxt = mrb_ccontext_new(mrb);
|
|
159
|
+
* blk = mrb_load_string_cxt(mrb, "x, y, z = 1, 2, 3; proc { [x, y, z] }", cxt);
|
|
160
|
+
* mrb_vm_ci_env_clear(mrb, mrb->c->cibase);
|
|
161
|
+
* mrb_load_string_cxt(mrb, "x, y, z = 4, 5, 6", cxt);
|
|
162
|
+
* ret = mrb_funcall(mrb, blk, "call", 0);
|
|
163
|
+
* mrb_p(mrb, ret); // => [1, 2, 3]
|
|
164
|
+
* // => [4, 5, 6] if `mrb_vm_ci_env_clear()` is commented out
|
|
165
|
+
* mrb_ccontext_free(mrb, cxt);
|
|
166
|
+
* mrb_close(mrb);
|
|
167
|
+
*
|
|
168
|
+
* return 0;
|
|
169
|
+
* }
|
|
170
|
+
*
|
|
171
|
+
* The top-level local variable names stored in `mrb_ccontext` are retained.
|
|
172
|
+
* Use also `mrb_ccontext_cleanup_local_variables()` at the same time, if necessary.
|
|
173
|
+
*/
|
|
174
|
+
MRB_API void mrb_vm_ci_env_clear(mrb_state *mrb, mrb_callinfo *ci);
|
|
175
|
+
|
|
176
|
+
void mrb_vm_ci_proc_set(mrb_callinfo *ci, const struct RProc *p);
|
|
177
|
+
struct RClass * mrb_vm_ci_target_class(const mrb_callinfo *ci);
|
|
178
|
+
void mrb_vm_ci_target_class_set(mrb_callinfo *ci, struct RClass *tc);
|
|
179
|
+
struct REnv * mrb_vm_ci_env(const mrb_callinfo *ci);
|
|
180
|
+
void mrb_vm_ci_env_set(mrb_callinfo *ci, struct REnv *e);
|
|
181
|
+
|
|
182
|
+
MRB_END_DECL
|
|
183
|
+
|
|
184
|
+
#endif /* MRUBY_PROC_H */
|
|
@@ -71,8 +71,6 @@ enum mrb_range_beg_len {
|
|
|
71
71
|
};
|
|
72
72
|
|
|
73
73
|
MRB_API enum mrb_range_beg_len mrb_range_beg_len(mrb_state *mrb, mrb_value range, mrb_int *begp, mrb_int *lenp, mrb_int len, mrb_bool trunc);
|
|
74
|
-
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));
|
|
75
|
-
void mrb_gc_mark_range(mrb_state *mrb, struct RRange *r);
|
|
76
74
|
|
|
77
75
|
MRB_END_DECL
|
|
78
76
|
|
|
@@ -38,12 +38,25 @@ struct RStringEmbed {
|
|
|
38
38
|
char ary[RSTRING_EMBED_LEN_MAX+1];
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
#define
|
|
42
|
-
|
|
41
|
+
#define RSTR_SET_TYPE(s, type) ((s)->flags = ((s)->flags & ~(MRB_STR_TYPE_MASK|MRB_STR_EMBED_LEN_MASK)) | MRB_STR_##type)
|
|
42
|
+
|
|
43
|
+
#define MRB_STR_NORMAL 0
|
|
44
|
+
#define MRB_STR_SHARED 1
|
|
45
|
+
#define MRB_STR_FSHARED 2
|
|
46
|
+
#define MRB_STR_NOFREE 4
|
|
47
|
+
#define MRB_STR_EMBED 8
|
|
48
|
+
#define MRB_STR_TYPE_MASK 15
|
|
49
|
+
|
|
50
|
+
#define MRB_STR_EMBED_LEN_SHIFT 6
|
|
51
|
+
#define MRB_STR_EMBED_LEN_BITS 5
|
|
52
|
+
#define MRB_STR_EMBED_LEN_MASK (((1 << MRB_STR_EMBED_LEN_BITS) - 1) << MRB_STR_EMBED_LEN_SHIFT)
|
|
53
|
+
|
|
54
|
+
#define MRB_STR_BINARY 16
|
|
55
|
+
#define MRB_STR_SINGLE_BYTE 32
|
|
56
|
+
#define MRB_STR_STATE_MASK 48
|
|
43
57
|
|
|
44
58
|
#define RSTR_EMBED_P(s) ((s)->flags & MRB_STR_EMBED)
|
|
45
59
|
#define RSTR_SET_EMBED_FLAG(s) ((s)->flags |= MRB_STR_EMBED)
|
|
46
|
-
#define RSTR_UNSET_EMBED_FLAG(s) ((s)->flags &= ~(MRB_STR_EMBED|MRB_STR_EMBED_LEN_MASK))
|
|
47
60
|
#define RSTR_SET_EMBED_LEN(s, n) do {\
|
|
48
61
|
size_t tmp_n = (n);\
|
|
49
62
|
(s)->flags &= ~MRB_STR_EMBED_LEN_MASK;\
|
|
@@ -67,30 +80,24 @@ struct RStringEmbed {
|
|
|
67
80
|
#define RSTR_CAPA(s) (RSTR_EMBED_P(s) ? RSTRING_EMBED_LEN_MAX : (s)->as.heap.aux.capa)
|
|
68
81
|
|
|
69
82
|
#define RSTR_SHARED_P(s) ((s)->flags & MRB_STR_SHARED)
|
|
70
|
-
#define RSTR_SET_SHARED_FLAG(s) ((s)->flags |= MRB_STR_SHARED)
|
|
71
|
-
#define RSTR_UNSET_SHARED_FLAG(s) ((s)->flags &= ~MRB_STR_SHARED)
|
|
72
|
-
|
|
73
83
|
#define RSTR_FSHARED_P(s) ((s)->flags & MRB_STR_FSHARED)
|
|
74
|
-
#define RSTR_SET_FSHARED_FLAG(s) ((s)->flags |= MRB_STR_FSHARED)
|
|
75
|
-
#define RSTR_UNSET_FSHARED_FLAG(s) ((s)->flags &= ~MRB_STR_FSHARED)
|
|
76
|
-
|
|
77
84
|
#define RSTR_NOFREE_P(s) ((s)->flags & MRB_STR_NOFREE)
|
|
78
|
-
#define RSTR_SET_NOFREE_FLAG(s) ((s)->flags |= MRB_STR_NOFREE)
|
|
79
|
-
#define RSTR_UNSET_NOFREE_FLAG(s) ((s)->flags &= ~MRB_STR_NOFREE)
|
|
80
85
|
|
|
81
86
|
#ifdef MRB_UTF8_STRING
|
|
82
|
-
# define
|
|
83
|
-
# define
|
|
84
|
-
# define
|
|
85
|
-
# define
|
|
86
|
-
# define
|
|
87
|
+
# define RSTR_SINGLE_BYTE_P(s) ((s)->flags & MRB_STR_SINGLE_BYTE)
|
|
88
|
+
# define RSTR_SET_SINGLE_BYTE_FLAG(s) ((s)->flags |= MRB_STR_SINGLE_BYTE)
|
|
89
|
+
# define RSTR_UNSET_SINGLE_BYTE_FLAG(s) ((s)->flags &= ~MRB_STR_SINGLE_BYTE)
|
|
90
|
+
# define RSTR_WRITE_SINGLE_BYTE_FLAG(s, v) (RSTR_UNSET_SINGLE_BYTE_FLAG(s), (s)->flags |= v)
|
|
91
|
+
# define RSTR_COPY_SINGLE_BYTE_FLAG(dst, src) RSTR_WRITE_SINGLE_BYTE_FLAG(dst, RSTR_SINGLE_BYTE_P(src))
|
|
87
92
|
#else
|
|
88
|
-
# define
|
|
89
|
-
# define
|
|
90
|
-
# define
|
|
91
|
-
# define
|
|
92
|
-
# define
|
|
93
|
+
# define RSTR_SINGLE_BYTE_P(s) TRUE
|
|
94
|
+
# define RSTR_SET_SINGLE_BYTE_FLAG(s) (void)0
|
|
95
|
+
# define RSTR_UNSET_SINGLE_BYTE_FLAG(s) (void)0
|
|
96
|
+
# define RSTR_WRITE_SINGLE_BYTE_FLAG(s, v) (void)0
|
|
97
|
+
# define RSTR_COPY_SINGLE_BYTE_FLAG(dst, src) (void)0
|
|
93
98
|
#endif
|
|
99
|
+
#define RSTR_SET_ASCII_FLAG(s) RSTR_SET_SINGLE_BYTE_FLAG(s)
|
|
100
|
+
#define RSTR_BINARY_P(s) ((s)->flags & MRB_STR_BINARY)
|
|
94
101
|
|
|
95
102
|
/**
|
|
96
103
|
* Returns a pointer from a Ruby string
|
|
@@ -102,21 +109,8 @@ struct RStringEmbed {
|
|
|
102
109
|
#define RSTRING_LEN(s) RSTR_LEN(RSTRING(s))
|
|
103
110
|
#define RSTRING_CAPA(s) RSTR_CAPA(RSTRING(s))
|
|
104
111
|
#define RSTRING_END(s) (RSTRING_PTR(s) + RSTRING_LEN(s))
|
|
105
|
-
MRB_API mrb_int mrb_str_strlen(mrb_state*, struct RString*);
|
|
106
112
|
#define RSTRING_CSTR(mrb,s) mrb_string_cstr(mrb, s)
|
|
107
113
|
|
|
108
|
-
#define MRB_STR_SHARED 1
|
|
109
|
-
#define MRB_STR_FSHARED 2
|
|
110
|
-
#define MRB_STR_NOFREE 4
|
|
111
|
-
#define MRB_STR_EMBED 8 /* type flags up to here */
|
|
112
|
-
#define MRB_STR_ASCII 16
|
|
113
|
-
#define MRB_STR_EMBED_LEN_SHIFT 6
|
|
114
|
-
#define MRB_STR_EMBED_LEN_BIT 5
|
|
115
|
-
#define MRB_STR_EMBED_LEN_MASK (((1 << MRB_STR_EMBED_LEN_BIT) - 1) << MRB_STR_EMBED_LEN_SHIFT)
|
|
116
|
-
#define MRB_STR_TYPE_MASK 15
|
|
117
|
-
|
|
118
|
-
void mrb_gc_free_str(mrb_state*, struct RString*);
|
|
119
|
-
|
|
120
114
|
MRB_API void mrb_str_modify(mrb_state *mrb, struct RString *s);
|
|
121
115
|
/* mrb_str_modify() with keeping ASCII flag if set */
|
|
122
116
|
MRB_API void mrb_str_modify_keep_ascii(mrb_state *mrb, struct RString *s);
|
|
@@ -324,7 +318,7 @@ MRB_API mrb_value mrb_str_resize(mrb_state *mrb, mrb_value str, mrb_int len);
|
|
|
324
318
|
*/
|
|
325
319
|
MRB_API mrb_value mrb_str_substr(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len);
|
|
326
320
|
|
|
327
|
-
MRB_API mrb_value mrb_str_new_capa(mrb_state *mrb,
|
|
321
|
+
MRB_API mrb_value mrb_str_new_capa(mrb_state *mrb, mrb_int capa);
|
|
328
322
|
#define mrb_str_buf_new(mrb, capa) mrb_str_new_capa(mrb, (capa))
|
|
329
323
|
|
|
330
324
|
/* NULL terminated C string from mrb_value */
|
|
@@ -332,9 +326,11 @@ MRB_API const char *mrb_string_cstr(mrb_state *mrb, mrb_value str);
|
|
|
332
326
|
/* NULL terminated C string from mrb_value; `str` will be updated */
|
|
333
327
|
MRB_API const char *mrb_string_value_cstr(mrb_state *mrb, mrb_value *str);
|
|
334
328
|
/* obsolete: use RSTRING_PTR() */
|
|
335
|
-
|
|
329
|
+
#define mrb_string_value_ptr(mrb, str) RSTRING_PTR(str)
|
|
336
330
|
/* obsolete: use RSTRING_LEN() */
|
|
337
|
-
|
|
331
|
+
#define mrb_string_value_len(mrb, str) RSTRING_LEN(str)
|
|
332
|
+
/* obsolete: substituted by a macro; shall be removed */
|
|
333
|
+
#define mrb_str_strlen(mrb, s) strlen(RSTR_PTR(s))
|
|
338
334
|
|
|
339
335
|
/**
|
|
340
336
|
* Duplicates a string object.
|
|
@@ -422,27 +418,11 @@ MRB_API int mrb_str_cmp(mrb_state *mrb, mrb_value str1, mrb_value str2);
|
|
|
422
418
|
*/
|
|
423
419
|
MRB_API char *mrb_str_to_cstr(mrb_state *mrb, mrb_value str);
|
|
424
420
|
|
|
425
|
-
uint32_t mrb_str_hash(mrb_state *mrb, mrb_value str);
|
|
426
|
-
mrb_value mrb_str_dump(mrb_state *mrb, mrb_value str);
|
|
427
|
-
|
|
428
|
-
/**
|
|
429
|
-
* Returns a printable version of str, surrounded by quote marks, with special characters escaped.
|
|
430
|
-
*/
|
|
431
|
-
mrb_value mrb_str_inspect(mrb_state *mrb, mrb_value str);
|
|
432
|
-
|
|
433
421
|
/* For backward compatibility */
|
|
434
422
|
#define mrb_str_cat2(mrb, str, ptr) mrb_str_cat_cstr(mrb, str, ptr)
|
|
435
423
|
#define mrb_str_buf_cat(mrb, str, ptr, len) mrb_str_cat(mrb, str, ptr, len)
|
|
436
424
|
#define mrb_str_buf_append(mrb, str, str2) mrb_str_cat_str(mrb, str, str2)
|
|
437
425
|
|
|
438
|
-
mrb_bool mrb_str_beg_len(mrb_int str_len, mrb_int *begp, mrb_int *lenp);
|
|
439
|
-
mrb_value mrb_str_byte_subseq(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len);
|
|
440
|
-
|
|
441
|
-
#ifdef MRB_UTF8_STRING
|
|
442
|
-
mrb_int mrb_utf8len(const char *str, const char *end);
|
|
443
|
-
mrb_int mrb_utf8_strlen(const char *str, mrb_int byte_len);
|
|
444
|
-
#endif
|
|
445
|
-
|
|
446
426
|
MRB_END_DECL
|
|
447
427
|
|
|
448
428
|
#endif /* MRUBY_STRING_H */
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
** @file mruby/throw.h - mruby exception throwing handler
|
|
3
|
+
**
|
|
4
|
+
** See Copyright Notice in mruby.h
|
|
5
|
+
**
|
|
6
|
+
** WARNING: This header is for mruby core internal use only.
|
|
7
|
+
** Do not include this header in user code or mrbgems.
|
|
8
|
+
**
|
|
9
|
+
** When MRB_USE_CXX_EXCEPTION is defined, this header requires C++
|
|
10
|
+
** compilation. C source files that include this header will fail
|
|
11
|
+
** to compile when linked into C++ projects using MRB_USE_CXX_EXCEPTION.
|
|
12
|
+
**
|
|
13
|
+
** For exception-safe code in mrbgems and user code, use the
|
|
14
|
+
** mrb_protect_error() API from <mruby/error.h> instead:
|
|
15
|
+
**
|
|
16
|
+
** #include <mruby/error.h>
|
|
17
|
+
**
|
|
18
|
+
** mrb_value my_func_body(mrb_state *mrb, void *data) {
|
|
19
|
+
** // code that may raise exceptions
|
|
20
|
+
** return result;
|
|
21
|
+
** }
|
|
22
|
+
**
|
|
23
|
+
** void my_func(mrb_state *mrb) {
|
|
24
|
+
** mrb_bool error;
|
|
25
|
+
** mrb_value result = mrb_protect_error(mrb, my_func_body, data, &error);
|
|
26
|
+
** // cleanup code runs here regardless of exception
|
|
27
|
+
** if (error) mrb_exc_raise(mrb, result);
|
|
28
|
+
** }
|
|
29
|
+
*/
|
|
30
|
+
|
|
31
|
+
#ifndef MRB_THROW_H
|
|
32
|
+
#define MRB_THROW_H
|
|
33
|
+
|
|
34
|
+
#if defined(MRB_USE_CXX_ABI) && !defined(__cplusplus)
|
|
35
|
+
# error Trying to use C++ exception handling in C code
|
|
36
|
+
#endif
|
|
37
|
+
|
|
38
|
+
#if defined(MRB_USE_CXX_EXCEPTION)
|
|
39
|
+
|
|
40
|
+
# if defined(__cplusplus)
|
|
41
|
+
|
|
42
|
+
#define MRB_TRY(buf) try {
|
|
43
|
+
#define MRB_CATCH(buf) } catch(mrb_jmpbuf *e) { if (e != (buf)) { throw e; }
|
|
44
|
+
#define MRB_END_EXC(buf) }
|
|
45
|
+
|
|
46
|
+
#define MRB_THROW(buf) throw(buf)
|
|
47
|
+
typedef void *mrb_jmpbuf_impl;
|
|
48
|
+
|
|
49
|
+
# else
|
|
50
|
+
# error "need to be compiled with C++ compiler"
|
|
51
|
+
# endif /* __cplusplus */
|
|
52
|
+
|
|
53
|
+
#else
|
|
54
|
+
|
|
55
|
+
#include <setjmp.h>
|
|
56
|
+
|
|
57
|
+
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
|
|
58
|
+
#define MRB_SETJMP _setjmp
|
|
59
|
+
#define MRB_LONGJMP _longjmp
|
|
60
|
+
#elif defined(__MINGW64__) && !defined(_M_ARM64) && defined(__GNUC__) && __GNUC__ >= 4
|
|
61
|
+
#define MRB_SETJMP __builtin_setjmp
|
|
62
|
+
#define MRB_LONGJMP __builtin_longjmp
|
|
63
|
+
#else
|
|
64
|
+
#define MRB_SETJMP setjmp
|
|
65
|
+
#define MRB_LONGJMP longjmp
|
|
66
|
+
#endif
|
|
67
|
+
|
|
68
|
+
#define MRB_TRY(buf) if (MRB_SETJMP((buf)->impl) == 0) {
|
|
69
|
+
#define MRB_CATCH(buf) } else {
|
|
70
|
+
#define MRB_END_EXC(buf) }
|
|
71
|
+
|
|
72
|
+
#define MRB_THROW(buf) MRB_LONGJMP((buf)->impl, 1);
|
|
73
|
+
#define mrb_jmpbuf_impl jmp_buf
|
|
74
|
+
|
|
75
|
+
#endif
|
|
76
|
+
|
|
77
|
+
struct mrb_jmpbuf {
|
|
78
|
+
mrb_jmpbuf_impl impl;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
#endif /* MRB_THROW_H */
|