script_core 0.2.7 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|