script_core 0.2.2 → 0.2.7
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 +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
|
@@ -17,10 +17,6 @@
|
|
|
17
17
|
MRB_BEGIN_DECL
|
|
18
18
|
|
|
19
19
|
#define DUMP_DEBUG_INFO 1
|
|
20
|
-
#define DUMP_ENDIAN_BIG 2
|
|
21
|
-
#define DUMP_ENDIAN_LIL 4
|
|
22
|
-
#define DUMP_ENDIAN_NAT 6
|
|
23
|
-
#define DUMP_ENDIAN_MASK 6
|
|
24
20
|
|
|
25
21
|
int mrb_dump_irep(mrb_state *mrb, mrb_irep *irep, uint8_t flags, uint8_t **bin, size_t *bin_size);
|
|
26
22
|
#ifndef MRB_DISABLE_STDIO
|
|
@@ -52,8 +48,7 @@ MRB_API mrb_irep *mrb_read_irep_buf(mrb_state*, const void*, size_t);
|
|
|
52
48
|
|
|
53
49
|
/* Rite Binary File header */
|
|
54
50
|
#define RITE_BINARY_IDENT "RITE"
|
|
55
|
-
#define
|
|
56
|
-
#define RITE_BINARY_FORMAT_VER "0006"
|
|
51
|
+
#define RITE_BINARY_FORMAT_VER "0007"
|
|
57
52
|
#define RITE_COMPILER_NAME "MATZ"
|
|
58
53
|
#define RITE_COMPILER_VERSION "0000"
|
|
59
54
|
|
|
@@ -106,17 +101,6 @@ struct rite_binary_footer {
|
|
|
106
101
|
RITE_SECTION_HEADER;
|
|
107
102
|
};
|
|
108
103
|
|
|
109
|
-
static inline int
|
|
110
|
-
bigendian_p()
|
|
111
|
-
{
|
|
112
|
-
int i;
|
|
113
|
-
char *p;
|
|
114
|
-
|
|
115
|
-
i = 1;
|
|
116
|
-
p = (char*)&i;
|
|
117
|
-
return p[0]?0:1;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
104
|
static inline size_t
|
|
121
105
|
uint8_to_bin(uint8_t s, uint8_t *bin)
|
|
122
106
|
{
|
|
@@ -49,6 +49,16 @@ typedef struct mrb_irep {
|
|
|
49
49
|
|
|
50
50
|
MRB_API mrb_irep *mrb_add_irep(mrb_state *mrb);
|
|
51
51
|
|
|
52
|
+
/** load mruby bytecode functions
|
|
53
|
+
* Please note! Currently due to interactions with the GC calling these functions will
|
|
54
|
+
* leak one RProc object per function call.
|
|
55
|
+
* To prevent this save the current memory arena before calling and restore the arena
|
|
56
|
+
* right after, like so
|
|
57
|
+
* int ai = mrb_gc_arena_save(mrb);
|
|
58
|
+
* mrb_value status = mrb_load_irep(mrb, buffer);
|
|
59
|
+
* mrb_gc_arena_restore(mrb, ai);
|
|
60
|
+
*/
|
|
61
|
+
|
|
52
62
|
/* @param [const uint8_t*] irep code, expected as a literal */
|
|
53
63
|
MRB_API mrb_value mrb_load_irep(mrb_state*, const uint8_t*);
|
|
54
64
|
|
|
@@ -21,7 +21,10 @@ MRB_BEGIN_DECL
|
|
|
21
21
|
|
|
22
22
|
struct RIStruct {
|
|
23
23
|
MRB_OBJECT_HEADER;
|
|
24
|
-
|
|
24
|
+
union {
|
|
25
|
+
intptr_t inline_alignment[3];
|
|
26
|
+
char inline_data[ISTRUCT_DATA_SIZE];
|
|
27
|
+
};
|
|
25
28
|
};
|
|
26
29
|
|
|
27
30
|
#define RISTRUCT(obj) ((struct RIStruct*)(mrb_ptr(obj)))
|
|
@@ -73,6 +73,7 @@ static const uint8_t __m_either[] = {0x03, 0x0c, 0x30, 0xc0};
|
|
|
73
73
|
void kh_clear_##name(mrb_state *mrb, kh_##name##_t *h); \
|
|
74
74
|
khint_t kh_get_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key); \
|
|
75
75
|
khint_t kh_put_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key, int *ret); \
|
|
76
|
+
void kh_put_prepare_##name(mrb_state *mrb, kh_##name##_t *h); \
|
|
76
77
|
void kh_resize_##name(mrb_state *mrb, kh_##name##_t *h, khint_t new_n_buckets); \
|
|
77
78
|
void kh_del_##name(mrb_state *mrb, kh_##name##_t *h, khint_t x); \
|
|
78
79
|
kh_##name##_t *kh_copy_##name(mrb_state *mrb, kh_##name##_t *h);
|
|
@@ -95,16 +96,25 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
|
|
|
95
96
|
__hash_equal: hash comparation function
|
|
96
97
|
*/
|
|
97
98
|
#define KHASH_DEFINE(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \
|
|
98
|
-
void
|
|
99
|
+
mrb_noreturn void mrb_raise_nomemory(mrb_state *mrb); \
|
|
100
|
+
int kh_alloc_simple_##name(mrb_state *mrb, kh_##name##_t *h) \
|
|
99
101
|
{ \
|
|
100
102
|
khint_t sz = h->n_buckets; \
|
|
101
103
|
size_t len = sizeof(khkey_t) + (kh_is_map ? sizeof(khval_t) : 0); \
|
|
102
|
-
uint8_t *p = (uint8_t*)
|
|
104
|
+
uint8_t *p = (uint8_t*)mrb_malloc_simple(mrb, sizeof(uint8_t)*sz/4+len*sz); \
|
|
105
|
+
if (!p) { return 1; } \
|
|
103
106
|
h->size = h->n_occupied = 0; \
|
|
104
107
|
h->keys = (khkey_t *)p; \
|
|
105
108
|
h->vals = kh_is_map ? (khval_t *)(p+sizeof(khkey_t)*sz) : NULL; \
|
|
106
109
|
h->ed_flags = p+len*sz; \
|
|
107
110
|
kh_fill_flags(h->ed_flags, 0xaa, sz/4); \
|
|
111
|
+
return 0; \
|
|
112
|
+
} \
|
|
113
|
+
void kh_alloc_##name(mrb_state *mrb, kh_##name##_t *h) \
|
|
114
|
+
{ \
|
|
115
|
+
if (kh_alloc_simple_##name(mrb, h)) { \
|
|
116
|
+
mrb_raise_nomemory(mrb); \
|
|
117
|
+
} \
|
|
108
118
|
} \
|
|
109
119
|
kh_##name##_t *kh_init_##name##_size(mrb_state *mrb, khint_t size) { \
|
|
110
120
|
kh_##name##_t *h = (kh_##name##_t*)mrb_calloc(mrb, 1, sizeof(kh_##name##_t)); \
|
|
@@ -112,7 +122,10 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
|
|
|
112
122
|
size = KHASH_MIN_SIZE; \
|
|
113
123
|
khash_power2(size); \
|
|
114
124
|
h->n_buckets = size; \
|
|
115
|
-
|
|
125
|
+
if (kh_alloc_simple_##name(mrb, h)) { \
|
|
126
|
+
mrb_free(mrb, h); \
|
|
127
|
+
mrb_raise_nomemory(mrb); \
|
|
128
|
+
} \
|
|
116
129
|
return h; \
|
|
117
130
|
} \
|
|
118
131
|
kh_##name##_t *kh_init_##name(mrb_state *mrb) { \
|
|
@@ -171,12 +184,16 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
|
|
|
171
184
|
mrb_free(mrb, old_keys); \
|
|
172
185
|
} \
|
|
173
186
|
} \
|
|
174
|
-
|
|
187
|
+
void kh_put_prepare_##name(mrb_state *mrb, kh_##name##_t *h) \
|
|
175
188
|
{ \
|
|
176
|
-
khint_t k, del_k, step = 0; \
|
|
177
189
|
if (h->n_occupied >= khash_upper_bound(h)) { \
|
|
178
190
|
kh_resize_##name(mrb, h, h->n_buckets*2); \
|
|
179
191
|
} \
|
|
192
|
+
} \
|
|
193
|
+
khint_t kh_put_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key, int *ret) \
|
|
194
|
+
{ \
|
|
195
|
+
khint_t k, del_k, step = 0; \
|
|
196
|
+
kh_put_prepare_##name(mrb, h); \
|
|
180
197
|
k = __hash_func(mrb,key) & khash_mask(h); \
|
|
181
198
|
del_k = kh_end(h); \
|
|
182
199
|
while (!__ac_isempty(h->ed_flags, k)) { \
|
|
@@ -239,6 +256,7 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
|
|
|
239
256
|
#define kh_destroy(name, mrb, h) kh_destroy_##name(mrb, h)
|
|
240
257
|
#define kh_clear(name, mrb, h) kh_clear_##name(mrb, h)
|
|
241
258
|
#define kh_resize(name, mrb, h, s) kh_resize_##name(mrb, h, s)
|
|
259
|
+
#define kh_put_prepare(name, mrb, h) kh_put_prepare_##name(mrb, h)
|
|
242
260
|
#define kh_put(name, mrb, h, k) kh_put_##name(mrb, h, k, NULL)
|
|
243
261
|
#define kh_put2(name, mrb, h, k, r) kh_put_##name(mrb, h, k, r)
|
|
244
262
|
#define kh_get(name, mrb, h, k) kh_get_##name(mrb, h, k)
|
|
@@ -37,6 +37,7 @@ MRB_API mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, mrb_int base);
|
|
|
37
37
|
/* ArgumentError if format string doesn't match /%(\.[0-9]+)?[aAeEfFgG]/ */
|
|
38
38
|
#ifndef MRB_WITHOUT_FLOAT
|
|
39
39
|
MRB_API mrb_value mrb_float_to_str(mrb_state *mrb, mrb_value x, const char *fmt);
|
|
40
|
+
MRB_API int mrb_float_to_cstr(mrb_state *mrb, char *buf, size_t len, const char *fmt, mrb_float f);
|
|
40
41
|
MRB_API mrb_float mrb_to_flo(mrb_state *mrb, mrb_value x);
|
|
41
42
|
MRB_API mrb_value mrb_int_value(mrb_state *mrb, mrb_float f);
|
|
42
43
|
#endif
|
|
@@ -92,8 +92,8 @@ OPCODE(APOST, BBB) /* *R(a),R(a+1)..R(a+c) = R(a)[b..] */
|
|
|
92
92
|
OPCODE(INTERN, B) /* R(a) = intern(R(a)) */
|
|
93
93
|
OPCODE(STRING, BB) /* R(a) = str_dup(Lit(b)) */
|
|
94
94
|
OPCODE(STRCAT, B) /* str_cat(R(a),R(a+1)) */
|
|
95
|
-
OPCODE(HASH, BB) /* R(a) = hash_new(R(a),R(a+1)..R(a+b)) */
|
|
96
|
-
OPCODE(HASHADD, BB) /* R(a) = hash_push(R(a),R(a+1)..R(a+b)) */
|
|
95
|
+
OPCODE(HASH, BB) /* R(a) = hash_new(R(a),R(a+1)..R(a+b*2-1)) */
|
|
96
|
+
OPCODE(HASHADD, BB) /* R(a) = hash_push(R(a),R(a+1)..R(a+b*2)) */
|
|
97
97
|
OPCODE(HASHCAT, B) /* R(a) = hash_cat(R(a),R(a+1)) */
|
|
98
98
|
OPCODE(LAMBDA, BB) /* R(a) = lambda(SEQ[b],L_LAMBDA) */
|
|
99
99
|
OPCODE(BLOCK, BB) /* R(a) = lambda(SEQ[b],L_BLOCK) */
|
|
@@ -115,3 +115,4 @@ OPCODE(EXT1, Z) /* make 1st operand 16bit */
|
|
|
115
115
|
OPCODE(EXT2, Z) /* make 2nd operand 16bit */
|
|
116
116
|
OPCODE(EXT3, Z) /* make 1st and 2nd operands 16bit */
|
|
117
117
|
OPCODE(STOP, Z) /* stop VM */
|
|
118
|
+
OPCODE(LOADI16, BS) /* R(a) = mrb_int(b) */
|
|
@@ -22,14 +22,19 @@ struct REnv {
|
|
|
22
22
|
mrb_sym mid;
|
|
23
23
|
};
|
|
24
24
|
|
|
25
|
-
/* flags (21bits): 1(
|
|
26
|
-
#define
|
|
27
|
-
#define
|
|
28
|
-
#define
|
|
29
|
-
#define
|
|
30
|
-
#define
|
|
31
|
-
#define
|
|
32
|
-
#define
|
|
25
|
+
/* flags (21bits): 1(close):1(touched):1(heap):8(cioff/bidx):8(stack_len) */
|
|
26
|
+
#define MRB_ENV_SET_LEN(e,len) ((e)->flags = (((e)->flags & ~0xff)|((unsigned int)(len) & 0xff)))
|
|
27
|
+
#define MRB_ENV_LEN(e) ((mrb_int)((e)->flags & 0xff))
|
|
28
|
+
#define MRB_ENV_CLOSED (1<<20)
|
|
29
|
+
#define MRB_ENV_TOUCHED (1<<19)
|
|
30
|
+
#define MRB_ENV_HEAPED (1<<18)
|
|
31
|
+
#define MRB_ENV_CLOSE(e) ((e)->flags |= MRB_ENV_CLOSED)
|
|
32
|
+
#define MRB_ENV_TOUCH(e) ((e)->flags |= MRB_ENV_TOUCHED)
|
|
33
|
+
#define MRB_ENV_HEAP(e) ((e)->flags |= MRB_ENV_HEAPED)
|
|
34
|
+
#define MRB_ENV_HEAP_P(e) ((e)->flags & MRB_ENV_HEAPED)
|
|
35
|
+
#define MRB_ENV_ONSTACK_P(e) (((e)->flags & MRB_ENV_CLOSED) == 0)
|
|
36
|
+
#define MRB_ENV_BIDX(e) (((e)->flags >> 8) & 0xff)
|
|
37
|
+
#define MRB_ENV_SET_BIDX(e,idx) ((e)->flags = (((e)->flags & ~(0xff<<8))|((unsigned int)(idx) & 0xff)<<8))
|
|
33
38
|
|
|
34
39
|
void mrb_env_unshare(mrb_state*, struct REnv*);
|
|
35
40
|
|
|
@@ -465,7 +465,8 @@ mrb_bool mrb_str_beg_len(mrb_int str_len, mrb_int *begp, mrb_int *lenp);
|
|
|
465
465
|
mrb_value mrb_str_byte_subseq(mrb_state *mrb, mrb_value str, mrb_int beg, mrb_int len);
|
|
466
466
|
|
|
467
467
|
#ifdef MRB_UTF8_STRING
|
|
468
|
-
mrb_int
|
|
468
|
+
mrb_int mrb_utf8len(const char *str, const char *end);
|
|
469
|
+
mrb_int mrb_utf8_strlen(const char *str, mrb_int byte_len);
|
|
469
470
|
#endif
|
|
470
471
|
|
|
471
472
|
MRB_END_DECL
|
|
@@ -34,10 +34,6 @@ typedef uint32_t mrb_sym;
|
|
|
34
34
|
typedef uint8_t mrb_bool;
|
|
35
35
|
struct mrb_state;
|
|
36
36
|
|
|
37
|
-
#if defined(MRB_INT16) && defined(MRB_INT64)
|
|
38
|
-
# error "You can't define MRB_INT16 and MRB_INT64 at the same time."
|
|
39
|
-
#endif
|
|
40
|
-
|
|
41
37
|
#if defined _MSC_VER && _MSC_VER < 1800
|
|
42
38
|
# define PRIo64 "llo"
|
|
43
39
|
# define PRId64 "lld"
|
|
@@ -63,14 +59,6 @@ struct mrb_state;
|
|
|
63
59
|
# define MRB_PRIo PRIo64
|
|
64
60
|
# define MRB_PRId PRId64
|
|
65
61
|
# define MRB_PRIx PRIx64
|
|
66
|
-
#elif defined(MRB_INT16)
|
|
67
|
-
typedef int16_t mrb_int;
|
|
68
|
-
# define MRB_INT_BIT 16
|
|
69
|
-
# define MRB_INT_MIN (INT16_MIN>>MRB_FIXNUM_SHIFT)
|
|
70
|
-
# define MRB_INT_MAX (INT16_MAX>>MRB_FIXNUM_SHIFT)
|
|
71
|
-
# define MRB_PRIo PRIo16
|
|
72
|
-
# define MRB_PRId PRId16
|
|
73
|
-
# define MRB_PRIx PRIx16
|
|
74
62
|
#else
|
|
75
63
|
typedef int32_t mrb_int;
|
|
76
64
|
# define MRB_INT_BIT 32
|
|
@@ -115,32 +103,31 @@ static const unsigned int IEEE754_INFINITY_BITS_SINGLE = 0x7F800000;
|
|
|
115
103
|
#endif
|
|
116
104
|
|
|
117
105
|
enum mrb_vtype {
|
|
118
|
-
MRB_TT_FALSE = 0,
|
|
119
|
-
MRB_TT_TRUE,
|
|
120
|
-
MRB_TT_FLOAT,
|
|
121
|
-
MRB_TT_FIXNUM,
|
|
122
|
-
MRB_TT_SYMBOL,
|
|
123
|
-
MRB_TT_UNDEF,
|
|
124
|
-
MRB_TT_CPTR,
|
|
125
|
-
MRB_TT_FREE,
|
|
126
|
-
MRB_TT_OBJECT,
|
|
127
|
-
MRB_TT_CLASS,
|
|
128
|
-
MRB_TT_MODULE,
|
|
129
|
-
MRB_TT_ICLASS,
|
|
130
|
-
MRB_TT_SCLASS,
|
|
131
|
-
MRB_TT_PROC,
|
|
132
|
-
MRB_TT_ARRAY,
|
|
133
|
-
MRB_TT_HASH,
|
|
134
|
-
MRB_TT_STRING,
|
|
135
|
-
MRB_TT_RANGE,
|
|
136
|
-
MRB_TT_EXCEPTION,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
MRB_TT_MAXDEFINE /* 25 */
|
|
106
|
+
MRB_TT_FALSE = 0,
|
|
107
|
+
MRB_TT_TRUE,
|
|
108
|
+
MRB_TT_FLOAT,
|
|
109
|
+
MRB_TT_FIXNUM,
|
|
110
|
+
MRB_TT_SYMBOL,
|
|
111
|
+
MRB_TT_UNDEF,
|
|
112
|
+
MRB_TT_CPTR,
|
|
113
|
+
MRB_TT_FREE,
|
|
114
|
+
MRB_TT_OBJECT,
|
|
115
|
+
MRB_TT_CLASS,
|
|
116
|
+
MRB_TT_MODULE,
|
|
117
|
+
MRB_TT_ICLASS,
|
|
118
|
+
MRB_TT_SCLASS,
|
|
119
|
+
MRB_TT_PROC,
|
|
120
|
+
MRB_TT_ARRAY,
|
|
121
|
+
MRB_TT_HASH,
|
|
122
|
+
MRB_TT_STRING,
|
|
123
|
+
MRB_TT_RANGE,
|
|
124
|
+
MRB_TT_EXCEPTION,
|
|
125
|
+
MRB_TT_ENV,
|
|
126
|
+
MRB_TT_DATA,
|
|
127
|
+
MRB_TT_FIBER,
|
|
128
|
+
MRB_TT_ISTRUCT,
|
|
129
|
+
MRB_TT_BREAK,
|
|
130
|
+
MRB_TT_MAXDEFINE
|
|
144
131
|
};
|
|
145
132
|
|
|
146
133
|
#include <mruby/object.h>
|
|
@@ -161,6 +148,13 @@ typedef void mrb_value;
|
|
|
161
148
|
|
|
162
149
|
#endif
|
|
163
150
|
|
|
151
|
+
#if defined(MRB_WORD_BOXING) || (defined(MRB_NAN_BOXING) && defined(MRB_64BIT))
|
|
152
|
+
struct RCptr {
|
|
153
|
+
MRB_OBJECT_HEADER;
|
|
154
|
+
void *p;
|
|
155
|
+
};
|
|
156
|
+
#endif
|
|
157
|
+
|
|
164
158
|
#if defined(MRB_NAN_BOXING)
|
|
165
159
|
#include "boxing_nan.h"
|
|
166
160
|
#elif defined(MRB_WORD_BOXING)
|
|
@@ -245,9 +239,6 @@ typedef void mrb_value;
|
|
|
245
239
|
#ifndef mrb_range_p
|
|
246
240
|
#define mrb_range_p(o) (mrb_type(o) == MRB_TT_RANGE)
|
|
247
241
|
#endif
|
|
248
|
-
#ifndef mrb_file_p
|
|
249
|
-
#define mrb_file_p(o) (mrb_type(o) == MRB_TT_FILE)
|
|
250
|
-
#endif
|
|
251
242
|
#ifndef mrb_env_p
|
|
252
243
|
#define mrb_env_p(o) (mrb_type(o) == MRB_TT_ENV)
|
|
253
244
|
#endif
|
|
@@ -47,7 +47,7 @@ MRB_BEGIN_DECL
|
|
|
47
47
|
/*
|
|
48
48
|
* Tiny release version number.
|
|
49
49
|
*/
|
|
50
|
-
#define MRUBY_RELEASE_TEENY
|
|
50
|
+
#define MRUBY_RELEASE_TEENY 2
|
|
51
51
|
|
|
52
52
|
/*
|
|
53
53
|
* The mruby version.
|
|
@@ -62,17 +62,17 @@ MRB_BEGIN_DECL
|
|
|
62
62
|
/*
|
|
63
63
|
* Release year.
|
|
64
64
|
*/
|
|
65
|
-
#define MRUBY_RELEASE_YEAR
|
|
65
|
+
#define MRUBY_RELEASE_YEAR 2020
|
|
66
66
|
|
|
67
67
|
/*
|
|
68
68
|
* Release month.
|
|
69
69
|
*/
|
|
70
|
-
#define MRUBY_RELEASE_MONTH
|
|
70
|
+
#define MRUBY_RELEASE_MONTH 8
|
|
71
71
|
|
|
72
72
|
/*
|
|
73
73
|
* Release day.
|
|
74
74
|
*/
|
|
75
|
-
#define MRUBY_RELEASE_DAY
|
|
75
|
+
#define MRUBY_RELEASE_DAY 6
|
|
76
76
|
|
|
77
77
|
/*
|
|
78
78
|
* Release date as a string.
|
|
@@ -276,14 +276,6 @@ def filename(name)
|
|
|
276
276
|
end
|
|
277
277
|
end
|
|
278
278
|
|
|
279
|
-
def cygwin_filename(name)
|
|
280
|
-
if name.is_a?(Array)
|
|
281
|
-
name.flatten.map { |n| cygwin_filename(n) }
|
|
282
|
-
else
|
|
283
|
-
'"%s"' % `cygpath -w "#{filename(name)}"`.strip
|
|
284
|
-
end
|
|
285
|
-
end
|
|
286
|
-
|
|
287
279
|
def exefile(name)
|
|
288
280
|
if name.is_a?(Array)
|
|
289
281
|
name.flatten.map { |n| exefile(n) }
|
|
@@ -344,7 +336,8 @@ def print_build_summary
|
|
|
344
336
|
puts " Binaries: #{@bins.join(', ')}" unless @bins.empty?
|
|
345
337
|
unless @gems.empty?
|
|
346
338
|
puts " Included Gems:"
|
|
347
|
-
@gems.
|
|
339
|
+
gems = @gems.sort_by { |gem| gem.name }
|
|
340
|
+
gems.each do |gem|
|
|
348
341
|
gem_version = " - #{gem.version}" if gem.version != '0.0.0'
|
|
349
342
|
gem_summary = " - #{gem.summary}" if gem.summary
|
|
350
343
|
puts " #{gem.name}#{gem_version}#{gem_summary}"
|
|
@@ -395,26 +388,5 @@ def run_test
|
|
|
395
388
|
@test_runner.run(mrbtest)
|
|
396
389
|
end
|
|
397
390
|
end
|
|
398
|
-
|
|
399
|
-
def big_endian
|
|
400
|
-
if @endian
|
|
401
|
-
puts "Endian has already specified as #{@endian}."
|
|
402
|
-
return
|
|
403
|
-
end
|
|
404
|
-
@endian = :big
|
|
405
|
-
@mrbc.compile_options += ' -E'
|
|
406
|
-
compilers.each do |c|
|
|
407
|
-
c.defines += %w(MRB_ENDIAN_BIG)
|
|
408
|
-
end
|
|
409
|
-
end
|
|
410
|
-
|
|
411
|
-
def little_endian
|
|
412
|
-
if @endian
|
|
413
|
-
puts "Endian has already specified as #{@endian}."
|
|
414
|
-
return
|
|
415
|
-
end
|
|
416
|
-
@endian = :little
|
|
417
|
-
@mrbc.compile_options += ' -e'
|
|
418
|
-
end
|
|
419
391
|
end # CrossBuild
|
|
420
392
|
end # MRuby
|
|
@@ -4,7 +4,7 @@ module MRuby
|
|
|
4
4
|
class Command
|
|
5
5
|
include Rake::DSL
|
|
6
6
|
extend Forwardable
|
|
7
|
-
def_delegators :@build, :filename, :objfile, :libfile, :exefile
|
|
7
|
+
def_delegators :@build, :filename, :objfile, :libfile, :exefile
|
|
8
8
|
attr_accessor :build, :command
|
|
9
9
|
|
|
10
10
|
def initialize(build)
|
|
@@ -58,9 +58,9 @@ def initialize(build, source_exts=[])
|
|
|
58
58
|
@source_exts = source_exts
|
|
59
59
|
@include_paths = ["#{MRUBY_ROOT}/include"]
|
|
60
60
|
@defines = %w()
|
|
61
|
-
@option_include_path =
|
|
62
|
-
@option_define =
|
|
63
|
-
@compile_options =
|
|
61
|
+
@option_include_path = %q[-I"%s"]
|
|
62
|
+
@option_define = %q[-D"%s"]
|
|
63
|
+
@compile_options = %q[%{flags} -o "%{outfile}" -c "%{infile}"]
|
|
64
64
|
@cxx_invalid_flags = []
|
|
65
65
|
end
|
|
66
66
|
|
|
@@ -79,11 +79,7 @@ def search_header(name)
|
|
|
79
79
|
def all_flags(_defines=[], _include_paths=[], _flags=[])
|
|
80
80
|
define_flags = [defines, _defines].flatten.map{ |d| option_define % d }
|
|
81
81
|
include_path_flags = [include_paths, _include_paths].flatten.map do |f|
|
|
82
|
-
|
|
83
|
-
option_include_path % cygwin_filename(f)
|
|
84
|
-
else
|
|
85
|
-
option_include_path % filename(f)
|
|
86
|
-
end
|
|
82
|
+
option_include_path % filename(f)
|
|
87
83
|
end
|
|
88
84
|
[flags, define_flags, include_path_flags, _flags].flatten.join(' ')
|
|
89
85
|
end
|
|
@@ -91,13 +87,8 @@ def all_flags(_defines=[], _include_paths=[], _flags=[])
|
|
|
91
87
|
def run(outfile, infile, _defines=[], _include_paths=[], _flags=[])
|
|
92
88
|
mkdir_p File.dirname(outfile)
|
|
93
89
|
_pp "CC", infile.relative_path, outfile.relative_path
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
:infile => cygwin_filename(infile), :outfile => cygwin_filename(outfile) }
|
|
97
|
-
else
|
|
98
|
-
_run compile_options, { :flags => all_flags(_defines, _include_paths, _flags),
|
|
99
|
-
:infile => filename(infile), :outfile => filename(outfile) }
|
|
100
|
-
end
|
|
90
|
+
_run compile_options, { :flags => all_flags(_defines, _include_paths, _flags),
|
|
91
|
+
:infile => filename(infile), :outfile => filename(outfile) }
|
|
101
92
|
end
|
|
102
93
|
|
|
103
94
|
def define_rules(build_dir, source_dir='')
|
|
@@ -184,18 +175,14 @@ def initialize(build)
|
|
|
184
175
|
@flags_before_libraries, @flags_after_libraries = [], []
|
|
185
176
|
@libraries = []
|
|
186
177
|
@library_paths = []
|
|
187
|
-
@option_library =
|
|
188
|
-
@option_library_path =
|
|
189
|
-
@link_options =
|
|
178
|
+
@option_library = %q[-l"%s"]
|
|
179
|
+
@option_library_path = %q[-L"%s"]
|
|
180
|
+
@link_options = %Q[%{flags} -o "%{outfile}" %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}]
|
|
190
181
|
end
|
|
191
182
|
|
|
192
183
|
def all_flags(_library_paths=[], _flags=[])
|
|
193
184
|
library_path_flags = [library_paths, _library_paths].flatten.map do |f|
|
|
194
|
-
|
|
195
|
-
option_library_path % cygwin_filename(f)
|
|
196
|
-
else
|
|
197
|
-
option_library_path % filename(f)
|
|
198
|
-
end
|
|
185
|
+
option_library_path % filename(f)
|
|
199
186
|
end
|
|
200
187
|
[flags, library_path_flags, _flags].flatten.join(' ')
|
|
201
188
|
end
|
|
@@ -209,19 +196,11 @@ def run(outfile, objfiles, _libraries=[], _library_paths=[], _flags=[], _flags_b
|
|
|
209
196
|
library_flags = [libraries, _libraries].flatten.map { |d| option_library % d }
|
|
210
197
|
|
|
211
198
|
_pp "LD", outfile.relative_path
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
:libs => library_flags.join(' ') }
|
|
218
|
-
else
|
|
219
|
-
_run link_options, { :flags => all_flags(_library_paths, _flags),
|
|
220
|
-
:outfile => filename(outfile) , :objs => filename(objfiles).join(' '),
|
|
221
|
-
:flags_before_libraries => [flags_before_libraries, _flags_before_libraries].flatten.join(' '),
|
|
222
|
-
:flags_after_libraries => [flags_after_libraries, _flags_after_libraries].flatten.join(' '),
|
|
223
|
-
:libs => library_flags.join(' ') }
|
|
224
|
-
end
|
|
199
|
+
_run link_options, { :flags => all_flags(_library_paths, _flags),
|
|
200
|
+
:outfile => filename(outfile) , :objs => filename(objfiles).map{|f| %Q["#{f}"]}.join(' '),
|
|
201
|
+
:flags_before_libraries => [flags_before_libraries, _flags_before_libraries].flatten.join(' '),
|
|
202
|
+
:flags_after_libraries => [flags_after_libraries, _flags_after_libraries].flatten.join(' '),
|
|
203
|
+
:libs => library_flags.join(' ') }
|
|
225
204
|
end
|
|
226
205
|
end
|
|
227
206
|
|
|
@@ -231,17 +210,13 @@ class Command::Archiver < Command
|
|
|
231
210
|
def initialize(build)
|
|
232
211
|
super
|
|
233
212
|
@command = ENV['AR'] || 'ar'
|
|
234
|
-
@archive_options = 'rs %{outfile} %{objs}'
|
|
213
|
+
@archive_options = 'rs "%{outfile}" %{objs}'
|
|
235
214
|
end
|
|
236
215
|
|
|
237
216
|
def run(outfile, objfiles)
|
|
238
217
|
mkdir_p File.dirname(outfile)
|
|
239
218
|
_pp "AR", outfile.relative_path
|
|
240
|
-
|
|
241
|
-
_run archive_options, { :outfile => cygwin_filename(outfile), :objs => cygwin_filename(objfiles).join(' ') }
|
|
242
|
-
else
|
|
243
|
-
_run archive_options, { :outfile => filename(outfile), :objs => filename(objfiles).join(' ') }
|
|
244
|
-
end
|
|
219
|
+
_run archive_options, { :outfile => filename(outfile), :objs => filename(objfiles).map{|f| %Q["#{f}"]}.join(' ') }
|
|
245
220
|
end
|
|
246
221
|
end
|
|
247
222
|
|
|
@@ -251,7 +226,7 @@ class Command::Yacc < Command
|
|
|
251
226
|
def initialize(build)
|
|
252
227
|
super
|
|
253
228
|
@command = 'bison'
|
|
254
|
-
@compile_options =
|
|
229
|
+
@compile_options = %q[-o "%{outfile}" "%{infile}"]
|
|
255
230
|
end
|
|
256
231
|
|
|
257
232
|
def run(outfile, infile)
|
|
@@ -267,7 +242,7 @@ class Command::Gperf < Command
|
|
|
267
242
|
def initialize(build)
|
|
268
243
|
super
|
|
269
244
|
@command = 'gperf'
|
|
270
|
-
@compile_options =
|
|
245
|
+
@compile_options = %q[-L ANSI-C -C -p -j1 -i 1 -g -o -t -N mrb_reserved_word -k"1,3,$" "%{infile}" > "%{outfile}"]
|
|
271
246
|
end
|
|
272
247
|
|
|
273
248
|
def run(outfile, infile)
|
|
@@ -341,7 +316,7 @@ def run(out, infiles, funcname)
|
|
|
341
316
|
infiles.each do |f|
|
|
342
317
|
_pp "MRBC", f.relative_path, nil, :indent => 2
|
|
343
318
|
end
|
|
344
|
-
cmd = "#{filename @command} #{@compile_options % {:funcname => funcname}} #{filename(infiles).join(' ')}
|
|
319
|
+
cmd = %Q["#{filename @command}" #{@compile_options % {:funcname => funcname}} #{filename(infiles).map{|f| %Q["#{f}"]}.join(' ')}]
|
|
345
320
|
puts cmd if Rake.verbose
|
|
346
321
|
IO.popen(cmd, 'r+') do |io|
|
|
347
322
|
out.puts io.read
|