script_core 0.2.7 → 0.3.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/.ruby-version +1 -1
- data/Gemfile +2 -2
- data/ext/enterprise_script_service/Rakefile +1 -1
- data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +117 -74
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +41 -37
- data/ext/enterprise_script_service/mruby/.github/workflows/lint.yml +23 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/oss-fuzz.yml +27 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/spell-checker.yml +17 -0
- data/ext/enterprise_script_service/mruby/.gitlab-ci.yml +3 -3
- data/ext/enterprise_script_service/mruby/.markdownlint.yml +16 -0
- data/ext/enterprise_script_service/mruby/.travis.yml +2 -2
- data/ext/enterprise_script_service/mruby/.yamllint +8 -0
- data/ext/enterprise_script_service/mruby/AUTHORS +3 -0
- data/ext/enterprise_script_service/mruby/CODEOWNERS +1 -0
- data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +6 -13
- data/ext/enterprise_script_service/mruby/Doxyfile +4 -4
- data/ext/enterprise_script_service/mruby/LICENSE +1 -1
- data/ext/enterprise_script_service/mruby/Makefile +1 -1
- data/ext/enterprise_script_service/mruby/README.md +4 -14
- data/ext/enterprise_script_service/mruby/Rakefile +18 -108
- data/ext/enterprise_script_service/mruby/TODO.md +17 -0
- data/ext/enterprise_script_service/mruby/appveyor.yml +31 -25
- data/ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb +1 -1
- data/ext/enterprise_script_service/mruby/build_config.rb +9 -152
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_ArduinoDue.rb → build_config/ArduinoDue.rb} +2 -19
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelEdison.rb → build_config/IntelEdison.rb} +2 -2
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelGalileo.rb → build_config/IntelGalileo.rb} +1 -18
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_RX630.rb → build_config/RX630.rb} +2 -19
- data/ext/enterprise_script_service/mruby/build_config/android_arm64-v8a.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/android_armeabi.rb +11 -0
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_android_armeabi_v7a_neon_hard.rb → build_config/android_armeabi_v7a_neon_hard.rb} +0 -15
- data/ext/enterprise_script_service/mruby/build_config/bench.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/boxing.rb +21 -0
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_chipKITMax32.rb → build_config/chipKITMax32.rb} +2 -19
- data/ext/enterprise_script_service/mruby/{travis_config.rb → build_config/ci/gcc-clang.rb} +10 -10
- data/ext/enterprise_script_service/mruby/build_config/ci/msvc.rb +20 -0
- data/ext/enterprise_script_service/mruby/build_config/clang-asan.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/cross-32bit.rb +14 -0
- data/ext/enterprise_script_service/mruby/build_config/default.rb +80 -0
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_dreamcast_shelf.rb → build_config/dreamcast_shelf.rb} +5 -19
- data/ext/enterprise_script_service/mruby/build_config/gameboyadvance.rb +73 -0
- data/ext/enterprise_script_service/mruby/build_config/host-cxx.rb +12 -0
- data/ext/enterprise_script_service/mruby/build_config/host-debug.rb +20 -0
- data/ext/enterprise_script_service/mruby/build_config/host-gprof.rb +14 -0
- data/ext/enterprise_script_service/mruby/build_config/host-m32.rb +15 -0
- data/ext/enterprise_script_service/mruby/build_config/host-shared.rb +36 -0
- data/ext/enterprise_script_service/mruby/build_config/mrbc.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/no-float.rb +17 -0
- data/ext/enterprise_script_service/mruby/doc/guides/compile.md +138 -49
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +5 -4
- data/ext/enterprise_script_service/mruby/doc/guides/gc-arena-howto.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +49 -22
- data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +31 -14
- data/ext/enterprise_script_service/mruby/doc/guides/symbol.md +83 -0
- data/ext/enterprise_script_service/mruby/doc/limitations.md +35 -36
- data/ext/enterprise_script_service/mruby/doc/mruby3.md +163 -0
- data/ext/enterprise_script_service/mruby/doc/opcode.md +93 -107
- data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +1 -1
- data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +5 -1
- data/ext/enterprise_script_service/mruby/examples/mrbgems/c_extension_example/src/example.c +5 -1
- data/ext/enterprise_script_service/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +1 -1
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +81 -62
- data/ext/enterprise_script_service/mruby/include/mruby.h +137 -96
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +23 -6
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +73 -48
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +8 -8
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +79 -48
- data/ext/enterprise_script_service/mruby/include/mruby/class.h +10 -8
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +4 -1
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +13 -7
- data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +17 -35
- data/ext/enterprise_script_service/mruby/include/mruby/endian.h +44 -0
- data/ext/enterprise_script_service/mruby/include/mruby/error.h +39 -5
- data/ext/enterprise_script_service/mruby/include/mruby/gc.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/hash.h +33 -13
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +64 -14
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +6 -14
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +36 -63
- data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +1 -27
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +27 -23
- data/ext/enterprise_script_service/mruby/include/mruby/presym.h +40 -0
- data/ext/enterprise_script_service/mruby/include/mruby/presym/disable.h +70 -0
- data/ext/enterprise_script_service/mruby/include/mruby/presym/enable.h +37 -0
- data/ext/enterprise_script_service/mruby/include/mruby/presym/scanning.h +73 -0
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +80 -13
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +10 -15
- data/ext/enterprise_script_service/mruby/include/mruby/throw.h +14 -3
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +29 -19
- data/ext/enterprise_script_service/mruby/include/mruby/variable.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +26 -7
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +198 -44
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +55 -37
- data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +12 -10
- data/ext/enterprise_script_service/mruby/lib/{mruby-core-ext.rb → mruby/core_ext.rb} +10 -3
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +75 -32
- data/ext/enterprise_script_service/mruby/lib/mruby/lockfile.rb +1 -1
- data/ext/enterprise_script_service/mruby/lib/mruby/presym.rb +132 -0
- data/ext/enterprise_script_service/mruby/mrbgems/default-no-fpu.gembox +3 -0
- data/ext/enterprise_script_service/mruby/mrbgems/default-no-stdio.gembox +4 -0
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +9 -88
- data/ext/enterprise_script_service/mruby/mrbgems/full-core.gembox +1 -4
- data/ext/enterprise_script_service/mruby/mrbgems/math.gembox +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/metaprog.gembox +15 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +28 -19
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mruby-config +18 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +3 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +10 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +14 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +4 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +2 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +23 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +11 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +41 -34
- data/ext/enterprise_script_service/mruby/mrbgems/{mruby-compiler → mruby-bin-mrbc}/bintest/mrbc.rb +0 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +19 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +25 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +22 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrbgem.rake +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrblib/catch.rb +27 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +2 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +430 -399
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/keywords +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/lex.def +49 -44
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +559 -217
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +4774 -4193
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +18 -19
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +8 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/test/complex.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/mrbgem.rake +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +17 -25
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +18 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +30 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +7 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +18 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +9 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +55 -52
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +4 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +99 -87
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +2 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +2 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +7 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +13 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/test/math.rb +5 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +43 -58
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/README.md +4 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +77 -74
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +14 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +5 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +18 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/mrbgem.rake +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/src/memsize.c +231 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/test/memsize.rb +63 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/README.md +15 -18
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +38 -88
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -30
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +62 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +32 -19
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +98 -43
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +39 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +20 -40
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/test/range.rb +27 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +11 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +216 -38
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/test/rational.rb +6 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/README.md +6 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +47 -45
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +102 -71
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +4 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +23 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +13 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +18 -25
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +6 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/README.md +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +5 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +16 -44
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +27 -27
- data/ext/enterprise_script_service/mruby/mrbgems/stdlib-ext.gembox +18 -0
- data/ext/enterprise_script_service/mruby/mrbgems/stdlib-io.gembox +12 -0
- data/ext/enterprise_script_service/mruby/mrbgems/stdlib.gembox +54 -0
- data/ext/enterprise_script_service/mruby/mrblib/10error.rb +4 -0
- data/ext/enterprise_script_service/mruby/mrblib/array.rb +17 -9
- data/ext/enterprise_script_service/mruby/mrblib/enum.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +0 -20
- data/ext/enterprise_script_service/mruby/mrblib/init_mrblib.c +0 -11
- data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +36 -11
- data/ext/enterprise_script_service/mruby/mrblib/range.rb +25 -3
- data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_proto_fuzzer.cpp +2 -2
- data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.h +1 -1
- data/ext/enterprise_script_service/mruby/src/array.c +43 -80
- data/ext/enterprise_script_service/mruby/src/backtrace.c +16 -17
- data/ext/enterprise_script_service/mruby/src/class.c +774 -182
- data/ext/enterprise_script_service/mruby/src/codedump.c +223 -198
- data/ext/enterprise_script_service/mruby/src/debug.c +6 -6
- data/ext/enterprise_script_service/mruby/src/dump.c +466 -141
- data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
- data/ext/enterprise_script_service/mruby/src/error.c +36 -13
- data/ext/enterprise_script_service/mruby/src/etc.c +43 -34
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +5 -6
- data/ext/enterprise_script_service/mruby/src/gc.c +73 -71
- data/ext/enterprise_script_service/mruby/src/hash.c +1050 -707
- data/ext/enterprise_script_service/mruby/src/kernel.c +75 -220
- data/ext/enterprise_script_service/mruby/src/load.c +196 -166
- data/ext/enterprise_script_service/mruby/src/numeric.c +352 -314
- data/ext/enterprise_script_service/mruby/src/object.c +97 -90
- data/ext/enterprise_script_service/mruby/src/print.c +4 -3
- data/ext/enterprise_script_service/mruby/src/proc.c +48 -56
- data/ext/enterprise_script_service/mruby/src/range.c +45 -21
- data/ext/enterprise_script_service/mruby/src/state.c +25 -32
- data/ext/enterprise_script_service/mruby/src/string.c +59 -101
- data/ext/enterprise_script_service/mruby/src/symbol.c +121 -56
- data/ext/enterprise_script_service/mruby/src/value_array.h +1 -0
- data/ext/enterprise_script_service/mruby/src/variable.c +158 -158
- data/ext/enterprise_script_service/mruby/src/vm.c +617 -602
- data/ext/enterprise_script_service/mruby/tasks/benchmark.rake +6 -6
- data/ext/enterprise_script_service/mruby/tasks/bin.rake +23 -0
- data/ext/enterprise_script_service/mruby/tasks/core.rake +12 -0
- data/ext/enterprise_script_service/mruby/tasks/doc.rake +50 -38
- data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +83 -77
- data/ext/enterprise_script_service/mruby/tasks/libmruby.rake +10 -1
- data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +13 -1
- data/ext/enterprise_script_service/mruby/tasks/mrblib.rake +40 -0
- data/ext/enterprise_script_service/mruby/tasks/presym.rake +44 -0
- data/ext/enterprise_script_service/mruby/tasks/test.rake +68 -0
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +6 -5
- data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +10 -14
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +17 -21
- data/ext/enterprise_script_service/mruby/test/bintest.rb +5 -5
- data/ext/enterprise_script_service/mruby/test/t/argumenterror.rb +16 -0
- data/ext/enterprise_script_service/mruby/test/t/array.rb +7 -3
- data/ext/enterprise_script_service/mruby/test/t/bs_literal.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/float.rb +18 -8
- data/ext/enterprise_script_service/mruby/test/t/hash.rb +903 -281
- data/ext/enterprise_script_service/mruby/test/t/integer.rb +10 -38
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/literals.rb +50 -0
- data/ext/enterprise_script_service/mruby/test/t/module.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/numeric.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/range.rb +83 -1
- data/ext/enterprise_script_service/mruby/test/t/string.rb +4 -0
- data/ext/enterprise_script_service/mruby/test/t/superclass.rb +10 -10
- data/ext/enterprise_script_service/mruby/test/t/syntax.rb +24 -0
- data/ext/enterprise_script_service/mruby/test/t/vformat.rb +3 -3
- data/ext/enterprise_script_service/mruby_config.rb +2 -5
- data/ext/enterprise_script_service/mruby_engine.cpp +1 -1
- data/lib/script_core/version.rb +1 -1
- data/spec/script_core_spec.rb +13 -0
- metadata +61 -23
- data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +0 -24
- data/ext/enterprise_script_service/mruby/TODO +0 -8
- data/ext/enterprise_script_service/mruby/appveyor_config.rb +0 -46
- data/ext/enterprise_script_service/mruby/benchmark/build_config_boxing.rb +0 -28
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_arm64-v8a.rb +0 -26
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_armeabi.rb +0 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/kernel.c +0 -30
- data/ext/enterprise_script_service/mruby/mrblib/mrblib.rake +0 -18
- data/ext/enterprise_script_service/mruby/src/crc.c +0 -39
- data/ext/enterprise_script_service/mruby/src/mruby_core.rake +0 -19
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
def assert_io_open(meth)
|
|
8
8
|
assert "assert_io_open" do
|
|
9
9
|
fd = IO.sysopen($mrbtest_io_rfname)
|
|
10
|
-
assert_equal
|
|
10
|
+
assert_equal Integer, fd.class
|
|
11
11
|
io1 = IO.__send__(meth, fd)
|
|
12
12
|
begin
|
|
13
13
|
assert_equal IO, io1.class
|
|
@@ -27,7 +27,6 @@ def assert_io_open(meth)
|
|
|
27
27
|
|
|
28
28
|
assert_raise(RuntimeError) { IO.__send__(meth, 1023) } # For Windows
|
|
29
29
|
assert_raise(RuntimeError) { IO.__send__(meth, 1 << 26) }
|
|
30
|
-
assert_raise(RuntimeError) { IO.__send__(meth, 1 << 32) } if (1 << 32).kind_of?(Integer)
|
|
31
30
|
end
|
|
32
31
|
end
|
|
33
32
|
|
|
@@ -433,7 +432,7 @@ def io._buf
|
|
|
433
432
|
$? = nil
|
|
434
433
|
io = IO.popen("#{$cmd}echo mruby-io")
|
|
435
434
|
assert_true io.close_on_exec?
|
|
436
|
-
assert_equal
|
|
435
|
+
assert_equal Integer, io.pid.class
|
|
437
436
|
|
|
438
437
|
out = io.read
|
|
439
438
|
assert_equal out.class, String
|
|
@@ -80,7 +80,7 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
|
|
|
80
80
|
FILE *fp;
|
|
81
81
|
int i;
|
|
82
82
|
#if !defined(_WIN32) && !defined(_WIN64)
|
|
83
|
-
struct sockaddr_un sun0;
|
|
83
|
+
struct sockaddr_un sun0 = { 0 }; /* Initialize them all because it is environment dependent */
|
|
84
84
|
#endif
|
|
85
85
|
|
|
86
86
|
mrb_gv_set(mrb, mrb_intern_cstr(mrb, "$mrbtest_io_msg"), mrb_str_new_cstr(mrb, msg));
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
#include <mruby/array.h>
|
|
4
4
|
#include <mruby/hash.h>
|
|
5
5
|
#include <mruby/range.h>
|
|
6
|
+
#include <mruby/presym.h>
|
|
6
7
|
|
|
7
8
|
static mrb_value
|
|
8
9
|
mrb_f_caller(mrb_state *mrb, mrb_value self)
|
|
@@ -57,7 +58,7 @@ mrb_f_caller(mrb_state *mrb, mrb_value self)
|
|
|
57
58
|
return mrb_ary_new(mrb);
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
return
|
|
61
|
+
return mrb_funcall_id(mrb, bt, MRB_OPSYM(aref), 2, mrb_fixnum_value(lev), mrb_fixnum_value(n));
|
|
61
62
|
}
|
|
62
63
|
|
|
63
64
|
/*
|
|
@@ -84,7 +85,7 @@ mrb_f_method(mrb_state *mrb, mrb_value self)
|
|
|
84
85
|
* call-seq:
|
|
85
86
|
* Integer(arg,base=0) -> integer
|
|
86
87
|
*
|
|
87
|
-
* Converts <i>arg</i> to a <code>
|
|
88
|
+
* Converts <i>arg</i> to a <code>Integer</code>.
|
|
88
89
|
* Numeric types are converted directly (with floating point numbers
|
|
89
90
|
* being truncated). <i>base</i> (0, or between 2 and 36) is a base for
|
|
90
91
|
* integer string representation. If <i>arg</i> is a <code>String</code>,
|
|
@@ -112,7 +113,7 @@ mrb_f_integer(mrb_state *mrb, mrb_value self)
|
|
|
112
113
|
return mrb_convert_to_integer(mrb, arg, base);
|
|
113
114
|
}
|
|
114
115
|
|
|
115
|
-
#ifndef
|
|
116
|
+
#ifndef MRB_NO_FLOAT
|
|
116
117
|
/*
|
|
117
118
|
* call-seq:
|
|
118
119
|
* Float(arg) -> float
|
|
@@ -151,7 +152,7 @@ mrb_f_string(mrb_state *mrb, mrb_value self)
|
|
|
151
152
|
mrb_value arg = mrb_get_arg1(mrb);
|
|
152
153
|
mrb_value tmp;
|
|
153
154
|
|
|
154
|
-
tmp =
|
|
155
|
+
tmp = mrb_type_convert(mrb, arg, MRB_TT_STRING, MRB_SYM(to_s));
|
|
155
156
|
return tmp;
|
|
156
157
|
}
|
|
157
158
|
|
|
@@ -170,7 +171,7 @@ mrb_f_array(mrb_state *mrb, mrb_value self)
|
|
|
170
171
|
mrb_value arg = mrb_get_arg1(mrb);
|
|
171
172
|
mrb_value tmp;
|
|
172
173
|
|
|
173
|
-
tmp =
|
|
174
|
+
tmp = mrb_type_convert_check(mrb, arg, MRB_TT_ARRAY, MRB_SYM(to_a));
|
|
174
175
|
if (mrb_nil_p(tmp)) {
|
|
175
176
|
return mrb_ary_new_from_values(mrb, 1, &arg);
|
|
176
177
|
}
|
|
@@ -212,7 +213,7 @@ mrb_mruby_kernel_ext_gem_init(mrb_state *mrb)
|
|
|
212
213
|
mrb_define_module_function(mrb, krn, "caller", mrb_f_caller, MRB_ARGS_OPT(2));
|
|
213
214
|
mrb_define_method(mrb, krn, "__method__", mrb_f_method, MRB_ARGS_NONE());
|
|
214
215
|
mrb_define_module_function(mrb, krn, "Integer", mrb_f_integer, MRB_ARGS_ARG(1,1));
|
|
215
|
-
#ifndef
|
|
216
|
+
#ifndef MRB_NO_FLOAT
|
|
216
217
|
mrb_define_module_function(mrb, krn, "Float", mrb_f_float, MRB_ARGS_REQ(1));
|
|
217
218
|
#endif
|
|
218
219
|
mrb_define_module_function(mrb, krn, "String", mrb_f_string, MRB_ARGS_REQ(1));
|
|
@@ -4,20 +4,21 @@
|
|
|
4
4
|
** See Copyright Notice in mruby.h
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
#
|
|
8
|
-
|
|
7
|
+
#include <mruby.h>
|
|
8
|
+
|
|
9
|
+
#ifdef MRB_NO_FLOAT
|
|
10
|
+
# error Math conflicts with 'MRB_NO_FLOAT' configuration
|
|
9
11
|
#endif
|
|
10
12
|
|
|
11
|
-
#include <mruby.h>
|
|
12
13
|
#include <mruby/array.h>
|
|
13
|
-
|
|
14
|
+
#include <mruby/presym.h>
|
|
14
15
|
#include <math.h>
|
|
15
16
|
|
|
16
17
|
static void
|
|
17
18
|
domain_error(mrb_state *mrb, const char *func)
|
|
18
19
|
{
|
|
19
|
-
struct RClass *math =
|
|
20
|
-
struct RClass *domainerror =
|
|
20
|
+
struct RClass *math = mrb_module_get_id(mrb, MRB_SYM(Math));
|
|
21
|
+
struct RClass *domainerror = mrb_class_get_under_id(mrb, math, MRB_SYM(DomainError));
|
|
21
22
|
mrb_raisef(mrb, domainerror, "Numerical argument is out of domain - %s", func);
|
|
22
23
|
}
|
|
23
24
|
|
|
@@ -629,7 +630,7 @@ math_cbrt(mrb_state *mrb, mrb_value obj)
|
|
|
629
630
|
* Math.frexp(numeric) -> [ fraction, exponent ]
|
|
630
631
|
*
|
|
631
632
|
* Returns a two-element array containing the normalized fraction (a
|
|
632
|
-
* <code>Float</code>) and exponent (a <code>
|
|
633
|
+
* <code>Float</code>) and exponent (a <code>Integer</code>) of
|
|
633
634
|
* <i>numeric</i>.
|
|
634
635
|
*
|
|
635
636
|
* fraction, exponent = Math.frexp(1234) #=> [0.6025390625, 11]
|
|
@@ -730,18 +731,18 @@ mrb_mruby_math_gem_init(mrb_state* mrb)
|
|
|
730
731
|
struct RClass *mrb_math;
|
|
731
732
|
mrb_math = mrb_define_module(mrb, "Math");
|
|
732
733
|
|
|
733
|
-
|
|
734
|
+
mrb_define_class_under_id(mrb, mrb_math, MRB_SYM(DomainError), mrb->eStandardError_class);
|
|
734
735
|
|
|
735
736
|
#ifdef M_PI
|
|
736
|
-
|
|
737
|
+
mrb_define_const_id(mrb, mrb_math, MRB_SYM(PI), mrb_float_value(mrb, M_PI));
|
|
737
738
|
#else
|
|
738
|
-
|
|
739
|
+
mrb_define_const_id(mrb, mrb_math, MRB_SYM(PI), mrb_float_value(mrb, atan(1.0)*4.0));
|
|
739
740
|
#endif
|
|
740
741
|
|
|
741
742
|
#ifdef M_E
|
|
742
|
-
|
|
743
|
+
mrb_define_const_id(mrb, mrb_math, MRB_SYM(E), mrb_float_value(mrb, M_E));
|
|
743
744
|
#else
|
|
744
|
-
|
|
745
|
+
mrb_define_const_id(mrb, mrb_math, MRB_SYM(E), mrb_float_value(mrb, exp(1.0)));
|
|
745
746
|
#endif
|
|
746
747
|
|
|
747
748
|
mrb_define_module_function(mrb, mrb_math, "sin", math_sin, MRB_ARGS_REQ(1));
|
|
@@ -209,17 +209,18 @@ def assert_float_and_int(exp_ary, act_ary)
|
|
|
209
209
|
assert_float(+Math::PI, Math.atan2(+0.0, -0.0))
|
|
210
210
|
assert_float(-Math::PI, Math.atan2(-0.0, -0.0))
|
|
211
211
|
|
|
212
|
+
assert_float(0, Math.atan2(0, 1))
|
|
213
|
+
assert_float(Math::PI / 4, Math.atan2(1, 1))
|
|
214
|
+
assert_float(Math::PI / 2, Math.atan2(1, 0))
|
|
215
|
+
|
|
212
216
|
inf = Float::INFINITY
|
|
217
|
+
skip "Math.atan2() return NaN" if Math.atan2(+inf, -inf).nan?
|
|
213
218
|
expected = 3.0 * Math::PI / 4.0
|
|
214
219
|
assert_float(+expected, Math.atan2(+inf, -inf))
|
|
215
220
|
assert_float(-expected, Math.atan2(-inf, -inf))
|
|
216
221
|
expected = Math::PI / 4.0
|
|
217
222
|
assert_float(+expected, Math.atan2(+inf, +inf))
|
|
218
223
|
assert_float(-expected, Math.atan2(-inf, +inf))
|
|
219
|
-
|
|
220
|
-
assert_float(0, Math.atan2(0, 1))
|
|
221
|
-
assert_float(Math::PI / 4, Math.atan2(1, 1))
|
|
222
|
-
assert_float(Math::PI / 2, Math.atan2(1, 0))
|
|
223
224
|
end
|
|
224
225
|
|
|
225
226
|
assert('Math.ldexp') do
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
#include "mruby/proc.h"
|
|
6
6
|
#include "mruby/class.h"
|
|
7
7
|
#include "mruby/string.h"
|
|
8
|
+
#include "mruby/presym.h"
|
|
8
9
|
|
|
9
10
|
typedef enum {
|
|
10
11
|
NOEX_PUBLIC = 0x00,
|
|
@@ -132,8 +133,8 @@ mrb_obj_ivar_set(mrb_state *mrb, mrb_value self)
|
|
|
132
133
|
static mrb_value
|
|
133
134
|
mrb_local_variables(mrb_state *mrb, mrb_value self)
|
|
134
135
|
{
|
|
135
|
-
struct RProc *proc;
|
|
136
|
-
mrb_irep *irep;
|
|
136
|
+
const struct RProc *proc;
|
|
137
|
+
const mrb_irep *irep;
|
|
137
138
|
mrb_value vars;
|
|
138
139
|
size_t i;
|
|
139
140
|
|
|
@@ -148,8 +149,8 @@ mrb_local_variables(mrb_state *mrb, mrb_value self)
|
|
|
148
149
|
irep = proc->body.irep;
|
|
149
150
|
if (irep->lv) {
|
|
150
151
|
for (i = 0; i + 1 < irep->nlocals; ++i) {
|
|
151
|
-
if (irep->lv[i]
|
|
152
|
-
mrb_sym sym = irep->lv[i]
|
|
152
|
+
if (irep->lv[i]) {
|
|
153
|
+
mrb_sym sym = irep->lv[i];
|
|
153
154
|
const char *name = mrb_sym_name(mrb, sym);
|
|
154
155
|
switch (name[0]) {
|
|
155
156
|
case '*': case '&':
|
|
@@ -169,28 +170,38 @@ mrb_local_variables(mrb_state *mrb, mrb_value self)
|
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
KHASH_DECLARE(st, mrb_sym, char, FALSE)
|
|
173
|
+
KHASH_DEFINE(st, mrb_sym, char, FALSE, kh_int_hash_func, kh_int_hash_equal)
|
|
172
174
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
+
struct mt_set {
|
|
176
|
+
khash_t(st) *set;
|
|
177
|
+
khash_t(st) *undef;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
static int
|
|
181
|
+
method_entry_i(mrb_state *mrb, mrb_sym mid, mrb_method_t m, void *p)
|
|
175
182
|
{
|
|
176
|
-
|
|
183
|
+
struct mt_set *s = (struct mt_set*)p;
|
|
177
184
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
if (kh_exist(h, i)) {
|
|
182
|
-
mrb_method_t m = kh_value(h, i);
|
|
183
|
-
if (MRB_METHOD_UNDEF_P(m)) {
|
|
184
|
-
if (undef) {
|
|
185
|
-
kh_put(st, mrb, undef, kh_key(h, i));
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
else if (undef == NULL ||
|
|
189
|
-
kh_get(st, mrb, undef, kh_key(h, i)) == kh_end(undef)) {
|
|
190
|
-
kh_put(st, mrb, set, kh_key(h, i));
|
|
191
|
-
}
|
|
185
|
+
if (MRB_METHOD_UNDEF_P(m)) {
|
|
186
|
+
if (s->undef) {
|
|
187
|
+
kh_put(st, mrb, s->undef, mid);
|
|
192
188
|
}
|
|
193
189
|
}
|
|
190
|
+
else if (s->undef == NULL ||
|
|
191
|
+
kh_get(st, mrb, s->undef, mid) == kh_end(s->undef)) {
|
|
192
|
+
kh_put(st, mrb, s->set, mid);
|
|
193
|
+
}
|
|
194
|
+
return 0;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
static void
|
|
198
|
+
method_entry_loop(mrb_state *mrb, struct RClass *klass, khash_t(st) *set, khash_t(st) *undef)
|
|
199
|
+
{
|
|
200
|
+
struct mt_set s;
|
|
201
|
+
|
|
202
|
+
s.set = set;
|
|
203
|
+
s.undef = undef;
|
|
204
|
+
mrb_mt_foreach(mrb, klass, method_entry_i, (void*)&s);
|
|
194
205
|
}
|
|
195
206
|
|
|
196
207
|
static mrb_value
|
|
@@ -391,21 +402,12 @@ mrb_obj_singleton_methods_m(mrb_state *mrb, mrb_value self)
|
|
|
391
402
|
return mrb_obj_singleton_methods(mrb, recur, self);
|
|
392
403
|
}
|
|
393
404
|
|
|
405
|
+
mrb_value mrb_mod_define_method_m(mrb_state *mrb, struct RClass *c);
|
|
406
|
+
|
|
394
407
|
static mrb_value
|
|
395
408
|
mod_define_singleton_method(mrb_state *mrb, mrb_value self)
|
|
396
409
|
{
|
|
397
|
-
|
|
398
|
-
mrb_method_t m;
|
|
399
|
-
mrb_sym mid;
|
|
400
|
-
mrb_value blk = mrb_nil_value();
|
|
401
|
-
|
|
402
|
-
mrb_get_args(mrb, "n&!", &mid, &blk);
|
|
403
|
-
p = (struct RProc*)mrb_obj_alloc(mrb, MRB_TT_PROC, mrb->proc_class);
|
|
404
|
-
mrb_proc_copy(p, mrb_proc_ptr(blk));
|
|
405
|
-
p->flags |= MRB_PROC_STRICT;
|
|
406
|
-
MRB_METHOD_FROM_PROC(m, p);
|
|
407
|
-
mrb_define_method_raw(mrb, mrb_class_ptr(mrb_singleton_class(mrb, self)), mid, m);
|
|
408
|
-
return mrb_symbol_value(mid);
|
|
410
|
+
return mrb_mod_define_method_m(mrb, mrb_class_ptr(mrb_singleton_class(mrb, self)));
|
|
409
411
|
}
|
|
410
412
|
|
|
411
413
|
static mrb_bool
|
|
@@ -608,28 +610,6 @@ mrb_mod_instance_methods(mrb_state *mrb, mrb_value mod)
|
|
|
608
610
|
return mrb_class_instance_method_list(mrb, recur, c, 0);
|
|
609
611
|
}
|
|
610
612
|
|
|
611
|
-
static void
|
|
612
|
-
remove_method(mrb_state *mrb, mrb_value mod, mrb_sym mid)
|
|
613
|
-
{
|
|
614
|
-
struct RClass *c = mrb_class_ptr(mod);
|
|
615
|
-
khash_t(mt) *h;
|
|
616
|
-
khiter_t k;
|
|
617
|
-
|
|
618
|
-
MRB_CLASS_ORIGIN(c);
|
|
619
|
-
h = c->mt;
|
|
620
|
-
|
|
621
|
-
if (h) {
|
|
622
|
-
k = kh_get(mt, mrb, h, mid);
|
|
623
|
-
if (k != kh_end(h)) {
|
|
624
|
-
kh_del(mt, mrb, h, k);
|
|
625
|
-
mrb_funcall(mrb, mod, "method_removed", 1, mrb_symbol_value(mid));
|
|
626
|
-
return;
|
|
627
|
-
}
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
mrb_name_error(mrb, mid, "method '%n' not defined in %v", mid, mod);
|
|
631
|
-
}
|
|
632
|
-
|
|
633
613
|
/* 15.2.2.4.41 */
|
|
634
614
|
/*
|
|
635
615
|
* call-seq:
|
|
@@ -643,12 +623,14 @@ static mrb_value
|
|
|
643
623
|
mrb_mod_remove_method(mrb_state *mrb, mrb_value mod)
|
|
644
624
|
{
|
|
645
625
|
mrb_int argc;
|
|
646
|
-
mrb_value *argv;
|
|
626
|
+
const mrb_value *argv;
|
|
627
|
+
struct RClass *c = mrb_class_ptr(mod);
|
|
647
628
|
|
|
648
629
|
mrb_get_args(mrb, "*", &argv, &argc);
|
|
649
630
|
mrb_check_frozen(mrb, mrb_obj_ptr(mod));
|
|
650
631
|
while (argc--) {
|
|
651
|
-
|
|
632
|
+
mrb_remove_method(mrb, c, mrb_obj_to_sym(mrb, *argv));
|
|
633
|
+
mrb_funcall_id(mrb, mod, MRB_SYM(method_removed), 1, *argv);
|
|
652
634
|
argv++;
|
|
653
635
|
}
|
|
654
636
|
return mod;
|
|
@@ -664,7 +646,7 @@ mrb_mod_s_constants(mrb_state *mrb, mrb_value mod)
|
|
|
664
646
|
static mrb_value
|
|
665
647
|
mrb_mod_s_nesting(mrb_state *mrb, mrb_value mod)
|
|
666
648
|
{
|
|
667
|
-
struct RProc *proc;
|
|
649
|
+
const struct RProc *proc;
|
|
668
650
|
mrb_value ary;
|
|
669
651
|
struct RClass *c = NULL;
|
|
670
652
|
|
|
@@ -684,6 +666,9 @@ mrb_mod_s_nesting(mrb_state *mrb, mrb_value mod)
|
|
|
684
666
|
return ary;
|
|
685
667
|
}
|
|
686
668
|
|
|
669
|
+
/* implementation of #send method */
|
|
670
|
+
mrb_value mrb_f_send(mrb_state *mrb, mrb_value self);
|
|
671
|
+
|
|
687
672
|
void
|
|
688
673
|
mrb_mruby_metaprog_gem_init(mrb_state* mrb)
|
|
689
674
|
{
|
|
@@ -395,15 +395,15 @@ def foo; end
|
|
|
395
395
|
|
|
396
396
|
assert('alias_method and remove_method') do
|
|
397
397
|
begin
|
|
398
|
-
|
|
399
|
-
|
|
398
|
+
Integer.alias_method :to_s_, :to_s
|
|
399
|
+
Integer.remove_method :to_s
|
|
400
400
|
|
|
401
401
|
assert_nothing_raised do
|
|
402
402
|
# segfaults if mrb_cptr is used
|
|
403
403
|
1.to_s
|
|
404
404
|
end
|
|
405
405
|
ensure
|
|
406
|
-
|
|
407
|
-
|
|
406
|
+
Integer.alias_method :to_s, :to_s_
|
|
407
|
+
Integer.remove_method :to_s_
|
|
408
408
|
end
|
|
409
409
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
mruby-method
|
|
2
2
|
===
|
|
3
3
|
|
|
4
|
-
A
|
|
4
|
+
A implementation of class **Method** and **UnboundMethod** for mruby
|
|
5
5
|
|
|
6
6
|
```ruby
|
|
7
7
|
p Enumerable.instance_method(:find_all).source_location
|
|
@@ -10,11 +10,12 @@ p Enumerable.instance_method(:find_all).source_location
|
|
|
10
10
|
|
|
11
11
|
# Note
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
You need to enable debug option in your build configuration to use
|
|
14
|
+
`source_location` method in this gem, for example:
|
|
14
15
|
|
|
15
16
|
```ruby
|
|
16
17
|
MRuby::Build.new do |conf|
|
|
17
|
-
enable_debug
|
|
18
|
+
conf.enable_debug
|
|
18
19
|
end
|
|
19
20
|
```
|
|
20
21
|
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
#include "mruby/variable.h"
|
|
5
5
|
#include "mruby/proc.h"
|
|
6
6
|
#include "mruby/string.h"
|
|
7
|
+
#include "mruby/presym.h"
|
|
7
8
|
|
|
8
9
|
static struct RObject *
|
|
9
10
|
method_object_alloc(mrb_state *mrb, struct RClass *mclass)
|
|
@@ -29,24 +30,24 @@ static mrb_value
|
|
|
29
30
|
unbound_method_bind(mrb_state *mrb, mrb_value self)
|
|
30
31
|
{
|
|
31
32
|
struct RObject *me;
|
|
32
|
-
mrb_value owner = mrb_iv_get(mrb, self,
|
|
33
|
-
mrb_value name = mrb_iv_get(mrb, self,
|
|
34
|
-
mrb_value proc = mrb_iv_get(mrb, self,
|
|
35
|
-
mrb_value klass = mrb_iv_get(mrb, self,
|
|
33
|
+
mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
|
|
34
|
+
mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
|
|
35
|
+
mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
|
|
36
|
+
mrb_value klass = mrb_iv_get(mrb, self, MRB_SYM(_klass));
|
|
36
37
|
mrb_value recv = mrb_get_arg1(mrb);
|
|
37
38
|
|
|
38
39
|
bind_check(mrb, recv, owner);
|
|
39
|
-
me = method_object_alloc(mrb,
|
|
40
|
-
mrb_obj_iv_set(mrb, me,
|
|
41
|
-
mrb_obj_iv_set(mrb, me,
|
|
42
|
-
mrb_obj_iv_set(mrb, me,
|
|
43
|
-
mrb_obj_iv_set(mrb, me,
|
|
44
|
-
mrb_obj_iv_set(mrb, me,
|
|
40
|
+
me = method_object_alloc(mrb, mrb_class_get_id(mrb, MRB_SYM(Method)));
|
|
41
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_owner), owner);
|
|
42
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_recv), recv);
|
|
43
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_name), name);
|
|
44
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_proc), proc);
|
|
45
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_klass), klass);
|
|
45
46
|
|
|
46
47
|
return mrb_obj_value(me);
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
#define IV_GET(value, name) mrb_iv_get(mrb, value,
|
|
50
|
+
#define IV_GET(value, name) mrb_iv_get(mrb, value, name)
|
|
50
51
|
static mrb_value
|
|
51
52
|
method_eql(mrb_state *mrb, mrb_value self)
|
|
52
53
|
{
|
|
@@ -61,22 +62,22 @@ method_eql(mrb_state *mrb, mrb_value self)
|
|
|
61
62
|
if (mrb_class(mrb, self) != mrb_class(mrb, other))
|
|
62
63
|
return mrb_false_value();
|
|
63
64
|
|
|
64
|
-
klass = mrb_class_ptr(IV_GET(self,
|
|
65
|
-
if (klass != mrb_class_ptr(IV_GET(other,
|
|
65
|
+
klass = mrb_class_ptr(IV_GET(self, MRB_SYM(_klass)));
|
|
66
|
+
if (klass != mrb_class_ptr(IV_GET(other, MRB_SYM(_klass))))
|
|
66
67
|
return mrb_false_value();
|
|
67
68
|
|
|
68
|
-
owner = mrb_class_ptr(IV_GET(self,
|
|
69
|
-
if (owner != mrb_class_ptr(IV_GET(other,
|
|
69
|
+
owner = mrb_class_ptr(IV_GET(self, MRB_SYM(_owner)));
|
|
70
|
+
if (owner != mrb_class_ptr(IV_GET(other, MRB_SYM(_owner))))
|
|
70
71
|
return mrb_false_value();
|
|
71
72
|
|
|
72
|
-
receiver = IV_GET(self,
|
|
73
|
-
if (!mrb_obj_equal(mrb, receiver, IV_GET(other,
|
|
73
|
+
receiver = IV_GET(self, MRB_SYM(_recv));
|
|
74
|
+
if (!mrb_obj_equal(mrb, receiver, IV_GET(other, MRB_SYM(_recv))))
|
|
74
75
|
return mrb_false_value();
|
|
75
76
|
|
|
76
|
-
orig_proc = IV_GET(self,
|
|
77
|
-
other_proc = IV_GET(other,
|
|
77
|
+
orig_proc = IV_GET(self, MRB_SYM(_proc));
|
|
78
|
+
other_proc = IV_GET(other, MRB_SYM(_proc));
|
|
78
79
|
if (mrb_nil_p(orig_proc) && mrb_nil_p(other_proc)) {
|
|
79
|
-
if (mrb_symbol(IV_GET(self,
|
|
80
|
+
if (mrb_symbol(IV_GET(self, MRB_SYM(_name))) == mrb_symbol(IV_GET(other, MRB_SYM(_name))))
|
|
80
81
|
return mrb_true_value();
|
|
81
82
|
else
|
|
82
83
|
return mrb_false_value();
|
|
@@ -109,7 +110,7 @@ method_eql(mrb_state *mrb, mrb_value self)
|
|
|
109
110
|
|
|
110
111
|
static mrb_value
|
|
111
112
|
mcall(mrb_state *mrb, mrb_value recv, mrb_value proc, mrb_value name, struct RClass *owner,
|
|
112
|
-
mrb_int argc, mrb_value *argv, mrb_value block)
|
|
113
|
+
mrb_int argc, const mrb_value *argv, mrb_value block)
|
|
113
114
|
{
|
|
114
115
|
mrb_value ret;
|
|
115
116
|
mrb_sym orig_mid = mrb->c->ci->mid;
|
|
@@ -118,7 +119,7 @@ mcall(mrb_state *mrb, mrb_value recv, mrb_value proc, mrb_value name, struct RCl
|
|
|
118
119
|
if (mrb_nil_p(proc)) {
|
|
119
120
|
mrb_value missing_argv = mrb_ary_new_from_values(mrb, argc, argv);
|
|
120
121
|
mrb_ary_unshift(mrb, missing_argv, name);
|
|
121
|
-
ret = mrb_funcall_argv(mrb, recv,
|
|
122
|
+
ret = mrb_funcall_argv(mrb, recv, MRB_SYM(method_missing), argc + 1, RARRAY_PTR(missing_argv));
|
|
122
123
|
}
|
|
123
124
|
else if (!mrb_nil_p(block)) {
|
|
124
125
|
/*
|
|
@@ -137,12 +138,13 @@ mcall(mrb_state *mrb, mrb_value recv, mrb_value proc, mrb_value name, struct RCl
|
|
|
137
138
|
static mrb_value
|
|
138
139
|
method_call(mrb_state *mrb, mrb_value self)
|
|
139
140
|
{
|
|
140
|
-
mrb_value proc = mrb_iv_get(mrb, self,
|
|
141
|
-
mrb_value name = mrb_iv_get(mrb, self,
|
|
142
|
-
mrb_value recv = mrb_iv_get(mrb, self,
|
|
143
|
-
struct RClass *owner = mrb_class_ptr(mrb_iv_get(mrb, self,
|
|
141
|
+
mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
|
|
142
|
+
mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
|
|
143
|
+
mrb_value recv = mrb_iv_get(mrb, self, MRB_SYM(_recv));
|
|
144
|
+
struct RClass *owner = mrb_class_ptr(mrb_iv_get(mrb, self, MRB_SYM(_owner)));
|
|
144
145
|
mrb_int argc;
|
|
145
|
-
mrb_value *argv
|
|
146
|
+
const mrb_value *argv;
|
|
147
|
+
mrb_value block;
|
|
146
148
|
|
|
147
149
|
mrb_get_args(mrb, "*&", &argv, &argc, &block);
|
|
148
150
|
return mcall(mrb, recv, proc, name, owner, argc, argv, block);
|
|
@@ -151,12 +153,13 @@ method_call(mrb_state *mrb, mrb_value self)
|
|
|
151
153
|
static mrb_value
|
|
152
154
|
method_bcall(mrb_state *mrb, mrb_value self)
|
|
153
155
|
{
|
|
154
|
-
mrb_value proc = mrb_iv_get(mrb, self,
|
|
155
|
-
mrb_value name = mrb_iv_get(mrb, self,
|
|
156
|
-
mrb_value recv = mrb_iv_get(mrb, self,
|
|
157
|
-
mrb_value owner = mrb_iv_get(mrb, self,
|
|
156
|
+
mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
|
|
157
|
+
mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
|
|
158
|
+
mrb_value recv = mrb_iv_get(mrb, self, MRB_SYM(_recv));
|
|
159
|
+
mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
|
|
158
160
|
mrb_int argc;
|
|
159
|
-
mrb_value *argv
|
|
161
|
+
const mrb_value *argv;
|
|
162
|
+
mrb_value block;
|
|
160
163
|
|
|
161
164
|
mrb_get_args(mrb, "o*&", &recv, &argv, &argc, &block);
|
|
162
165
|
bind_check(mrb, recv, owner);
|
|
@@ -167,17 +170,17 @@ static mrb_value
|
|
|
167
170
|
method_unbind(mrb_state *mrb, mrb_value self)
|
|
168
171
|
{
|
|
169
172
|
struct RObject *ume;
|
|
170
|
-
mrb_value owner = mrb_iv_get(mrb, self,
|
|
171
|
-
mrb_value name = mrb_iv_get(mrb, self,
|
|
172
|
-
mrb_value proc = mrb_iv_get(mrb, self,
|
|
173
|
-
mrb_value klass = mrb_iv_get(mrb, self,
|
|
173
|
+
mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
|
|
174
|
+
mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
|
|
175
|
+
mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
|
|
176
|
+
mrb_value klass = mrb_iv_get(mrb, self, MRB_SYM(_klass));
|
|
174
177
|
|
|
175
178
|
ume = method_object_alloc(mrb, mrb_class_get(mrb, "UnboundMethod"));
|
|
176
|
-
mrb_obj_iv_set(mrb, ume,
|
|
177
|
-
mrb_obj_iv_set(mrb, ume,
|
|
178
|
-
mrb_obj_iv_set(mrb, ume,
|
|
179
|
-
mrb_obj_iv_set(mrb, ume,
|
|
180
|
-
mrb_obj_iv_set(mrb, ume,
|
|
179
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_owner), owner);
|
|
180
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_recv), mrb_nil_value());
|
|
181
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_name), name);
|
|
182
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_proc), proc);
|
|
183
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_klass), klass);
|
|
181
184
|
|
|
182
185
|
return mrb_obj_value(ume);
|
|
183
186
|
}
|
|
@@ -196,10 +199,10 @@ method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid)
|
|
|
196
199
|
static mrb_value
|
|
197
200
|
method_super_method(mrb_state *mrb, mrb_value self)
|
|
198
201
|
{
|
|
199
|
-
mrb_value recv = mrb_iv_get(mrb, self,
|
|
200
|
-
mrb_value klass = mrb_iv_get(mrb, self,
|
|
201
|
-
mrb_value owner = mrb_iv_get(mrb, self,
|
|
202
|
-
mrb_value name = mrb_iv_get(mrb, self,
|
|
202
|
+
mrb_value recv = mrb_iv_get(mrb, self, MRB_SYM(_recv));
|
|
203
|
+
mrb_value klass = mrb_iv_get(mrb, self, MRB_SYM(_klass));
|
|
204
|
+
mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
|
|
205
|
+
mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
|
|
203
206
|
struct RClass *super, *rklass;
|
|
204
207
|
struct RProc *proc;
|
|
205
208
|
struct RObject *me;
|
|
@@ -225,11 +228,11 @@ method_super_method(mrb_state *mrb, mrb_value self)
|
|
|
225
228
|
super = super->c;
|
|
226
229
|
|
|
227
230
|
me = method_object_alloc(mrb, mrb_obj_class(mrb, self));
|
|
228
|
-
mrb_obj_iv_set(mrb, me,
|
|
229
|
-
mrb_obj_iv_set(mrb, me,
|
|
230
|
-
mrb_obj_iv_set(mrb, me,
|
|
231
|
-
mrb_obj_iv_set(mrb, me,
|
|
232
|
-
mrb_obj_iv_set(mrb, me,
|
|
231
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_owner), mrb_obj_value(super));
|
|
232
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_recv), recv);
|
|
233
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_name), name);
|
|
234
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_proc), mrb_obj_value(proc));
|
|
235
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_klass), mrb_obj_value(rklass));
|
|
233
236
|
|
|
234
237
|
return mrb_obj_value(me);
|
|
235
238
|
}
|
|
@@ -237,7 +240,7 @@ method_super_method(mrb_state *mrb, mrb_value self)
|
|
|
237
240
|
static mrb_value
|
|
238
241
|
method_arity(mrb_state *mrb, mrb_value self)
|
|
239
242
|
{
|
|
240
|
-
mrb_value proc = mrb_iv_get(mrb, self,
|
|
243
|
+
mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
|
|
241
244
|
mrb_int arity = mrb_nil_p(proc) ? -1 : mrb_proc_arity(mrb_proc_ptr(proc));
|
|
242
245
|
return mrb_fixnum_value(arity);
|
|
243
246
|
}
|
|
@@ -245,7 +248,7 @@ method_arity(mrb_state *mrb, mrb_value self)
|
|
|
245
248
|
static mrb_value
|
|
246
249
|
method_source_location(mrb_state *mrb, mrb_value self)
|
|
247
250
|
{
|
|
248
|
-
mrb_value proc = mrb_iv_get(mrb, self,
|
|
251
|
+
mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
|
|
249
252
|
struct RProc *rproc;
|
|
250
253
|
struct RClass *orig;
|
|
251
254
|
mrb_value ret;
|
|
@@ -256,7 +259,7 @@ method_source_location(mrb_state *mrb, mrb_value self)
|
|
|
256
259
|
rproc = mrb_proc_ptr(proc);
|
|
257
260
|
orig = rproc->c;
|
|
258
261
|
rproc->c = mrb->proc_class;
|
|
259
|
-
ret =
|
|
262
|
+
ret = mrb_funcall_id(mrb, proc, MRB_SYM(source_location), 0);
|
|
260
263
|
rproc->c = orig;
|
|
261
264
|
return ret;
|
|
262
265
|
}
|
|
@@ -264,13 +267,13 @@ method_source_location(mrb_state *mrb, mrb_value self)
|
|
|
264
267
|
static mrb_value
|
|
265
268
|
method_parameters(mrb_state *mrb, mrb_value self)
|
|
266
269
|
{
|
|
267
|
-
mrb_value proc = mrb_iv_get(mrb, self,
|
|
270
|
+
mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
|
|
268
271
|
struct RProc *rproc;
|
|
269
272
|
struct RClass *orig;
|
|
270
273
|
mrb_value ret;
|
|
271
274
|
|
|
272
275
|
if (mrb_nil_p(proc)) {
|
|
273
|
-
mrb_value rest = mrb_symbol_value(
|
|
276
|
+
mrb_value rest = mrb_symbol_value(MRB_SYM(rest));
|
|
274
277
|
mrb_value arest = mrb_ary_new_from_values(mrb, 1, &rest);
|
|
275
278
|
return mrb_ary_new_from_values(mrb, 1, &arest);
|
|
276
279
|
}
|
|
@@ -278,7 +281,7 @@ method_parameters(mrb_state *mrb, mrb_value self)
|
|
|
278
281
|
rproc = mrb_proc_ptr(proc);
|
|
279
282
|
orig = rproc->c;
|
|
280
283
|
rproc->c = mrb->proc_class;
|
|
281
|
-
ret =
|
|
284
|
+
ret = mrb_funcall_id(mrb, proc, MRB_SYM(parameters), 0);
|
|
282
285
|
rproc->c = orig;
|
|
283
286
|
return ret;
|
|
284
287
|
}
|
|
@@ -286,9 +289,9 @@ method_parameters(mrb_state *mrb, mrb_value self)
|
|
|
286
289
|
static mrb_value
|
|
287
290
|
method_to_s(mrb_state *mrb, mrb_value self)
|
|
288
291
|
{
|
|
289
|
-
mrb_value owner = mrb_iv_get(mrb, self,
|
|
290
|
-
mrb_value klass = mrb_iv_get(mrb, self,
|
|
291
|
-
mrb_value name = mrb_iv_get(mrb, self,
|
|
292
|
+
mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
|
|
293
|
+
mrb_value klass = mrb_iv_get(mrb, self, MRB_SYM(_klass));
|
|
294
|
+
mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
|
|
292
295
|
mrb_value str = mrb_str_new_lit(mrb, "#<");
|
|
293
296
|
struct RClass *rklass;
|
|
294
297
|
|
|
@@ -322,10 +325,10 @@ mrb_search_method_owner(mrb_state *mrb, struct RClass *c, mrb_value obj, mrb_sym
|
|
|
322
325
|
if (unbound) {
|
|
323
326
|
goto name_error;
|
|
324
327
|
}
|
|
325
|
-
if (!mrb_respond_to(mrb, obj,
|
|
328
|
+
if (!mrb_respond_to(mrb, obj, MRB_SYM_Q(respond_to_missing))) {
|
|
326
329
|
goto name_error;
|
|
327
330
|
}
|
|
328
|
-
ret =
|
|
331
|
+
ret = mrb_funcall_id(mrb, obj, MRB_SYM_Q(respond_to_missing), 2, mrb_symbol_value(name), mrb_true_value());
|
|
329
332
|
if (!mrb_test(ret)) {
|
|
330
333
|
goto name_error;
|
|
331
334
|
}
|
|
@@ -354,11 +357,11 @@ mrb_kernel_method(mrb_state *mrb, mrb_value self)
|
|
|
354
357
|
mrb_search_method_owner(mrb, mrb_class(mrb, self), self, name, &owner, &proc, FALSE);
|
|
355
358
|
|
|
356
359
|
me = method_object_alloc(mrb, mrb_class_get(mrb, "Method"));
|
|
357
|
-
mrb_obj_iv_set(mrb, me,
|
|
358
|
-
mrb_obj_iv_set(mrb, me,
|
|
359
|
-
mrb_obj_iv_set(mrb, me,
|
|
360
|
-
mrb_obj_iv_set(mrb, me,
|
|
361
|
-
mrb_obj_iv_set(mrb, me,
|
|
360
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_owner), mrb_obj_value(owner));
|
|
361
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_recv), self);
|
|
362
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_name), mrb_symbol_value(name));
|
|
363
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_proc), proc ? mrb_obj_value(proc) : mrb_nil_value());
|
|
364
|
+
mrb_obj_iv_set(mrb, me, MRB_SYM(_klass), mrb_obj_value(mrb_class(mrb, self)));
|
|
362
365
|
|
|
363
366
|
return mrb_obj_value(me);
|
|
364
367
|
}
|
|
@@ -376,11 +379,11 @@ mrb_module_instance_method(mrb_state *mrb, mrb_value self)
|
|
|
376
379
|
mrb_search_method_owner(mrb, mrb_class_ptr(self), self, name, &owner, &proc, TRUE);
|
|
377
380
|
|
|
378
381
|
ume = method_object_alloc(mrb, mrb_class_get(mrb, "UnboundMethod"));
|
|
379
|
-
mrb_obj_iv_set(mrb, ume,
|
|
380
|
-
mrb_obj_iv_set(mrb, ume,
|
|
381
|
-
mrb_obj_iv_set(mrb, ume,
|
|
382
|
-
mrb_obj_iv_set(mrb, ume,
|
|
383
|
-
mrb_obj_iv_set(mrb, ume,
|
|
382
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_owner), mrb_obj_value(owner));
|
|
383
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_recv), mrb_nil_value());
|
|
384
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_name), mrb_symbol_value(name));
|
|
385
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_proc), proc ? mrb_obj_value(proc) : mrb_nil_value());
|
|
386
|
+
mrb_obj_iv_set(mrb, ume, MRB_SYM(_klass), self);
|
|
384
387
|
|
|
385
388
|
return mrb_obj_value(ume);
|
|
386
389
|
}
|
|
@@ -388,19 +391,19 @@ mrb_module_instance_method(mrb_state *mrb, mrb_value self)
|
|
|
388
391
|
static mrb_value
|
|
389
392
|
method_owner(mrb_state *mrb, mrb_value self)
|
|
390
393
|
{
|
|
391
|
-
return mrb_iv_get(mrb, self,
|
|
394
|
+
return mrb_iv_get(mrb, self, MRB_SYM(_owner));
|
|
392
395
|
}
|
|
393
396
|
|
|
394
397
|
static mrb_value
|
|
395
398
|
method_receiver(mrb_state *mrb, mrb_value self)
|
|
396
399
|
{
|
|
397
|
-
return mrb_iv_get(mrb, self,
|
|
400
|
+
return mrb_iv_get(mrb, self, MRB_SYM(_recv));
|
|
398
401
|
}
|
|
399
402
|
|
|
400
403
|
static mrb_value
|
|
401
404
|
method_name(mrb_state *mrb, mrb_value self)
|
|
402
405
|
{
|
|
403
|
-
return mrb_iv_get(mrb, self,
|
|
406
|
+
return mrb_iv_get(mrb, self, MRB_SYM(_name));
|
|
404
407
|
}
|
|
405
408
|
|
|
406
409
|
void
|