script_core 0.2.2 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +41 -45
- data/.travis.yml +2 -1
- data/Gemfile +3 -3
- data/README.md +7 -1
- data/bootstrap.sh +2 -2
- 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 +106 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +51 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +24 -0
- data/ext/enterprise_script_service/mruby/.gitignore +3 -0
- data/ext/enterprise_script_service/mruby/.travis.yml +6 -9
- data/ext/enterprise_script_service/mruby/AUTHORS +1 -0
- data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
- data/ext/enterprise_script_service/mruby/LICENSE +1 -1
- data/ext/enterprise_script_service/mruby/README.md +6 -2
- data/ext/enterprise_script_service/mruby/appveyor.yml +9 -12
- data/ext/enterprise_script_service/mruby/appveyor_config.rb +9 -0
- data/ext/enterprise_script_service/mruby/build_config.rb +6 -6
- data/ext/enterprise_script_service/mruby/doc/guides/compile.md +6 -2
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +4 -8
- data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
- data/ext/enterprise_script_service/mruby/doc/opcode.md +108 -95
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_ArduinoDue.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelEdison.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelGalileo.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_RX630.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_chipKITMax32.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_dreamcast_shelf.rb +108 -0
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +10 -7
- data/ext/enterprise_script_service/mruby/include/mruby.h +24 -9
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +4 -0
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +11 -2
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -10
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +10 -0
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +11 -3
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +1 -17
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +10 -0
- data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +23 -5
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +3 -2
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +13 -8
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +2 -1
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +32 -41
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +4 -4
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +2 -30
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +21 -46
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +9 -0
- data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +7 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +0 -31
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -8
- 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 +5 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +5 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +7 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +24 -21
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +6 -2
- 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-class-ext/src/class.c +6 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +76 -48
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +107 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13153 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +13 -15
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +1 -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 +3 -214
- 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 +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +3 -4
- 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_constants.rb +0 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +7 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +77 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +18 -36
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +324 -122
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +18 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +32 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +57 -49
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +6 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +15 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +9 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +4 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +3 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +113 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +6 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +9 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
- 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 +62 -25
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +5 -23
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +4 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +5 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +11 -15
- data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -3
- data/ext/enterprise_script_service/mruby/src/array.c +25 -11
- data/ext/enterprise_script_service/mruby/src/backtrace.c +2 -2
- data/ext/enterprise_script_service/mruby/src/class.c +48 -32
- data/ext/enterprise_script_service/mruby/src/codedump.c +4 -0
- data/ext/enterprise_script_service/mruby/src/debug.c +8 -5
- data/ext/enterprise_script_service/mruby/src/dump.c +3 -65
- data/ext/enterprise_script_service/mruby/src/error.c +58 -7
- data/ext/enterprise_script_service/mruby/src/etc.c +13 -5
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +98 -21
- data/ext/enterprise_script_service/mruby/src/gc.c +15 -280
- data/ext/enterprise_script_service/mruby/src/hash.c +13 -21
- data/ext/enterprise_script_service/mruby/src/kernel.c +6 -9
- data/ext/enterprise_script_service/mruby/src/load.c +56 -30
- data/ext/enterprise_script_service/mruby/src/numeric.c +50 -70
- data/ext/enterprise_script_service/mruby/src/object.c +23 -5
- data/ext/enterprise_script_service/mruby/src/print.c +27 -3
- data/ext/enterprise_script_service/mruby/src/proc.c +26 -7
- data/ext/enterprise_script_service/mruby/src/range.c +4 -12
- data/ext/enterprise_script_service/mruby/src/state.c +34 -11
- data/ext/enterprise_script_service/mruby/src/string.c +93 -56
- data/ext/enterprise_script_service/mruby/src/symbol.c +13 -12
- data/ext/enterprise_script_service/mruby/src/vm.c +48 -53
- data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +19 -22
- data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +1 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +3 -3
- data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +6 -6
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +8 -8
- data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
- 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/kernel.rb +15 -24
- data/ext/enterprise_script_service/mruby/travis_config.rb +0 -14
- 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/result.rb +1 -5
- data/lib/script_core/service_channel.rb +1 -0
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/script_core.rake +3 -1
- data/script_core.gemspec +2 -2
- data/spec/dummy/app/lib/script_engine.rb +64 -5
- metadata +68 -30
- 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/msgpack/.travis.yml +0 -258
@@ -201,6 +201,8 @@ gettimeofday_time(void)
|
|
201
201
|
|
202
202
|
#define objects(p) ((RVALUE *)p->objects)
|
203
203
|
|
204
|
+
mrb_noreturn void mrb_raise_nomemory(mrb_state *mrb);
|
205
|
+
|
204
206
|
MRB_API void*
|
205
207
|
mrb_realloc_simple(mrb_state *mrb, void *p, size_t len)
|
206
208
|
{
|
@@ -224,12 +226,12 @@ mrb_realloc(mrb_state *mrb, void *p, size_t len)
|
|
224
226
|
if (len == 0) return p2;
|
225
227
|
if (p2 == NULL) {
|
226
228
|
if (mrb->gc.out_of_memory) {
|
227
|
-
|
229
|
+
mrb_raise_nomemory(mrb);
|
228
230
|
/* mrb_panic(mrb); */
|
229
231
|
}
|
230
232
|
else {
|
231
233
|
mrb->gc.out_of_memory = TRUE;
|
232
|
-
|
234
|
+
mrb_raise_nomemory(mrb);
|
233
235
|
}
|
234
236
|
}
|
235
237
|
else {
|
@@ -714,10 +716,10 @@ gc_mark_children(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
714
716
|
struct REnv *e = (struct REnv*)obj;
|
715
717
|
mrb_int i, len;
|
716
718
|
|
717
|
-
if (
|
719
|
+
if (MRB_ENV_ONSTACK_P(e) && e->cxt && e->cxt->fib) {
|
718
720
|
mrb_gc_mark(mrb, (struct RBasic*)e->cxt->fib);
|
719
721
|
}
|
720
|
-
len =
|
722
|
+
len = MRB_ENV_LEN(e);
|
721
723
|
for (i=0; i<len; i++) {
|
722
724
|
mrb_gc_mark_value(mrb, e->stack[i]);
|
723
725
|
}
|
@@ -818,7 +820,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end)
|
|
818
820
|
{
|
819
821
|
struct REnv *e = (struct REnv*)obj;
|
820
822
|
|
821
|
-
if (
|
823
|
+
if (MRB_ENV_ONSTACK_P(e)) {
|
822
824
|
/* cannot be freed */
|
823
825
|
e->stack = NULL;
|
824
826
|
break;
|
@@ -840,7 +842,7 @@ obj_free(mrb_state *mrb, struct RBasic *obj, int end)
|
|
840
842
|
while (ce <= ci) {
|
841
843
|
struct REnv *e = ci->env;
|
842
844
|
if (e && !mrb_object_dead_p(mrb, (struct RBasic*)e) &&
|
843
|
-
e->tt == MRB_TT_ENV &&
|
845
|
+
e->tt == MRB_TT_ENV && MRB_ENV_ONSTACK_P(e)) {
|
844
846
|
mrb_env_unshare(mrb, e);
|
845
847
|
}
|
846
848
|
ci--;
|
@@ -958,13 +960,12 @@ root_scan_phase(mrb_state *mrb, mrb_gc *gc)
|
|
958
960
|
}
|
959
961
|
}
|
960
962
|
|
963
|
+
/* rough estimation of number of GC marks (non recursive) */
|
961
964
|
static size_t
|
962
|
-
|
965
|
+
gc_gray_counts(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
963
966
|
{
|
964
967
|
size_t children = 0;
|
965
968
|
|
966
|
-
gc_mark_children(mrb, gc, obj);
|
967
|
-
|
968
969
|
switch (obj->tt) {
|
969
970
|
case MRB_TT_ICLASS:
|
970
971
|
children++;
|
@@ -989,7 +990,7 @@ gc_gray_mark(mrb_state *mrb, mrb_gc *gc, struct RBasic *obj)
|
|
989
990
|
break;
|
990
991
|
|
991
992
|
case MRB_TT_ENV:
|
992
|
-
children +=
|
993
|
+
children += MRB_ENV_LEN(obj);
|
993
994
|
break;
|
994
995
|
|
995
996
|
case MRB_TT_FIBER:
|
@@ -1062,7 +1063,9 @@ 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_mark_children(mrb, gc, obj);
|
1068
|
+
tried_marks += gc_gray_counts(mrb, gc, obj);
|
1066
1069
|
}
|
1067
1070
|
|
1068
1071
|
return tried_marks;
|
@@ -1294,6 +1297,7 @@ mrb_full_gc(mrb_state *mrb)
|
|
1294
1297
|
{
|
1295
1298
|
mrb_gc *gc = &mrb->gc;
|
1296
1299
|
|
1300
|
+
if (!mrb->c) return;
|
1297
1301
|
if (gc->disabled || gc->iterating) return;
|
1298
1302
|
|
1299
1303
|
GC_INVOKE_TIME_REPORT("mrb_full_gc()");
|
@@ -1632,272 +1636,3 @@ mrb_init_gc(mrb_state *mrb)
|
|
1632
1636
|
#endif
|
1633
1637
|
#endif
|
1634
1638
|
}
|
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
|
-
}
|
1902
|
-
#endif /* GC_DEBUG */
|
1903
|
-
#endif /* GC_TEST */
|
@@ -73,7 +73,7 @@ ht_hash_func(mrb_state *mrb, htable *t, mrb_value key)
|
|
73
73
|
|
74
74
|
default:
|
75
75
|
hv = mrb_funcall(mrb, key, "hash", 0);
|
76
|
-
h = (size_t)
|
76
|
+
h = (size_t)tt ^ (size_t)mrb_fixnum(hv);
|
77
77
|
break;
|
78
78
|
}
|
79
79
|
if (index && (index != t->index || capa != index->capa)) {
|
@@ -222,9 +222,8 @@ static void
|
|
222
222
|
ht_compact(mrb_state *mrb, htable *t)
|
223
223
|
{
|
224
224
|
segment *seg;
|
225
|
-
|
225
|
+
uint16_t i, i2;
|
226
226
|
segment *seg2 = NULL;
|
227
|
-
mrb_int i2;
|
228
227
|
mrb_int size = 0;
|
229
228
|
|
230
229
|
if (t == NULL) return;
|
@@ -366,7 +365,7 @@ ht_put(mrb_state *mrb, htable *t, mrb_value key, mrb_value val)
|
|
366
365
|
if (!seg->next && i >= t->last_len) {
|
367
366
|
seg->e[i].key = key;
|
368
367
|
seg->e[i].val = val;
|
369
|
-
t->last_len = i+1;
|
368
|
+
t->last_len = (uint16_t)i+1;
|
370
369
|
t->size++;
|
371
370
|
return;
|
372
371
|
}
|
@@ -374,7 +373,7 @@ ht_put(mrb_state *mrb, htable *t, mrb_value key, mrb_value val)
|
|
374
373
|
deleted++;
|
375
374
|
continue;
|
376
375
|
}
|
377
|
-
if (ht_hash_equal(mrb, t,
|
376
|
+
if (ht_hash_equal(mrb, t, key, k)) {
|
378
377
|
seg->e[i].val = val;
|
379
378
|
return;
|
380
379
|
}
|
@@ -408,7 +407,7 @@ ht_put(mrb_state *mrb, htable *t, mrb_value key, mrb_value val)
|
|
408
407
|
}
|
409
408
|
seg->e[i].key = key;
|
410
409
|
seg->e[i].val = val;
|
411
|
-
t->last_len = i+1;
|
410
|
+
t->last_len = (uint16_t)i+1;
|
412
411
|
if (t->index == NULL && t->size > MRB_HT_INIT_SIZE*4) {
|
413
412
|
ht_index(mrb, t);
|
414
413
|
}
|
@@ -455,7 +454,7 @@ ht_get(mrb_state *mrb, htable *t, mrb_value key, mrb_value *vp)
|
|
455
454
|
return FALSE;
|
456
455
|
}
|
457
456
|
if (mrb_undef_p(k)) continue;
|
458
|
-
if (ht_hash_equal(mrb, t,
|
457
|
+
if (ht_hash_equal(mrb, t, key, k)) {
|
459
458
|
if (vp) *vp = seg->e[i].val;
|
460
459
|
return TRUE;
|
461
460
|
}
|
@@ -642,12 +641,11 @@ static mrb_value hash_default(mrb_state *mrb, mrb_value hash, mrb_value key);
|
|
642
641
|
static mrb_value
|
643
642
|
mrb_hash_init_copy(mrb_state *mrb, mrb_value self)
|
644
643
|
{
|
645
|
-
mrb_value orig;
|
644
|
+
mrb_value orig = mrb_get_arg1(mrb);
|
646
645
|
struct RHash* copy;
|
647
646
|
htable *orig_h;
|
648
647
|
mrb_value ifnone, vret;
|
649
648
|
|
650
|
-
mrb_get_args(mrb, "o", &orig);
|
651
649
|
if (mrb_obj_equal(mrb, self, orig)) return self;
|
652
650
|
if ((mrb_type(self) != mrb_type(orig)) || (mrb_obj_class(mrb, self) != mrb_obj_class(mrb, orig))) {
|
653
651
|
mrb_raise(mrb, E_TYPE_ERROR, "initialize_copy should take same class object");
|
@@ -829,9 +827,8 @@ mrb_hash_init(mrb_state *mrb, mrb_value hash)
|
|
829
827
|
static mrb_value
|
830
828
|
mrb_hash_aget(mrb_state *mrb, mrb_value self)
|
831
829
|
{
|
832
|
-
mrb_value key;
|
830
|
+
mrb_value key = mrb_get_arg1(mrb);
|
833
831
|
|
834
|
-
mrb_get_args(mrb, "o", &key);
|
835
832
|
return mrb_hash_get(mrb, self, key);
|
836
833
|
}
|
837
834
|
|
@@ -914,9 +911,8 @@ mrb_hash_default(mrb_state *mrb, mrb_value hash)
|
|
914
911
|
static mrb_value
|
915
912
|
mrb_hash_set_default(mrb_state *mrb, mrb_value hash)
|
916
913
|
{
|
917
|
-
mrb_value ifnone;
|
914
|
+
mrb_value ifnone = mrb_get_arg1(mrb);
|
918
915
|
|
919
|
-
mrb_get_args(mrb, "o", &ifnone);
|
920
916
|
mrb_hash_modify(mrb, hash);
|
921
917
|
mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
|
922
918
|
RHASH(hash)->flags &= ~MRB_HASH_PROC_DEFAULT;
|
@@ -970,9 +966,8 @@ mrb_hash_default_proc(mrb_state *mrb, mrb_value hash)
|
|
970
966
|
static mrb_value
|
971
967
|
mrb_hash_set_default_proc(mrb_state *mrb, mrb_value hash)
|
972
968
|
{
|
973
|
-
mrb_value ifnone;
|
969
|
+
mrb_value ifnone = mrb_get_arg1(mrb);
|
974
970
|
|
975
|
-
mrb_get_args(mrb, "o", &ifnone);
|
976
971
|
mrb_hash_modify(mrb, hash);
|
977
972
|
mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
|
978
973
|
if (!mrb_nil_p(ifnone)) {
|
@@ -1004,9 +999,8 @@ mrb_hash_delete_key(mrb_state *mrb, mrb_value hash, mrb_value key)
|
|
1004
999
|
static mrb_value
|
1005
1000
|
mrb_hash_delete(mrb_state *mrb, mrb_value self)
|
1006
1001
|
{
|
1007
|
-
mrb_value key;
|
1002
|
+
mrb_value key = mrb_get_arg1(mrb);
|
1008
1003
|
|
1009
|
-
mrb_get_args(mrb, "o", &key);
|
1010
1004
|
mrb_hash_modify(mrb, self);
|
1011
1005
|
return mrb_hash_delete_key(mrb, self, key);
|
1012
1006
|
}
|
@@ -1289,10 +1283,9 @@ mrb_hash_key_p(mrb_state *mrb, mrb_value hash, mrb_value key)
|
|
1289
1283
|
static mrb_value
|
1290
1284
|
mrb_hash_has_key(mrb_state *mrb, mrb_value hash)
|
1291
1285
|
{
|
1292
|
-
mrb_value key;
|
1286
|
+
mrb_value key = mrb_get_arg1(mrb);
|
1293
1287
|
mrb_bool key_p;
|
1294
1288
|
|
1295
|
-
mrb_get_args(mrb, "o", &key);
|
1296
1289
|
key_p = mrb_hash_key_p(mrb, hash, key);
|
1297
1290
|
return mrb_bool_value(key_p);
|
1298
1291
|
}
|
@@ -1332,10 +1325,9 @@ hash_has_value_i(mrb_state *mrb, mrb_value key, mrb_value val, void *p)
|
|
1332
1325
|
static mrb_value
|
1333
1326
|
mrb_hash_has_value(mrb_state *mrb, mrb_value hash)
|
1334
1327
|
{
|
1335
|
-
mrb_value val;
|
1328
|
+
mrb_value val = mrb_get_arg1(mrb);
|
1336
1329
|
struct has_v_arg arg;
|
1337
1330
|
|
1338
|
-
mrb_get_args(mrb, "o", &val);
|
1339
1331
|
arg.found = FALSE;
|
1340
1332
|
arg.val = val;
|
1341
1333
|
ht_foreach(mrb, RHASH_TBL(hash), hash_has_value_i, &arg);
|