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
|
@@ -11,6 +11,47 @@
|
|
|
11
11
|
#include <mruby/string.h>
|
|
12
12
|
#include <mruby/dump.h>
|
|
13
13
|
#include <mruby/class.h>
|
|
14
|
+
#include <mruby/presym.h>
|
|
15
|
+
|
|
16
|
+
#ifndef MRB_NO_PRESYM
|
|
17
|
+
|
|
18
|
+
#ifndef MRB_PRESYM_SCANNING
|
|
19
|
+
/* const uint16_t presym_length_table[] */
|
|
20
|
+
/* const char * const presym_name_table[] */
|
|
21
|
+
# include <mruby/presym/table.h>
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
static mrb_sym
|
|
25
|
+
presym_find(const char *name, size_t len)
|
|
26
|
+
{
|
|
27
|
+
if (presym_length_table[MRB_PRESYM_MAX-1] < len) return 0;
|
|
28
|
+
|
|
29
|
+
mrb_sym start, idx, presym_size = MRB_PRESYM_MAX;
|
|
30
|
+
int cmp;
|
|
31
|
+
for (start = 0; presym_size != 0; presym_size/=2) {
|
|
32
|
+
idx = start+presym_size/2;
|
|
33
|
+
cmp = (int)len-(int)presym_length_table[idx];
|
|
34
|
+
if (cmp == 0) {
|
|
35
|
+
cmp = memcmp(name, presym_name_table[idx], len);
|
|
36
|
+
if (cmp == 0) return idx+1;
|
|
37
|
+
}
|
|
38
|
+
if (0 < cmp) {
|
|
39
|
+
start = ++idx;
|
|
40
|
+
--presym_size;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return 0;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
static const char*
|
|
47
|
+
presym_sym2name(mrb_sym sym, mrb_int *lenp)
|
|
48
|
+
{
|
|
49
|
+
if (sym > MRB_PRESYM_MAX) return NULL;
|
|
50
|
+
if (lenp) *lenp = presym_length_table[sym-1];
|
|
51
|
+
return presym_name_table[sym-1];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
#endif /* MRB_NO_PRESYM */
|
|
14
55
|
|
|
15
56
|
/* ------------------------------------------------------ */
|
|
16
57
|
typedef struct symbol_name {
|
|
@@ -20,46 +61,35 @@ typedef struct symbol_name {
|
|
|
20
61
|
const char *name;
|
|
21
62
|
} symbol_name;
|
|
22
63
|
|
|
23
|
-
#define SYMBOL_INLINE_BIT_POS 1
|
|
24
|
-
#define SYMBOL_INLINE_LOWER_BIT_POS 2
|
|
25
|
-
#define SYMBOL_INLINE (1 << (SYMBOL_INLINE_BIT_POS - 1))
|
|
26
|
-
#define SYMBOL_INLINE_LOWER (1 << (SYMBOL_INLINE_LOWER_BIT_POS - 1))
|
|
27
|
-
#define SYMBOL_NORMAL_SHIFT SYMBOL_INLINE_BIT_POS
|
|
28
|
-
#define SYMBOL_INLINE_SHIFT SYMBOL_INLINE_LOWER_BIT_POS
|
|
29
|
-
#ifdef MRB_ENABLE_ALL_SYMBOLS
|
|
30
|
-
# define SYMBOL_INLINE_P(sym) FALSE
|
|
31
|
-
# define SYMBOL_INLINE_LOWER_P(sym) FALSE
|
|
32
|
-
# define sym_inline_pack(name, len) 0
|
|
33
|
-
# define sym_inline_unpack(sym, buf, lenp) NULL
|
|
34
|
-
#else
|
|
35
|
-
# define SYMBOL_INLINE_P(sym) ((sym) & SYMBOL_INLINE)
|
|
36
|
-
# define SYMBOL_INLINE_LOWER_P(sym) ((sym) & SYMBOL_INLINE_LOWER)
|
|
37
|
-
#endif
|
|
38
|
-
|
|
39
64
|
static void
|
|
40
65
|
sym_validate_len(mrb_state *mrb, size_t len)
|
|
41
66
|
{
|
|
42
|
-
if (len >=
|
|
67
|
+
if (len >= UINT16_MAX) {
|
|
43
68
|
mrb_raise(mrb, E_ARGUMENT_ERROR, "symbol length too long");
|
|
44
69
|
}
|
|
45
70
|
}
|
|
46
71
|
|
|
47
|
-
#
|
|
72
|
+
#ifdef MRB_USE_ALL_SYMBOLS
|
|
73
|
+
# define SYMBOL_INLINE_P(sym) FALSE
|
|
74
|
+
# define sym_inline_pack(name, len) 0
|
|
75
|
+
# define sym_inline_unpack(sym, buf, lenp) NULL
|
|
76
|
+
#else
|
|
77
|
+
# define SYMBOL_INLINE_P(sym) ((sym) >= (1<<24))
|
|
78
|
+
|
|
48
79
|
static const char pack_table[] = "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
49
80
|
|
|
50
81
|
static mrb_sym
|
|
51
|
-
sym_inline_pack(const char *name,
|
|
82
|
+
sym_inline_pack(const char *name, size_t len)
|
|
52
83
|
{
|
|
53
|
-
const
|
|
54
|
-
const int mix_length_max = (MRB_SYMBOL_BIT - 2) / 6;
|
|
84
|
+
const size_t pack_length_max = 5;
|
|
55
85
|
|
|
56
86
|
char c;
|
|
57
87
|
const char *p;
|
|
58
|
-
|
|
88
|
+
size_t i;
|
|
59
89
|
mrb_sym sym = 0;
|
|
60
|
-
mrb_bool lower = TRUE;
|
|
61
90
|
|
|
62
|
-
if (len >
|
|
91
|
+
if (len > pack_length_max) return 0; /* too long */
|
|
92
|
+
if (len == 0) return 0; /* empty string */
|
|
63
93
|
for (i=0; i<len; i++) {
|
|
64
94
|
uint32_t bits;
|
|
65
95
|
|
|
@@ -68,36 +98,21 @@ sym_inline_pack(const char *name, uint16_t len)
|
|
|
68
98
|
p = strchr(pack_table, (int)c);
|
|
69
99
|
if (p == 0) return 0; /* non alnum char */
|
|
70
100
|
bits = (uint32_t)(p - pack_table)+1;
|
|
71
|
-
|
|
72
|
-
if (i >= mix_length_max) break;
|
|
73
|
-
sym |= bits<<(i*6+SYMBOL_INLINE_SHIFT);
|
|
101
|
+
sym |= bits<<(24-i*6);
|
|
74
102
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
for (i=0; i<len; i++) {
|
|
78
|
-
uint32_t bits;
|
|
79
|
-
|
|
80
|
-
c = name[i];
|
|
81
|
-
p = strchr(pack_table, (int)c);
|
|
82
|
-
bits = (uint32_t)(p - pack_table)+1;
|
|
83
|
-
sym |= bits<<(i*5+SYMBOL_INLINE_SHIFT);
|
|
84
|
-
}
|
|
85
|
-
return sym | SYMBOL_INLINE | SYMBOL_INLINE_LOWER;
|
|
86
|
-
}
|
|
87
|
-
if (len > mix_length_max) return 0;
|
|
88
|
-
return sym | SYMBOL_INLINE;
|
|
103
|
+
mrb_assert(SYMBOL_INLINE_P(sym));
|
|
104
|
+
return sym;
|
|
89
105
|
}
|
|
90
106
|
|
|
91
107
|
static const char*
|
|
92
108
|
sym_inline_unpack(mrb_sym sym, char *buf, mrb_int *lenp)
|
|
93
109
|
{
|
|
94
|
-
int bit_per_char = SYMBOL_INLINE_LOWER_P(sym) ? 5 : 6;
|
|
95
110
|
int i;
|
|
96
111
|
|
|
97
112
|
mrb_assert(SYMBOL_INLINE_P(sym));
|
|
98
113
|
|
|
99
|
-
for (i=0; i<
|
|
100
|
-
uint32_t bits = sym>>(i*
|
|
114
|
+
for (i=0; i<5; i++) {
|
|
115
|
+
uint32_t bits = sym>>(24-i*6) & 0x3f;
|
|
101
116
|
if (bits == 0) break;
|
|
102
117
|
buf[i] = pack_table[bits-1];;
|
|
103
118
|
}
|
|
@@ -124,12 +139,18 @@ symhash(const char *key, size_t len)
|
|
|
124
139
|
}
|
|
125
140
|
|
|
126
141
|
static mrb_sym
|
|
127
|
-
find_symbol(mrb_state *mrb, const char *name,
|
|
142
|
+
find_symbol(mrb_state *mrb, const char *name, size_t len, uint8_t *hashp)
|
|
128
143
|
{
|
|
129
144
|
mrb_sym i;
|
|
130
145
|
symbol_name *sname;
|
|
131
146
|
uint8_t hash;
|
|
132
147
|
|
|
148
|
+
#ifndef MRB_NO_PRESYM
|
|
149
|
+
/* presym */
|
|
150
|
+
i = presym_find(name, len);
|
|
151
|
+
if (i > 0) return i;
|
|
152
|
+
#endif
|
|
153
|
+
|
|
133
154
|
/* inline symbol */
|
|
134
155
|
i = sym_inline_pack(name, len);
|
|
135
156
|
if (i > 0) return i;
|
|
@@ -142,14 +163,14 @@ find_symbol(mrb_state *mrb, const char *name, uint16_t len, uint8_t *hashp)
|
|
|
142
163
|
do {
|
|
143
164
|
sname = &mrb->symtbl[i];
|
|
144
165
|
if (sname->len == len && memcmp(sname->name, name, len) == 0) {
|
|
145
|
-
return i
|
|
166
|
+
return (i+MRB_PRESYM_MAX);
|
|
146
167
|
}
|
|
147
168
|
if (sname->prev == 0xff) {
|
|
148
169
|
i -= 0xff;
|
|
149
170
|
sname = &mrb->symtbl[i];
|
|
150
171
|
while (mrb->symtbl < sname) {
|
|
151
172
|
if (sname->len == len && memcmp(sname->name, name, len) == 0) {
|
|
152
|
-
return (mrb_sym)(sname - mrb->symtbl)
|
|
173
|
+
return (mrb_sym)((sname - mrb->symtbl)+MRB_PRESYM_MAX);
|
|
153
174
|
}
|
|
154
175
|
sname--;
|
|
155
176
|
}
|
|
@@ -172,11 +193,13 @@ sym_intern(mrb_state *mrb, const char *name, size_t len, mrb_bool lit)
|
|
|
172
193
|
if (sym > 0) return sym;
|
|
173
194
|
|
|
174
195
|
/* registering a new symbol */
|
|
175
|
-
sym =
|
|
196
|
+
sym = mrb->symidx + 1;
|
|
176
197
|
if (mrb->symcapa < sym) {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
198
|
+
size_t symcapa = mrb->symcapa;
|
|
199
|
+
if (symcapa == 0) symcapa = 100;
|
|
200
|
+
else symcapa = (size_t)(symcapa * 6 / 5);
|
|
201
|
+
mrb->symtbl = (symbol_name*)mrb_realloc(mrb, mrb->symtbl, sizeof(symbol_name)*(symcapa+1));
|
|
202
|
+
mrb->symcapa = symcapa;
|
|
180
203
|
}
|
|
181
204
|
sname = &mrb->symtbl[sym];
|
|
182
205
|
sname->len = (uint16_t)len;
|
|
@@ -201,9 +224,9 @@ sym_intern(mrb_state *mrb, const char *name, size_t len, mrb_bool lit)
|
|
|
201
224
|
else {
|
|
202
225
|
sname->prev = 0;
|
|
203
226
|
}
|
|
204
|
-
mrb->symhash[hash] = sym;
|
|
227
|
+
mrb->symhash[hash] = mrb->symidx = sym;
|
|
205
228
|
|
|
206
|
-
return sym
|
|
229
|
+
return (sym+MRB_PRESYM_MAX);
|
|
207
230
|
}
|
|
208
231
|
|
|
209
232
|
MRB_API mrb_sym
|
|
@@ -230,36 +253,69 @@ mrb_intern_str(mrb_state *mrb, mrb_value str)
|
|
|
230
253
|
return mrb_intern(mrb, RSTRING_PTR(str), RSTRING_LEN(str));
|
|
231
254
|
}
|
|
232
255
|
|
|
233
|
-
MRB_API
|
|
234
|
-
|
|
256
|
+
MRB_API mrb_sym
|
|
257
|
+
mrb_intern_check(mrb_state *mrb, const char *name, size_t len)
|
|
235
258
|
{
|
|
236
259
|
mrb_sym sym;
|
|
237
260
|
|
|
238
261
|
sym_validate_len(mrb, len);
|
|
239
262
|
sym = find_symbol(mrb, name, len, NULL);
|
|
240
|
-
if (sym > 0) return
|
|
241
|
-
return
|
|
263
|
+
if (sym > 0) return sym;
|
|
264
|
+
return 0;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
MRB_API mrb_value
|
|
268
|
+
mrb_check_intern(mrb_state *mrb, const char *name, size_t len)
|
|
269
|
+
{
|
|
270
|
+
mrb_sym sym = mrb_intern_check(mrb, name, len);
|
|
271
|
+
if (sym == 0) return mrb_nil_value();
|
|
272
|
+
return mrb_symbol_value(sym);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
MRB_API mrb_sym
|
|
276
|
+
mrb_intern_check_cstr(mrb_state *mrb, const char *name)
|
|
277
|
+
{
|
|
278
|
+
return mrb_intern_check(mrb, name, strlen(name));
|
|
242
279
|
}
|
|
243
280
|
|
|
244
281
|
MRB_API mrb_value
|
|
245
282
|
mrb_check_intern_cstr(mrb_state *mrb, const char *name)
|
|
246
283
|
{
|
|
247
|
-
|
|
284
|
+
mrb_sym sym = mrb_intern_check_cstr(mrb, name);
|
|
285
|
+
if (sym == 0) return mrb_nil_value();
|
|
286
|
+
return mrb_symbol_value(sym);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
MRB_API mrb_sym
|
|
290
|
+
mrb_intern_check_str(mrb_state *mrb, mrb_value str)
|
|
291
|
+
{
|
|
292
|
+
return mrb_intern_check(mrb, RSTRING_PTR(str), RSTRING_LEN(str));
|
|
248
293
|
}
|
|
249
294
|
|
|
250
295
|
MRB_API mrb_value
|
|
251
296
|
mrb_check_intern_str(mrb_state *mrb, mrb_value str)
|
|
252
297
|
{
|
|
253
|
-
|
|
298
|
+
mrb_sym sym = mrb_intern_check_str(mrb, str);
|
|
299
|
+
if (sym == 0) return mrb_nil_value();
|
|
300
|
+
return mrb_symbol_value(sym);
|
|
254
301
|
}
|
|
255
302
|
|
|
256
303
|
static const char*
|
|
257
304
|
sym2name_len(mrb_state *mrb, mrb_sym sym, char *buf, mrb_int *lenp)
|
|
258
305
|
{
|
|
306
|
+
if (sym == 0) goto outofsym;
|
|
259
307
|
if (SYMBOL_INLINE_P(sym)) return sym_inline_unpack(sym, buf, lenp);
|
|
260
308
|
|
|
261
|
-
|
|
262
|
-
|
|
309
|
+
#ifndef MRB_NO_PRESYM
|
|
310
|
+
{
|
|
311
|
+
const char *name = presym_sym2name(sym, lenp);
|
|
312
|
+
if (name) return name;
|
|
313
|
+
}
|
|
314
|
+
#endif
|
|
315
|
+
sym -= MRB_PRESYM_MAX;
|
|
316
|
+
|
|
317
|
+
if (mrb->symidx < sym) {
|
|
318
|
+
outofsym:
|
|
263
319
|
if (lenp) *lenp = 0;
|
|
264
320
|
return NULL;
|
|
265
321
|
}
|
|
@@ -271,7 +327,19 @@ sym2name_len(mrb_state *mrb, mrb_sym sym, char *buf, mrb_int *lenp)
|
|
|
271
327
|
MRB_API const char*
|
|
272
328
|
mrb_sym_name_len(mrb_state *mrb, mrb_sym sym, mrb_int *lenp)
|
|
273
329
|
{
|
|
330
|
+
#ifdef MRB_USE_ALL_SYMBOLS
|
|
331
|
+
return sym2name_len(mrb, sym, NULL, lenp);
|
|
332
|
+
#else
|
|
274
333
|
return sym2name_len(mrb, sym, mrb->symbuf, lenp);
|
|
334
|
+
#endif
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
mrb_bool
|
|
338
|
+
mrb_sym_static_p(mrb_state *mrb, mrb_sym sym)
|
|
339
|
+
{
|
|
340
|
+
if (SYMBOL_INLINE_P(sym)) return TRUE;
|
|
341
|
+
if (sym > MRB_PRESYM_MAX) return FALSE;
|
|
342
|
+
return TRUE;
|
|
275
343
|
}
|
|
276
344
|
|
|
277
345
|
void
|
|
@@ -495,7 +563,7 @@ sym_inspect(mrb_state *mrb, mrb_value sym)
|
|
|
495
563
|
char *sp;
|
|
496
564
|
|
|
497
565
|
name = mrb_sym_name_len(mrb, id, &len);
|
|
498
|
-
str = mrb_str_new(mrb,
|
|
566
|
+
str = mrb_str_new(mrb, NULL, len+1);
|
|
499
567
|
sp = RSTRING_PTR(str);
|
|
500
568
|
sp[0] = ':';
|
|
501
569
|
memcpy(sp+1, name, len);
|
|
@@ -538,8 +606,7 @@ sym_name(mrb_state *mrb, mrb_sym sym, mrb_bool dump)
|
|
|
538
606
|
return name;
|
|
539
607
|
}
|
|
540
608
|
else {
|
|
541
|
-
mrb_value str =
|
|
542
|
-
mrb_str_new(mrb, name, len) : mrb_str_new_static(mrb, name, len);
|
|
609
|
+
mrb_value str = mrb_str_new_static(mrb, name, len);
|
|
543
610
|
str = mrb_str_dump(mrb, str);
|
|
544
611
|
return RSTRING_PTR(str);
|
|
545
612
|
}
|
|
@@ -562,10 +629,9 @@ mrb_sym_dump(mrb_state *mrb, mrb_sym sym)
|
|
|
562
629
|
static mrb_value
|
|
563
630
|
sym_cmp(mrb_state *mrb, mrb_value s1)
|
|
564
631
|
{
|
|
565
|
-
mrb_value s2;
|
|
632
|
+
mrb_value s2 = mrb_get_arg1(mrb);
|
|
566
633
|
mrb_sym sym1, sym2;
|
|
567
634
|
|
|
568
|
-
mrb_get_args(mrb, "o", &s2);
|
|
569
635
|
if (!mrb_symbol_p(s2)) return mrb_nil_value();
|
|
570
636
|
sym1 = mrb_symbol(s1);
|
|
571
637
|
sym2 = mrb_symbol(s2);
|
|
@@ -10,22 +10,18 @@
|
|
|
10
10
|
#include <mruby/proc.h>
|
|
11
11
|
#include <mruby/string.h>
|
|
12
12
|
#include <mruby/variable.h>
|
|
13
|
+
#include <mruby/presym.h>
|
|
13
14
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
typedef struct segment {
|
|
19
|
-
mrb_sym key[MRB_IV_SEGMENT_SIZE];
|
|
20
|
-
mrb_value val[MRB_IV_SEGMENT_SIZE];
|
|
21
|
-
struct segment *next;
|
|
22
|
-
} segment;
|
|
15
|
+
struct iv_elem {
|
|
16
|
+
mrb_sym key;
|
|
17
|
+
mrb_value val;
|
|
18
|
+
};
|
|
23
19
|
|
|
24
20
|
/* Instance variable table structure */
|
|
25
21
|
typedef struct iv_tbl {
|
|
26
|
-
segment *rootseg;
|
|
27
22
|
size_t size;
|
|
28
|
-
size_t
|
|
23
|
+
size_t alloc;
|
|
24
|
+
struct iv_elem *table;
|
|
29
25
|
} iv_tbl;
|
|
30
26
|
|
|
31
27
|
/* Creates the instance variable table. */
|
|
@@ -36,67 +32,82 @@ iv_new(mrb_state *mrb)
|
|
|
36
32
|
|
|
37
33
|
t = (iv_tbl*)mrb_malloc(mrb, sizeof(iv_tbl));
|
|
38
34
|
t->size = 0;
|
|
39
|
-
t->
|
|
40
|
-
t->
|
|
35
|
+
t->alloc = 0;
|
|
36
|
+
t->table = NULL;
|
|
41
37
|
|
|
42
38
|
return t;
|
|
43
39
|
}
|
|
44
40
|
|
|
41
|
+
static void iv_put(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value val);
|
|
42
|
+
|
|
43
|
+
static void
|
|
44
|
+
iv_rehash(mrb_state *mrb, iv_tbl *t)
|
|
45
|
+
{
|
|
46
|
+
size_t old_alloc = t->alloc;
|
|
47
|
+
size_t new_alloc = old_alloc+1;
|
|
48
|
+
struct iv_elem *old_table = t->table;
|
|
49
|
+
|
|
50
|
+
khash_power2(new_alloc);
|
|
51
|
+
if (old_alloc == new_alloc) return;
|
|
52
|
+
|
|
53
|
+
t->alloc = new_alloc;
|
|
54
|
+
t->size = 0;
|
|
55
|
+
t->table = (struct iv_elem*)mrb_calloc(mrb, sizeof(struct iv_elem), new_alloc);
|
|
56
|
+
|
|
57
|
+
for (size_t i = 0; i < old_alloc; i++) {
|
|
58
|
+
struct iv_elem *slot = &old_table[i];
|
|
59
|
+
|
|
60
|
+
/* key = 0 means empty; val = undef means deleted */
|
|
61
|
+
if (slot->key != 0 && !mrb_undef_p(slot->val)) {
|
|
62
|
+
iv_put(mrb, t, slot->key, slot->val);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
mrb_free(mrb, old_table);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
#define slot_empty_p(slot) ((slot)->key == 0 && !mrb_undef_p((slot)->val))
|
|
69
|
+
|
|
45
70
|
/* Set the value for the symbol in the instance variable table. */
|
|
46
71
|
static void
|
|
47
72
|
iv_put(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value val)
|
|
48
73
|
{
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
segment *matched_seg = NULL;
|
|
52
|
-
size_t matched_idx = 0;
|
|
53
|
-
size_t i;
|
|
74
|
+
size_t hash, pos, start;
|
|
75
|
+
struct iv_elem *dslot = NULL;
|
|
54
76
|
|
|
55
77
|
if (t == NULL) return;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
78
|
+
if (t->alloc == 0) {
|
|
79
|
+
iv_rehash(mrb, t);
|
|
80
|
+
}
|
|
81
|
+
hash = kh_int_hash_func(mrb, sym);
|
|
82
|
+
start = pos = hash & (t->alloc-1);
|
|
83
|
+
for (;;) {
|
|
84
|
+
struct iv_elem *slot = &t->table[pos];
|
|
85
|
+
|
|
86
|
+
if (slot->key == sym) {
|
|
87
|
+
slot->val = val;
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
else if (slot_empty_p(slot)) {
|
|
91
|
+
t->size++;
|
|
92
|
+
slot->key = sym;
|
|
93
|
+
slot->val = val;
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
else if (!dslot && mrb_undef_p(slot->val)) { /* deleted */
|
|
97
|
+
dslot = slot;
|
|
98
|
+
}
|
|
99
|
+
pos = (pos+1) & (t->alloc-1);
|
|
100
|
+
if (pos == start) { /* not found */
|
|
101
|
+
if (dslot) {
|
|
65
102
|
t->size++;
|
|
103
|
+
dslot->key = sym;
|
|
104
|
+
dslot->val = val;
|
|
66
105
|
return;
|
|
67
106
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
}
|
|
72
|
-
else if (key == sym) {
|
|
73
|
-
seg->val[i] = val;
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
107
|
+
/* no room */
|
|
108
|
+
iv_rehash(mrb, t);
|
|
109
|
+
start = pos = hash & (t->alloc-1);
|
|
76
110
|
}
|
|
77
|
-
prev = seg;
|
|
78
|
-
seg = seg->next;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/* Not found */
|
|
82
|
-
if (matched_seg) {
|
|
83
|
-
matched_seg->key[matched_idx] = sym;
|
|
84
|
-
matched_seg->val[matched_idx] = val;
|
|
85
|
-
t->size++;
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
seg = (segment*)mrb_malloc(mrb, sizeof(segment));
|
|
90
|
-
seg->next = NULL;
|
|
91
|
-
seg->key[0] = sym;
|
|
92
|
-
seg->val[0] = val;
|
|
93
|
-
t->last_len = 1;
|
|
94
|
-
t->size++;
|
|
95
|
-
if (prev) {
|
|
96
|
-
prev->next = seg;
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
t->rootseg = seg;
|
|
100
111
|
}
|
|
101
112
|
}
|
|
102
113
|
|
|
@@ -104,80 +115,81 @@ iv_put(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value val)
|
|
|
104
115
|
static mrb_bool
|
|
105
116
|
iv_get(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value *vp)
|
|
106
117
|
{
|
|
107
|
-
|
|
108
|
-
size_t i;
|
|
118
|
+
size_t hash, pos, start;
|
|
109
119
|
|
|
110
120
|
if (t == NULL) return FALSE;
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
for (i=0; i<MRB_IV_SEGMENT_SIZE; i++) {
|
|
114
|
-
mrb_sym key = seg->key[i];
|
|
121
|
+
if (t->alloc == 0) return FALSE;
|
|
122
|
+
if (t->size == 0) return FALSE;
|
|
115
123
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
124
|
+
hash = kh_int_hash_func(mrb, sym);
|
|
125
|
+
start = pos = hash & (t->alloc-1);
|
|
126
|
+
for (;;) {
|
|
127
|
+
struct iv_elem *slot = &t->table[pos];
|
|
128
|
+
|
|
129
|
+
if (slot->key == sym) {
|
|
130
|
+
if (vp) *vp = slot->val;
|
|
131
|
+
return TRUE;
|
|
132
|
+
}
|
|
133
|
+
else if (slot_empty_p(slot)) {
|
|
134
|
+
return FALSE;
|
|
135
|
+
}
|
|
136
|
+
pos = (pos+1) & (t->alloc-1);
|
|
137
|
+
if (pos == start) { /* not found */
|
|
138
|
+
return FALSE;
|
|
123
139
|
}
|
|
124
|
-
seg = seg->next;
|
|
125
140
|
}
|
|
126
|
-
return FALSE;
|
|
127
141
|
}
|
|
128
142
|
|
|
129
143
|
/* Deletes the value for the symbol from the instance variable table. */
|
|
130
144
|
static mrb_bool
|
|
131
145
|
iv_del(mrb_state *mrb, iv_tbl *t, mrb_sym sym, mrb_value *vp)
|
|
132
146
|
{
|
|
133
|
-
|
|
134
|
-
size_t i;
|
|
147
|
+
size_t hash, pos, start;
|
|
135
148
|
|
|
136
149
|
if (t == NULL) return FALSE;
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
for (i=0; i<MRB_IV_SEGMENT_SIZE; i++) {
|
|
140
|
-
mrb_sym key = seg->key[i];
|
|
150
|
+
if (t->alloc == 0) return FALSE;
|
|
151
|
+
if (t->size == 0) return FALSE;
|
|
141
152
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
153
|
+
hash = kh_int_hash_func(mrb, sym);
|
|
154
|
+
start = pos = hash & (t->alloc-1);
|
|
155
|
+
for (;;) {
|
|
156
|
+
struct iv_elem *slot = &t->table[pos];
|
|
157
|
+
|
|
158
|
+
if (slot->key == sym) {
|
|
159
|
+
if (vp) *vp = slot->val;
|
|
160
|
+
t->size--;
|
|
161
|
+
slot->key = 0;
|
|
162
|
+
slot->val = mrb_undef_value();
|
|
163
|
+
return TRUE;
|
|
164
|
+
}
|
|
165
|
+
else if (slot_empty_p(slot)) {
|
|
166
|
+
return FALSE;
|
|
167
|
+
}
|
|
168
|
+
pos = (pos+1) & (t->alloc-1);
|
|
169
|
+
if (pos == start) { /* not found */
|
|
170
|
+
return FALSE;
|
|
151
171
|
}
|
|
152
|
-
seg = seg->next;
|
|
153
172
|
}
|
|
154
|
-
return FALSE;
|
|
155
173
|
}
|
|
156
174
|
|
|
157
175
|
/* Iterates over the instance variable table. */
|
|
158
176
|
static void
|
|
159
177
|
iv_foreach(mrb_state *mrb, iv_tbl *t, mrb_iv_foreach_func *func, void *p)
|
|
160
178
|
{
|
|
161
|
-
segment *seg;
|
|
162
179
|
size_t i;
|
|
163
180
|
|
|
164
181
|
if (t == NULL) return;
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
182
|
+
if (t->alloc == 0) return;
|
|
183
|
+
if (t->size == 0) return;
|
|
184
|
+
|
|
185
|
+
for (i=0; i<t->alloc; i++) {
|
|
186
|
+
struct iv_elem *slot = &t->table[i];
|
|
169
187
|
|
|
170
|
-
|
|
171
|
-
if (
|
|
188
|
+
if (slot->key && !mrb_undef_p(slot->val)) {
|
|
189
|
+
if ((*func)(mrb, slot->key, slot->val, p) != 0) {
|
|
172
190
|
return;
|
|
173
191
|
}
|
|
174
|
-
if (key != 0) {
|
|
175
|
-
if ((*func)(mrb, key, seg->val[i], p) != 0) {
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
192
|
}
|
|
180
|
-
seg = seg->next;
|
|
181
193
|
}
|
|
182
194
|
return;
|
|
183
195
|
}
|
|
@@ -186,47 +198,28 @@ iv_foreach(mrb_state *mrb, iv_tbl *t, mrb_iv_foreach_func *func, void *p)
|
|
|
186
198
|
static size_t
|
|
187
199
|
iv_size(mrb_state *mrb, iv_tbl *t)
|
|
188
200
|
{
|
|
189
|
-
segment *seg;
|
|
190
|
-
size_t size = 0;
|
|
191
|
-
|
|
192
201
|
if (t == NULL) return 0;
|
|
193
|
-
|
|
194
|
-
seg = t->rootseg;
|
|
195
|
-
while (seg) {
|
|
196
|
-
if (seg->next == NULL) {
|
|
197
|
-
size += t->last_len;
|
|
198
|
-
return size;
|
|
199
|
-
}
|
|
200
|
-
seg = seg->next;
|
|
201
|
-
size += MRB_IV_SEGMENT_SIZE;
|
|
202
|
-
}
|
|
203
|
-
/* empty iv_tbl */
|
|
204
|
-
return 0;
|
|
202
|
+
return t->size;
|
|
205
203
|
}
|
|
206
204
|
|
|
207
205
|
/* Copy the instance variable table. */
|
|
208
206
|
static iv_tbl*
|
|
209
207
|
iv_copy(mrb_state *mrb, iv_tbl *t)
|
|
210
208
|
{
|
|
211
|
-
segment *seg;
|
|
212
209
|
iv_tbl *t2;
|
|
213
|
-
|
|
214
210
|
size_t i;
|
|
215
211
|
|
|
216
|
-
|
|
217
|
-
|
|
212
|
+
if (t == NULL) return NULL;
|
|
213
|
+
if (t->alloc == 0) return NULL;
|
|
214
|
+
if (t->size == 0) return NULL;
|
|
218
215
|
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
mrb_value val = seg->val[i];
|
|
216
|
+
t2 = iv_new(mrb);
|
|
217
|
+
for (i=0; i<t->alloc; i++) {
|
|
218
|
+
struct iv_elem *slot = &t->table[i];
|
|
223
219
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
}
|
|
227
|
-
iv_put(mrb, t2, key, val);
|
|
220
|
+
if (slot->key && !mrb_undef_p(slot->val)) {
|
|
221
|
+
iv_put(mrb, t2, slot->key, slot->val);
|
|
228
222
|
}
|
|
229
|
-
seg = seg->next;
|
|
230
223
|
}
|
|
231
224
|
return t2;
|
|
232
225
|
}
|
|
@@ -235,14 +228,7 @@ iv_copy(mrb_state *mrb, iv_tbl *t)
|
|
|
235
228
|
static void
|
|
236
229
|
iv_free(mrb_state *mrb, iv_tbl *t)
|
|
237
230
|
{
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
seg = t->rootseg;
|
|
241
|
-
while (seg) {
|
|
242
|
-
segment *p = seg;
|
|
243
|
-
seg = seg->next;
|
|
244
|
-
mrb_free(mrb, p);
|
|
245
|
-
}
|
|
231
|
+
mrb_free(mrb, t->table);
|
|
246
232
|
mrb_free(mrb, t);
|
|
247
233
|
}
|
|
248
234
|
|
|
@@ -349,7 +335,7 @@ mrb_obj_iv_set_force(mrb_state *mrb, struct RObject *obj, mrb_sym sym, mrb_value
|
|
|
349
335
|
obj->iv = iv_new(mrb);
|
|
350
336
|
}
|
|
351
337
|
iv_put(mrb, obj->iv, sym, v);
|
|
352
|
-
|
|
338
|
+
mrb_field_write_barrier_value(mrb, (struct RBasic*)obj, v);
|
|
353
339
|
}
|
|
354
340
|
|
|
355
341
|
MRB_API void
|
|
@@ -379,11 +365,11 @@ assign_class_name(mrb_state *mrb, struct RObject *obj, mrb_sym sym, mrb_value v)
|
|
|
379
365
|
if (namespace_p(obj->tt) && namespace_p(mrb_type(v))) {
|
|
380
366
|
struct RObject *c = mrb_obj_ptr(v);
|
|
381
367
|
if (obj != c && ISUPPER(mrb_sym_name_len(mrb, sym, NULL)[0])) {
|
|
382
|
-
mrb_sym id_classname =
|
|
368
|
+
mrb_sym id_classname = MRB_SYM(__classname__);
|
|
383
369
|
mrb_value o = mrb_obj_iv_get(mrb, c, id_classname);
|
|
384
370
|
|
|
385
371
|
if (mrb_nil_p(o)) {
|
|
386
|
-
mrb_sym id_outer =
|
|
372
|
+
mrb_sym id_outer = MRB_SYM(__outer__);
|
|
387
373
|
o = mrb_obj_iv_get(mrb, c, id_outer);
|
|
388
374
|
|
|
389
375
|
if (mrb_nil_p(o)) {
|
|
@@ -643,8 +629,7 @@ mrb_mod_cv_get(mrb_state *mrb, struct RClass *c, mrb_sym sym)
|
|
|
643
629
|
if (cls && cls->tt == MRB_TT_SCLASS) {
|
|
644
630
|
mrb_value klass;
|
|
645
631
|
|
|
646
|
-
klass = mrb_obj_iv_get(mrb, (struct RObject *)cls,
|
|
647
|
-
mrb_intern_lit(mrb, "__attached__"));
|
|
632
|
+
klass = mrb_obj_iv_get(mrb, (struct RObject *)cls, MRB_SYM(__attached__));
|
|
648
633
|
c = mrb_class_ptr(klass);
|
|
649
634
|
if (c->tt == MRB_TT_CLASS || c->tt == MRB_TT_MODULE) {
|
|
650
635
|
given = FALSE;
|
|
@@ -679,7 +664,7 @@ mrb_mod_cv_set(mrb_state *mrb, struct RClass *c, mrb_sym sym, mrb_value v)
|
|
|
679
664
|
if (iv_get(mrb, t, sym, NULL)) {
|
|
680
665
|
mrb_check_frozen(mrb, c);
|
|
681
666
|
iv_put(mrb, t, sym, v);
|
|
682
|
-
|
|
667
|
+
mrb_field_write_barrier_value(mrb, (struct RBasic*)c, v);
|
|
683
668
|
return;
|
|
684
669
|
}
|
|
685
670
|
c = c->super;
|
|
@@ -688,8 +673,7 @@ mrb_mod_cv_set(mrb_state *mrb, struct RClass *c, mrb_sym sym, mrb_value v)
|
|
|
688
673
|
if (cls && cls->tt == MRB_TT_SCLASS) {
|
|
689
674
|
mrb_value klass;
|
|
690
675
|
|
|
691
|
-
klass = mrb_obj_iv_get(mrb, (struct RObject*)cls,
|
|
692
|
-
mrb_intern_lit(mrb, "__attached__"));
|
|
676
|
+
klass = mrb_obj_iv_get(mrb, (struct RObject*)cls, MRB_SYM(__attached__));
|
|
693
677
|
switch (mrb_type(klass)) {
|
|
694
678
|
case MRB_TT_CLASS:
|
|
695
679
|
case MRB_TT_MODULE:
|
|
@@ -711,7 +695,7 @@ mrb_mod_cv_set(mrb_state *mrb, struct RClass *c, mrb_sym sym, mrb_value v)
|
|
|
711
695
|
}
|
|
712
696
|
|
|
713
697
|
iv_put(mrb, c->iv, sym, v);
|
|
714
|
-
|
|
698
|
+
mrb_field_write_barrier_value(mrb, (struct RBasic*)c, v);
|
|
715
699
|
}
|
|
716
700
|
|
|
717
701
|
MRB_API void
|
|
@@ -743,11 +727,11 @@ mrb_vm_cv_get(mrb_state *mrb, mrb_sym sym)
|
|
|
743
727
|
{
|
|
744
728
|
struct RClass *c;
|
|
745
729
|
|
|
746
|
-
struct RProc *p = mrb->c->ci->proc;
|
|
730
|
+
const struct RProc *p = mrb->c->ci->proc;
|
|
747
731
|
|
|
748
732
|
for (;;) {
|
|
749
733
|
c = MRB_PROC_TARGET_CLASS(p);
|
|
750
|
-
if (c->tt != MRB_TT_SCLASS) break;
|
|
734
|
+
if (c && c->tt != MRB_TT_SCLASS) break;
|
|
751
735
|
p = p->upper;
|
|
752
736
|
}
|
|
753
737
|
return mrb_mod_cv_get(mrb, c, sym);
|
|
@@ -757,11 +741,11 @@ void
|
|
|
757
741
|
mrb_vm_cv_set(mrb_state *mrb, mrb_sym sym, mrb_value v)
|
|
758
742
|
{
|
|
759
743
|
struct RClass *c;
|
|
760
|
-
struct RProc *p = mrb->c->ci->proc;
|
|
744
|
+
const struct RProc *p = mrb->c->ci->proc;
|
|
761
745
|
|
|
762
746
|
for (;;) {
|
|
763
747
|
c = MRB_PROC_TARGET_CLASS(p);
|
|
764
|
-
if (c->tt != MRB_TT_SCLASS) break;
|
|
748
|
+
if (c && c->tt != MRB_TT_SCLASS) break;
|
|
765
749
|
p = p->upper;
|
|
766
750
|
}
|
|
767
751
|
mrb_mod_cv_set(mrb, c, sym, v);
|
|
@@ -803,7 +787,7 @@ L_RETRY:
|
|
|
803
787
|
goto L_RETRY;
|
|
804
788
|
}
|
|
805
789
|
name = mrb_symbol_value(sym);
|
|
806
|
-
return mrb_funcall_argv(mrb, mrb_obj_value(base),
|
|
790
|
+
return mrb_funcall_argv(mrb, mrb_obj_value(base), MRB_SYM(const_missing), 1, &name);
|
|
807
791
|
}
|
|
808
792
|
|
|
809
793
|
MRB_API mrb_value
|
|
@@ -819,9 +803,10 @@ mrb_vm_const_get(mrb_state *mrb, mrb_sym sym)
|
|
|
819
803
|
struct RClass *c;
|
|
820
804
|
struct RClass *c2;
|
|
821
805
|
mrb_value v;
|
|
822
|
-
struct RProc *proc;
|
|
806
|
+
const struct RProc *proc;
|
|
823
807
|
|
|
824
808
|
c = MRB_PROC_TARGET_CLASS(mrb->c->ci->proc);
|
|
809
|
+
if (!c) c = mrb->object_class;
|
|
825
810
|
if (iv_get(mrb, c->iv, sym, &v)) {
|
|
826
811
|
return v;
|
|
827
812
|
}
|
|
@@ -829,7 +814,7 @@ mrb_vm_const_get(mrb_state *mrb, mrb_sym sym)
|
|
|
829
814
|
while (c2 && c2->tt == MRB_TT_SCLASS) {
|
|
830
815
|
mrb_value klass;
|
|
831
816
|
|
|
832
|
-
if (!iv_get(mrb, c2->iv,
|
|
817
|
+
if (!iv_get(mrb, c2->iv, MRB_SYM(__attached__), &klass)) {
|
|
833
818
|
c2 = NULL;
|
|
834
819
|
break;
|
|
835
820
|
}
|
|
@@ -864,6 +849,7 @@ mrb_vm_const_set(mrb_state *mrb, mrb_sym sym, mrb_value v)
|
|
|
864
849
|
struct RClass *c;
|
|
865
850
|
|
|
866
851
|
c = MRB_PROC_TARGET_CLASS(mrb->c->ci->proc);
|
|
852
|
+
if (!c) c = mrb->object_class;
|
|
867
853
|
mrb_obj_iv_set(mrb, (struct RObject*)c, sym, v);
|
|
868
854
|
}
|
|
869
855
|
|
|
@@ -874,6 +860,12 @@ mrb_const_remove(mrb_state *mrb, mrb_value mod, mrb_sym sym)
|
|
|
874
860
|
mrb_iv_remove(mrb, mod, sym);
|
|
875
861
|
}
|
|
876
862
|
|
|
863
|
+
MRB_API void
|
|
864
|
+
mrb_define_const_id(mrb_state *mrb, struct RClass *mod, mrb_sym name, mrb_value v)
|
|
865
|
+
{
|
|
866
|
+
mrb_obj_iv_set(mrb, (struct RObject*)mod, name, v);
|
|
867
|
+
}
|
|
868
|
+
|
|
877
869
|
MRB_API void
|
|
878
870
|
mrb_define_const(mrb_state *mrb, struct RClass *mod, const char *name, mrb_value v)
|
|
879
871
|
{
|
|
@@ -1070,7 +1062,7 @@ outer_class(mrb_state *mrb, struct RClass *c)
|
|
|
1070
1062
|
{
|
|
1071
1063
|
mrb_value ov;
|
|
1072
1064
|
|
|
1073
|
-
ov = mrb_obj_iv_get(mrb, (struct RObject*)c,
|
|
1065
|
+
ov = mrb_obj_iv_get(mrb, (struct RObject*)c, MRB_SYM(__outer__));
|
|
1074
1066
|
if (mrb_nil_p(ov)) return NULL;
|
|
1075
1067
|
switch (mrb_type(ov)) {
|
|
1076
1068
|
case MRB_TT_CLASS:
|
|
@@ -1120,14 +1112,22 @@ mrb_class_find_path(mrb_state *mrb, struct RClass *c)
|
|
|
1120
1112
|
str = mrb_sym_name_len(mrb, name, &len);
|
|
1121
1113
|
mrb_str_cat(mrb, path, str, len);
|
|
1122
1114
|
if (RSTRING_PTR(path)[0] != '#') {
|
|
1123
|
-
iv_del(mrb, c->iv,
|
|
1124
|
-
iv_put(mrb, c->iv,
|
|
1115
|
+
iv_del(mrb, c->iv, MRB_SYM(__outer__), NULL);
|
|
1116
|
+
iv_put(mrb, c->iv, MRB_SYM(__classname__), path);
|
|
1125
1117
|
mrb_field_write_barrier_value(mrb, (struct RBasic*)c, path);
|
|
1126
1118
|
path = mrb_str_dup(mrb, path);
|
|
1127
1119
|
}
|
|
1128
1120
|
return path;
|
|
1129
1121
|
}
|
|
1130
1122
|
|
|
1123
|
+
size_t
|
|
1124
|
+
mrb_obj_iv_tbl_memsize(mrb_value obj)
|
|
1125
|
+
{
|
|
1126
|
+
iv_tbl *t = mrb_obj_ptr(obj)->iv;
|
|
1127
|
+
if (t == NULL) return 0;
|
|
1128
|
+
return sizeof(iv_tbl) + t->alloc*sizeof(struct iv_elem);
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
1131
|
#define identchar(c) (ISALNUM(c) || (c) == '_' || !ISASCII(c))
|
|
1132
1132
|
|
|
1133
1133
|
mrb_bool
|