script_core 0.2.2 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +41 -45
- data/.travis.yml +2 -1
- data/Gemfile +3 -3
- data/README.md +7 -1
- data/bootstrap.sh +2 -2
- data/ext/enterprise_script_service/libseccomp/.travis.yml +24 -12
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +32 -0
- data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
- data/ext/enterprise_script_service/libseccomp/CREDITS +11 -0
- data/ext/enterprise_script_service/libseccomp/README.md +21 -1
- data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
- data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
- data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
- data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +19 -0
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
- data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
- data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
- data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
- data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
- data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
- data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
- data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
- data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
- data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
- data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
- data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
- data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
- data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +10 -2
- data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
- data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
- data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
- data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +4 -3
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
- data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
- data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
- data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
- data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
- data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
- data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
- data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
- data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
- data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +34 -10
- data/ext/enterprise_script_service/libseccomp/tests/regression +10 -3
- data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
- data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
- data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
- data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +4 -0
- data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
- data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +106 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +51 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +24 -0
- data/ext/enterprise_script_service/mruby/.gitignore +3 -0
- data/ext/enterprise_script_service/mruby/.travis.yml +6 -9
- data/ext/enterprise_script_service/mruby/AUTHORS +1 -0
- data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
- data/ext/enterprise_script_service/mruby/LICENSE +1 -1
- data/ext/enterprise_script_service/mruby/README.md +6 -2
- data/ext/enterprise_script_service/mruby/appveyor.yml +9 -12
- data/ext/enterprise_script_service/mruby/appveyor_config.rb +9 -0
- data/ext/enterprise_script_service/mruby/build_config.rb +6 -6
- data/ext/enterprise_script_service/mruby/doc/guides/compile.md +6 -2
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +4 -8
- data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
- data/ext/enterprise_script_service/mruby/doc/opcode.md +108 -95
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_ArduinoDue.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelEdison.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelGalileo.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_RX630.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_chipKITMax32.rb +2 -2
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_dreamcast_shelf.rb +108 -0
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +10 -7
- data/ext/enterprise_script_service/mruby/include/mruby.h +24 -9
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +4 -0
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +11 -2
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -10
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +10 -0
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +11 -3
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +1 -17
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +10 -0
- data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +23 -5
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +3 -2
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +13 -8
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +2 -1
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +32 -41
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +4 -4
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +2 -30
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +21 -46
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +9 -0
- data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +7 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +0 -31
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +5 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +5 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +7 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +24 -21
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +6 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +6 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +76 -48
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +107 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13153 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +13 -15
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +3 -214
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +39 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +7 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +77 -32
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +18 -36
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +324 -122
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +18 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +32 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +57 -49
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +6 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +15 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +9 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +4 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +3 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +113 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +6 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +9 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +62 -25
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +5 -23
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +4 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +5 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +11 -15
- data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -3
- data/ext/enterprise_script_service/mruby/src/array.c +25 -11
- data/ext/enterprise_script_service/mruby/src/backtrace.c +2 -2
- data/ext/enterprise_script_service/mruby/src/class.c +48 -32
- data/ext/enterprise_script_service/mruby/src/codedump.c +4 -0
- data/ext/enterprise_script_service/mruby/src/debug.c +8 -5
- data/ext/enterprise_script_service/mruby/src/dump.c +3 -65
- data/ext/enterprise_script_service/mruby/src/error.c +58 -7
- data/ext/enterprise_script_service/mruby/src/etc.c +13 -5
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +98 -21
- data/ext/enterprise_script_service/mruby/src/gc.c +15 -280
- data/ext/enterprise_script_service/mruby/src/hash.c +13 -21
- data/ext/enterprise_script_service/mruby/src/kernel.c +6 -9
- data/ext/enterprise_script_service/mruby/src/load.c +56 -30
- data/ext/enterprise_script_service/mruby/src/numeric.c +50 -70
- data/ext/enterprise_script_service/mruby/src/object.c +23 -5
- data/ext/enterprise_script_service/mruby/src/print.c +27 -3
- data/ext/enterprise_script_service/mruby/src/proc.c +26 -7
- data/ext/enterprise_script_service/mruby/src/range.c +4 -12
- data/ext/enterprise_script_service/mruby/src/state.c +34 -11
- data/ext/enterprise_script_service/mruby/src/string.c +93 -56
- data/ext/enterprise_script_service/mruby/src/symbol.c +13 -12
- data/ext/enterprise_script_service/mruby/src/vm.c +48 -53
- data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +19 -22
- data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +1 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +3 -3
- data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +6 -6
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +8 -8
- data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
- data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
- data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +15 -24
- data/ext/enterprise_script_service/mruby/travis_config.rb +0 -14
- data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
- data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
- data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
- data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
- data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
- data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
- data/ext/enterprise_script_service/msgpack/README.md +3 -2
- data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
- data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
- data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
- data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
- data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
- data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
- data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
- data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
- data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
- data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
- data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
- data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
- data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
- data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
- data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
- data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
- data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
- data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
- data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
- data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
- data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
- data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
- data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
- data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
- data/lib/script_core/engine.rb +24 -5
- data/lib/script_core/executable.rb +4 -3
- data/lib/script_core/result.rb +1 -5
- data/lib/script_core/service_channel.rb +1 -0
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/script_core.rake +3 -1
- data/script_core.gemspec +2 -2
- data/spec/dummy/app/lib/script_engine.rb +64 -5
- metadata +68 -30
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -626
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
- data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
- data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
- data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
@@ -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
|