script_core 0.2.3 → 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/.rubocop.yml +35 -57
- data/.ruby-version +1 -1
- data/Gemfile +2 -2
- data/README.md +7 -1
- data/ext/enterprise_script_service/Rakefile +1 -1
- data/ext/enterprise_script_service/libseccomp/.travis.yml +24 -12
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +32 -0
- data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
- data/ext/enterprise_script_service/libseccomp/CREDITS +11 -0
- data/ext/enterprise_script_service/libseccomp/README.md +21 -1
- data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
- data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
- data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +19 -0
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
- data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
- data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
- data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
- data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
- data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
- data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
- data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
- data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
- data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
- data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
- data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +10 -2
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
- data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
- data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +4 -3
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +34 -10
- data/ext/enterprise_script_service/libseccomp/tests/regression +10 -3
- data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
- data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
- data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +4 -0
- data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
- data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +149 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +55 -0
- 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/.gitignore +3 -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 +7 -10
- data/ext/enterprise_script_service/mruby/.yamllint +8 -0
- data/ext/enterprise_script_service/mruby/AUTHORS +4 -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 +5 -11
- 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 +29 -26
- 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} +4 -21
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelEdison.rb → build_config/IntelEdison.rb} +4 -4
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelGalileo.rb → build_config/IntelGalileo.rb} +3 -20
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_RX630.rb → build_config/RX630.rb} +4 -21
- 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} +4 -21
- data/ext/enterprise_script_service/mruby/{appveyor_config.rb → build_config/ci/gcc-clang.rb} +11 -8
- 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/build_config/dreamcast_shelf.rb +94 -0
- 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 +142 -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 +53 -30
- 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 +102 -103
- 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 +88 -66
- data/ext/enterprise_script_service/mruby/include/mruby.h +160 -104
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +27 -6
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +80 -46
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +8 -8
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +76 -55
- data/ext/enterprise_script_service/mruby/include/mruby/class.h +10 -8
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +14 -1
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +20 -6
- data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +18 -52
- 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 +74 -14
- data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +19 -9
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +37 -63
- data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +1 -27
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +29 -24
- 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 +93 -21
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +12 -16
- data/ext/enterprise_script_service/mruby/include/mruby/throw.h +14 -3
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +60 -59
- data/ext/enterprise_script_service/mruby/include/mruby/variable.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +25 -6
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +198 -72
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +71 -78
- 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 +84 -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/lib/mruby/source.rb +3 -1
- 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 -81
- 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 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +10 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +30 -18
- 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 -4
- 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 +6 -2
- 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 +46 -35
- 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 +41 -28
- 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 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +26 -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 +6 -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 +7 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +495 -436
- 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 +637 -220
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13734 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +20 -23
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +9 -9
- 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-error/src/exception.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +19 -238
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +19 -15
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +31 -5
- 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 +5 -6
- 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 +39 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +9 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +9 -14
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +107 -59
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +22 -38
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +417 -203
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +20 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +33 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +58 -50
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +13 -14
- 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 +56 -73
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +13 -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 +80 -78
- 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 +8 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +18 -13
- 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 +120 -67
- 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 +65 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +34 -21
- 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 +21 -43
- 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 +12 -20
- 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 +5 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +47 -45
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +161 -93
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +9 -25
- 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 +17 -14
- 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 +23 -36
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +7 -6
- 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 +17 -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 +37 -41
- 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/00class.rb +10 -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 +3 -23
- 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 +67 -90
- data/ext/enterprise_script_service/mruby/src/backtrace.c +18 -19
- data/ext/enterprise_script_service/mruby/src/class.c +819 -211
- data/ext/enterprise_script_service/mruby/src/codedump.c +226 -197
- data/ext/enterprise_script_service/mruby/src/debug.c +14 -11
- data/ext/enterprise_script_service/mruby/src/dump.c +470 -207
- data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
- data/ext/enterprise_script_service/mruby/src/error.c +94 -20
- data/ext/enterprise_script_service/mruby/src/etc.c +56 -39
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +103 -27
- data/ext/enterprise_script_service/mruby/src/gc.c +86 -349
- data/ext/enterprise_script_service/mruby/src/hash.c +1058 -723
- data/ext/enterprise_script_service/mruby/src/kernel.c +78 -226
- data/ext/enterprise_script_service/mruby/src/load.c +215 -159
- data/ext/enterprise_script_service/mruby/src/numeric.c +400 -382
- data/ext/enterprise_script_service/mruby/src/object.c +115 -90
- data/ext/enterprise_script_service/mruby/src/print.c +31 -6
- data/ext/enterprise_script_service/mruby/src/proc.c +56 -45
- data/ext/enterprise_script_service/mruby/src/range.c +49 -33
- data/ext/enterprise_script_service/mruby/src/state.c +58 -42
- data/ext/enterprise_script_service/mruby/src/string.c +151 -156
- data/ext/enterprise_script_service/mruby/src/symbol.c +132 -66
- 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 +655 -645
- 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 +64 -61
- 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/android.rake +46 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +8 -7
- data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +13 -17
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +21 -25
- data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
- 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/ensure.rb +8 -26
- data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
- 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 +16 -25
- 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/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
- data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
- data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
- data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
- data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
- data/ext/enterprise_script_service/msgpack/README.md +3 -2
- data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
- data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
- data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
- data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
- data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
- data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
- data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
- data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
- data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
- data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
- data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
- data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
- data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
- data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
- data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
- data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
- data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
- data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
- data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
- data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
- data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
- data/lib/script_core/engine.rb +24 -5
- data/lib/script_core/executable.rb +4 -3
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/script_core.rake +3 -1
- data/script_core.gemspec +1 -2
- data/spec/dummy/app/lib/script_engine.rb +64 -5
- data/spec/script_core_spec.rb +13 -0
- metadata +123 -61
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
- data/ext/enterprise_script_service/mruby/TODO +0 -8
- 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
- data/ext/enterprise_script_service/mruby/travis_config.rb +0 -54
- data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
#include <mruby.h>
|
|
2
|
+
#include <mruby/string.h>
|
|
2
3
|
#include <stdio.h>
|
|
3
4
|
|
|
4
5
|
static mrb_value
|
|
5
6
|
mrb_c_method(mrb_state *mrb, mrb_value self)
|
|
6
7
|
{
|
|
7
|
-
|
|
8
|
+
mrb_value self_str = mrb_str_to_str(mrb, self);
|
|
9
|
+
|
|
10
|
+
printf("%s: A C Extension\n", mrb_str_to_cstr(mrb, self_str));
|
|
11
|
+
|
|
8
12
|
return self;
|
|
9
13
|
}
|
|
10
14
|
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
#include <mruby.h>
|
|
2
|
+
#include <mruby/string.h>
|
|
2
3
|
#include <stdio.h>
|
|
3
4
|
|
|
4
5
|
static mrb_value
|
|
5
6
|
mrb_c_method(mrb_state *mrb, mrb_value self)
|
|
6
7
|
{
|
|
7
|
-
|
|
8
|
+
mrb_value self_str = mrb_str_to_str(mrb, self);
|
|
9
|
+
|
|
10
|
+
printf("%s: A C Extension\n", mrb_str_to_cstr(mrb, self_str));
|
|
11
|
+
|
|
8
12
|
return self;
|
|
9
13
|
}
|
|
10
14
|
|
|
@@ -25,34 +25,73 @@
|
|
|
25
25
|
#endif
|
|
26
26
|
|
|
27
27
|
/* configuration options: */
|
|
28
|
-
/* add -
|
|
29
|
-
//#define
|
|
28
|
+
/* add -DMRB_USE_FLOAT32 to use float instead of double for floating point numbers */
|
|
29
|
+
//#define MRB_USE_FLOAT32
|
|
30
30
|
|
|
31
31
|
/* exclude floating point numbers */
|
|
32
|
-
//#define
|
|
32
|
+
//#define MRB_NO_FLOAT
|
|
33
33
|
|
|
34
|
-
/*
|
|
35
|
-
|
|
34
|
+
/* obsolete configuration */
|
|
35
|
+
#if defined(MRB_USE_FLOAT)
|
|
36
|
+
# define MRB_USE_FLOAT32
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
/* obsolete configuration */
|
|
40
|
+
#if defined(MRB_WITHOUT_FLOAT)
|
|
41
|
+
# define MRB_NO_FLOAT
|
|
42
|
+
#endif
|
|
43
|
+
|
|
44
|
+
#if defined(MRB_USE_FLOAT32) && defined(MRB_NO_FLOAT)
|
|
45
|
+
#error Cannot define MRB_USE_FLOAT32 and MRB_NO_FLOAT at the same time
|
|
46
|
+
#endif
|
|
47
|
+
|
|
48
|
+
/* add -DMRB_NO_METHOD_CACHE to disable method cache to save memory */
|
|
49
|
+
//#define MRB_NO_METHOD_CACHE
|
|
36
50
|
/* size of the method cache (need to be the power of 2) */
|
|
37
|
-
//#define MRB_METHOD_CACHE_SIZE (1<<
|
|
51
|
+
//#define MRB_METHOD_CACHE_SIZE (1<<8)
|
|
52
|
+
|
|
53
|
+
/* add -DMRB_USE_METHOD_T_STRUCT on machines that use higher bits of function pointers */
|
|
54
|
+
/* no MRB_USE_METHOD_T_STRUCT requires highest 2 bits of function pointers to be zero */
|
|
55
|
+
#ifndef MRB_USE_METHOD_T_STRUCT
|
|
56
|
+
// can't use highest 2 bits of function pointers at least on 32bit
|
|
57
|
+
// Windows and 32bit Linux.
|
|
58
|
+
# ifdef MRB_32BIT
|
|
59
|
+
# define MRB_USE_METHOD_T_STRUCT
|
|
60
|
+
# endif
|
|
61
|
+
#endif
|
|
38
62
|
|
|
39
|
-
/*
|
|
40
|
-
|
|
41
|
-
|
|
63
|
+
/* define on big endian machines; used by MRB_NAN_BOXING, etc. */
|
|
64
|
+
#ifndef MRB_ENDIAN_BIG
|
|
65
|
+
# if (defined(BYTE_ORDER) && defined(BIG_ENDIAN) && BYTE_ORDER == BIG_ENDIAN) || \
|
|
66
|
+
(defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
|
|
67
|
+
# define MRB_ENDIAN_BIG
|
|
68
|
+
# endif
|
|
69
|
+
#endif
|
|
42
70
|
|
|
43
|
-
/*
|
|
44
|
-
//#define
|
|
71
|
+
/* represent mrb_value in boxed double; conflict with MRB_USE_FLOAT32 and MRB_NO_FLOAT */
|
|
72
|
+
//#define MRB_NAN_BOXING
|
|
73
|
+
|
|
74
|
+
/* represent mrb_value as a word (natural unit of data for the processor) */
|
|
75
|
+
//#define MRB_WORD_BOXING
|
|
76
|
+
|
|
77
|
+
/* represent mrb_value as a struct; occupies 2 words */
|
|
78
|
+
//#define MRB_NO_BOXING
|
|
79
|
+
|
|
80
|
+
/* if no specific boxing type is chosen */
|
|
81
|
+
#if !defined(MRB_NAN_BOXING) && !defined(MRB_WORD_BOXING) && !defined(MRB_NO_BOXING)
|
|
82
|
+
# define MRB_WORD_BOXING
|
|
83
|
+
#endif
|
|
45
84
|
|
|
46
|
-
/* add -DMRB_INT32 to use 32bit integer for mrb_int; conflict with
|
|
85
|
+
/* add -DMRB_INT32 to use 32bit integer for mrb_int; conflict with MRB_INT64;
|
|
47
86
|
Default for 32-bit CPU mode. */
|
|
48
87
|
//#define MRB_INT32
|
|
49
88
|
|
|
50
|
-
/* add -DMRB_INT64 to use 64bit integer for mrb_int; conflict with
|
|
51
|
-
Default for 64-bit CPU mode. */
|
|
89
|
+
/* add -DMRB_INT64 to use 64bit integer for mrb_int; conflict with MRB_INT32;
|
|
90
|
+
Default for 64-bit CPU mode (unless using MRB_NAN_BOXING). */
|
|
52
91
|
//#define MRB_INT64
|
|
53
92
|
|
|
54
93
|
/* if no specific integer type is chosen */
|
|
55
|
-
#if !defined(
|
|
94
|
+
#if !defined(MRB_INT32) && !defined(MRB_INT64)
|
|
56
95
|
# if defined(MRB_64BIT) && !defined(MRB_NAN_BOXING)
|
|
57
96
|
/* Use 64bit integers on 64bit architecture (without MRB_NAN_BOXING) */
|
|
58
97
|
# define MRB_INT64
|
|
@@ -62,19 +101,8 @@
|
|
|
62
101
|
# endif
|
|
63
102
|
#endif
|
|
64
103
|
|
|
65
|
-
/*
|
|
66
|
-
|
|
67
|
-
# if (defined(BYTE_ORDER) && defined(BIG_ENDIAN) && BYTE_ORDER == BIG_ENDIAN) || \
|
|
68
|
-
(defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
|
|
69
|
-
# define MRB_ENDIAN_BIG
|
|
70
|
-
# endif
|
|
71
|
-
#endif
|
|
72
|
-
|
|
73
|
-
/* represent mrb_value in boxed double; conflict with MRB_USE_FLOAT and MRB_WITHOUT_FLOAT */
|
|
74
|
-
//#define MRB_NAN_BOXING
|
|
75
|
-
|
|
76
|
-
/* represent mrb_value as a word (natural unit of data for the processor) */
|
|
77
|
-
//#define MRB_WORD_BOXING
|
|
104
|
+
/* call malloc_trim(0) from mrb_full_gc() */
|
|
105
|
+
//#define MRB_USE_MALLOC_TRIM
|
|
78
106
|
|
|
79
107
|
/* string class to handle UTF-8 encoding */
|
|
80
108
|
//#define MRB_UTF8_STRING
|
|
@@ -105,9 +133,6 @@
|
|
|
105
133
|
/* page size of memory pool */
|
|
106
134
|
//#define POOL_PAGE_SIZE 16000
|
|
107
135
|
|
|
108
|
-
/* initial minimum size for string buffer */
|
|
109
|
-
//#define MRB_STR_BUF_MIN_SIZE 128
|
|
110
|
-
|
|
111
136
|
/* arena size */
|
|
112
137
|
//#define MRB_GC_ARENA_SIZE 100
|
|
113
138
|
|
|
@@ -120,26 +145,39 @@
|
|
|
120
145
|
/* fixed size state atexit stack */
|
|
121
146
|
//#define MRB_FIXED_STATE_ATEXIT_STACK
|
|
122
147
|
|
|
123
|
-
/* -
|
|
124
|
-
//#define
|
|
125
|
-
|
|
126
|
-
/* -DMRB_ENABLE_XXXX to enable following features */
|
|
127
|
-
//#define MRB_ENABLE_DEBUG_HOOK /* hooks for debugger */
|
|
128
|
-
//#define MRB_ENABLE_ALL_SYMBOLS /* Symbols.all_symbols */
|
|
148
|
+
/* -DMRB_NO_XXXX to drop following features */
|
|
149
|
+
//#define MRB_NO_STDIO /* use of stdio */
|
|
129
150
|
|
|
130
|
-
/*
|
|
151
|
+
/* -DMRB_USE_XXXX to enable following features */
|
|
152
|
+
//#define MRB_USE_DEBUG_HOOK /* hooks for debugger */
|
|
153
|
+
//#define MRB_USE_ALL_SYMBOLS /* Symbol.all_symbols */
|
|
131
154
|
|
|
132
|
-
/*
|
|
133
|
-
#ifdef
|
|
134
|
-
#define
|
|
155
|
+
/* obsolete configurations */
|
|
156
|
+
#ifdef MRB_METHOD_T_STRUCT
|
|
157
|
+
# define MRB_USE_METHOD_T_STRUCT
|
|
135
158
|
#endif
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
#
|
|
139
|
-
#
|
|
159
|
+
#if defined(DISABLE_STDIO) || defined(MRB_DISABLE_STDIO)
|
|
160
|
+
# define MRB_NO_STDIO
|
|
161
|
+
#endif
|
|
162
|
+
#ifdef MRB_DISABLE_DIRECT_THREADING
|
|
163
|
+
# define MRB_NO_DIRECT_THREADING
|
|
164
|
+
#endif
|
|
165
|
+
#if defined(ENABLE_DEBUG) || defined(MRB_ENABLE_DEBUG_HOOK)
|
|
166
|
+
# define MRB_USE_DEBUG_HOOK
|
|
167
|
+
#endif
|
|
168
|
+
#ifdef MRB_ENABLE_ALL_SYMBOLS
|
|
169
|
+
# define MRB_USE_ALL_SYMBOLS
|
|
170
|
+
#endif
|
|
171
|
+
#ifdef MRB_ENABLE_CXX_ABI
|
|
172
|
+
# define MRB_USE_CXX_ABI
|
|
173
|
+
#endif
|
|
174
|
+
#ifdef MRB_ENABLE_CXX_EXCEPTION
|
|
175
|
+
# define MRB_USE_CXX_EXCEPTION
|
|
140
176
|
#endif
|
|
141
177
|
|
|
142
|
-
|
|
178
|
+
/* end of configuration */
|
|
179
|
+
|
|
180
|
+
#ifndef MRB_NO_STDIO
|
|
143
181
|
# include <stdio.h>
|
|
144
182
|
#endif
|
|
145
183
|
|
|
@@ -157,12 +195,12 @@
|
|
|
157
195
|
|
|
158
196
|
/* A profile for micro controllers */
|
|
159
197
|
#if defined(MRB_CONSTRAINED_BASELINE_PROFILE)
|
|
160
|
-
# ifndef
|
|
161
|
-
# define
|
|
198
|
+
# ifndef MRB_NO_METHOD_CACHE
|
|
199
|
+
# define MRB_NO_METHOD_CACHE
|
|
162
200
|
# endif
|
|
163
201
|
|
|
164
|
-
# ifndef
|
|
165
|
-
# define
|
|
202
|
+
# ifndef KHASH_DEFAULT_SIZE
|
|
203
|
+
# define KHASH_DEFAULT_SIZE 16
|
|
166
204
|
# endif
|
|
167
205
|
|
|
168
206
|
# ifndef MRB_HEAP_PAGE_SIZE
|
|
@@ -174,36 +212,20 @@
|
|
|
174
212
|
|
|
175
213
|
/* A profile for desktop computers or workstations; rich memory! */
|
|
176
214
|
#elif defined(MRB_MAIN_PROFILE)
|
|
177
|
-
# ifndef MRB_METHOD_CACHE
|
|
178
|
-
# define MRB_METHOD_CACHE
|
|
179
|
-
# endif
|
|
180
|
-
|
|
181
215
|
# ifndef MRB_METHOD_CACHE_SIZE
|
|
182
216
|
# define MRB_METHOD_CACHE_SIZE (1<<10)
|
|
183
217
|
# endif
|
|
184
218
|
|
|
185
|
-
# ifndef MRB_IV_SEGMENT_SIZE
|
|
186
|
-
# define MRB_IV_SEGMENT_SIZE 32
|
|
187
|
-
# endif
|
|
188
|
-
|
|
189
219
|
# ifndef MRB_HEAP_PAGE_SIZE
|
|
190
220
|
# define MRB_HEAP_PAGE_SIZE 4096
|
|
191
221
|
# endif
|
|
192
222
|
|
|
193
223
|
/* A profile for server; mruby vm is long life */
|
|
194
224
|
#elif defined(MRB_HIGH_PROFILE)
|
|
195
|
-
# ifndef MRB_METHOD_CACHE
|
|
196
|
-
# define MRB_METHOD_CACHE
|
|
197
|
-
# endif
|
|
198
|
-
|
|
199
225
|
# ifndef MRB_METHOD_CACHE_SIZE
|
|
200
226
|
# define MRB_METHOD_CACHE_SIZE (1<<12)
|
|
201
227
|
# endif
|
|
202
228
|
|
|
203
|
-
# ifndef MRB_IV_SEGMENT_SIZE
|
|
204
|
-
# define MRB_IV_SEGMENT_SIZE 64
|
|
205
|
-
# endif
|
|
206
|
-
|
|
207
229
|
# ifndef MRB_HEAP_PAGE_SIZE
|
|
208
230
|
# define MRB_HEAP_PAGE_SIZE 4096
|
|
209
231
|
# endif
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
** mruby - An embeddable Ruby implementation
|
|
3
3
|
**
|
|
4
|
-
** Copyright (c) mruby developers 2010-
|
|
4
|
+
** Copyright (c) mruby developers 2010-2021
|
|
5
5
|
**
|
|
6
6
|
** Permission is hereby granted, free of charge, to any person obtaining
|
|
7
7
|
** a copy of this software and associated documentation files (the
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
23
23
|
** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
24
24
|
**
|
|
25
|
-
** [ MIT license:
|
|
25
|
+
** [ MIT license: https://www.opensource.org/licenses/mit-license.php ]
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -53,6 +53,10 @@
|
|
|
53
53
|
#endif
|
|
54
54
|
#endif
|
|
55
55
|
|
|
56
|
+
#ifdef _MSC_VER
|
|
57
|
+
# define __func__ __FUNCTION__
|
|
58
|
+
#endif
|
|
59
|
+
|
|
56
60
|
#ifdef MRB_DEBUG
|
|
57
61
|
#include <assert.h>
|
|
58
62
|
#define mrb_assert(p) assert(p)
|
|
@@ -62,15 +66,37 @@
|
|
|
62
66
|
#define mrb_assert_int_fit(t1,n,t2,max) ((void)0)
|
|
63
67
|
#endif
|
|
64
68
|
|
|
65
|
-
#if defined
|
|
66
|
-
|
|
69
|
+
#if (defined __cplusplus && __cplusplus >= 201103L) || \
|
|
70
|
+
(defined _MSC_VER) || \
|
|
71
|
+
(defined __GXX_EXPERIMENTAL_CXX0X__) /* for old G++/Clang++ */
|
|
72
|
+
# define mrb_static_assert(exp, str) static_assert(exp, str)
|
|
73
|
+
#elif defined __STDC_VERSION__ && \
|
|
74
|
+
((__STDC_VERSION__ >= 201112L) || \
|
|
75
|
+
(defined __GNUC__ && __GNUC__ * 100 + __GNUC_MINOR__ >= 406))
|
|
76
|
+
# define mrb_static_assert(exp, str) _Static_assert(exp, str)
|
|
67
77
|
#else
|
|
68
|
-
#
|
|
78
|
+
# /* alternative implementation of static_assert() */
|
|
79
|
+
# define _mrb_static_assert_cat0(a, b) a##b
|
|
80
|
+
# define _mrb_static_assert_cat(a, b) _mrb_static_assert_cat0(a, b)
|
|
81
|
+
# ifdef __COUNTER__
|
|
82
|
+
# define _mrb_static_assert_id(prefix) _mrb_static_assert_cat(prefix, __COUNTER__)
|
|
83
|
+
# else
|
|
84
|
+
# define _mrb_static_assert_id(prefix) _mrb_static_assert_cat(prefix, __LINE__)
|
|
85
|
+
# endif
|
|
86
|
+
# define mrb_static_assert(exp, str) \
|
|
87
|
+
struct _mrb_static_assert_id(_mrb_static_assert_) { char x[(exp) ? 1 : -1]; }
|
|
69
88
|
#endif
|
|
89
|
+
#define mrb_static_assert1(exp) mrb_static_assert(exp, #exp)
|
|
70
90
|
|
|
71
91
|
#include "mrbconf.h"
|
|
72
92
|
|
|
73
|
-
#
|
|
93
|
+
#include <mruby/common.h>
|
|
94
|
+
#include <mruby/value.h>
|
|
95
|
+
#include <mruby/gc.h>
|
|
96
|
+
#include <mruby/version.h>
|
|
97
|
+
|
|
98
|
+
#ifndef MRB_NO_FLOAT
|
|
99
|
+
#include <float.h>
|
|
74
100
|
#ifndef FLT_EPSILON
|
|
75
101
|
#define FLT_EPSILON (1.19209290e-07f)
|
|
76
102
|
#endif
|
|
@@ -81,18 +107,13 @@
|
|
|
81
107
|
#define LDBL_EPSILON (1.08420217248550443401e-19L)
|
|
82
108
|
#endif
|
|
83
109
|
|
|
84
|
-
#ifdef
|
|
110
|
+
#ifdef MRB_USE_FLOAT32
|
|
85
111
|
#define MRB_FLOAT_EPSILON FLT_EPSILON
|
|
86
112
|
#else
|
|
87
113
|
#define MRB_FLOAT_EPSILON DBL_EPSILON
|
|
88
114
|
#endif
|
|
89
115
|
#endif
|
|
90
116
|
|
|
91
|
-
#include <mruby/common.h>
|
|
92
|
-
#include <mruby/value.h>
|
|
93
|
-
#include <mruby/gc.h>
|
|
94
|
-
#include <mruby/version.h>
|
|
95
|
-
|
|
96
117
|
/**
|
|
97
118
|
* MRuby C API entry point
|
|
98
119
|
*/
|
|
@@ -129,16 +150,15 @@ typedef void* (*mrb_allocf) (struct mrb_state *mrb, void*, size_t, void *ud);
|
|
|
129
150
|
|
|
130
151
|
typedef struct {
|
|
131
152
|
mrb_sym mid;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
struct RClass *target_class;
|
|
153
|
+
int16_t argc;
|
|
154
|
+
int16_t acc;
|
|
155
|
+
const struct RProc *proc;
|
|
156
|
+
mrb_value *stack;
|
|
157
|
+
const mrb_code *pc; /* current address on iseq of this proc */
|
|
158
|
+
union {
|
|
159
|
+
struct REnv *env;
|
|
160
|
+
struct RClass *target_class;
|
|
161
|
+
} u;
|
|
142
162
|
} mrb_callinfo;
|
|
143
163
|
|
|
144
164
|
enum mrb_fiber_state {
|
|
@@ -153,28 +173,22 @@ enum mrb_fiber_state {
|
|
|
153
173
|
struct mrb_context {
|
|
154
174
|
struct mrb_context *prev;
|
|
155
175
|
|
|
156
|
-
mrb_value *
|
|
157
|
-
mrb_value *stbase, *stend;
|
|
176
|
+
mrb_value *stbase, *stend; /* stack of virtual machine */
|
|
158
177
|
|
|
159
178
|
mrb_callinfo *ci;
|
|
160
179
|
mrb_callinfo *cibase, *ciend;
|
|
161
180
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
struct RProc **ensure; /* ensure handler stack */
|
|
165
|
-
uint16_t esize, eidx;
|
|
166
|
-
|
|
167
|
-
enum mrb_fiber_state status;
|
|
168
|
-
mrb_bool vmexec;
|
|
181
|
+
enum mrb_fiber_state status : 4;
|
|
182
|
+
mrb_bool vmexec : 1;
|
|
169
183
|
struct RFiber *fib;
|
|
170
184
|
};
|
|
171
185
|
|
|
172
186
|
#ifdef MRB_METHOD_CACHE_SIZE
|
|
173
|
-
#
|
|
187
|
+
# undef MRB_NO_METHOD_CACHE
|
|
174
188
|
#else
|
|
175
|
-
/* default method cache size:
|
|
189
|
+
/* default method cache size: 256 */
|
|
176
190
|
/* cache size needs to be power of 2 */
|
|
177
|
-
# define MRB_METHOD_CACHE_SIZE (1<<
|
|
191
|
+
# define MRB_METHOD_CACHE_SIZE (1<<8)
|
|
178
192
|
#endif
|
|
179
193
|
|
|
180
194
|
/**
|
|
@@ -188,7 +202,7 @@ struct mrb_context {
|
|
|
188
202
|
*/
|
|
189
203
|
typedef mrb_value (*mrb_func_t)(struct mrb_state *mrb, mrb_value self);
|
|
190
204
|
|
|
191
|
-
#ifndef
|
|
205
|
+
#ifndef MRB_USE_METHOD_T_STRUCT
|
|
192
206
|
typedef uintptr_t mrb_method_t;
|
|
193
207
|
#else
|
|
194
208
|
typedef struct {
|
|
@@ -200,7 +214,7 @@ typedef struct {
|
|
|
200
214
|
} mrb_method_t;
|
|
201
215
|
#endif
|
|
202
216
|
|
|
203
|
-
#
|
|
217
|
+
#ifndef MRB_NO_METHOD_CACHE
|
|
204
218
|
struct mrb_cache_entry {
|
|
205
219
|
struct RClass *c, *c0;
|
|
206
220
|
mrb_sym mid;
|
|
@@ -234,10 +248,10 @@ typedef struct mrb_state {
|
|
|
234
248
|
struct RClass *hash_class;
|
|
235
249
|
struct RClass *range_class;
|
|
236
250
|
|
|
237
|
-
#ifndef
|
|
251
|
+
#ifndef MRB_NO_FLOAT
|
|
238
252
|
struct RClass *float_class;
|
|
239
253
|
#endif
|
|
240
|
-
struct RClass *
|
|
254
|
+
struct RClass *integer_class;
|
|
241
255
|
struct RClass *true_class;
|
|
242
256
|
struct RClass *false_class;
|
|
243
257
|
struct RClass *nil_class;
|
|
@@ -246,7 +260,7 @@ typedef struct mrb_state {
|
|
|
246
260
|
|
|
247
261
|
mrb_gc gc;
|
|
248
262
|
|
|
249
|
-
#
|
|
263
|
+
#ifndef MRB_NO_METHOD_CACHE
|
|
250
264
|
struct mrb_cache_entry cache[MRB_METHOD_CACHE_SIZE];
|
|
251
265
|
#endif
|
|
252
266
|
|
|
@@ -254,13 +268,13 @@ typedef struct mrb_state {
|
|
|
254
268
|
struct symbol_name *symtbl; /* symbol table */
|
|
255
269
|
mrb_sym symhash[256];
|
|
256
270
|
size_t symcapa;
|
|
257
|
-
#ifndef
|
|
271
|
+
#ifndef MRB_USE_ALL_SYMBOLS
|
|
258
272
|
char symbuf[8]; /* buffer for small symbol names */
|
|
259
273
|
#endif
|
|
260
274
|
|
|
261
|
-
#ifdef
|
|
262
|
-
void (*code_fetch_hook)(struct mrb_state* mrb, struct mrb_irep *irep, const mrb_code *pc, mrb_value *regs);
|
|
263
|
-
void (*debug_op_hook)(struct mrb_state* mrb, struct mrb_irep *irep, const mrb_code *pc, mrb_value *regs);
|
|
275
|
+
#ifdef MRB_USE_DEBUG_HOOK
|
|
276
|
+
void (*code_fetch_hook)(struct mrb_state* mrb, const struct mrb_irep *irep, const mrb_code *pc, mrb_value *regs);
|
|
277
|
+
void (*debug_op_hook)(struct mrb_state* mrb, const struct mrb_irep *irep, const mrb_code *pc, mrb_value *regs);
|
|
264
278
|
#endif
|
|
265
279
|
|
|
266
280
|
#ifdef MRB_BYTECODE_DECODE_OPTION
|
|
@@ -272,7 +286,7 @@ typedef struct mrb_state {
|
|
|
272
286
|
struct RObject *nomem_err; /* pre-allocated NoMemoryError */
|
|
273
287
|
struct RObject *stack_err; /* pre-allocated SysStackError */
|
|
274
288
|
#ifdef MRB_GC_FIXED_ARENA
|
|
275
|
-
struct RObject *arena_err; /* pre-allocated arena
|
|
289
|
+
struct RObject *arena_err; /* pre-allocated arena overflow error */
|
|
276
290
|
#endif
|
|
277
291
|
|
|
278
292
|
void *ud; /* auxiliary data */
|
|
@@ -283,7 +297,6 @@ typedef struct mrb_state {
|
|
|
283
297
|
mrb_atexit_func *atexit_stack;
|
|
284
298
|
#endif
|
|
285
299
|
uint16_t atexit_stack_len;
|
|
286
|
-
uint16_t ecall_nest; /* prevent infinite recursive ecall() */
|
|
287
300
|
} mrb_state;
|
|
288
301
|
|
|
289
302
|
/**
|
|
@@ -308,6 +321,7 @@ typedef struct mrb_state {
|
|
|
308
321
|
* @see mrb_define_class_under
|
|
309
322
|
*/
|
|
310
323
|
MRB_API struct RClass *mrb_define_class(mrb_state *mrb, const char *name, struct RClass *super);
|
|
324
|
+
MRB_API struct RClass *mrb_define_class_id(mrb_state *mrb, mrb_sym name, struct RClass *super);
|
|
311
325
|
|
|
312
326
|
/**
|
|
313
327
|
* Defines a new module.
|
|
@@ -317,7 +331,10 @@ MRB_API struct RClass *mrb_define_class(mrb_state *mrb, const char *name, struct
|
|
|
317
331
|
* @return [struct RClass *] Reference to the newly defined module.
|
|
318
332
|
*/
|
|
319
333
|
MRB_API struct RClass *mrb_define_module(mrb_state *mrb, const char *name);
|
|
334
|
+
MRB_API struct RClass *mrb_define_module_id(mrb_state *mrb, mrb_sym name);
|
|
335
|
+
|
|
320
336
|
MRB_API mrb_value mrb_singleton_class(mrb_state *mrb, mrb_value val);
|
|
337
|
+
MRB_API struct RClass *mrb_singleton_class_ptr(mrb_state *mrb, mrb_value val);
|
|
321
338
|
|
|
322
339
|
/**
|
|
323
340
|
* Include a module in another class or module.
|
|
@@ -370,6 +387,7 @@ MRB_API void mrb_prepend_module(mrb_state *mrb, struct RClass *cla, struct RClas
|
|
|
370
387
|
* @param aspec The method parameters declaration.
|
|
371
388
|
*/
|
|
372
389
|
MRB_API void mrb_define_method(mrb_state *mrb, struct RClass *cla, const char *name, mrb_func_t func, mrb_aspec aspec);
|
|
390
|
+
MRB_API void mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, mrb_aspec aspec);
|
|
373
391
|
|
|
374
392
|
/**
|
|
375
393
|
* Defines a class method.
|
|
@@ -397,6 +415,7 @@ MRB_API void mrb_define_method(mrb_state *mrb, struct RClass *cla, const char *n
|
|
|
397
415
|
* @param aspec The method parameters declaration.
|
|
398
416
|
*/
|
|
399
417
|
MRB_API void mrb_define_class_method(mrb_state *mrb, struct RClass *cla, const char *name, mrb_func_t fun, mrb_aspec aspec);
|
|
418
|
+
MRB_API void mrb_define_class_method_id(mrb_state *mrb, struct RClass *cla, mrb_sym name, mrb_func_t fun, mrb_aspec aspec);
|
|
400
419
|
|
|
401
420
|
/**
|
|
402
421
|
* Defines a singleton method
|
|
@@ -404,6 +423,7 @@ MRB_API void mrb_define_class_method(mrb_state *mrb, struct RClass *cla, const c
|
|
|
404
423
|
* @see mrb_define_class_method
|
|
405
424
|
*/
|
|
406
425
|
MRB_API void mrb_define_singleton_method(mrb_state *mrb, struct RObject *cla, const char *name, mrb_func_t fun, mrb_aspec aspec);
|
|
426
|
+
MRB_API void mrb_define_singleton_method_id(mrb_state *mrb, struct RObject *cla, mrb_sym name, mrb_func_t fun, mrb_aspec aspec);
|
|
407
427
|
|
|
408
428
|
/**
|
|
409
429
|
* Defines a module function.
|
|
@@ -431,6 +451,7 @@ MRB_API void mrb_define_singleton_method(mrb_state *mrb, struct RObject *cla, co
|
|
|
431
451
|
* @param aspec The method parameters declaration.
|
|
432
452
|
*/
|
|
433
453
|
MRB_API void mrb_define_module_function(mrb_state *mrb, struct RClass *cla, const char *name, mrb_func_t fun, mrb_aspec aspec);
|
|
454
|
+
MRB_API void mrb_define_module_function_id(mrb_state *mrb, struct RClass *cla, mrb_sym name, mrb_func_t fun, mrb_aspec aspec);
|
|
434
455
|
|
|
435
456
|
/**
|
|
436
457
|
* Defines a constant.
|
|
@@ -459,6 +480,7 @@ MRB_API void mrb_define_module_function(mrb_state *mrb, struct RClass *cla, cons
|
|
|
459
480
|
* @param val The value for the constant.
|
|
460
481
|
*/
|
|
461
482
|
MRB_API void mrb_define_const(mrb_state* mrb, struct RClass* cla, const char *name, mrb_value val);
|
|
483
|
+
MRB_API void mrb_define_const_id(mrb_state* mrb, struct RClass* cla, mrb_sym name, mrb_value val);
|
|
462
484
|
|
|
463
485
|
/**
|
|
464
486
|
* Undefines a method.
|
|
@@ -549,6 +571,7 @@ MRB_API void mrb_undef_method_id(mrb_state*, struct RClass*, mrb_sym);
|
|
|
549
571
|
* @param name The name of the class method to be undefined.
|
|
550
572
|
*/
|
|
551
573
|
MRB_API void mrb_undef_class_method(mrb_state *mrb, struct RClass *cls, const char *name);
|
|
574
|
+
MRB_API void mrb_undef_class_method_id(mrb_state *mrb, struct RClass *cls, mrb_sym name);
|
|
552
575
|
|
|
553
576
|
/**
|
|
554
577
|
* Initialize a new object instance of c class.
|
|
@@ -650,6 +673,7 @@ MRB_API struct RClass * mrb_module_new(mrb_state *mrb);
|
|
|
650
673
|
* @return [mrb_bool] A boolean value.
|
|
651
674
|
*/
|
|
652
675
|
MRB_API mrb_bool mrb_class_defined(mrb_state *mrb, const char *name);
|
|
676
|
+
MRB_API mrb_bool mrb_class_defined_id(mrb_state *mrb, mrb_sym name);
|
|
653
677
|
|
|
654
678
|
/**
|
|
655
679
|
* Gets a class.
|
|
@@ -657,7 +681,8 @@ MRB_API mrb_bool mrb_class_defined(mrb_state *mrb, const char *name);
|
|
|
657
681
|
* @param name The name of the class.
|
|
658
682
|
* @return [struct RClass *] A reference to the class.
|
|
659
683
|
*/
|
|
660
|
-
MRB_API struct RClass
|
|
684
|
+
MRB_API struct RClass* mrb_class_get(mrb_state *mrb, const char *name);
|
|
685
|
+
MRB_API struct RClass* mrb_class_get_id(mrb_state *mrb, mrb_sym name);
|
|
661
686
|
|
|
662
687
|
/**
|
|
663
688
|
* Gets a exception class.
|
|
@@ -665,7 +690,8 @@ MRB_API struct RClass * mrb_class_get(mrb_state *mrb, const char *name);
|
|
|
665
690
|
* @param name The name of the class.
|
|
666
691
|
* @return [struct RClass *] A reference to the class.
|
|
667
692
|
*/
|
|
668
|
-
MRB_API struct RClass
|
|
693
|
+
MRB_API struct RClass* mrb_exc_get_id(mrb_state *mrb, mrb_sym name);
|
|
694
|
+
#define mrb_exc_get(mrb, name) mrb_exc_get_id(mrb, mrb_intern_cstr(mrb, name))
|
|
669
695
|
|
|
670
696
|
/**
|
|
671
697
|
* Returns an mrb_bool. True if inner class was defined, and false if the inner class was not defined.
|
|
@@ -697,6 +723,7 @@ MRB_API struct RClass * mrb_exc_get(mrb_state *mrb, const char *name);
|
|
|
697
723
|
* @return [mrb_bool] A boolean value.
|
|
698
724
|
*/
|
|
699
725
|
MRB_API mrb_bool mrb_class_defined_under(mrb_state *mrb, struct RClass *outer, const char *name);
|
|
726
|
+
MRB_API mrb_bool mrb_class_defined_under_id(mrb_state *mrb, struct RClass *outer, mrb_sym name);
|
|
700
727
|
|
|
701
728
|
/**
|
|
702
729
|
* Gets a child class.
|
|
@@ -706,6 +733,7 @@ MRB_API mrb_bool mrb_class_defined_under(mrb_state *mrb, struct RClass *outer, c
|
|
|
706
733
|
* @return [struct RClass *] A reference to the class.
|
|
707
734
|
*/
|
|
708
735
|
MRB_API struct RClass * mrb_class_get_under(mrb_state *mrb, struct RClass *outer, const char *name);
|
|
736
|
+
MRB_API struct RClass * mrb_class_get_under_id(mrb_state *mrb, struct RClass *outer, mrb_sym name);
|
|
709
737
|
|
|
710
738
|
/**
|
|
711
739
|
* Gets a module.
|
|
@@ -714,6 +742,7 @@ MRB_API struct RClass * mrb_class_get_under(mrb_state *mrb, struct RClass *outer
|
|
|
714
742
|
* @return [struct RClass *] A reference to the module.
|
|
715
743
|
*/
|
|
716
744
|
MRB_API struct RClass * mrb_module_get(mrb_state *mrb, const char *name);
|
|
745
|
+
MRB_API struct RClass * mrb_module_get_id(mrb_state *mrb, mrb_sym name);
|
|
717
746
|
|
|
718
747
|
/**
|
|
719
748
|
* Gets a module defined under another module.
|
|
@@ -723,6 +752,8 @@ MRB_API struct RClass * mrb_module_get(mrb_state *mrb, const char *name);
|
|
|
723
752
|
* @return [struct RClass *] A reference to the module.
|
|
724
753
|
*/
|
|
725
754
|
MRB_API struct RClass * mrb_module_get_under(mrb_state *mrb, struct RClass *outer, const char *name);
|
|
755
|
+
MRB_API struct RClass * mrb_module_get_under_id(mrb_state *mrb, struct RClass *outer, mrb_sym name);
|
|
756
|
+
|
|
726
757
|
/* a function to raise NotImplementedError with current method name */
|
|
727
758
|
MRB_API void mrb_notimplement(mrb_state*);
|
|
728
759
|
/* a function to be replacement of unimplemented method */
|
|
@@ -791,9 +822,11 @@ MRB_API mrb_bool mrb_obj_respond_to(mrb_state *mrb, struct RClass* c, mrb_sym mi
|
|
|
791
822
|
* @return [struct RClass *] Reference to the newly defined class
|
|
792
823
|
* @see mrb_define_class
|
|
793
824
|
*/
|
|
794
|
-
MRB_API struct RClass
|
|
825
|
+
MRB_API struct RClass* mrb_define_class_under(mrb_state *mrb, struct RClass *outer, const char *name, struct RClass *super);
|
|
826
|
+
MRB_API struct RClass* mrb_define_class_under_id(mrb_state *mrb, struct RClass *outer, mrb_sym name, struct RClass *super);
|
|
795
827
|
|
|
796
|
-
MRB_API struct RClass
|
|
828
|
+
MRB_API struct RClass* mrb_define_module_under(mrb_state *mrb, struct RClass *outer, const char *name);
|
|
829
|
+
MRB_API struct RClass* mrb_define_module_under_id(mrb_state *mrb, struct RClass *outer, mrb_sym name);
|
|
797
830
|
|
|
798
831
|
/**
|
|
799
832
|
* Function requires n arguments.
|
|
@@ -857,17 +890,17 @@ MRB_API struct RClass * mrb_define_module_under(mrb_state *mrb, struct RClass *o
|
|
|
857
890
|
* | `S` | {String} | {mrb_value} | when `!` follows, the value may be `nil` |
|
|
858
891
|
* | `A` | {Array} | {mrb_value} | when `!` follows, the value may be `nil` |
|
|
859
892
|
* | `H` | {Hash} | {mrb_value} | when `!` follows, the value may be `nil` |
|
|
860
|
-
* | `s` | {String} | char *, {mrb_int} | Receive two arguments; `s!` gives (`NULL`,`0`) for `nil`
|
|
861
|
-
* | `z` | {String} | char *
|
|
862
|
-
* | `a` | {Array} | {mrb_value} *, {mrb_int} | Receive two arguments; `a!` gives (`NULL`,`0`) for `nil` |
|
|
863
|
-
* | `f` | {
|
|
864
|
-
* | `i` | {
|
|
893
|
+
* | `s` | {String} | const char *, {mrb_int} | Receive two arguments; `s!` gives (`NULL`,`0`) for `nil` |
|
|
894
|
+
* | `z` | {String} | const char * | `NULL` terminated string; `z!` gives `NULL` for `nil` |
|
|
895
|
+
* | `a` | {Array} | const {mrb_value} *, {mrb_int} | Receive two arguments; `a!` gives (`NULL`,`0`) for `nil` |
|
|
896
|
+
* | `f` | {Integer}/{Float} | {mrb_float} | |
|
|
897
|
+
* | `i` | {Integer}/{Float} | {mrb_int} | |
|
|
865
898
|
* | `b` | boolean | {mrb_bool} | |
|
|
866
899
|
* | `n` | {String}/{Symbol} | {mrb_sym} | |
|
|
867
900
|
* | `d` | data | void *, {mrb_data_type} const | 2nd argument will be used to check data type so it won't be modified; when `!` follows, the value may be `nil` |
|
|
868
901
|
* | `I` | inline struct | void * | |
|
|
869
902
|
* | `&` | block | {mrb_value} | &! raises exception if no block given. |
|
|
870
|
-
* | `*` | rest arguments | {mrb_value} *, {mrb_int} | Receive the rest of arguments as an array; `*!` avoid copy of the stack. |
|
|
903
|
+
* | `*` | rest arguments | const {mrb_value} *, {mrb_int} | Receive the rest of arguments as an array; `*!` avoid copy of the stack. |
|
|
871
904
|
* | <code>\|</code> | optional | | After this spec following specs would be optional. |
|
|
872
905
|
* | `?` | optional given | {mrb_bool} | `TRUE` if preceding argument is given. Used to check optional argument is given. |
|
|
873
906
|
* | `:` | keyword args | {mrb_kwargs} const | Get keyword arguments. @see mrb_kwargs |
|
|
@@ -899,7 +932,7 @@ typedef const char *mrb_args_format;
|
|
|
899
932
|
* const char *kw_names[kw_num] = { "a", "b" };
|
|
900
933
|
* uint32_t kw_required = 0;
|
|
901
934
|
* mrb_value kw_values[kw_num];
|
|
902
|
-
* const mrb_kwargs kwargs = { kw_num,
|
|
935
|
+
* const mrb_kwargs kwargs = { kw_num, kw_required, kw_names, kw_values, NULL };
|
|
903
936
|
*
|
|
904
937
|
* mrb_get_args(mrb, ":", &kwargs);
|
|
905
938
|
* if (mrb_undef_p(kw_values[0])) { kw_values[0] = mrb_fixnum_value(1); }
|
|
@@ -910,10 +943,10 @@ typedef const char *mrb_args_format;
|
|
|
910
943
|
*
|
|
911
944
|
* mrb_value str, kw_rest;
|
|
912
945
|
* uint32_t kw_num = 3;
|
|
913
|
-
* const
|
|
946
|
+
* const mrb_sym kw_names[kw_num] = { MRB_SYM(x), MRB_SYM(y), MRB_SYM(z) };
|
|
914
947
|
* uint32_t kw_required = 1;
|
|
915
948
|
* mrb_value kw_values[kw_num];
|
|
916
|
-
* const mrb_kwargs kwargs = { kw_num,
|
|
949
|
+
* const mrb_kwargs kwargs = { kw_num, kw_required, kw_names, kw_values, &kw_rest };
|
|
917
950
|
*
|
|
918
951
|
* mrb_get_args(mrb, "S:", &str, &kwargs);
|
|
919
952
|
* // or: mrb_get_args(mrb, ":S", &kwargs, &str);
|
|
@@ -924,11 +957,11 @@ typedef struct mrb_kwargs mrb_kwargs;
|
|
|
924
957
|
|
|
925
958
|
struct mrb_kwargs
|
|
926
959
|
{
|
|
927
|
-
uint32_t num;
|
|
928
|
-
|
|
929
|
-
const
|
|
930
|
-
|
|
931
|
-
mrb_value *rest;
|
|
960
|
+
uint32_t num; /* number of keyword arguments */
|
|
961
|
+
uint32_t required; /* number of required keyword arguments */
|
|
962
|
+
const mrb_sym *table; /* C array of symbols for keyword names */
|
|
963
|
+
mrb_value *values; /* keyword argument values */
|
|
964
|
+
mrb_value *rest; /* keyword rest (dict) */
|
|
932
965
|
};
|
|
933
966
|
|
|
934
967
|
/**
|
|
@@ -956,7 +989,20 @@ mrb_get_mid(mrb_state *mrb) /* get method symbol */
|
|
|
956
989
|
*/
|
|
957
990
|
MRB_API mrb_int mrb_get_argc(mrb_state *mrb);
|
|
958
991
|
|
|
959
|
-
|
|
992
|
+
/**
|
|
993
|
+
* Retrieve an array of arguments from mrb_state.
|
|
994
|
+
*
|
|
995
|
+
* Correctly handles *splat arguments.
|
|
996
|
+
*/
|
|
997
|
+
MRB_API const mrb_value *mrb_get_argv(mrb_state *mrb);
|
|
998
|
+
|
|
999
|
+
/**
|
|
1000
|
+
* Retrieve the first and only argument from mrb_state.
|
|
1001
|
+
* Raises ArgumentError unless the number of arguments is exactly one.
|
|
1002
|
+
*
|
|
1003
|
+
* Correctly handles *splat arguments.
|
|
1004
|
+
*/
|
|
1005
|
+
MRB_API mrb_value mrb_get_arg1(mrb_state *mrb);
|
|
960
1006
|
|
|
961
1007
|
/* `strlen` for character string literals (use with caution or `strlen` instead)
|
|
962
1008
|
Adjacent string literals are concatenated in C/C++ in translation phase 6.
|
|
@@ -985,6 +1031,7 @@ MRB_API mrb_value* mrb_get_argv(mrb_state *mrb);
|
|
|
985
1031
|
* FILE *fp = fopen("test.rb","r");
|
|
986
1032
|
* mrb_value obj = mrb_load_file(mrb,fp);
|
|
987
1033
|
* mrb_funcall(mrb, obj, "method_name", 1, mrb_fixnum_value(i));
|
|
1034
|
+
* mrb_funcall_id(mrb, obj, MRB_SYM(method_name), 1, mrb_fixnum_value(i));
|
|
988
1035
|
* fclose(fp);
|
|
989
1036
|
* mrb_close(mrb);
|
|
990
1037
|
* }
|
|
@@ -997,6 +1044,7 @@ MRB_API mrb_value* mrb_get_argv(mrb_state *mrb);
|
|
|
997
1044
|
* @return [mrb_value] mruby function value.
|
|
998
1045
|
*/
|
|
999
1046
|
MRB_API mrb_value mrb_funcall(mrb_state *mrb, mrb_value val, const char *name, mrb_int argc, ...);
|
|
1047
|
+
MRB_API mrb_value mrb_funcall_id(mrb_state *mrb, mrb_value val, mrb_sym mid, mrb_int argc, ...);
|
|
1000
1048
|
/**
|
|
1001
1049
|
* Call existing ruby functions. This is basically the type safe version of mrb_funcall.
|
|
1002
1050
|
*
|
|
@@ -1006,15 +1054,14 @@ MRB_API mrb_value mrb_funcall(mrb_state *mrb, mrb_value val, const char *name, m
|
|
|
1006
1054
|
* int
|
|
1007
1055
|
* main()
|
|
1008
1056
|
* {
|
|
1009
|
-
* mrb_int i = 99;
|
|
1010
1057
|
* mrb_state *mrb = mrb_open();
|
|
1058
|
+
* mrb_value obj = mrb_fixnum_value(1);
|
|
1011
1059
|
*
|
|
1012
1060
|
* if (!mrb) { }
|
|
1013
|
-
* mrb_sym m_sym = mrb_intern_lit(mrb, "method_name"); // Symbol for method.
|
|
1014
1061
|
*
|
|
1015
1062
|
* FILE *fp = fopen("test.rb","r");
|
|
1016
1063
|
* mrb_value obj = mrb_load_file(mrb,fp);
|
|
1017
|
-
* mrb_funcall_argv(mrb, obj,
|
|
1064
|
+
* mrb_funcall_argv(mrb, obj, MRB_SYM(method_name), 1, &obj); // Calling ruby function from test.rb.
|
|
1018
1065
|
* fclose(fp);
|
|
1019
1066
|
* mrb_close(mrb);
|
|
1020
1067
|
* }
|
|
@@ -1032,7 +1079,8 @@ MRB_API mrb_value mrb_funcall_argv(mrb_state *mrb, mrb_value val, mrb_sym name,
|
|
|
1032
1079
|
*/
|
|
1033
1080
|
MRB_API mrb_value mrb_funcall_with_block(mrb_state *mrb, mrb_value val, mrb_sym name, mrb_int argc, const mrb_value *argv, mrb_value block);
|
|
1034
1081
|
/**
|
|
1035
|
-
* Create a symbol
|
|
1082
|
+
* Create a symbol from C string. But usually it's better to use MRB_SYM,
|
|
1083
|
+
* MRB_OPSYM, MRB_CVSYM, MRB_IVSYM, MRB_SYM_B, MRB_SYM_Q, MRB_SYM_E macros.
|
|
1036
1084
|
*
|
|
1037
1085
|
* Example:
|
|
1038
1086
|
*
|
|
@@ -1040,7 +1088,9 @@ MRB_API mrb_value mrb_funcall_with_block(mrb_state *mrb, mrb_value val, mrb_sym
|
|
|
1040
1088
|
* :pizza # => :pizza
|
|
1041
1089
|
*
|
|
1042
1090
|
* // C style:
|
|
1043
|
-
* mrb_sym
|
|
1091
|
+
* mrb_sym sym1 = mrb_intern_lit(mrb, "pizza"); // => :pizza
|
|
1092
|
+
* mrb_sym sym2 = MRB_SYM(pizza); // => :pizza
|
|
1093
|
+
* mrb_sym sym3 = MRB_SYM_Q(pizza); // => :pizza?
|
|
1044
1094
|
*
|
|
1045
1095
|
* @param mrb The current mruby state.
|
|
1046
1096
|
* @param str The string to be symbolized
|
|
@@ -1049,8 +1099,14 @@ MRB_API mrb_value mrb_funcall_with_block(mrb_state *mrb, mrb_value val, mrb_sym
|
|
|
1049
1099
|
MRB_API mrb_sym mrb_intern_cstr(mrb_state *mrb, const char* str);
|
|
1050
1100
|
MRB_API mrb_sym mrb_intern(mrb_state*,const char*,size_t);
|
|
1051
1101
|
MRB_API mrb_sym mrb_intern_static(mrb_state*,const char*,size_t);
|
|
1052
|
-
#define mrb_intern_lit(mrb, lit) mrb_intern_static(mrb, lit, mrb_strlen_lit(lit))
|
|
1102
|
+
#define mrb_intern_lit(mrb, lit) mrb_intern_static(mrb, (lit ""), mrb_strlen_lit(lit))
|
|
1053
1103
|
MRB_API mrb_sym mrb_intern_str(mrb_state*,mrb_value);
|
|
1104
|
+
/* mrb_intern_check series functions returns 0 if the symbol is not defined */
|
|
1105
|
+
MRB_API mrb_sym mrb_intern_check_cstr(mrb_state*,const char*);
|
|
1106
|
+
MRB_API mrb_sym mrb_intern_check(mrb_state*,const char*,size_t);
|
|
1107
|
+
MRB_API mrb_sym mrb_intern_check_str(mrb_state*,mrb_value);
|
|
1108
|
+
/* mrb_check_intern series functions returns nil if the symbol is not defined */
|
|
1109
|
+
/* otherwise returns mrb_value */
|
|
1054
1110
|
MRB_API mrb_value mrb_check_intern_cstr(mrb_state*,const char*);
|
|
1055
1111
|
MRB_API mrb_value mrb_check_intern(mrb_state*,const char*,size_t);
|
|
1056
1112
|
MRB_API mrb_value mrb_check_intern_str(mrb_state*,mrb_value);
|
|
@@ -1148,10 +1204,9 @@ MRB_API void mrb_close(mrb_state *mrb);
|
|
|
1148
1204
|
MRB_API void* mrb_default_allocf(mrb_state*, void*, size_t, void*);
|
|
1149
1205
|
|
|
1150
1206
|
MRB_API mrb_value mrb_top_self(mrb_state *mrb);
|
|
1151
|
-
MRB_API mrb_value
|
|
1152
|
-
MRB_API mrb_value
|
|
1153
|
-
MRB_API mrb_value
|
|
1154
|
-
MRB_API mrb_value mrb_vm_exec(mrb_state *mrb, struct RProc *proc, const mrb_code *iseq);
|
|
1207
|
+
MRB_API mrb_value mrb_top_run(mrb_state *mrb, const struct RProc *proc, mrb_value self, mrb_int stack_keep);
|
|
1208
|
+
MRB_API mrb_value mrb_vm_run(mrb_state *mrb, const struct RProc *proc, mrb_value self, mrb_int stack_keep);
|
|
1209
|
+
MRB_API mrb_value mrb_vm_exec(mrb_state *mrb, const struct RProc *proc, const mrb_code *iseq);
|
|
1155
1210
|
/* compatibility macros */
|
|
1156
1211
|
#define mrb_toplevel_run_keep(m,p,k) mrb_top_run((m),(p),mrb_top_self(m),(k))
|
|
1157
1212
|
#define mrb_toplevel_run(m,p) mrb_toplevel_run_keep((m),(p),0)
|
|
@@ -1166,7 +1221,7 @@ MRB_API mrb_bool mrb_obj_equal(mrb_state *mrb, mrb_value a, mrb_value b);
|
|
|
1166
1221
|
MRB_API mrb_bool mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2);
|
|
1167
1222
|
MRB_API mrb_value mrb_convert_to_integer(mrb_state *mrb, mrb_value val, mrb_int base);
|
|
1168
1223
|
MRB_API mrb_value mrb_Integer(mrb_state *mrb, mrb_value val);
|
|
1169
|
-
#ifndef
|
|
1224
|
+
#ifndef MRB_NO_FLOAT
|
|
1170
1225
|
MRB_API mrb_value mrb_Float(mrb_state *mrb, mrb_value val);
|
|
1171
1226
|
#endif
|
|
1172
1227
|
MRB_API mrb_value mrb_inspect(mrb_state *mrb, mrb_value obj);
|
|
@@ -1199,12 +1254,15 @@ MRB_API void mrb_field_write_barrier(mrb_state *, struct RBasic*, struct RBasic*
|
|
|
1199
1254
|
} while (0)
|
|
1200
1255
|
MRB_API void mrb_write_barrier(mrb_state *, struct RBasic*);
|
|
1201
1256
|
|
|
1202
|
-
MRB_API mrb_value
|
|
1257
|
+
MRB_API mrb_value mrb_type_convert(mrb_state *mrb, mrb_value val, enum mrb_vtype type, mrb_sym method);
|
|
1258
|
+
#define mrb_convert_type(mrb, val, type, tname, method) mrb_type_convert(mrb, val, type, mrb_intern_lit(mrb, method))
|
|
1259
|
+
MRB_API mrb_value mrb_type_convert_check(mrb_state *mrb, mrb_value val, enum mrb_vtype type, mrb_sym method);
|
|
1260
|
+
#define mrb_check_convert_type(mrb, val, type, tname, method) mrb_type_convert_check(mrb, val, type, mrb_intern_lit(mrb, method))
|
|
1261
|
+
|
|
1203
1262
|
MRB_API mrb_value mrb_any_to_s(mrb_state *mrb, mrb_value obj);
|
|
1204
1263
|
MRB_API const char * mrb_obj_classname(mrb_state *mrb, mrb_value obj);
|
|
1205
1264
|
MRB_API struct RClass* mrb_obj_class(mrb_state *mrb, mrb_value obj);
|
|
1206
1265
|
MRB_API mrb_value mrb_class_path(mrb_state *mrb, struct RClass *c);
|
|
1207
|
-
MRB_API mrb_value mrb_convert_type(mrb_state *mrb, mrb_value val, enum mrb_vtype type, const char *tname, const char *method);
|
|
1208
1266
|
MRB_API mrb_bool mrb_obj_is_kind_of(mrb_state *mrb, mrb_value obj, struct RClass *c);
|
|
1209
1267
|
MRB_API mrb_value mrb_obj_inspect(mrb_state *mrb, mrb_value self);
|
|
1210
1268
|
MRB_API mrb_value mrb_obj_clone(mrb_state *mrb, mrb_value self);
|
|
@@ -1245,26 +1303,26 @@ MRB_API mrb_value mrb_vformat(mrb_state *mrb, const char *format, va_list ap);
|
|
|
1245
1303
|
+ those E_* macros requires mrb_state* variable named mrb.
|
|
1246
1304
|
+ exception objects obtained from those macros are local to mrb
|
|
1247
1305
|
*/
|
|
1248
|
-
#define
|
|
1249
|
-
#define
|
|
1250
|
-
#define
|
|
1251
|
-
#define
|
|
1252
|
-
#define
|
|
1253
|
-
#define
|
|
1254
|
-
#define
|
|
1255
|
-
#define
|
|
1256
|
-
#define
|
|
1257
|
-
#define
|
|
1258
|
-
#define
|
|
1259
|
-
#define
|
|
1260
|
-
|
|
1261
|
-
#define
|
|
1262
|
-
#
|
|
1263
|
-
#define
|
|
1306
|
+
#define MRB_ERROR_SYM(sym) mrb_intern_lit(mrb, #sym)
|
|
1307
|
+
#define E_RUNTIME_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(RuntimeError))
|
|
1308
|
+
#define E_TYPE_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(TypeError))
|
|
1309
|
+
#define E_ZERODIV_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(ZeroDivisionError))
|
|
1310
|
+
#define E_ARGUMENT_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(ArgumentError))
|
|
1311
|
+
#define E_INDEX_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(IndexError))
|
|
1312
|
+
#define E_RANGE_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(RangeError))
|
|
1313
|
+
#define E_NAME_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(NameError))
|
|
1314
|
+
#define E_NOMETHOD_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(NoMethodError))
|
|
1315
|
+
#define E_SCRIPT_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(ScriptError))
|
|
1316
|
+
#define E_SYNTAX_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(SyntaxError))
|
|
1317
|
+
#define E_LOCALJUMP_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(LocalJumpError))
|
|
1318
|
+
#define E_REGEXP_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(RegexpError))
|
|
1319
|
+
#define E_FROZEN_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(FrozenError))
|
|
1320
|
+
#define E_NOTIMP_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(NotImplementedError))
|
|
1321
|
+
#define E_KEY_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(KeyError))
|
|
1322
|
+
#ifndef MRB_NO_FLOAT
|
|
1323
|
+
# define E_FLOATDOMAIN_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(FloatDomainError))
|
|
1264
1324
|
#endif
|
|
1265
1325
|
|
|
1266
|
-
#define E_KEY_ERROR (mrb_exc_get(mrb, "KeyError"))
|
|
1267
|
-
|
|
1268
1326
|
MRB_API mrb_value mrb_yield(mrb_state *mrb, mrb_value b, mrb_value arg);
|
|
1269
1327
|
MRB_API mrb_value mrb_yield_argv(mrb_state *mrb, mrb_value b, mrb_int argc, const mrb_value *argv);
|
|
1270
1328
|
MRB_API mrb_value mrb_yield_with_class(mrb_state *mrb, mrb_value b, mrb_int argc, const mrb_value *argv, mrb_value self, struct RClass *c);
|
|
@@ -1282,7 +1340,7 @@ MRB_API void mrb_gc_register(mrb_state *mrb, mrb_value obj);
|
|
|
1282
1340
|
MRB_API void mrb_gc_unregister(mrb_state *mrb, mrb_value obj);
|
|
1283
1341
|
|
|
1284
1342
|
MRB_API mrb_value mrb_to_int(mrb_state *mrb, mrb_value val);
|
|
1285
|
-
#define mrb_int(mrb, val)
|
|
1343
|
+
#define mrb_int(mrb, val) mrb_integer(mrb_to_int(mrb, val))
|
|
1286
1344
|
/* string type checking (contrary to the name, it doesn't convert) */
|
|
1287
1345
|
MRB_API mrb_value mrb_to_str(mrb_state *mrb, mrb_value val);
|
|
1288
1346
|
MRB_API void mrb_check_type(mrb_state *mrb, mrb_value x, enum mrb_vtype t);
|
|
@@ -1292,14 +1350,8 @@ MRB_INLINE void mrb_check_frozen(mrb_state *mrb, void *o)
|
|
|
1292
1350
|
if (mrb_frozen_p((struct RBasic*)o)) mrb_frozen_error(mrb, o);
|
|
1293
1351
|
}
|
|
1294
1352
|
|
|
1295
|
-
typedef enum call_type {
|
|
1296
|
-
CALL_PUBLIC,
|
|
1297
|
-
CALL_FCALL,
|
|
1298
|
-
CALL_VCALL,
|
|
1299
|
-
CALL_TYPE_MAX
|
|
1300
|
-
} call_type;
|
|
1301
|
-
|
|
1302
1353
|
MRB_API void mrb_define_alias(mrb_state *mrb, struct RClass *c, const char *a, const char *b);
|
|
1354
|
+
MRB_API void mrb_define_alias_id(mrb_state *mrb, struct RClass *c, mrb_sym a, mrb_sym b);
|
|
1303
1355
|
MRB_API const char *mrb_class_name(mrb_state *mrb, struct RClass* klass);
|
|
1304
1356
|
MRB_API void mrb_define_global_const(mrb_state *mrb, const char *name, mrb_value val);
|
|
1305
1357
|
|
|
@@ -1336,7 +1388,7 @@ MRB_API mrb_value mrb_fiber_alive_p(mrb_state *mrb, mrb_value fib);
|
|
|
1336
1388
|
*
|
|
1337
1389
|
* Implemented in mruby-fiber
|
|
1338
1390
|
*/
|
|
1339
|
-
#define E_FIBER_ERROR (
|
|
1391
|
+
#define E_FIBER_ERROR mrb_exc_get_id(mrb, MRB_ERROR_SYM(FiberError))
|
|
1340
1392
|
MRB_API void mrb_stack_extend(mrb_state*, mrb_int);
|
|
1341
1393
|
|
|
1342
1394
|
/* memory pool implementation */
|
|
@@ -1356,6 +1408,10 @@ MRB_API void mrb_show_copyright(mrb_state *mrb);
|
|
|
1356
1408
|
|
|
1357
1409
|
MRB_API mrb_value mrb_format(mrb_state *mrb, const char *format, ...);
|
|
1358
1410
|
|
|
1411
|
+
#ifdef MRB_PRESYM_SCANNING
|
|
1412
|
+
# include <mruby/presym/scanning.h>
|
|
1413
|
+
#endif
|
|
1414
|
+
|
|
1359
1415
|
#if 0
|
|
1360
1416
|
/* memcpy and memset does not work with gdb reverse-next on my box */
|
|
1361
1417
|
/* use naive memcpy and memset instead */
|