script_core 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.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
@@ -6,6 +6,9 @@
|
|
6
6
|
|
7
7
|
#include <string.h>
|
8
8
|
#include <stdlib.h>
|
9
|
+
#ifdef MRB_USE_MALLOC_TRIM
|
10
|
+
#include <malloc.h>
|
11
|
+
#endif
|
9
12
|
#include <mruby.h>
|
10
13
|
#include <mruby/array.h>
|
11
14
|
#include <mruby/class.h>
|
@@ -19,6 +22,7 @@
|
|
19
22
|
#include <mruby/gc.h>
|
20
23
|
#include <mruby/error.h>
|
21
24
|
#include <mruby/throw.h>
|
25
|
+
#include <mruby/presym.h>
|
22
26
|
|
23
27
|
/*
|
24
28
|
= Tri-color Incremental Garbage Collection
|
@@ -35,9 +39,14 @@
|
|
35
39
|
* Gray - Marked, But the child objects are unmarked.
|
36
40
|
* Black - Marked, the child objects are also marked.
|
37
41
|
|
42
|
+
Extra color
|
43
|
+
|
44
|
+
* Red - Static (ROM object) no need to be collected.
|
45
|
+
- All child objects should be Red as well.
|
46
|
+
|
38
47
|
== Two White Types
|
39
48
|
|
40
|
-
There
|
49
|
+
There are two white color types in a flip-flop fashion: White-A and White-B,
|
41
50
|
which respectively represent the Current White color (the newly allocated
|
42
51
|
objects in the current GC cycle) and the Sweep Target White color (the
|
43
52
|
dead objects to be swept).
|
@@ -99,8 +108,14 @@ struct free_obj {
|
|
99
108
|
struct RBasic *next;
|
100
109
|
};
|
101
110
|
|
111
|
+
struct RVALUE_initializer {
|
112
|
+
MRB_OBJECT_HEADER;
|
113
|
+
char padding[sizeof(void*) * 4 - sizeof(uint32_t)];
|
114
|
+
};
|
115
|
+
|
102
116
|
typedef struct {
|
103
117
|
union {
|
118
|
+
struct RVALUE_initializer init; /* must be first member to ensure initialization */
|
104
119
|
struct free_obj free;
|
105
120
|
struct RBasic basic;
|
106
121
|
struct RObject object;
|
@@ -117,7 +132,7 @@ typedef struct {
|
|
117
132
|
struct RException exc;
|
118
133
|
struct RBreak brk;
|
119
134
|
#ifdef MRB_WORD_BOXING
|
120
|
-
#ifndef
|
135
|
+
#ifndef MRB_NO_FLOAT
|
121
136
|
struct RFloat floatv;
|
122
137
|
#endif
|
123
138
|
struct RCptr cptr;
|
@@ -185,6 +200,7 @@ gettimeofday_time(void)
|
|
185
200
|
#define GC_WHITE_A 1
|
186
201
|
#define GC_WHITE_B (1 << 1)
|
187
202
|
#define GC_BLACK (1 << 2)
|
203
|
+
#define GC_RED 7
|
188
204
|
#define GC_WHITES (GC_WHITE_A | GC_WHITE_B)
|
189
205
|
#define GC_COLOR_MASK 7
|
190
206
|
|
@@ -194,13 +210,16 @@ gettimeofday_time(void)
|
|
194
210
|
#define paint_partial_white(s, o) ((o)->color = (s)->current_white_part)
|
195
211
|
#define is_gray(o) ((o)->color == GC_GRAY)
|
196
212
|
#define is_white(o) ((o)->color & GC_WHITES)
|
197
|
-
#define is_black(o) ((o)->color
|
213
|
+
#define is_black(o) ((o)->color == GC_BLACK)
|
214
|
+
#define is_red(o) ((o)->color == GC_RED)
|
198
215
|
#define flip_white_part(s) ((s)->current_white_part = other_white_part(s))
|
199
216
|
#define other_white_part(s) ((s)->current_white_part ^ GC_WHITES)
|
200
217
|
#define is_dead(s, o) (((o)->color & other_white_part(s) & GC_WHITES) || (o)->tt == MRB_TT_FREE)
|
201
218
|
|
202
219
|
#define objects(p) ((RVALUE *)p->objects)
|
203
220
|
|
221
|
+
mrb_noreturn void mrb_raise_nomemory(mrb_state *mrb);
|
222
|
+
|
204
223
|
MRB_API void*
|
205
224
|
mrb_realloc_simple(mrb_state *mrb, void *p, size_t len)
|
206
225
|
{
|
@@ -223,14 +242,8 @@ mrb_realloc(mrb_state *mrb, void *p, size_t len)
|
|
223
242
|
p2 = mrb_realloc_simple(mrb, p, len);
|
224
243
|
if (len == 0) return p2;
|
225
244
|
if (p2 == NULL) {
|
226
|
-
|
227
|
-
|
228
|
-
/* mrb_panic(mrb); */
|
229
|
-
}
|
230
|
-
else {
|
231
|
-
mrb->gc.out_of_memory = TRUE;
|
232
|
-
mrb_exc_raise(mrb, mrb_obj_value(mrb->nomem_err));
|
233
|
-
}
|
245
|
+
mrb->gc.out_of_memory = TRUE;
|
246
|
+
mrb_raise_nomemory(mrb);
|
234
247
|
}
|
235
248
|
else {
|
236
249
|
mrb->gc.out_of_memory = FALSE;
|
@@ -461,7 +474,7 @@ mrb_gc_protect(mrb_state *mrb, mrb_value obj)
|
|
461
474
|
gc_protect(mrb, &mrb->gc, mrb_basic_ptr(obj));
|
462
475
|
}
|
463
476
|
|
464
|
-
#define
|
477
|
+
#define GC_ROOT_SYM MRB_SYM(_gc_root_)
|
465
478
|
|
466
479
|
/* mrb_gc_register() keeps the object from GC.
|
467
480
|
|
@@ -478,7 +491,7 @@ mrb_gc_register(mrb_state *mrb, mrb_value obj)
|
|
478
491
|
mrb_value table;
|
479
492
|
|
480
493
|
if (mrb_immediate_p(obj)) return;
|
481
|
-
root =
|
494
|
+
root = GC_ROOT_SYM;
|
482
495
|
table = mrb_gv_get(mrb, root);
|
483
496
|
if (mrb_nil_p(table) || !mrb_array_p(table)) {
|
484
497
|
table = mrb_ary_new(mrb);
|
@@ -497,7 +510,7 @@ mrb_gc_unregister(mrb_state *mrb, mrb_value obj)
|
|
497
510
|
mrb_int i;
|
498
511
|
|
499
512
|
if (mrb_immediate_p(obj)) return;
|
500
|
-
root =
|
513
|
+
root = GC_ROOT_SYM;
|
501
514
|
table = mrb_gv_get(mrb, root);
|
502
515
|
if (mrb_nil_p(table)) return;
|
503
516
|
if (!mrb_array_p(table)) {
|
@@ -585,11 +598,11 @@ add_gray_list(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
585
598
|
gc->gray_list = obj;
|
586
599
|
}
|
587
600
|
|
588
|
-
static
|
601
|
+
static mrb_int
|
589
602
|
ci_nregs(mrb_callinfo *ci)
|
590
603
|
{
|
591
|
-
struct RProc *p = ci->proc;
|
592
|
-
|
604
|
+
const struct RProc *p = ci->proc;
|
605
|
+
mrb_int n = 0;
|
593
606
|
|
594
607
|
if (!p) {
|
595
608
|
if (ci->argc < 0) return 3;
|
@@ -614,11 +627,14 @@ mark_context_stack(mrb_state *mrb, struct mrb_context *c)
|
|
614
627
|
size_t e;
|
615
628
|
mrb_value nil;
|
616
629
|
|
617
|
-
if (c->
|
618
|
-
e = c->stack - c->stbase;
|
630
|
+
if (c->stbase == NULL) return;
|
619
631
|
if (c->ci) {
|
632
|
+
e = (c->ci->stack ? c->ci->stack - c->stbase : 0);
|
620
633
|
e += ci_nregs(c->ci);
|
621
634
|
}
|
635
|
+
else {
|
636
|
+
e = 0;
|
637
|
+
}
|
622
638
|
if (c->stbase + e > c->stend) e = c->stend - c->stbase;
|
623
639
|
for (i=0; i<e; i++) {
|
624
640
|
mrb_value v = c->stbase[i];
|
@@ -637,7 +653,6 @@ mark_context_stack(mrb_state *mrb, struct mrb_context *c)
|
|
637
653
|
static void
|
638
654
|
mark_context(mrb_state *mrb, struct mrb_context *c)
|
639
655
|
{
|
640
|
-
int i;
|
641
656
|
mrb_callinfo *ci;
|
642
657
|
|
643
658
|
start:
|
@@ -649,15 +664,10 @@ mark_context(mrb_state *mrb, struct mrb_context *c)
|
|
649
664
|
/* mark call stack */
|
650
665
|
if (c->cibase) {
|
651
666
|
for (ci = c->cibase; ci <= c->ci; ci++) {
|
652
|
-
mrb_gc_mark(mrb, (struct RBasic*)ci->env);
|
653
667
|
mrb_gc_mark(mrb, (struct RBasic*)ci->proc);
|
654
|
-
mrb_gc_mark(mrb, (struct RBasic*)ci->target_class);
|
668
|
+
mrb_gc_mark(mrb, (struct RBasic*)ci->u.target_class);
|
655
669
|
}
|
656
670
|
}
|
657
|
-
/* mark ensure stack */
|
658
|
-
for (i=0; i<c->eidx; i++) {
|
659
|
-
mrb_gc_mark(mrb, (struct RBasic*)c->ensure[i]);
|
660
|
-
}
|
661
671
|
/* mark fibers */
|
662
672
|
mrb_gc_mark(mrb, (struct RBasic*)c->fib);
|
663
673
|
if (c->prev) {
|
@@ -671,7 +681,6 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
671
681
|
{
|
672
682
|
mrb_assert(is_gray(obj));
|
673
683
|
paint_black(obj);
|
674
|
-
gc->gray_list = obj->gcnext;
|
675
684
|
mrb_gc_mark(mrb, (struct RBasic*)obj->c);
|
676
685
|
switch (obj->tt) {
|
677
686
|
case MRB_TT_ICLASS:
|
@@ -714,10 +723,10 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
714
723
|
struct REnv *e = (struct REnv*)obj;
|
715
724
|
mrb_int i, len;
|
716
725
|
|
717
|
-
if (
|
726
|
+
if (MRB_ENV_ONSTACK_P(e) && e->cxt && e->cxt->fib) {
|
718
727
|
mrb_gc_mark(mrb, (struct RBasic*)e->cxt->fib);
|
719
728
|
}
|
720
|
-
len =
|
729
|
+
len = MRB_ENV_LEN(e);
|
721
730
|
for (i=0; i<len; i++) {
|
722
731
|
mrb_gc_mark_value(mrb, e->stack[i]);
|
723
732
|
}
|
@@ -735,10 +744,11 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
735
744
|
case MRB_TT_ARRAY:
|
736
745
|
{
|
737
746
|
struct RArray *a = (struct RArray*)obj;
|
738
|
-
size_t i, e;
|
747
|
+
size_t i, e=ARY_LEN(a);
|
748
|
+
mrb_value *p = ARY_PTR(a);
|
739
749
|
|
740
|
-
for (i=0
|
741
|
-
mrb_gc_mark_value(mrb,
|
750
|
+
for (i=0; i<e; i++) {
|
751
|
+
mrb_gc_mark_value(mrb, p[i]);
|
742
752
|
}
|
743
753
|
}
|
744
754
|
break;
|
@@ -759,6 +769,14 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
759
769
|
mrb_gc_mark_range(mrb, (struct RRange*)obj);
|
760
770
|
break;
|
761
771
|
|
772
|
+
case MRB_TT_BREAK:
|
773
|
+
{
|
774
|
+
struct RBreak *brk = (struct RBreak*)obj;
|
775
|
+
mrb_gc_mark(mrb, (struct RBasic*)mrb_break_proc_get(brk));
|
776
|
+
mrb_gc_mark_value(mrb, mrb_break_value_get(brk));
|
777
|
+
}
|
778
|
+
break;
|
779
|
+
|
762
780
|
default:
|
763
781
|
break;
|
764
782
|
}
|
@@ -769,6 +787,7 @@ mrb_gc_mark(mrb_state *mrb, struct RBasic *obj)
|
|
769
787
|
{
|
770
788
|
if (obj == 0) return;
|
771
789
|
if (!is_white(obj)) return;
|
790
|
+
if (is_red(obj)) return;
|
772
791
|
mrb_assert((obj)->tt != MRB_TT_FREE);
|
773
792
|
add_gray_list(mrb, &mrb->gc, obj);
|
774
793
|
}
|
@@ -778,22 +797,6 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end)
|
|
778
797
|
{
|
779
798
|
DEBUG(fprintf(stderr, "obj_free(%p,tt=%d)\n",obj,obj->tt));
|
780
799
|
switch (obj->tt) {
|
781
|
-
/* immediate - no mark */
|
782
|
-
case MRB_TT_TRUE:
|
783
|
-
case MRB_TT_FIXNUM:
|
784
|
-
case MRB_TT_SYMBOL:
|
785
|
-
/* cannot happen */
|
786
|
-
return;
|
787
|
-
|
788
|
-
#ifndef MRB_WITHOUT_FLOAT
|
789
|
-
case MRB_TT_FLOAT:
|
790
|
-
#ifdef MRB_WORD_BOXING
|
791
|
-
break;
|
792
|
-
#else
|
793
|
-
return;
|
794
|
-
#endif
|
795
|
-
#endif
|
796
|
-
|
797
800
|
case MRB_TT_OBJECT:
|
798
801
|
mrb_gc_free_iv(mrb, (struct RObject*)obj);
|
799
802
|
break;
|
@@ -807,18 +810,20 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end)
|
|
807
810
|
case MRB_TT_SCLASS:
|
808
811
|
mrb_gc_free_mt(mrb, (struct RClass*)obj);
|
809
812
|
mrb_gc_free_iv(mrb, (struct RObject*)obj);
|
810
|
-
|
813
|
+
if (!end)
|
814
|
+
mrb_mc_clear_by_class(mrb, (struct RClass*)obj);
|
811
815
|
break;
|
812
816
|
case MRB_TT_ICLASS:
|
813
817
|
if (MRB_FLAG_TEST(obj, MRB_FL_CLASS_IS_ORIGIN))
|
814
818
|
mrb_gc_free_mt(mrb, (struct RClass*)obj);
|
815
|
-
|
819
|
+
if (!end)
|
820
|
+
mrb_mc_clear_by_class(mrb, (struct RClass*)obj);
|
816
821
|
break;
|
817
822
|
case MRB_TT_ENV:
|
818
823
|
{
|
819
824
|
struct REnv *e = (struct REnv*)obj;
|
820
825
|
|
821
|
-
if (
|
826
|
+
if (MRB_ENV_ONSTACK_P(e)) {
|
822
827
|
/* cannot be freed */
|
823
828
|
e->stack = NULL;
|
824
829
|
break;
|
@@ -838,9 +843,9 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end)
|
|
838
843
|
mrb_callinfo *ce = c->cibase;
|
839
844
|
|
840
845
|
while (ce <= ci) {
|
841
|
-
struct REnv *e = ci->env;
|
846
|
+
struct REnv *e = ci->u.env;
|
842
847
|
if (e && !mrb_object_dead_p(mrb, (struct RBasic*)e) &&
|
843
|
-
e->tt == MRB_TT_ENV &&
|
848
|
+
e->tt == MRB_TT_ENV && MRB_ENV_ONSTACK_P(e)) {
|
844
849
|
mrb_env_unshare(mrb, e);
|
845
850
|
}
|
846
851
|
ci--;
|
@@ -872,7 +877,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end)
|
|
872
877
|
struct RProc *p = (struct RProc*)obj;
|
873
878
|
|
874
879
|
if (!MRB_PROC_CFUNC_P(p) && p->body.irep) {
|
875
|
-
mrb_irep *irep = p->body.irep;
|
880
|
+
mrb_irep *irep = (mrb_irep*)p->body.irep;
|
876
881
|
if (end) {
|
877
882
|
mrb_irep_cutref(mrb, irep);
|
878
883
|
}
|
@@ -928,10 +933,10 @@ root_scan_phase(mrb_state *mrb, mrb_gc *gc)
|
|
928
933
|
mrb_gc_mark(mrb, (struct RBasic*)mrb->hash_class);
|
929
934
|
mrb_gc_mark(mrb, (struct RBasic*)mrb->range_class);
|
930
935
|
|
931
|
-
#ifndef
|
936
|
+
#ifndef MRB_NO_FLOAT
|
932
937
|
mrb_gc_mark(mrb, (struct RBasic*)mrb->float_class);
|
933
938
|
#endif
|
934
|
-
mrb_gc_mark(mrb, (struct RBasic*)mrb->
|
939
|
+
mrb_gc_mark(mrb, (struct RBasic*)mrb->integer_class);
|
935
940
|
mrb_gc_mark(mrb, (struct RBasic*)mrb->true_class);
|
936
941
|
mrb_gc_mark(mrb, (struct RBasic*)mrb->false_class);
|
937
942
|
mrb_gc_mark(mrb, (struct RBasic*)mrb->nil_class);
|
@@ -958,13 +963,12 @@ root_scan_phase(mrb_state *mrb, mrb_gc *gc)
|
|
958
963
|
}
|
959
964
|
}
|
960
965
|
|
966
|
+
/* rough estimation of number of GC marks (non recursive) */
|
961
967
|
static size_t
|
962
|
-
|
968
|
+
gc_gray_counts(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
963
969
|
{
|
964
970
|
size_t children = 0;
|
965
971
|
|
966
|
-
gc_mark_children(mrb, gc, obj);
|
967
|
-
|
968
972
|
switch (obj->tt) {
|
969
973
|
case MRB_TT_ICLASS:
|
970
974
|
children++;
|
@@ -989,7 +993,7 @@ gc_gray_mark(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
989
993
|
break;
|
990
994
|
|
991
995
|
case MRB_TT_ENV:
|
992
|
-
children +=
|
996
|
+
children += MRB_ENV_LEN(obj);
|
993
997
|
break;
|
994
998
|
|
995
999
|
case MRB_TT_FIBER:
|
@@ -1001,7 +1005,7 @@ gc_gray_mark(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
1001
1005
|
if (!c || c->status == MRB_FIBER_TERMINATED) break;
|
1002
1006
|
|
1003
1007
|
/* mark stack */
|
1004
|
-
i = c->stack - c->stbase;
|
1008
|
+
i = c->ci->stack - c->stbase;
|
1005
1009
|
|
1006
1010
|
if (c->ci) {
|
1007
1011
|
i += ci_nregs(c->ci);
|
@@ -1009,9 +1013,6 @@ gc_gray_mark(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
1009
1013
|
if (c->stbase + i > c->stend) i = c->stend - c->stbase;
|
1010
1014
|
children += i;
|
1011
1015
|
|
1012
|
-
/* mark ensure stack */
|
1013
|
-
children += c->eidx;
|
1014
|
-
|
1015
1016
|
/* mark closure */
|
1016
1017
|
if (c->cibase) {
|
1017
1018
|
for (i=0, ci = c->cibase; ci <= c->ci; i++, ci++)
|
@@ -1035,6 +1036,7 @@ gc_gray_mark(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
1035
1036
|
|
1036
1037
|
case MRB_TT_PROC:
|
1037
1038
|
case MRB_TT_RANGE:
|
1039
|
+
case MRB_TT_BREAK:
|
1038
1040
|
children+=2;
|
1039
1041
|
break;
|
1040
1042
|
|
@@ -1048,10 +1050,9 @@ gc_gray_mark(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
1048
1050
|
static void
|
1049
1051
|
gc_mark_gray_list(mrb_state *mrb, mrb_gc *gc) {
|
1050
1052
|
while (gc->gray_list) {
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
gc->gray_list = gc->gray_list->gcnext;
|
1053
|
+
struct RBasic *obj = gc->gray_list;
|
1054
|
+
gc->gray_list = obj->gcnext;
|
1055
|
+
gc_mark_children(mrb, gc, obj);
|
1055
1056
|
}
|
1056
1057
|
}
|
1057
1058
|
|
@@ -1062,7 +1063,10 @@ incremental_marking_phase(mrb_state *mrb, mrb_gc *gc, size_t limit)
|
|
1062
1063
|
size_t tried_marks = 0;
|
1063
1064
|
|
1064
1065
|
while (gc->gray_list && tried_marks < limit) {
|
1065
|
-
|
1066
|
+
struct RBasic *obj = gc->gray_list;
|
1067
|
+
gc->gray_list = obj->gcnext;
|
1068
|
+
gc_mark_children(mrb, gc, obj);
|
1069
|
+
tried_marks += gc_gray_counts(mrb, gc, obj);
|
1066
1070
|
}
|
1067
1071
|
|
1068
1072
|
return tried_marks;
|
@@ -1079,7 +1083,9 @@ final_marking_phase(mrb_state *mrb, mrb_gc *gc)
|
|
1079
1083
|
}
|
1080
1084
|
mrb_gc_mark_gv(mrb);
|
1081
1085
|
mark_context(mrb, mrb->c);
|
1082
|
-
|
1086
|
+
if (mrb->c != mrb->root_c) {
|
1087
|
+
mark_context(mrb, mrb->root_c);
|
1088
|
+
}
|
1083
1089
|
mrb_gc_mark(mrb, (struct RBasic*)mrb->exc);
|
1084
1090
|
gc_mark_gray_list(mrb, gc);
|
1085
1091
|
mrb_assert(gc->gray_list == NULL);
|
@@ -1294,6 +1300,7 @@ mrb_full_gc(mrb_state *mrb)
|
|
1294
1300
|
{
|
1295
1301
|
mrb_gc *gc = &mrb->gc;
|
1296
1302
|
|
1303
|
+
if (!mrb->c) return;
|
1297
1304
|
if (gc->disabled || gc->iterating) return;
|
1298
1305
|
|
1299
1306
|
GC_INVOKE_TIME_REPORT("mrb_full_gc()");
|
@@ -1317,6 +1324,9 @@ mrb_full_gc(mrb_state *mrb)
|
|
1317
1324
|
gc->full = FALSE;
|
1318
1325
|
}
|
1319
1326
|
|
1327
|
+
#ifdef MRB_USE_MALLOC_TRIM
|
1328
|
+
malloc_trim(0);
|
1329
|
+
#endif
|
1320
1330
|
GC_TIME_STOP_AND_REPORT;
|
1321
1331
|
}
|
1322
1332
|
|
@@ -1601,11 +1611,12 @@ mrb_objspace_each_objects(mrb_state *mrb, mrb_each_object_callback *callback, vo
|
|
1601
1611
|
}
|
1602
1612
|
}
|
1603
1613
|
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1607
|
-
|
1608
|
-
|
1614
|
+
size_t
|
1615
|
+
mrb_objspace_page_slot_size(void)
|
1616
|
+
{
|
1617
|
+
return sizeof(RVALUE);
|
1618
|
+
}
|
1619
|
+
|
1609
1620
|
|
1610
1621
|
void
|
1611
1622
|
mrb_init_gc(mrb_state *mrb)
|
@@ -1626,278 +1637,4 @@ mrb_init_gc(mrb_state *mrb)
|
|
1626
1637
|
mrb_define_class_method(mrb, gc, "step_ratio=", gc_step_ratio_set, MRB_ARGS_REQ(1));
|
1627
1638
|
mrb_define_class_method(mrb, gc, "generational_mode=", gc_generational_mode_set, MRB_ARGS_REQ(1));
|
1628
1639
|
mrb_define_class_method(mrb, gc, "generational_mode", gc_generational_mode_get, MRB_ARGS_NONE());
|
1629
|
-
#ifdef GC_TEST
|
1630
|
-
#ifdef GC_DEBUG
|
1631
|
-
mrb_define_class_method(mrb, gc, "test", gc_test, MRB_ARGS_NONE());
|
1632
|
-
#endif
|
1633
|
-
#endif
|
1634
|
-
}
|
1635
|
-
|
1636
|
-
#ifdef GC_TEST
|
1637
|
-
#ifdef GC_DEBUG
|
1638
|
-
void
|
1639
|
-
test_mrb_field_write_barrier(void)
|
1640
|
-
{
|
1641
|
-
mrb_state *mrb = mrb_open();
|
1642
|
-
struct RBasic *obj, *value;
|
1643
|
-
mrb_gc *gc = &mrb->gc;
|
1644
|
-
|
1645
|
-
puts("test_mrb_field_write_barrier");
|
1646
|
-
gc->generational = FALSE;
|
1647
|
-
obj = mrb_basic_ptr(mrb_ary_new(mrb));
|
1648
|
-
value = mrb_basic_ptr(mrb_str_new_lit(mrb, "value"));
|
1649
|
-
paint_black(obj);
|
1650
|
-
paint_partial_white(gc, value);
|
1651
|
-
|
1652
|
-
|
1653
|
-
puts(" in MRB_GC_STATE_MARK");
|
1654
|
-
gc->state = MRB_GC_STATE_MARK;
|
1655
|
-
mrb_field_write_barrier(mrb, obj, value);
|
1656
|
-
|
1657
|
-
mrb_assert(is_gray(value));
|
1658
|
-
|
1659
|
-
|
1660
|
-
puts(" in MRB_GC_STATE_SWEEP");
|
1661
|
-
paint_partial_white(gc, value);
|
1662
|
-
gc->state = MRB_GC_STATE_SWEEP;
|
1663
|
-
mrb_field_write_barrier(mrb, obj, value);
|
1664
|
-
|
1665
|
-
mrb_assert(obj->color & gc->current_white_part);
|
1666
|
-
mrb_assert(value->color & gc->current_white_part);
|
1667
|
-
|
1668
|
-
|
1669
|
-
puts(" fail with black");
|
1670
|
-
gc->state = MRB_GC_STATE_MARK;
|
1671
|
-
paint_white(obj);
|
1672
|
-
paint_partial_white(gc, value);
|
1673
|
-
mrb_field_write_barrier(mrb, obj, value);
|
1674
|
-
|
1675
|
-
mrb_assert(obj->color & gc->current_white_part);
|
1676
|
-
|
1677
|
-
|
1678
|
-
puts(" fail with gray");
|
1679
|
-
gc->state = MRB_GC_STATE_MARK;
|
1680
|
-
paint_black(obj);
|
1681
|
-
paint_gray(value);
|
1682
|
-
mrb_field_write_barrier(mrb, obj, value);
|
1683
|
-
|
1684
|
-
mrb_assert(is_gray(value));
|
1685
|
-
|
1686
|
-
|
1687
|
-
{
|
1688
|
-
puts("test_mrb_field_write_barrier_value");
|
1689
|
-
obj = mrb_basic_ptr(mrb_ary_new(mrb));
|
1690
|
-
mrb_value value = mrb_str_new_lit(mrb, "value");
|
1691
|
-
paint_black(obj);
|
1692
|
-
paint_partial_white(gc, mrb_basic_ptr(value));
|
1693
|
-
|
1694
|
-
gc->state = MRB_GC_STATE_MARK;
|
1695
|
-
mrb_field_write_barrier_value(mrb, obj, value);
|
1696
|
-
|
1697
|
-
mrb_assert(is_gray(mrb_basic_ptr(value)));
|
1698
|
-
}
|
1699
|
-
|
1700
|
-
mrb_close(mrb);
|
1701
|
-
}
|
1702
|
-
|
1703
|
-
void
|
1704
|
-
test_mrb_write_barrier(void)
|
1705
|
-
{
|
1706
|
-
mrb_state *mrb = mrb_open();
|
1707
|
-
struct RBasic *obj;
|
1708
|
-
mrb_gc *gc = &mrb->gc;
|
1709
|
-
|
1710
|
-
puts("test_mrb_write_barrier");
|
1711
|
-
obj = mrb_basic_ptr(mrb_ary_new(mrb));
|
1712
|
-
paint_black(obj);
|
1713
|
-
|
1714
|
-
puts(" in MRB_GC_STATE_MARK");
|
1715
|
-
gc->state = MRB_GC_STATE_MARK;
|
1716
|
-
mrb_write_barrier(mrb, obj);
|
1717
|
-
|
1718
|
-
mrb_assert(is_gray(obj));
|
1719
|
-
mrb_assert(gc->atomic_gray_list == obj);
|
1720
|
-
|
1721
|
-
|
1722
|
-
puts(" fail with gray");
|
1723
|
-
paint_gray(obj);
|
1724
|
-
mrb_write_barrier(mrb, obj);
|
1725
|
-
|
1726
|
-
mrb_assert(is_gray(obj));
|
1727
|
-
|
1728
|
-
mrb_close(mrb);
|
1729
|
-
}
|
1730
|
-
|
1731
|
-
void
|
1732
|
-
test_add_gray_list(void)
|
1733
|
-
{
|
1734
|
-
mrb_state *mrb = mrb_open();
|
1735
|
-
struct RBasic *obj1, *obj2;
|
1736
|
-
mrb_gc *gc = &mrb->gc;
|
1737
|
-
|
1738
|
-
puts("test_add_gray_list");
|
1739
|
-
change_gen_gc_mode(mrb, gc, FALSE);
|
1740
|
-
mrb_assert(gc->gray_list == NULL);
|
1741
|
-
obj1 = mrb_basic_ptr(mrb_str_new_lit(mrb, "test"));
|
1742
|
-
add_gray_list(mrb, gc, obj1);
|
1743
|
-
mrb_assert(gc->gray_list == obj1);
|
1744
|
-
mrb_assert(is_gray(obj1));
|
1745
|
-
|
1746
|
-
obj2 = mrb_basic_ptr(mrb_str_new_lit(mrb, "test"));
|
1747
|
-
add_gray_list(mrb, gc, obj2);
|
1748
|
-
mrb_assert(gc->gray_list == obj2);
|
1749
|
-
mrb_assert(gc->gray_list->gcnext == obj1);
|
1750
|
-
mrb_assert(is_gray(obj2));
|
1751
|
-
|
1752
|
-
mrb_close(mrb);
|
1753
|
-
}
|
1754
|
-
|
1755
|
-
void
|
1756
|
-
test_gc_gray_mark(void)
|
1757
|
-
{
|
1758
|
-
mrb_state *mrb = mrb_open();
|
1759
|
-
mrb_value obj_v, value_v;
|
1760
|
-
struct RBasic *obj;
|
1761
|
-
size_t gray_num = 0;
|
1762
|
-
mrb_gc *gc = &mrb->gc;
|
1763
|
-
|
1764
|
-
puts("test_gc_gray_mark");
|
1765
|
-
|
1766
|
-
puts(" in MRB_TT_CLASS");
|
1767
|
-
obj = (struct RBasic*)mrb->object_class;
|
1768
|
-
paint_gray(obj);
|
1769
|
-
gray_num = gc_gray_mark(mrb, gc, obj);
|
1770
|
-
mrb_assert(is_black(obj));
|
1771
|
-
mrb_assert(gray_num > 1);
|
1772
|
-
|
1773
|
-
puts(" in MRB_TT_ARRAY");
|
1774
|
-
obj_v = mrb_ary_new(mrb);
|
1775
|
-
value_v = mrb_str_new_lit(mrb, "test");
|
1776
|
-
paint_gray(mrb_basic_ptr(obj_v));
|
1777
|
-
paint_partial_white(gc, mrb_basic_ptr(value_v));
|
1778
|
-
mrb_ary_push(mrb, obj_v, value_v);
|
1779
|
-
gray_num = gc_gray_mark(mrb, gc, mrb_basic_ptr(obj_v));
|
1780
|
-
mrb_assert(is_black(mrb_basic_ptr(obj_v)));
|
1781
|
-
mrb_assert(is_gray(mrb_basic_ptr(value_v)));
|
1782
|
-
mrb_assert(gray_num == 1);
|
1783
|
-
|
1784
|
-
mrb_close(mrb);
|
1785
|
-
}
|
1786
|
-
|
1787
|
-
void
|
1788
|
-
test_incremental_gc(void)
|
1789
|
-
{
|
1790
|
-
mrb_state *mrb = mrb_open();
|
1791
|
-
size_t max = ~0, live = 0, total = 0, freed = 0;
|
1792
|
-
RVALUE *free;
|
1793
|
-
mrb_heap_page *page;
|
1794
|
-
mrb_gc *gc = &mrb->gc;
|
1795
|
-
|
1796
|
-
puts("test_incremental_gc");
|
1797
|
-
change_gen_gc_mode(mrb, gc, FALSE);
|
1798
|
-
|
1799
|
-
puts(" in mrb_full_gc");
|
1800
|
-
mrb_full_gc(mrb);
|
1801
|
-
|
1802
|
-
mrb_assert(gc->state == MRB_GC_STATE_ROOT);
|
1803
|
-
puts(" in MRB_GC_STATE_ROOT");
|
1804
|
-
incremental_gc(mrb, gc, max);
|
1805
|
-
mrb_assert(gc->state == MRB_GC_STATE_MARK);
|
1806
|
-
puts(" in MRB_GC_STATE_MARK");
|
1807
|
-
incremental_gc_until(mrb, gc, MRB_GC_STATE_SWEEP);
|
1808
|
-
mrb_assert(gc->state == MRB_GC_STATE_SWEEP);
|
1809
|
-
|
1810
|
-
puts(" in MRB_GC_STATE_SWEEP");
|
1811
|
-
page = gc->heaps;
|
1812
|
-
while (page) {
|
1813
|
-
RVALUE *p = objects(page);
|
1814
|
-
RVALUE *e = p + MRB_HEAP_PAGE_SIZE;
|
1815
|
-
while (p<e) {
|
1816
|
-
if (is_black(&p->as.basic)) {
|
1817
|
-
live++;
|
1818
|
-
}
|
1819
|
-
if (is_gray(&p->as.basic) && !is_dead(gc, &p->as.basic)) {
|
1820
|
-
printf("%p\n", &p->as.basic);
|
1821
|
-
}
|
1822
|
-
p++;
|
1823
|
-
}
|
1824
|
-
page = page->next;
|
1825
|
-
total += MRB_HEAP_PAGE_SIZE;
|
1826
|
-
}
|
1827
|
-
|
1828
|
-
mrb_assert(gc->gray_list == NULL);
|
1829
|
-
|
1830
|
-
incremental_gc(mrb, gc, max);
|
1831
|
-
mrb_assert(gc->state == MRB_GC_STATE_SWEEP);
|
1832
|
-
|
1833
|
-
incremental_gc(mrb, gc, max);
|
1834
|
-
mrb_assert(gc->state == MRB_GC_STATE_ROOT);
|
1835
|
-
|
1836
|
-
free = (RVALUE*)gc->heaps->freelist;
|
1837
|
-
while (free) {
|
1838
|
-
freed++;
|
1839
|
-
free = (RVALUE*)free->as.free.next;
|
1840
|
-
}
|
1841
|
-
|
1842
|
-
mrb_assert(gc->live == live);
|
1843
|
-
mrb_assert(gc->live == total-freed);
|
1844
|
-
|
1845
|
-
puts("test_incremental_gc(gen)");
|
1846
|
-
incremental_gc_until(mrb, gc, MRB_GC_STATE_SWEEP);
|
1847
|
-
change_gen_gc_mode(mrb, gc, TRUE);
|
1848
|
-
|
1849
|
-
mrb_assert(gc->full == FALSE);
|
1850
|
-
mrb_assert(gc->state == MRB_GC_STATE_ROOT);
|
1851
|
-
|
1852
|
-
puts(" in minor");
|
1853
|
-
mrb_assert(is_minor_gc(gc));
|
1854
|
-
mrb_assert(gc->majorgc_old_threshold > 0);
|
1855
|
-
gc->majorgc_old_threshold = 0;
|
1856
|
-
mrb_incremental_gc(mrb);
|
1857
|
-
mrb_assert(gc->full == TRUE);
|
1858
|
-
mrb_assert(gc->state == MRB_GC_STATE_ROOT);
|
1859
|
-
|
1860
|
-
puts(" in major");
|
1861
|
-
mrb_assert(is_major_gc(gc));
|
1862
|
-
do {
|
1863
|
-
mrb_incremental_gc(mrb);
|
1864
|
-
} while (gc->state != MRB_GC_STATE_ROOT);
|
1865
|
-
mrb_assert(gc->full == FALSE);
|
1866
|
-
|
1867
|
-
mrb_close(mrb);
|
1868
|
-
}
|
1869
|
-
|
1870
|
-
void
|
1871
|
-
test_incremental_sweep_phase(void)
|
1872
|
-
{
|
1873
|
-
mrb_state *mrb = mrb_open();
|
1874
|
-
mrb_gc *gc = &mrb->gc;
|
1875
|
-
|
1876
|
-
puts("test_incremental_sweep_phase");
|
1877
|
-
|
1878
|
-
add_heap(mrb, gc);
|
1879
|
-
gc->sweeps = gc->heaps;
|
1880
|
-
|
1881
|
-
mrb_assert(gc->heaps->next->next == NULL);
|
1882
|
-
mrb_assert(gc->free_heaps->next->next == NULL);
|
1883
|
-
incremental_sweep_phase(mrb, gc, MRB_HEAP_PAGE_SIZE * 3);
|
1884
|
-
|
1885
|
-
mrb_assert(gc->heaps->next == NULL);
|
1886
|
-
mrb_assert(gc->heaps == gc->free_heaps);
|
1887
|
-
|
1888
|
-
mrb_close(mrb);
|
1889
|
-
}
|
1890
|
-
|
1891
|
-
static mrb_value
|
1892
|
-
gc_test(mrb_state *mrb, mrb_value self)
|
1893
|
-
{
|
1894
|
-
test_mrb_field_write_barrier();
|
1895
|
-
test_mrb_write_barrier();
|
1896
|
-
test_add_gray_list();
|
1897
|
-
test_gc_gray_mark();
|
1898
|
-
test_incremental_gc();
|
1899
|
-
test_incremental_sweep_phase();
|
1900
|
-
return mrb_nil_value();
|
1901
1640
|
}
|
1902
|
-
#endif /* GC_DEBUG */
|
1903
|
-
#endif /* GC_TEST */
|