script_core 0.2.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +35 -57
- data/.ruby-version +1 -1
- data/Gemfile +2 -2
- data/README.md +7 -1
- data/ext/enterprise_script_service/Rakefile +1 -1
- data/ext/enterprise_script_service/libseccomp/.travis.yml +24 -12
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +32 -0
- data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
- data/ext/enterprise_script_service/libseccomp/CREDITS +11 -0
- data/ext/enterprise_script_service/libseccomp/README.md +21 -1
- data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
- data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
- data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +19 -0
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
- data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
- data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
- data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
- data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
- data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
- data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
- data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
- data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
- data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
- data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
- data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +10 -2
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
- data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
- data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +4 -3
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +34 -10
- data/ext/enterprise_script_service/libseccomp/tests/regression +10 -3
- data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
- data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
- data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +4 -0
- data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
- data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +149 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +55 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/lint.yml +23 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/oss-fuzz.yml +27 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/spell-checker.yml +17 -0
- data/ext/enterprise_script_service/mruby/.gitignore +3 -0
- data/ext/enterprise_script_service/mruby/.gitlab-ci.yml +3 -3
- data/ext/enterprise_script_service/mruby/.markdownlint.yml +16 -0
- data/ext/enterprise_script_service/mruby/.travis.yml +7 -10
- data/ext/enterprise_script_service/mruby/.yamllint +8 -0
- data/ext/enterprise_script_service/mruby/AUTHORS +4 -0
- data/ext/enterprise_script_service/mruby/CODEOWNERS +1 -0
- data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +6 -13
- data/ext/enterprise_script_service/mruby/Doxyfile +4 -4
- data/ext/enterprise_script_service/mruby/LICENSE +1 -1
- data/ext/enterprise_script_service/mruby/Makefile +1 -1
- data/ext/enterprise_script_service/mruby/README.md +5 -11
- data/ext/enterprise_script_service/mruby/Rakefile +18 -108
- data/ext/enterprise_script_service/mruby/TODO.md +17 -0
- data/ext/enterprise_script_service/mruby/appveyor.yml +29 -26
- data/ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb +1 -1
- data/ext/enterprise_script_service/mruby/build_config.rb +9 -152
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_ArduinoDue.rb → build_config/ArduinoDue.rb} +4 -21
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelEdison.rb → build_config/IntelEdison.rb} +4 -4
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelGalileo.rb → build_config/IntelGalileo.rb} +3 -20
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_RX630.rb → build_config/RX630.rb} +4 -21
- data/ext/enterprise_script_service/mruby/build_config/android_arm64-v8a.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/android_armeabi.rb +11 -0
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_android_armeabi_v7a_neon_hard.rb → build_config/android_armeabi_v7a_neon_hard.rb} +0 -15
- data/ext/enterprise_script_service/mruby/build_config/bench.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/boxing.rb +21 -0
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_chipKITMax32.rb → build_config/chipKITMax32.rb} +4 -21
- data/ext/enterprise_script_service/mruby/{appveyor_config.rb → build_config/ci/gcc-clang.rb} +11 -8
- data/ext/enterprise_script_service/mruby/build_config/ci/msvc.rb +20 -0
- data/ext/enterprise_script_service/mruby/build_config/clang-asan.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/cross-32bit.rb +14 -0
- data/ext/enterprise_script_service/mruby/build_config/default.rb +80 -0
- data/ext/enterprise_script_service/mruby/build_config/dreamcast_shelf.rb +94 -0
- data/ext/enterprise_script_service/mruby/build_config/gameboyadvance.rb +73 -0
- data/ext/enterprise_script_service/mruby/build_config/host-cxx.rb +12 -0
- data/ext/enterprise_script_service/mruby/build_config/host-debug.rb +20 -0
- data/ext/enterprise_script_service/mruby/build_config/host-gprof.rb +14 -0
- data/ext/enterprise_script_service/mruby/build_config/host-m32.rb +15 -0
- data/ext/enterprise_script_service/mruby/build_config/host-shared.rb +36 -0
- data/ext/enterprise_script_service/mruby/build_config/mrbc.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/no-float.rb +17 -0
- data/ext/enterprise_script_service/mruby/doc/guides/compile.md +142 -49
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +5 -4
- data/ext/enterprise_script_service/mruby/doc/guides/gc-arena-howto.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +53 -30
- data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +31 -14
- data/ext/enterprise_script_service/mruby/doc/guides/symbol.md +83 -0
- data/ext/enterprise_script_service/mruby/doc/limitations.md +35 -36
- data/ext/enterprise_script_service/mruby/doc/mruby3.md +163 -0
- data/ext/enterprise_script_service/mruby/doc/opcode.md +102 -103
- data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +1 -1
- data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +5 -1
- data/ext/enterprise_script_service/mruby/examples/mrbgems/c_extension_example/src/example.c +5 -1
- data/ext/enterprise_script_service/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +1 -1
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +88 -66
- data/ext/enterprise_script_service/mruby/include/mruby.h +160 -104
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +27 -6
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +80 -46
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +8 -8
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +76 -55
- data/ext/enterprise_script_service/mruby/include/mruby/class.h +10 -8
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +14 -1
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +20 -6
- data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +18 -52
- data/ext/enterprise_script_service/mruby/include/mruby/endian.h +44 -0
- data/ext/enterprise_script_service/mruby/include/mruby/error.h +39 -5
- data/ext/enterprise_script_service/mruby/include/mruby/gc.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/hash.h +33 -13
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +74 -14
- data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +19 -9
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +37 -63
- data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +1 -27
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +29 -24
- data/ext/enterprise_script_service/mruby/include/mruby/presym.h +40 -0
- data/ext/enterprise_script_service/mruby/include/mruby/presym/disable.h +70 -0
- data/ext/enterprise_script_service/mruby/include/mruby/presym/enable.h +37 -0
- data/ext/enterprise_script_service/mruby/include/mruby/presym/scanning.h +73 -0
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +93 -21
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +12 -16
- data/ext/enterprise_script_service/mruby/include/mruby/throw.h +14 -3
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +60 -59
- data/ext/enterprise_script_service/mruby/include/mruby/variable.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +25 -6
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +198 -72
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +71 -78
- data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +12 -10
- data/ext/enterprise_script_service/mruby/lib/{mruby-core-ext.rb → mruby/core_ext.rb} +10 -3
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +84 -32
- data/ext/enterprise_script_service/mruby/lib/mruby/lockfile.rb +1 -1
- data/ext/enterprise_script_service/mruby/lib/mruby/presym.rb +132 -0
- data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
- data/ext/enterprise_script_service/mruby/mrbgems/default-no-fpu.gembox +3 -0
- data/ext/enterprise_script_service/mruby/mrbgems/default-no-stdio.gembox +4 -0
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +9 -81
- data/ext/enterprise_script_service/mruby/mrbgems/full-core.gembox +1 -4
- data/ext/enterprise_script_service/mruby/mrbgems/math.gembox +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/metaprog.gembox +15 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +1 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +10 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +30 -18
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mruby-config +18 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +3 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +10 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +14 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +2 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +6 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +23 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +11 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +46 -35
- data/ext/enterprise_script_service/mruby/mrbgems/{mruby-compiler → mruby-bin-mrbc}/bintest/mrbc.rb +0 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +41 -28
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +25 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +26 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrbgem.rake +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrblib/catch.rb +27 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +7 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +495 -436
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/keywords +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/lex.def +49 -44
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +637 -220
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13734 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +20 -23
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +9 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/test/complex.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/mrbgem.rake +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +19 -238
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +19 -15
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +31 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +7 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +5 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +18 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +39 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +9 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +9 -14
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +107 -59
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +22 -38
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +417 -203
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +20 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +33 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +58 -50
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +13 -14
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +13 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/test/math.rb +5 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +56 -73
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +13 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/README.md +4 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +80 -78
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +14 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +8 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +18 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/mrbgem.rake +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/src/memsize.c +231 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/test/memsize.rb +63 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/README.md +15 -18
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +120 -67
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -30
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +65 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +34 -21
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +98 -43
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +39 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +21 -43
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/test/range.rb +27 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +12 -20
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +216 -38
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/test/rational.rb +6 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/README.md +6 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +5 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +47 -45
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +161 -93
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +9 -25
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +23 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +17 -14
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +23 -36
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +7 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/README.md +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +5 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +17 -44
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +37 -41
- data/ext/enterprise_script_service/mruby/mrbgems/stdlib-ext.gembox +18 -0
- data/ext/enterprise_script_service/mruby/mrbgems/stdlib-io.gembox +12 -0
- data/ext/enterprise_script_service/mruby/mrbgems/stdlib.gembox +54 -0
- data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
- data/ext/enterprise_script_service/mruby/mrblib/10error.rb +4 -0
- data/ext/enterprise_script_service/mruby/mrblib/array.rb +17 -9
- data/ext/enterprise_script_service/mruby/mrblib/enum.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -23
- data/ext/enterprise_script_service/mruby/mrblib/init_mrblib.c +0 -11
- data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +36 -11
- data/ext/enterprise_script_service/mruby/mrblib/range.rb +25 -3
- data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_proto_fuzzer.cpp +2 -2
- data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.h +1 -1
- data/ext/enterprise_script_service/mruby/src/array.c +67 -90
- data/ext/enterprise_script_service/mruby/src/backtrace.c +18 -19
- data/ext/enterprise_script_service/mruby/src/class.c +819 -211
- data/ext/enterprise_script_service/mruby/src/codedump.c +226 -197
- data/ext/enterprise_script_service/mruby/src/debug.c +14 -11
- data/ext/enterprise_script_service/mruby/src/dump.c +470 -207
- data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
- data/ext/enterprise_script_service/mruby/src/error.c +94 -20
- data/ext/enterprise_script_service/mruby/src/etc.c +56 -39
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +103 -27
- data/ext/enterprise_script_service/mruby/src/gc.c +86 -349
- data/ext/enterprise_script_service/mruby/src/hash.c +1058 -723
- data/ext/enterprise_script_service/mruby/src/kernel.c +78 -226
- data/ext/enterprise_script_service/mruby/src/load.c +215 -159
- data/ext/enterprise_script_service/mruby/src/numeric.c +400 -382
- data/ext/enterprise_script_service/mruby/src/object.c +115 -90
- data/ext/enterprise_script_service/mruby/src/print.c +31 -6
- data/ext/enterprise_script_service/mruby/src/proc.c +56 -45
- data/ext/enterprise_script_service/mruby/src/range.c +49 -33
- data/ext/enterprise_script_service/mruby/src/state.c +58 -42
- data/ext/enterprise_script_service/mruby/src/string.c +151 -156
- data/ext/enterprise_script_service/mruby/src/symbol.c +132 -66
- data/ext/enterprise_script_service/mruby/src/value_array.h +1 -0
- data/ext/enterprise_script_service/mruby/src/variable.c +158 -158
- data/ext/enterprise_script_service/mruby/src/vm.c +655 -645
- data/ext/enterprise_script_service/mruby/tasks/benchmark.rake +6 -6
- data/ext/enterprise_script_service/mruby/tasks/bin.rake +23 -0
- data/ext/enterprise_script_service/mruby/tasks/core.rake +12 -0
- data/ext/enterprise_script_service/mruby/tasks/doc.rake +50 -38
- data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +64 -61
- data/ext/enterprise_script_service/mruby/tasks/libmruby.rake +10 -1
- data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +13 -1
- data/ext/enterprise_script_service/mruby/tasks/mrblib.rake +40 -0
- data/ext/enterprise_script_service/mruby/tasks/presym.rake +44 -0
- data/ext/enterprise_script_service/mruby/tasks/test.rake +68 -0
- data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +8 -7
- data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +13 -17
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +21 -25
- data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
- data/ext/enterprise_script_service/mruby/test/bintest.rb +5 -5
- data/ext/enterprise_script_service/mruby/test/t/argumenterror.rb +16 -0
- data/ext/enterprise_script_service/mruby/test/t/array.rb +7 -3
- data/ext/enterprise_script_service/mruby/test/t/bs_literal.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
- data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/float.rb +18 -8
- data/ext/enterprise_script_service/mruby/test/t/hash.rb +903 -281
- data/ext/enterprise_script_service/mruby/test/t/integer.rb +10 -38
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +16 -25
- data/ext/enterprise_script_service/mruby/test/t/literals.rb +50 -0
- data/ext/enterprise_script_service/mruby/test/t/module.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/numeric.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/range.rb +83 -1
- data/ext/enterprise_script_service/mruby/test/t/string.rb +4 -0
- data/ext/enterprise_script_service/mruby/test/t/superclass.rb +10 -10
- data/ext/enterprise_script_service/mruby/test/t/syntax.rb +24 -0
- data/ext/enterprise_script_service/mruby/test/t/vformat.rb +3 -3
- data/ext/enterprise_script_service/mruby_config.rb +2 -5
- data/ext/enterprise_script_service/mruby_engine.cpp +1 -1
- data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
- data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
- data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
- data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
- data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
- data/ext/enterprise_script_service/msgpack/README.md +3 -2
- data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
- data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
- data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
- data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
- data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
- data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
- data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
- data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
- data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
- data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
- data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
- data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
- data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
- data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
- data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
- data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
- data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
- data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
- data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
- data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
- data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
- data/lib/script_core/engine.rb +24 -5
- data/lib/script_core/executable.rb +4 -3
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/script_core.rake +3 -1
- data/script_core.gemspec +1 -2
- data/spec/dummy/app/lib/script_engine.rb +64 -5
- data/spec/script_core_spec.rb +13 -0
- metadata +123 -61
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
- data/ext/enterprise_script_service/mruby/TODO +0 -8
- data/ext/enterprise_script_service/mruby/benchmark/build_config_boxing.rb +0 -28
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_arm64-v8a.rb +0 -26
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_armeabi.rb +0 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/kernel.c +0 -30
- data/ext/enterprise_script_service/mruby/mrblib/mrblib.rake +0 -18
- data/ext/enterprise_script_service/mruby/src/crc.c +0 -39
- data/ext/enterprise_script_service/mruby/src/mruby_core.rake +0 -19
- data/ext/enterprise_script_service/mruby/travis_config.rb +0 -54
- data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
_This is an English translation of [Matz's blog post][matz blog post]
|
|
4
4
|
written in Japanese._
|
|
5
5
|
_Some parts are updated to reflect recent changes._
|
|
6
|
-
[matz blog post]:
|
|
6
|
+
[matz blog post]: https://www.rubyist.net/~matz/20130731.html
|
|
7
7
|
|
|
8
8
|
When you are extending mruby using C language, you may encounter
|
|
9
9
|
mysterious "arena overflow error" or memory leak or very slow
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# mruby configuration macros.
|
|
2
2
|
|
|
3
3
|
## How to use these macros.
|
|
4
|
+
|
|
4
5
|
You can use mrbconfs with following ways:
|
|
6
|
+
|
|
5
7
|
* Write them in `mrbconf.h`.
|
|
6
8
|
* Using compiler flags is preferred when building a cross binaries or multiple mruby binaries
|
|
7
9
|
since it's easier to use different mrbconf per each `MRuby::Build`.
|
|
@@ -11,7 +13,9 @@ You can use mrbconfs with following ways:
|
|
|
11
13
|
changes `struct` layout and cause memory access error when C and other language(e.g., C++) is mixed.
|
|
12
14
|
|
|
13
15
|
## stdio setting.
|
|
14
|
-
|
|
16
|
+
|
|
17
|
+
`MRB_NO_STDIO`
|
|
18
|
+
|
|
15
19
|
* When defined `<stdio.h>` functions won't be used.
|
|
16
20
|
* Some features will be disabled when this is enabled:
|
|
17
21
|
* `mrb_irep` load/dump from/to file.
|
|
@@ -19,84 +23,97 @@ You can use mrbconfs with following ways:
|
|
|
19
23
|
* Printing features in **src/print.c**.
|
|
20
24
|
|
|
21
25
|
## Debug macros.
|
|
22
|
-
|
|
26
|
+
|
|
27
|
+
`MRB_USE_DEBUG_HOOK`
|
|
28
|
+
|
|
23
29
|
* When defined code fetch hook and debug OP hook will be enabled.
|
|
24
30
|
* When using any of the hook set function pointer `code_fetch_hook` and/or `debug_op_hook` of `mrb_state`.
|
|
25
31
|
* Fetch hook will be called before any OP.
|
|
26
32
|
* Debug OP hook will be called when dispatching `OP_DEBUG`.
|
|
27
33
|
|
|
28
34
|
`MRB_DEBUG`
|
|
35
|
+
|
|
29
36
|
* When defined `mrb_assert*` macro will be defined with macros from `<assert.h>`.
|
|
30
37
|
* Could be enabled via `enable_debug` method of `MRuby::Build`.
|
|
31
38
|
|
|
32
39
|
## Stack configuration
|
|
33
40
|
|
|
34
41
|
`MRB_STACK_EXTEND_DOUBLING`
|
|
42
|
+
|
|
35
43
|
* If defined doubles the stack size when extending it.
|
|
36
44
|
* Else extends stack with `MRB_STACK_GROWTH`.
|
|
37
45
|
|
|
38
46
|
`MRB_STACK_GROWTH`
|
|
47
|
+
|
|
39
48
|
* Default value is `128`.
|
|
40
49
|
* Used in stack extending.
|
|
41
50
|
* Ignored when `MRB_STACK_EXTEND_DOUBLING` is defined.
|
|
42
51
|
|
|
43
52
|
`MRB_STACK_MAX`
|
|
53
|
+
|
|
44
54
|
* Default value is `0x40000 - MRB_STACK_GROWTH`.
|
|
45
55
|
* Raises `RuntimeError` when stack size exceeds this value.
|
|
46
56
|
|
|
47
57
|
## Primitive type configuration.
|
|
48
58
|
|
|
49
|
-
`
|
|
59
|
+
`MRB_USE_FLOAT32`
|
|
60
|
+
|
|
50
61
|
* When defined single precision floating point type(C type `float`) is used as `mrb_float`.
|
|
51
|
-
*
|
|
62
|
+
* Otherwise double precision floating point type(C type `double`) is used as `mrb_float`.
|
|
63
|
+
|
|
64
|
+
`MRB_NO_FLOAT`
|
|
52
65
|
|
|
53
|
-
`MRB_WITHOUT_FLOAT`
|
|
54
66
|
* When defined removes floating point numbers from mruby.
|
|
55
67
|
* It makes mruby easier to handle in "Microcontroller without FPU" and "Kernel Space".
|
|
56
68
|
|
|
57
|
-
`MRB_INT16`
|
|
58
|
-
* When defined `int16_t` will be defined as `mrb_int`.
|
|
59
|
-
* Conflicts with `MRB_INT32` and `MRB_INT64`.
|
|
60
|
-
|
|
61
69
|
`MRB_INT32`
|
|
62
|
-
|
|
63
|
-
*
|
|
70
|
+
|
|
71
|
+
* When defined, or `MRB_INT64` are not defined on 32-bit CPU mode, `mrb_int` will be defined as `int32_t`.
|
|
72
|
+
* Conflicts with `MRB_INT64`.
|
|
64
73
|
|
|
65
74
|
`MRB_INT64`
|
|
66
|
-
|
|
67
|
-
*
|
|
75
|
+
|
|
76
|
+
* When defined, or `MRB_INT32` are not defined on 64-bit CPU mode, `mrb_int` will be defined as `int64_t`.
|
|
77
|
+
* Conflicts with `MRB_INT32`.
|
|
68
78
|
|
|
69
79
|
## Garbage collector configuration.
|
|
70
80
|
|
|
71
81
|
`MRB_GC_STRESS`
|
|
82
|
+
|
|
72
83
|
* When defined full GC is emitted per each `RBasic` allocation.
|
|
73
84
|
* Mainly used in memory manager debugging.
|
|
74
85
|
|
|
75
86
|
`MRB_GC_TURN_OFF_GENERATIONAL`
|
|
87
|
+
|
|
76
88
|
* When defined turns generational GC by default.
|
|
77
89
|
|
|
78
90
|
`MRB_GC_FIXED_ARENA`
|
|
91
|
+
|
|
79
92
|
* When defined used fixed size GC arena.
|
|
80
93
|
* Raises `RuntimeError` when this is defined and GC arena size exceeds `MRB_GC_ARENA_SIZE`.
|
|
81
94
|
* Useful tracking unnecessary mruby object allocation.
|
|
82
95
|
|
|
83
96
|
`MRB_GC_ARENA_SIZE`
|
|
97
|
+
|
|
84
98
|
* Default value is `100`.
|
|
85
99
|
* Ignored when `MRB_GC_FIXED_ARENA` isn't defined.
|
|
86
100
|
* Defines fixed GC arena size.
|
|
87
101
|
|
|
88
102
|
`MRB_HEAP_PAGE_SIZE`
|
|
103
|
+
|
|
89
104
|
* Defines value is `1024`.
|
|
90
105
|
* Specifies number of `RBasic` per each heap page.
|
|
91
106
|
|
|
92
107
|
## Memory pool configuration.
|
|
93
108
|
|
|
94
109
|
`POOL_ALIGNMENT`
|
|
110
|
+
|
|
95
111
|
* Default value is `4`.
|
|
96
112
|
* If you're allocating data types that requires alignment more than default value define the
|
|
97
113
|
largest value of required alignment.
|
|
98
114
|
|
|
99
115
|
`POOL_PAGE_SIZE`
|
|
116
|
+
|
|
100
117
|
* Default value is `16000`.
|
|
101
118
|
* Specifies page size of pool page.
|
|
102
119
|
* Smaller the value is increases memory overhead.
|
|
@@ -104,37 +121,38 @@ largest value of required alignment.
|
|
|
104
121
|
## State atexit configuration.
|
|
105
122
|
|
|
106
123
|
`MRB_FIXED_STATE_ATEXIT_STACK`
|
|
124
|
+
|
|
107
125
|
* If defined enables fixed size `mrb_state` atexit stack.
|
|
108
126
|
* Raises `RuntimeError` when `mrb_state_atexit` call count to same `mrb_state` exceeds
|
|
109
127
|
`MRB_FIXED_STATE_ATEXIT_STACK_SIZE`'s value.
|
|
110
128
|
|
|
111
129
|
`MRB_FIXED_STATE_ATEXIT_STACK_SIZE`
|
|
130
|
+
|
|
112
131
|
* Default value is `5`.
|
|
113
132
|
* If `MRB_FIXED_STATE_ATEXIT_STACK` isn't defined this macro is ignored.
|
|
114
133
|
|
|
115
134
|
## `mrb_value` configuration.
|
|
116
135
|
|
|
117
136
|
`MRB_ENDIAN_BIG`
|
|
137
|
+
|
|
118
138
|
* If defined compiles mruby for big endian machines.
|
|
119
139
|
* Used in `MRB_NAN_BOXING`.
|
|
120
140
|
* Some mrbgem use this mrbconf.
|
|
121
141
|
|
|
122
142
|
`MRB_NAN_BOXING`
|
|
143
|
+
|
|
123
144
|
* If defined represent `mrb_value` in boxed `double`.
|
|
124
|
-
* Conflicts with `
|
|
145
|
+
* Conflicts with `MRB_USE_FLOAT32` and `MRB_NO_FLOAT`.
|
|
125
146
|
|
|
126
147
|
`MRB_WORD_BOXING`
|
|
148
|
+
|
|
127
149
|
* If defined represent `mrb_value` as a word.
|
|
128
150
|
* If defined `Float` will be a mruby object with `RBasic`.
|
|
129
151
|
|
|
130
|
-
## Instance variable configuration.
|
|
131
|
-
`MRB_IV_SEGMENT_SIZE`
|
|
132
|
-
* Default value is `4`.
|
|
133
|
-
* Specifies size of each segment in segment list.
|
|
134
|
-
|
|
135
152
|
## Reduce heap memory configuration.
|
|
136
153
|
|
|
137
154
|
`MRB_USE_LINK_TIME_RO_DATA_P`
|
|
155
|
+
|
|
138
156
|
* Only available on ELF platforms.
|
|
139
157
|
* If you specify the address of a read-only section when creating a symbol or string, that string will be used as it is.
|
|
140
158
|
* Heap memory can be saved.
|
|
@@ -142,6 +160,7 @@ largest value of required alignment.
|
|
|
142
160
|
* It must be `__ehdr_start < data_addr < __init_array_start`.
|
|
143
161
|
|
|
144
162
|
`MRB_USE_CUSTOM_RO_DATA_P`
|
|
163
|
+
|
|
145
164
|
* Takes precedence over `MRB_USE_LINK_TIME_RO_DATA_P`.
|
|
146
165
|
* Please try if `MRB_USE_LINK_TIME_RO_DATA_P` is not available.
|
|
147
166
|
* The `mrb_ro_data_p()` function is implemented by the user in an arbitrary file.
|
|
@@ -149,37 +168,41 @@ largest value of required alignment.
|
|
|
149
168
|
* Return `TRUE` if `ptr` is in read-only section, otherwise return `FALSE`.
|
|
150
169
|
|
|
151
170
|
## Other configuration.
|
|
171
|
+
|
|
152
172
|
`MRB_UTF8_STRING`
|
|
173
|
+
|
|
153
174
|
* Adds UTF-8 encoding support to character-oriented String instance methods.
|
|
154
175
|
* If it isn't defined, they only support the US-ASCII encoding.
|
|
155
176
|
|
|
156
177
|
`MRB_FUNCALL_ARGC_MAX`
|
|
178
|
+
|
|
157
179
|
* Default value is `16`.
|
|
158
180
|
* Specifies 4th argument(`argc`) max value of `mrb_funcall`.
|
|
159
181
|
* Raises `ArgumentError` when the `argc` argument is bigger then this value `mrb_funcall`.
|
|
160
182
|
|
|
161
183
|
`KHASH_DEFAULT_SIZE`
|
|
184
|
+
|
|
162
185
|
* Default value is `32`.
|
|
163
186
|
* Specifies default size of khash table bucket.
|
|
164
187
|
* Used in `kh_init_ ## name` function.
|
|
165
188
|
|
|
166
|
-
`
|
|
167
|
-
* Default value is `128`.
|
|
168
|
-
* Specifies initial capacity of `RString` created by `mrb_str_buf_new` function..
|
|
189
|
+
`MRB_NO_METHOD_CACHE`
|
|
169
190
|
|
|
170
|
-
|
|
171
|
-
* Improve performance for method dispatch.
|
|
191
|
+
* Disable method cache to save memory.
|
|
172
192
|
|
|
173
193
|
`MRB_METHOD_CACHE_SIZE`
|
|
174
|
-
|
|
175
|
-
*
|
|
194
|
+
|
|
195
|
+
* Default value is `256`.
|
|
196
|
+
* Ignored if `MRB_NO_METHOD_CACHE` is defined.
|
|
176
197
|
* Need to be the power of 2.
|
|
177
198
|
|
|
178
|
-
`
|
|
199
|
+
`MRB_USE_METHOD_T_STRUCT`
|
|
200
|
+
|
|
179
201
|
* Use C struct to represent `mrb_method_t`
|
|
180
|
-
* No `
|
|
202
|
+
* No `MRB_USE_METHOD_T_STRUCT` requires highest 2 bits of function pointers to be zero
|
|
181
203
|
* Define this macro on machines that use higher bits of pointers
|
|
182
204
|
|
|
183
|
-
`
|
|
184
|
-
|
|
205
|
+
`MRB_USE_ALL_SYMBOLS`
|
|
206
|
+
|
|
207
|
+
* Make it available `Symbol.all_symbols` in `mrbgems/mruby-symbol-ext`
|
|
185
208
|
* Increase heap memory usage.
|
|
@@ -5,21 +5,27 @@ standardised way into mruby.
|
|
|
5
5
|
|
|
6
6
|
## Usage
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
extension integrated.
|
|
8
|
+
You have to activate mrbgems explicitly in your build configuration. To add
|
|
9
|
+
a GEM, add the following line to your build configuration file, for example:
|
|
11
10
|
|
|
12
|
-
To add a GEM into the *build_config.rb* add the following line for example:
|
|
13
11
|
```ruby
|
|
14
12
|
conf.gem '/path/to/your/gem/dir'
|
|
15
13
|
```
|
|
16
14
|
|
|
17
|
-
You can also use a relative path
|
|
15
|
+
You can also use a relative path to specify a gem.
|
|
16
|
+
|
|
18
17
|
```ruby
|
|
19
18
|
conf.gem 'examples/mrbgems/ruby_extension_example'
|
|
20
19
|
```
|
|
21
20
|
|
|
21
|
+
In that case,
|
|
22
|
+
|
|
23
|
+
* if your build configuration file is in the `build_config` directory, it's
|
|
24
|
+
relative from `MRUBY_ROOT`.
|
|
25
|
+
* otherwise, it is relative from the directory where your build configuration is.
|
|
26
|
+
|
|
22
27
|
A remote GIT repository location for a GEM is also supported:
|
|
28
|
+
|
|
23
29
|
```ruby
|
|
24
30
|
conf.gem :git => 'https://github.com/masuidrive/mrbgems-example.git', :branch => 'master'
|
|
25
31
|
conf.gem :github => 'masuidrive/mrbgems-example', :branch => 'master'
|
|
@@ -27,17 +33,20 @@ conf.gem :bitbucket => 'mruby/mrbgems-example', :branch => 'master'
|
|
|
27
33
|
```
|
|
28
34
|
|
|
29
35
|
You can specify the sub directory of the repository with `:path` option:
|
|
36
|
+
|
|
30
37
|
```ruby
|
|
31
38
|
conf.gem github: 'mruby/mruby', path: 'mrbgems/mruby-socket'
|
|
32
39
|
```
|
|
33
40
|
|
|
34
41
|
To use mrbgem from [mgem-list](https://github.com/mruby/mgem-list) use `:mgem` option:
|
|
42
|
+
|
|
35
43
|
```ruby
|
|
36
44
|
conf.gem :mgem => 'mruby-yaml'
|
|
37
45
|
conf.gem :mgem => 'yaml' # 'mruby-' prefix could be omitted
|
|
38
46
|
```
|
|
39
47
|
|
|
40
48
|
For specifying commit hash to checkout use `:checksum_hash` option:
|
|
49
|
+
|
|
41
50
|
```ruby
|
|
42
51
|
conf.gem mgem: 'mruby-redis', checksum_hash: '3446d19fc4a3f9697b5ddbf2a904f301c42f2f4e'
|
|
43
52
|
```
|
|
@@ -54,13 +63,14 @@ NOTE: `:bitbucket` option supports only git. Hg is unsupported in this version.
|
|
|
54
63
|
|
|
55
64
|
There are instances when you wish to add a collection of mrbgems into mruby at
|
|
56
65
|
once, or be able to substitute mrbgems based on configuration, without having to
|
|
57
|
-
add each gem to
|
|
66
|
+
add each gem to your build configuration file. A packaged collection of mrbgems
|
|
58
67
|
is called a GemBox. A GemBox is a file that contains a list of mrbgems to load
|
|
59
|
-
into mruby, in the same format as if you were adding them to
|
|
68
|
+
into mruby, in the same format as if you were adding them to the build config
|
|
60
69
|
via `config.gem`, but wrapped in an `MRuby::GemBox` object. GemBoxes are
|
|
61
70
|
loaded into mruby via `config.gembox 'boxname'`.
|
|
62
71
|
|
|
63
72
|
Below we have created a GemBox containing *mruby-time* and *mrbgems-example*:
|
|
73
|
+
|
|
64
74
|
```ruby
|
|
65
75
|
MRuby::GemBox.new do |conf|
|
|
66
76
|
conf.gem "#{root}/mrbgems/mruby-time"
|
|
@@ -73,16 +83,19 @@ must be saved with a *.gembox* extension inside the *mrbgems* directory to to be
|
|
|
73
83
|
picked up by mruby.
|
|
74
84
|
|
|
75
85
|
To use this example GemBox, we save it as `custom.gembox` inside the *mrbgems*
|
|
76
|
-
directory in mruby, and add the following to
|
|
86
|
+
directory in mruby, and add the following to your build configuration file inside
|
|
77
87
|
the build block:
|
|
88
|
+
|
|
78
89
|
```ruby
|
|
79
90
|
conf.gembox 'custom'
|
|
80
91
|
```
|
|
92
|
+
|
|
81
93
|
This will cause the *custom* GemBox to be read in during the build process,
|
|
82
94
|
adding *mruby-time* and *mrbgems-example* to the build.
|
|
83
95
|
|
|
84
96
|
If you want, you can put GemBox outside of mruby directory. In that case you must
|
|
85
97
|
specify an absolute path like below.
|
|
98
|
+
|
|
86
99
|
```ruby
|
|
87
100
|
conf.gembox "#{ENV["HOME"]}/mygemboxes/custom"
|
|
88
101
|
```
|
|
@@ -120,6 +133,7 @@ to compile C and Ruby files. *README.md* is a short description of your GEM.
|
|
|
120
133
|
|
|
121
134
|
mrbgems expects a specification file called *mrbgem.rake* inside of your
|
|
122
135
|
GEM directory. A typical GEM specification could look like this for example:
|
|
136
|
+
|
|
123
137
|
```ruby
|
|
124
138
|
MRuby::Gem::Specification.new('c_and_ruby_extension_example') do |spec|
|
|
125
139
|
spec.license = 'MIT'
|
|
@@ -149,6 +163,7 @@ The `license` and `author` properties are required in every GEM!
|
|
|
149
163
|
|
|
150
164
|
In case your GEM is depending on other GEMs please use
|
|
151
165
|
`spec.add_dependency(gem, *requirements[, default_get_info])` like:
|
|
166
|
+
|
|
152
167
|
```ruby
|
|
153
168
|
MRuby::Gem::Specification.new('c_and_ruby_extension_example') do |spec|
|
|
154
169
|
spec.license = 'MIT'
|
|
@@ -158,10 +173,10 @@ MRuby::Gem::Specification.new('c_and_ruby_extension_example') do |spec|
|
|
|
158
173
|
# The version must be between 1.0.0 and 1.5.2 .
|
|
159
174
|
spec.add_dependency('mruby-parser', '>= 1.0.0', '<= 1.5.2')
|
|
160
175
|
|
|
161
|
-
# Use any version of mruby-uv from
|
|
176
|
+
# Use any version of mruby-uv from GitHub.
|
|
162
177
|
spec.add_dependency('mruby-uv', '>= 0.0.0', :github => 'mattn/mruby-uv')
|
|
163
178
|
|
|
164
|
-
# Use latest mruby-onig-regexp from
|
|
179
|
+
# Use latest mruby-onig-regexp from GitHub. (version requirements can be omitted)
|
|
165
180
|
spec.add_dependency('mruby-onig-regexp', :github => 'mattn/mruby-onig-regexp')
|
|
166
181
|
|
|
167
182
|
# You can add extra mgems active only on test
|
|
@@ -172,6 +187,7 @@ end
|
|
|
172
187
|
The version requirements and default gem information are optional.
|
|
173
188
|
|
|
174
189
|
Version requirement supports following operators:
|
|
190
|
+
|
|
175
191
|
* '=': is equal
|
|
176
192
|
* '!=': is not equal
|
|
177
193
|
* '>': is greater
|
|
@@ -184,18 +200,20 @@ Version requirement supports following operators:
|
|
|
184
200
|
|
|
185
201
|
When more than one version requirements is passed, the dependency must satisfy all of it.
|
|
186
202
|
|
|
187
|
-
You can have default gem to use as dependency when it's not defined in
|
|
203
|
+
You can have default gem to use as dependency when it's not defined in your build configuration.
|
|
188
204
|
When the last argument of `add_dependency` call is `Hash`, it will be treated as default gem information.
|
|
189
205
|
Its format is same as argument of method `MRuby::Build#gem`, expect that it can't be treated as path gem location.
|
|
190
206
|
|
|
191
207
|
When a special version of dependency is required,
|
|
192
|
-
use `MRuby::Build#gem` in
|
|
208
|
+
use `MRuby::Build#gem` in the build configuration to override default gem.
|
|
193
209
|
|
|
194
210
|
If you have conflicting GEMs use the following method:
|
|
211
|
+
|
|
195
212
|
* `spec.add_conflict(gem, *requirements)`
|
|
196
213
|
* The `requirements` argument is same as in `add_dependency` method.
|
|
197
214
|
|
|
198
215
|
like following code:
|
|
216
|
+
|
|
199
217
|
```ruby
|
|
200
218
|
MRuby::Gem::Specification.new 'some-regexp-binding' do |spec|
|
|
201
219
|
spec.license = 'BSD'
|
|
@@ -238,7 +256,6 @@ For example: when B depends to C and A depends to B, A will get include paths ex
|
|
|
238
256
|
Exported include_paths are automatically appended to GEM local include_paths by rake.
|
|
239
257
|
You can use `spec.export_include_paths` accessor if you want more complex build.
|
|
240
258
|
|
|
241
|
-
|
|
242
259
|
## C Extension
|
|
243
260
|
|
|
244
261
|
mruby can be extended with C. This is possible by using the C API to
|
|
@@ -250,6 +267,7 @@ mrbgems expects that you have implemented a C method called
|
|
|
250
267
|
`mrb_YOURGEMNAME_gem_init(mrb_state)`. `YOURGEMNAME` will be replaced
|
|
251
268
|
by the name of your GEM. If you call your GEM *c_extension_example*, your
|
|
252
269
|
initialisation method could look like this:
|
|
270
|
+
|
|
253
271
|
```C
|
|
254
272
|
void
|
|
255
273
|
mrb_c_extension_example_gem_init(mrb_state* mrb) {
|
|
@@ -294,7 +312,6 @@ mruby can be extended with pure Ruby. It is possible to override existing
|
|
|
294
312
|
classes or add new ones in this way. Put all Ruby files into the *mrblib*
|
|
295
313
|
folder.
|
|
296
314
|
|
|
297
|
-
|
|
298
315
|
### Pre-Conditions
|
|
299
316
|
|
|
300
317
|
none
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Symbols
|
|
2
|
+
|
|
3
|
+
Symbols in `mruby` C source code is represented by `mrb_sym` which is alias of
|
|
4
|
+
`uint32_t`. Lower 30 bits are used for symbols so that higher 2 bits can be
|
|
5
|
+
used as flags, e.g. `struct mt_elem` in `class.c`.
|
|
6
|
+
|
|
7
|
+
```C
|
|
8
|
+
struct mt_elem {
|
|
9
|
+
union mt_ptr ptr;
|
|
10
|
+
size_t func_p:1;
|
|
11
|
+
size_t noarg_p:1;
|
|
12
|
+
mrb_sym key:sizeof(mrb_sym)*8-2;
|
|
13
|
+
};
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## C API
|
|
17
|
+
|
|
18
|
+
We provide following C API for symbols.
|
|
19
|
+
|
|
20
|
+
### Generate Symbols
|
|
21
|
+
|
|
22
|
+
#### `mrb_sym mrb_intern(mrb_state*,const char*,size_t)`
|
|
23
|
+
|
|
24
|
+
Get a symbol from a string.
|
|
25
|
+
|
|
26
|
+
#### `mrb_sym mrb_intern_check_cstr(mrb_state*,const char*)`
|
|
27
|
+
|
|
28
|
+
Get a symbol from a NULL terminated (C) string.
|
|
29
|
+
|
|
30
|
+
#### `mrb_sym mrb_intern_str(mrb_state*,mrb_value)`
|
|
31
|
+
|
|
32
|
+
Get a symbol from a Ruby string object.
|
|
33
|
+
|
|
34
|
+
#### `mrb_intern_lit(mrb_state*,const char*)`
|
|
35
|
+
|
|
36
|
+
Get a symbol from a C string literal. The second argument should be a C string
|
|
37
|
+
literal, otherwise you will get a compilation error. It does not copy C string
|
|
38
|
+
given the fact it's a literal.
|
|
39
|
+
|
|
40
|
+
#### `mrb_sym mrb_intern_check(mrb_state*,const char*,size_t)`
|
|
41
|
+
|
|
42
|
+
Get a symbol from a string if the string has been already registered as a
|
|
43
|
+
symbol, otherwise return `0`. We also provide variants `mrb_intern_check_str()`
|
|
44
|
+
(from Ruby string) and `mrb_intern_check_cstr()` (from C string).
|
|
45
|
+
|
|
46
|
+
#### `const char *mrb_sym_name(mrb_state*,mrb_sym)`
|
|
47
|
+
|
|
48
|
+
Get a string representation of a symbol as a C string.
|
|
49
|
+
|
|
50
|
+
#### `const char *mrb_sym_name_len(mrb_state*,mrb_sym,mrb_int*)`
|
|
51
|
+
|
|
52
|
+
Get a string representation of a symbol, and its length.
|
|
53
|
+
|
|
54
|
+
## Preallocate Symbols
|
|
55
|
+
|
|
56
|
+
To save RAM, `mruby` can use compile-time allocation of some symbols. You can
|
|
57
|
+
use following macros to get preallocated symbols by including `mruby/presym.h`
|
|
58
|
+
header.
|
|
59
|
+
|
|
60
|
+
* `MRB_SYM(xor)` //=> xor (Word characters)
|
|
61
|
+
* `MRB_SYM_B(xor)` //=> xor! (Method with Bang)
|
|
62
|
+
* `MRB_SYM_Q(xor)` //=> xor? (Method with Question mark)
|
|
63
|
+
* `MRB_SYM_E(xor)` //=> xor= (Method with Equal)
|
|
64
|
+
* `MRB_CVSYM(xor)` //=> @@xor (Class Variable)
|
|
65
|
+
* `MRB_IVSYM(xor)` //=> @xor (Instance Variable)
|
|
66
|
+
* `MRB_OPSYM(xor)` //=> ^ (Operator)
|
|
67
|
+
|
|
68
|
+
For `MRB_OPSYM()`, specify the names corresponding to operators (see
|
|
69
|
+
`MRuby::Presym::OPERATORS` in `lib/mruby/presym.rb` for the names that
|
|
70
|
+
can be specified for it). Other than that, describe only word characters
|
|
71
|
+
excluding leading and ending punctuations.
|
|
72
|
+
|
|
73
|
+
These macros are converted to static symbol IDs at compile time, unless
|
|
74
|
+
preallocate symbols are disabled by `conf.disable_presym`. In that case,
|
|
75
|
+
these macros are expanded to `mrb_intern_lit` calls, therefore the mruby state
|
|
76
|
+
variable is required. The above macros assume the variable name is `mrb`. If
|
|
77
|
+
its name is not `mrb`, you need to use macros with `_2` suffix, such as
|
|
78
|
+
`MRB_SYM_2` to specify `mrb_state*` variable.
|
|
79
|
+
|
|
80
|
+
### Disabling Preallocated Symbols
|
|
81
|
+
|
|
82
|
+
You can disable preallocated symbols by specifying `conf.disable_presym` in the
|
|
83
|
+
configuration file.
|