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
|
@@ -13,15 +13,6 @@ This document is collecting these limitations.
|
|
|
13
13
|
This document does not contain a complete list of limitations.
|
|
14
14
|
Please help to improve it by submitting your findings.
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
## `1/2` gives `0.5`
|
|
18
|
-
|
|
19
|
-
Since mruby does not have `Bignum`, bigger integers are represented
|
|
20
|
-
by `Float` numbers. To enhance interoperability between `Fixnum`
|
|
21
|
-
and `Float`, mruby provides `Float#upto` and other iterating
|
|
22
|
-
methods for the `Float` class. As a side effect, `1/2` gives `0.5`
|
|
23
|
-
not `0`.
|
|
24
|
-
|
|
25
16
|
## `Array` passed to `puts`
|
|
26
17
|
|
|
27
18
|
Passing an Array to `puts` results in different output.
|
|
@@ -38,7 +29,7 @@ puts [1,2,3]
|
|
|
38
29
|
3
|
|
39
30
|
```
|
|
40
31
|
|
|
41
|
-
#### mruby [
|
|
32
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
42
33
|
|
|
43
34
|
```
|
|
44
35
|
[1, 2, 3]
|
|
@@ -61,9 +52,17 @@ end
|
|
|
61
52
|
|
|
62
53
|
`ZeroDivisionError` is raised.
|
|
63
54
|
|
|
64
|
-
#### mruby [
|
|
55
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
65
56
|
|
|
66
|
-
No exception is raised.
|
|
57
|
+
No exception is raised. Instead you have to do:
|
|
58
|
+
|
|
59
|
+
```ruby
|
|
60
|
+
begin
|
|
61
|
+
1 / 0
|
|
62
|
+
rescue => e
|
|
63
|
+
raise e
|
|
64
|
+
end
|
|
65
|
+
```
|
|
67
66
|
|
|
68
67
|
## Fiber execution can't cross C function boundary
|
|
69
68
|
|
|
@@ -89,7 +88,7 @@ p Liste.new "foobar"
|
|
|
89
88
|
|
|
90
89
|
` [] `
|
|
91
90
|
|
|
92
|
-
#### mruby [
|
|
91
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
93
92
|
|
|
94
93
|
`ArgumentError` is raised.
|
|
95
94
|
|
|
@@ -119,7 +118,7 @@ false
|
|
|
119
118
|
true
|
|
120
119
|
```
|
|
121
120
|
|
|
122
|
-
#### mruby [
|
|
121
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
123
122
|
|
|
124
123
|
```
|
|
125
124
|
true
|
|
@@ -156,7 +155,7 @@ p 'ok'
|
|
|
156
155
|
ok
|
|
157
156
|
```
|
|
158
157
|
|
|
159
|
-
#### mruby [
|
|
158
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
160
159
|
|
|
161
160
|
```
|
|
162
161
|
test.rb:8: undefined method 'test_func' (NoMethodError)
|
|
@@ -178,7 +177,7 @@ defined?(Foo)
|
|
|
178
177
|
nil
|
|
179
178
|
```
|
|
180
179
|
|
|
181
|
-
#### mruby [
|
|
180
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
182
181
|
|
|
183
182
|
`NameError` is raised.
|
|
184
183
|
|
|
@@ -195,7 +194,7 @@ alias $a $__a__
|
|
|
195
194
|
|
|
196
195
|
` nil `
|
|
197
196
|
|
|
198
|
-
#### mruby [
|
|
197
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
199
198
|
|
|
200
199
|
Syntax error
|
|
201
200
|
|
|
@@ -217,7 +216,7 @@ end
|
|
|
217
216
|
`ArgumentError` is raised.
|
|
218
217
|
The re-defined `+` operator does not accept any arguments.
|
|
219
218
|
|
|
220
|
-
#### mruby [
|
|
219
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
221
220
|
|
|
222
221
|
` 'ab' `
|
|
223
222
|
Behavior of the operator wasn't changed.
|
|
@@ -233,7 +232,7 @@ $ ruby -e 'puts Proc.new {}.binding'
|
|
|
233
232
|
#<Binding:0x00000e9deabb9950>
|
|
234
233
|
```
|
|
235
234
|
|
|
236
|
-
#### mruby [
|
|
235
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
237
236
|
|
|
238
237
|
```
|
|
239
238
|
$ ./bin/mruby -e 'puts Proc.new {}.binding'
|
|
@@ -245,8 +244,7 @@ trace (most recent call last):
|
|
|
245
244
|
## Keyword arguments
|
|
246
245
|
|
|
247
246
|
mruby keyword arguments behave slightly different from CRuby 2.5
|
|
248
|
-
to make the behavior simpler and less confusing.
|
|
249
|
-
future, the simpler behavior will be adopted to CRuby as well.
|
|
247
|
+
to make the behavior simpler and less confusing.
|
|
250
248
|
|
|
251
249
|
#### Ruby [ruby 2.5.1p57 (2018-03-29 revision 63029)]
|
|
252
250
|
|
|
@@ -255,7 +253,7 @@ $ ruby -e 'def m(*r,**k) p [r,k] end; m("a"=>1,:b=>2)'
|
|
|
255
253
|
[[{"a"=>1}], {:b=>2}]
|
|
256
254
|
```
|
|
257
255
|
|
|
258
|
-
#### mruby [
|
|
256
|
+
#### mruby [3.0.0 (2021-03-05)]
|
|
259
257
|
|
|
260
258
|
```
|
|
261
259
|
$ ./bin/mruby -e 'def m(*r,**k) p [r,k] end; m("a"=>1,:b=>2)'
|
|
@@ -264,12 +262,27 @@ trace (most recent call last):
|
|
|
264
262
|
-e:1: keyword argument hash with non symbol keys (ArgumentError)
|
|
265
263
|
```
|
|
266
264
|
|
|
265
|
+
## `nil?` redefinition in conditional expressions
|
|
266
|
+
|
|
267
|
+
Redefinition of `nil?` is ignored in conditional expressions.
|
|
268
|
+
|
|
269
|
+
```ruby
|
|
270
|
+
a = "a"
|
|
271
|
+
def a.nil?
|
|
272
|
+
true
|
|
273
|
+
end
|
|
274
|
+
puts(a.nil? ? "truthy" : "falsy")
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Ruby outputs `falsy`. mruby outputs `truthy`.
|
|
278
|
+
|
|
267
279
|
## Argument Destructuring
|
|
268
280
|
|
|
269
281
|
```ruby
|
|
270
282
|
def m(a,(b,c),d); p [a,b,c,d]; end
|
|
271
283
|
m(1,[2,3],4) # => [1,2,3,4]
|
|
272
284
|
```
|
|
285
|
+
|
|
273
286
|
Destructured arguments (`b` and `c` in above example) cannot be accessed
|
|
274
287
|
from the default expression of optional arguments and keyword arguments,
|
|
275
288
|
since actual assignment is done after the evaluation of those default
|
|
@@ -283,17 +296,3 @@ f(1,[2,3])
|
|
|
283
296
|
```
|
|
284
297
|
|
|
285
298
|
CRuby gives `[1,2,3,nil]`. mruby raises `NoMethodError` for `b`.
|
|
286
|
-
|
|
287
|
-
## `nil?` redefinition in conditional expressions
|
|
288
|
-
|
|
289
|
-
Redefinition of `nil?` is ignored in conditional expressions.
|
|
290
|
-
|
|
291
|
-
```ruby
|
|
292
|
-
a = "a"
|
|
293
|
-
def a.nil?
|
|
294
|
-
true
|
|
295
|
-
end
|
|
296
|
-
puts(a.nil? ? "truthy" : "falsy")
|
|
297
|
-
```
|
|
298
|
-
|
|
299
|
-
Ruby outputs `falsy`. mruby outputs `truthy`.
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
User visible changes in `mruby3`
|
|
2
|
+
===
|
|
3
|
+
|
|
4
|
+
# Build System
|
|
5
|
+
|
|
6
|
+
## `build_config` directory
|
|
7
|
+
|
|
8
|
+
Typical build configuration files are located in `build_config`
|
|
9
|
+
directory. For examples:
|
|
10
|
+
|
|
11
|
+
* `default`: the default configuration
|
|
12
|
+
* `host-gprof`: compiles with `gprof` for performance tuning
|
|
13
|
+
* `host-m32`: compiles in gcc 32bit mode on 64bit platforms
|
|
14
|
+
* `boxing`: compiles all three boxing options
|
|
15
|
+
* `clang-asan`: compiles with `clang`'s Address Sanitizer
|
|
16
|
+
|
|
17
|
+
You can specify the build configuration file with the
|
|
18
|
+
`MRUBY_CONFIG` environment variable (or `CONFIG` in short).
|
|
19
|
+
If the value specified by `MRUBY_CONFIG` is not the path to
|
|
20
|
+
the configuration file, `build_config/${MRUBY_CONFIG}.rb` is
|
|
21
|
+
used. So you can specify it as `rake MRUBY_CONFIG=boxing`,
|
|
22
|
+
for example.
|
|
23
|
+
|
|
24
|
+
# Build Configuration Contribution
|
|
25
|
+
|
|
26
|
+
When you write a new build configuration description, please
|
|
27
|
+
contribute. We welcome your contribution as a GitHub
|
|
28
|
+
pull-request.
|
|
29
|
+
|
|
30
|
+
# Language Changes
|
|
31
|
+
|
|
32
|
+
## New Syntax
|
|
33
|
+
|
|
34
|
+
We have ported some new syntax from CRuby.
|
|
35
|
+
|
|
36
|
+
* Single line pattern matching (`12 => x`);
|
|
37
|
+
mruby matches only with local variables at the moment
|
|
38
|
+
* Numbered block parameter (`x.map{_1 * 2}`)
|
|
39
|
+
* End-less `def` (`def double(x) = x*2`)
|
|
40
|
+
|
|
41
|
+
# Configuration Options Changed
|
|
42
|
+
|
|
43
|
+
## Renamed for consistency
|
|
44
|
+
|
|
45
|
+
Some configuration macro names are changed for consistency (use `MRB_USE_XXX`
|
|
46
|
+
or `MRB_NO_XXX`).
|
|
47
|
+
|
|
48
|
+
| mruby2 | mruby3 |
|
|
49
|
+
|--------------------------------|---------------------------|
|
|
50
|
+
| `MRB_ENABLE_ALL_SYMBOLS` | `MRB_USE_ALL_SYMBOLS` |
|
|
51
|
+
| `MRB_ENABLE_CXX_ABI` | `MRB_USE_CXX_ABI` |
|
|
52
|
+
| `MRB_ENABLE_CXX_EXCEPTION` | `MRB_USE_CXX_EXCEPTION` |
|
|
53
|
+
| `MRB_ENABLE_DEBUG_HOOK` | `MRB_USE_DEBUG_HOOK` |
|
|
54
|
+
| `MRB_DISABLE_DIRECT_THREADING` | `MRB_NO_DIRECT_THREADING` |
|
|
55
|
+
| `MRB_DISABLE_STDIO` | `MRB_NO_STDIO` |
|
|
56
|
+
| `MRB_METHOD_T_STRUCT` | `MRB_USE_METHOD_T_STRUCT` |
|
|
57
|
+
| `MRB_USE_FLOAT` | `MRB_USE_FLOAT32` |
|
|
58
|
+
| `MRB_WITHOUT_FLOAT` | `MRB_NO_FLOAT` |
|
|
59
|
+
| `ENABLE_LINENOISE` | `MRB_USE_LINENOISE` |
|
|
60
|
+
| `ENABLE_READLINE` | `MRB_USE_READLINE` |
|
|
61
|
+
| `DISABLE_MIRB_UNDERSCORE` | `MRB_NO_MIRB_UNDERSCORE` |
|
|
62
|
+
|
|
63
|
+
* `MRB_USE_FLOAT32` is changed from `MRB_USE_FLOAT` to make sure `float` here
|
|
64
|
+
means using single precision float, and not the opposite of `MRB_NO_FLOAT`.
|
|
65
|
+
* `MRB_USE_METHOD_T_STRUCT` uses `struct` version of `mrb_method_t`. More
|
|
66
|
+
portable but consumes more memory. Turned on by default on 32bit platforms.
|
|
67
|
+
* `MRB_` prefix is added to those without.
|
|
68
|
+
|
|
69
|
+
## `MRB_NO_BOXING`
|
|
70
|
+
|
|
71
|
+
Uses `struct` to represent `mrb_value`. Consumes more memory
|
|
72
|
+
but easier to investigate the internal and to debug. It used
|
|
73
|
+
to be default `mrb_value` representation. Now the default is
|
|
74
|
+
`MRB_WORD_BOXING`.
|
|
75
|
+
|
|
76
|
+
## `MRB_WORD_BOXING`
|
|
77
|
+
|
|
78
|
+
Pack `mrb_value` in an `intptr_t` integer. Consumes less
|
|
79
|
+
memory compared to `MRB_NO_BOXING` especially on 32 bit
|
|
80
|
+
platforms. `Fixnum` size is 31 bits so some integer values
|
|
81
|
+
does not fit in `Fixnum` integers.
|
|
82
|
+
|
|
83
|
+
## `MRB_NAN_BOXING`
|
|
84
|
+
|
|
85
|
+
Pack `mrb_value` in a floating pointer number. Nothing
|
|
86
|
+
changed from previous versions.
|
|
87
|
+
|
|
88
|
+
## `MRB_USE_MALLOC_TRIM`
|
|
89
|
+
|
|
90
|
+
Call `malloc_trim(0)` from mrb_full_gc() if this macro is defined.
|
|
91
|
+
If you are using glibc malloc, this macro could reduce memory consumption.
|
|
92
|
+
|
|
93
|
+
# Command Line Program
|
|
94
|
+
|
|
95
|
+
## `bin/mruby` (by mrbgems/mruby-bin-mruby)
|
|
96
|
+
|
|
97
|
+
The mruby3 now automatically detects `*.mrb` files without the `-b`
|
|
98
|
+
switch. Therefore, it can be mixed with the `*.rb` file in combination
|
|
99
|
+
with the `-r` switch and specified at the same time.
|
|
100
|
+
Here's an example that works fine:
|
|
101
|
+
|
|
102
|
+
```console
|
|
103
|
+
$ bin/mruby app.mrb
|
|
104
|
+
$ bin/mruby -r lib1.mrb -r lib2.rb app.rb
|
|
105
|
+
$ bin/mruby -r lib1.rb -r lib2.rb < app.mrb
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
# Internal Changes
|
|
109
|
+
|
|
110
|
+
## New Instructions
|
|
111
|
+
|
|
112
|
+
`mruby3` introduces a few new instructions.
|
|
113
|
+
|
|
114
|
+
Instructions that access pool[i]/syms[i] where i>255.
|
|
115
|
+
|
|
116
|
+
* `OP_LOADL16`
|
|
117
|
+
* `OP_STRING16`
|
|
118
|
+
* `OP_LOADSYM16`
|
|
119
|
+
|
|
120
|
+
Instructions that load a 32 bit integer.
|
|
121
|
+
|
|
122
|
+
* `OP_LOADI32`
|
|
123
|
+
|
|
124
|
+
Instruction that unwinds jump table for rescue/ensure.
|
|
125
|
+
|
|
126
|
+
* `OP_JMPUW`
|
|
127
|
+
|
|
128
|
+
Renamed from `OP_RAISE`
|
|
129
|
+
|
|
130
|
+
* `OP_RAISEIF`
|
|
131
|
+
|
|
132
|
+
Instruction that is reserved for the future keyword argument support.
|
|
133
|
+
|
|
134
|
+
* OP_SENDVK
|
|
135
|
+
|
|
136
|
+
## Removed Instructions
|
|
137
|
+
|
|
138
|
+
Instructions for old exception handling
|
|
139
|
+
|
|
140
|
+
* `OP_ONERR`
|
|
141
|
+
* `OP_POPERR`
|
|
142
|
+
* `OP_EPUSH`
|
|
143
|
+
* `OP_EPOP`
|
|
144
|
+
|
|
145
|
+
No more operand extension
|
|
146
|
+
|
|
147
|
+
* `OP_EXT1`
|
|
148
|
+
* `OP_EXT2`
|
|
149
|
+
* `OP_EXT3`
|
|
150
|
+
|
|
151
|
+
## Changed Instructions
|
|
152
|
+
|
|
153
|
+
Jump addresses used to be specified by absolute offset from the start of `iseq`. Now they are relative offset from the address of the next instruction.
|
|
154
|
+
|
|
155
|
+
## `Random` now use `xoshiro128++`.
|
|
156
|
+
|
|
157
|
+
For better and faster random number generation.
|
|
158
|
+
|
|
159
|
+
## Preallocated Symbol
|
|
160
|
+
|
|
161
|
+
Preallocated symbols are interned at compile-time. They can be accessed via symbols macros (e.g. `MRB_SYM()`).
|
|
162
|
+
|
|
163
|
+
See [Symbols](https://github.com/mruby/mruby/blob/master/doc/guides/symbol.md).
|
|
@@ -20,121 +20,107 @@ sign) of operands.
|
|
|
20
20
|
* sS: signed 16bit
|
|
21
21
|
* W: 24bit
|
|
22
22
|
|
|
23
|
-
First two byte operands may be extended to 16bit. When those byte
|
|
24
|
-
operands are bigger than 256, the instruction will be prefixed by
|
|
25
|
-
`OP_EXT1` (means 1st operand is 16bit) or `OP_EXT2` (means 2nd operand
|
|
26
|
-
is 16bit) or `OP_EXT3` (means 1st and 2nd operands are 16bit).
|
|
27
|
-
|
|
28
|
-
For instructions marked by `'`, `OP_EXT1` can be prefixed. For those
|
|
29
|
-
with `"`, either `OP_EXT1` or `OP_EXT2` or `OP_EXT2` can be prefixed.
|
|
30
|
-
|
|
31
23
|
## table.1 Instruction Table
|
|
32
24
|
|
|
33
25
|
| Instruction Name | Operand type | Semantics |
|
|
34
26
|
|------------------|--------------|--------------------------------------------------------|
|
|
35
27
|
| OP_NOP | - | no operation |
|
|
36
|
-
| OP_MOVE
|
|
37
|
-
| OP_LOADL
|
|
38
|
-
| OP_LOADI
|
|
39
|
-
| OP_LOADINEG
|
|
40
|
-
| OP_LOADI__1
|
|
41
|
-
| OP_LOADI_0
|
|
42
|
-
| OP_LOADI_1
|
|
43
|
-
| OP_LOADI_2
|
|
44
|
-
| OP_LOADI_3
|
|
45
|
-
| OP_LOADI_4
|
|
46
|
-
| OP_LOADI_5
|
|
47
|
-
| OP_LOADI_6
|
|
48
|
-
| OP_LOADI_7
|
|
49
|
-
| OP_LOADI16
|
|
50
|
-
| OP_LOADSYM
|
|
51
|
-
| OP_LOADNIL
|
|
52
|
-
| OP_LOADSELF
|
|
53
|
-
| OP_LOADT
|
|
54
|
-
| OP_LOADF
|
|
55
|
-
| OP_GETGV
|
|
56
|
-
| OP_SETGV
|
|
57
|
-
| OP_GETSV
|
|
58
|
-
| OP_SETSV
|
|
59
|
-
| OP_GETIV
|
|
60
|
-
| OP_SETIV
|
|
61
|
-
| OP_GETCV
|
|
62
|
-
| OP_SETCV
|
|
63
|
-
| OP_GETCONST
|
|
64
|
-
| OP_SETCONST
|
|
65
|
-
| OP_GETMCNST
|
|
66
|
-
| OP_SETMCNST
|
|
67
|
-
| OP_GETUPVAR
|
|
68
|
-
| OP_SETUPVAR
|
|
28
|
+
| OP_MOVE | BB | R(a) = R(b) |
|
|
29
|
+
| OP_LOADL | BB | R(a) = Pool(b) |
|
|
30
|
+
| OP_LOADI | BB | R(a) = mrb_int(b) |
|
|
31
|
+
| OP_LOADINEG | BB | R(a) = mrb_int(-b) |
|
|
32
|
+
| OP_LOADI__1 | B | R(a) = mrb_int(-1) |
|
|
33
|
+
| OP_LOADI_0 | B | R(a) = mrb_int(0) |
|
|
34
|
+
| OP_LOADI_1 | B | R(a) = mrb_int(1) |
|
|
35
|
+
| OP_LOADI_2 | B | R(a) = mrb_int(2) |
|
|
36
|
+
| OP_LOADI_3 | B | R(a) = mrb_int(3) |
|
|
37
|
+
| OP_LOADI_4 | B | R(a) = mrb_int(4) |
|
|
38
|
+
| OP_LOADI_5 | B | R(a) = mrb_int(5) |
|
|
39
|
+
| OP_LOADI_6 | B | R(a) = mrb_int(6) |
|
|
40
|
+
| OP_LOADI_7 | B | R(a) = mrb_int(7) |
|
|
41
|
+
| OP_LOADI16 | BsS | R(a) = mrb_int(b) |
|
|
42
|
+
| OP_LOADSYM | BB | R(a) = Syms(b) |
|
|
43
|
+
| OP_LOADNIL | B | R(a) = nil |
|
|
44
|
+
| OP_LOADSELF | B | R(a) = self |
|
|
45
|
+
| OP_LOADT | B | R(a) = true |
|
|
46
|
+
| OP_LOADF | B | R(a) = false |
|
|
47
|
+
| OP_GETGV | BB | R(a) = getglobal(Syms(b)) |
|
|
48
|
+
| OP_SETGV | BB | setglobal(Syms(b), R(a)) |
|
|
49
|
+
| OP_GETSV | BB | R(a) = Special[Syms(b)] |
|
|
50
|
+
| OP_SETSV | BB | Special[Syms(b)] = R(a) |
|
|
51
|
+
| OP_GETIV | BB | R(a) = ivget(Syms(b)) |
|
|
52
|
+
| OP_SETIV | BB | ivset(Syms(b),R(a)) |
|
|
53
|
+
| OP_GETCV | BB | R(a) = cvget(Syms(b)) |
|
|
54
|
+
| OP_SETCV | BB | cvset(Syms(b),R(a)) |
|
|
55
|
+
| OP_GETCONST | BB | R(a) = constget(Syms(b)) |
|
|
56
|
+
| OP_SETCONST | BB | constset(Syms(b),R(a)) |
|
|
57
|
+
| OP_GETMCNST | BB | R(a) = R(a)::Syms(b) |
|
|
58
|
+
| OP_SETMCNST | BB | R(a+1)::Syms(b) = R(a) |
|
|
59
|
+
| OP_GETUPVAR | BBB | R(a) = uvget(b,c) |
|
|
60
|
+
| OP_SETUPVAR | BBB | uvset(b,c,R(a)) |
|
|
69
61
|
| OP_JMP | S | pc=a |
|
|
70
|
-
| OP_JMPIF
|
|
71
|
-
| OP_JMPNOT
|
|
72
|
-
| OP_JMPNIL
|
|
73
|
-
|
|
|
74
|
-
| OP_EXCEPT
|
|
75
|
-
| OP_RESCUE
|
|
76
|
-
|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
|
80
|
-
|
|
|
81
|
-
| OP_SENDVB" | BB | R(a) = call(R(a),Syms(b),*R(a+1),&R(a+2)) |
|
|
82
|
-
| OP_SEND" | BBB | R(a) = call(R(a),Syms(b),R(a+1),...,R(a+c)) |
|
|
83
|
-
| OP_SENDB" | BBB | R(a) = call(R(a),Syms(b),R(a+1),...,R(a+c),&R(a+c+1)) |
|
|
62
|
+
| OP_JMPIF | BS | if R(a) pc=b |
|
|
63
|
+
| OP_JMPNOT | BS | if !R(a) pc=b |
|
|
64
|
+
| OP_JMPNIL | BS | if R(a)==nil pc=b |
|
|
65
|
+
| OP_JMPUW | S | unwind_and_jump_to(a) |
|
|
66
|
+
| OP_EXCEPT | B | R(a) = exc |
|
|
67
|
+
| OP_RESCUE | BB | R(b) = R(a).isa?(R(b)) |
|
|
68
|
+
| OP_RAISEIF | B | raise(R(a)) if R(a) |
|
|
69
|
+
| OP_SENDV | BB | R(a) = call(R(a),Syms(b),*R(a+1)) |
|
|
70
|
+
| OP_SENDVB | BB | R(a) = call(R(a),Syms(b),*R(a+1),&R(a+2)) |
|
|
71
|
+
| OP_SEND | BBB | R(a) = call(R(a),Syms(b),R(a+1),...,R(a+c)) |
|
|
72
|
+
| OP_SENDB | BBB | R(a) = call(R(a),Syms(b),R(a+1),...,R(a+c),&R(a+c+1)) |
|
|
84
73
|
| OP_CALL | - | R(0) = self.call(frame.argc, frame.argv) |
|
|
85
|
-
| OP_SUPER
|
|
86
|
-
| OP_ARGARY
|
|
74
|
+
| OP_SUPER | BB | R(a) = super(R(a+1),... ,R(a+b+1)) |
|
|
75
|
+
| OP_ARGARY | BS | R(a) = argument array (16=5:1:5:1:4) |
|
|
87
76
|
| OP_ENTER | W | arg setup according to flags (23=5:5:1:5:5:1:1) |
|
|
88
|
-
| OP_KEY_P
|
|
77
|
+
| OP_KEY_P | BB | R(a) = kdict.key?(Syms(b)) |
|
|
89
78
|
| OP_KEYEND | - | raise unless kdict.empty? |
|
|
90
|
-
| OP_KARG
|
|
91
|
-
| OP_RETURN
|
|
92
|
-
| OP_RETURN_BLK
|
|
93
|
-
| OP_BREAK
|
|
94
|
-
| OP_BLKPUSH
|
|
95
|
-
| OP_ADD
|
|
96
|
-
| OP_ADDI
|
|
97
|
-
| OP_SUB
|
|
98
|
-
| OP_SUBI
|
|
99
|
-
| OP_MUL
|
|
100
|
-
| OP_DIV
|
|
101
|
-
| OP_EQ
|
|
102
|
-
| OP_LT
|
|
103
|
-
| OP_LE
|
|
104
|
-
| OP_GT
|
|
105
|
-
| OP_GE
|
|
106
|
-
| OP_ARRAY
|
|
107
|
-
| OP_ARRAY2
|
|
108
|
-
| OP_ARYCAT
|
|
109
|
-
| OP_ARYPUSH
|
|
110
|
-
| OP_ARYDUP
|
|
111
|
-
| OP_AREF
|
|
112
|
-
| OP_ASET
|
|
113
|
-
| OP_APOST
|
|
114
|
-
| OP_INTERN
|
|
115
|
-
| OP_STRING
|
|
116
|
-
| OP_STRCAT
|
|
117
|
-
| OP_HASH
|
|
118
|
-
| OP_HASHADD
|
|
119
|
-
| OP_HASHCAT
|
|
120
|
-
| OP_LAMBDA
|
|
121
|
-
| OP_BLOCK
|
|
122
|
-
| OP_METHOD
|
|
123
|
-
| OP_RANGE_INC
|
|
124
|
-
| OP_RANGE_EXC
|
|
125
|
-
| OP_OCLASS
|
|
126
|
-
| OP_CLASS
|
|
127
|
-
| OP_MODULE
|
|
128
|
-
| OP_EXEC
|
|
129
|
-
| OP_DEF
|
|
130
|
-
| OP_ALIAS
|
|
131
|
-
| OP_UNDEF
|
|
132
|
-
| OP_SCLASS
|
|
133
|
-
| OP_TCLASS
|
|
134
|
-
| OP_DEBUG
|
|
135
|
-
| OP_ERR
|
|
136
|
-
| OP_EXT1 | - | make 1st operand 16bit |
|
|
137
|
-
| OP_EXT2 | - | make 2nd operand 16bit |
|
|
138
|
-
| OP_EXT3 | - | make 1st and 2nd operands 16bit |
|
|
79
|
+
| OP_KARG | BB | R(a) = kdict[Syms(b)]; kdict.delete(Syms(b)) |
|
|
80
|
+
| OP_RETURN | B | return R(a) (normal) |
|
|
81
|
+
| OP_RETURN_BLK | B | return R(a) (in-block return) |
|
|
82
|
+
| OP_BREAK | B | break R(a) |
|
|
83
|
+
| OP_BLKPUSH | BS | R(a) = block (16=5:1:5:1:4) |
|
|
84
|
+
| OP_ADD | B | R(a) = R(a)+R(a+1) |
|
|
85
|
+
| OP_ADDI | BB | R(a) = R(a)+mrb_int(b) |
|
|
86
|
+
| OP_SUB | B | R(a) = R(a)-R(a+1) |
|
|
87
|
+
| OP_SUBI | BB | R(a) = R(a)-mrb_int(b) |
|
|
88
|
+
| OP_MUL | B | R(a) = R(a)*R(a+1) |
|
|
89
|
+
| OP_DIV | B | R(a) = R(a)/R(a+1) |
|
|
90
|
+
| OP_EQ | B | R(a) = R(a)==R(a+1) |
|
|
91
|
+
| OP_LT | B | R(a) = R(a)<R(a+1) |
|
|
92
|
+
| OP_LE | B | R(a) = R(a)<=R(a+1) |
|
|
93
|
+
| OP_GT | B | R(a) = R(a)>R(a+1) |
|
|
94
|
+
| OP_GE | B | R(a) = R(a)>=R(a+1) |
|
|
95
|
+
| OP_ARRAY | BB | R(a) = ary_new(R(a),R(a+1)..R(a+b)) |
|
|
96
|
+
| OP_ARRAY2 | BBB | R(a) = ary_new(R(b),R(b+1)..R(b+c)) |
|
|
97
|
+
| OP_ARYCAT | B | ary_cat(R(a),R(a+1)) |
|
|
98
|
+
| OP_ARYPUSH | B | ary_push(R(a),R(a+1)) |
|
|
99
|
+
| OP_ARYDUP | B | R(a) = ary_dup(R(a)) |
|
|
100
|
+
| OP_AREF | BBB | R(a) = R(b)[c] |
|
|
101
|
+
| OP_ASET | BBB | R(a)[c] = R(b) |
|
|
102
|
+
| OP_APOST | BBB | *R(a),R(a+1)..R(a+c) = R(a)[b..] |
|
|
103
|
+
| OP_INTERN | B | R(a) = intern(R(a)) |
|
|
104
|
+
| OP_STRING | BB | R(a) = str_dup(Lit(b)) |
|
|
105
|
+
| OP_STRCAT | B | str_cat(R(a),R(a+1)) |
|
|
106
|
+
| OP_HASH | BB | R(a) = hash_new(R(a),R(a+1)..R(a+b)) |
|
|
107
|
+
| OP_HASHADD | BB | R(a) = hash_push(R(a),R(a+1)..R(a+b)) |
|
|
108
|
+
| OP_HASHCAT | B | R(a) = hash_cat(R(a),R(a+1)) |
|
|
109
|
+
| OP_LAMBDA | BB | R(a) = lambda(SEQ[b],OP_L_LAMBDA) |
|
|
110
|
+
| OP_BLOCK | BB | R(a) = lambda(SEQ[b],OP_L_BLOCK) |
|
|
111
|
+
| OP_METHOD | BB | R(a) = lambda(SEQ[b],OP_L_METHOD) |
|
|
112
|
+
| OP_RANGE_INC | B | R(a) = range_new(R(a),R(a+1),FALSE) |
|
|
113
|
+
| OP_RANGE_EXC | B | R(a) = range_new(R(a),R(a+1),TRUE) |
|
|
114
|
+
| OP_OCLASS | B | R(a) = ::Object |
|
|
115
|
+
| OP_CLASS | BB | R(a) = newclass(R(a),Syms(b),R(a+1)) |
|
|
116
|
+
| OP_MODULE | BB | R(a) = newmodule(R(a),Syms(b)) |
|
|
117
|
+
| OP_EXEC | BB | R(a) = blockexec(R(a),SEQ[b]) |
|
|
118
|
+
| OP_DEF | BB | R(a).newmethod(Syms(b),R(a+1)) |
|
|
119
|
+
| OP_ALIAS | BB | alias_method(target_class,Syms(a),Syms(b)) |
|
|
120
|
+
| OP_UNDEF | B | undef_method(target_class,Syms(a)) |
|
|
121
|
+
| OP_SCLASS | B | R(a) = R(a).singleton_class |
|
|
122
|
+
| OP_TCLASS | B | R(a) = target_class |
|
|
123
|
+
| OP_DEBUG | BBB | print a,b,c |
|
|
124
|
+
| OP_ERR | B | raise(LocalJumpError, Lit(a)) |
|
|
139
125
|
| OP_STOP | - | stop VM |
|
|
140
126
|
|------------------|--------------|--------------------------------------------------------|
|