script_core 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (529) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +35 -57
  3. data/.ruby-version +1 -1
  4. data/Gemfile +2 -2
  5. data/README.md +7 -1
  6. data/ext/enterprise_script_service/Rakefile +1 -1
  7. data/ext/enterprise_script_service/libseccomp/.travis.yml +24 -12
  8. data/ext/enterprise_script_service/libseccomp/CHANGELOG +32 -0
  9. data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
  10. data/ext/enterprise_script_service/libseccomp/CREDITS +11 -0
  11. data/ext/enterprise_script_service/libseccomp/README.md +21 -1
  12. data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
  13. data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
  14. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
  15. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
  16. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
  17. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
  18. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
  19. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
  20. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
  21. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
  22. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
  23. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
  24. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
  25. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
  26. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
  27. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
  28. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
  29. data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +19 -0
  30. data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
  31. data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
  32. data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
  33. data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
  34. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
  35. data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
  36. data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
  37. data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
  38. data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
  39. data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
  40. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
  41. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
  42. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
  43. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
  44. data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
  45. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
  46. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
  47. data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
  48. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
  49. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
  50. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
  51. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
  52. data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
  53. data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
  54. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
  55. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
  56. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
  57. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
  58. data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
  59. data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
  60. data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
  61. data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
  62. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
  63. data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
  64. data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
  65. data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
  66. data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
  67. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
  68. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
  69. data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
  70. data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
  71. data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
  72. data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
  73. data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
  74. data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
  75. data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
  76. data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
  77. data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
  78. data/ext/enterprise_script_service/libseccomp/tests/.gitignore +10 -2
  79. data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
  80. data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
  81. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
  82. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
  83. data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +4 -3
  84. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
  85. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
  86. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
  87. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
  88. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
  89. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
  90. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
  91. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
  92. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
  93. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
  94. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
  95. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
  96. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
  97. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
  98. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
  99. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
  100. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
  101. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
  102. data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
  103. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
  104. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
  105. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
  106. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
  107. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
  108. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
  109. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
  110. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
  111. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
  112. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
  113. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
  114. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
  115. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
  116. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
  117. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
  118. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
  119. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
  120. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
  121. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
  122. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
  123. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
  124. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
  125. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
  126. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
  127. data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +34 -10
  128. data/ext/enterprise_script_service/libseccomp/tests/regression +10 -3
  129. data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
  130. data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
  131. data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
  132. data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
  133. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
  134. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +4 -0
  135. data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
  136. data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
  137. data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +149 -0
  138. data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +55 -0
  139. data/ext/enterprise_script_service/mruby/.github/workflows/lint.yml +23 -0
  140. data/ext/enterprise_script_service/mruby/.github/workflows/oss-fuzz.yml +27 -0
  141. data/ext/enterprise_script_service/mruby/.github/workflows/spell-checker.yml +17 -0
  142. data/ext/enterprise_script_service/mruby/.gitignore +3 -0
  143. data/ext/enterprise_script_service/mruby/.gitlab-ci.yml +3 -3
  144. data/ext/enterprise_script_service/mruby/.markdownlint.yml +16 -0
  145. data/ext/enterprise_script_service/mruby/.travis.yml +7 -10
  146. data/ext/enterprise_script_service/mruby/.yamllint +8 -0
  147. data/ext/enterprise_script_service/mruby/AUTHORS +4 -0
  148. data/ext/enterprise_script_service/mruby/CODEOWNERS +1 -0
  149. data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +6 -13
  150. data/ext/enterprise_script_service/mruby/Doxyfile +4 -4
  151. data/ext/enterprise_script_service/mruby/LICENSE +1 -1
  152. data/ext/enterprise_script_service/mruby/Makefile +1 -1
  153. data/ext/enterprise_script_service/mruby/README.md +5 -11
  154. data/ext/enterprise_script_service/mruby/Rakefile +18 -108
  155. data/ext/enterprise_script_service/mruby/TODO.md +17 -0
  156. data/ext/enterprise_script_service/mruby/appveyor.yml +29 -26
  157. data/ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb +1 -1
  158. data/ext/enterprise_script_service/mruby/build_config.rb +9 -152
  159. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_ArduinoDue.rb → build_config/ArduinoDue.rb} +4 -21
  160. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelEdison.rb → build_config/IntelEdison.rb} +4 -4
  161. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelGalileo.rb → build_config/IntelGalileo.rb} +3 -20
  162. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_RX630.rb → build_config/RX630.rb} +4 -21
  163. data/ext/enterprise_script_service/mruby/build_config/android_arm64-v8a.rb +11 -0
  164. data/ext/enterprise_script_service/mruby/build_config/android_armeabi.rb +11 -0
  165. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_android_armeabi_v7a_neon_hard.rb → build_config/android_armeabi_v7a_neon_hard.rb} +0 -15
  166. data/ext/enterprise_script_service/mruby/build_config/bench.rb +11 -0
  167. data/ext/enterprise_script_service/mruby/build_config/boxing.rb +21 -0
  168. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_chipKITMax32.rb → build_config/chipKITMax32.rb} +4 -21
  169. data/ext/enterprise_script_service/mruby/{appveyor_config.rb → build_config/ci/gcc-clang.rb} +11 -8
  170. data/ext/enterprise_script_service/mruby/build_config/ci/msvc.rb +20 -0
  171. data/ext/enterprise_script_service/mruby/build_config/clang-asan.rb +11 -0
  172. data/ext/enterprise_script_service/mruby/build_config/cross-32bit.rb +14 -0
  173. data/ext/enterprise_script_service/mruby/build_config/default.rb +80 -0
  174. data/ext/enterprise_script_service/mruby/build_config/dreamcast_shelf.rb +94 -0
  175. data/ext/enterprise_script_service/mruby/build_config/gameboyadvance.rb +73 -0
  176. data/ext/enterprise_script_service/mruby/build_config/host-cxx.rb +12 -0
  177. data/ext/enterprise_script_service/mruby/build_config/host-debug.rb +20 -0
  178. data/ext/enterprise_script_service/mruby/build_config/host-gprof.rb +14 -0
  179. data/ext/enterprise_script_service/mruby/build_config/host-m32.rb +15 -0
  180. data/ext/enterprise_script_service/mruby/build_config/host-shared.rb +36 -0
  181. data/ext/enterprise_script_service/mruby/build_config/mrbc.rb +11 -0
  182. data/ext/enterprise_script_service/mruby/build_config/no-float.rb +17 -0
  183. data/ext/enterprise_script_service/mruby/doc/guides/compile.md +142 -49
  184. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +5 -4
  185. data/ext/enterprise_script_service/mruby/doc/guides/gc-arena-howto.md +1 -1
  186. data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +53 -30
  187. data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +31 -14
  188. data/ext/enterprise_script_service/mruby/doc/guides/symbol.md +83 -0
  189. data/ext/enterprise_script_service/mruby/doc/limitations.md +35 -36
  190. data/ext/enterprise_script_service/mruby/doc/mruby3.md +163 -0
  191. data/ext/enterprise_script_service/mruby/doc/opcode.md +102 -103
  192. data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +1 -1
  193. data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +5 -1
  194. data/ext/enterprise_script_service/mruby/examples/mrbgems/c_extension_example/src/example.c +5 -1
  195. data/ext/enterprise_script_service/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +1 -1
  196. data/ext/enterprise_script_service/mruby/include/mrbconf.h +88 -66
  197. data/ext/enterprise_script_service/mruby/include/mruby.h +160 -104
  198. data/ext/enterprise_script_service/mruby/include/mruby/array.h +27 -6
  199. data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +80 -46
  200. data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +8 -8
  201. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +76 -55
  202. data/ext/enterprise_script_service/mruby/include/mruby/class.h +10 -8
  203. data/ext/enterprise_script_service/mruby/include/mruby/common.h +14 -1
  204. data/ext/enterprise_script_service/mruby/include/mruby/compile.h +20 -6
  205. data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
  206. data/ext/enterprise_script_service/mruby/include/mruby/dump.h +18 -52
  207. data/ext/enterprise_script_service/mruby/include/mruby/endian.h +44 -0
  208. data/ext/enterprise_script_service/mruby/include/mruby/error.h +39 -5
  209. data/ext/enterprise_script_service/mruby/include/mruby/gc.h +1 -0
  210. data/ext/enterprise_script_service/mruby/include/mruby/hash.h +33 -13
  211. data/ext/enterprise_script_service/mruby/include/mruby/irep.h +74 -14
  212. data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
  213. data/ext/enterprise_script_service/mruby/include/mruby/khash.h +19 -9
  214. data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +37 -63
  215. data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +1 -27
  216. data/ext/enterprise_script_service/mruby/include/mruby/ops.h +29 -24
  217. data/ext/enterprise_script_service/mruby/include/mruby/presym.h +40 -0
  218. data/ext/enterprise_script_service/mruby/include/mruby/presym/disable.h +70 -0
  219. data/ext/enterprise_script_service/mruby/include/mruby/presym/enable.h +37 -0
  220. data/ext/enterprise_script_service/mruby/include/mruby/presym/scanning.h +73 -0
  221. data/ext/enterprise_script_service/mruby/include/mruby/proc.h +93 -21
  222. data/ext/enterprise_script_service/mruby/include/mruby/string.h +12 -16
  223. data/ext/enterprise_script_service/mruby/include/mruby/throw.h +14 -3
  224. data/ext/enterprise_script_service/mruby/include/mruby/value.h +60 -59
  225. data/ext/enterprise_script_service/mruby/include/mruby/variable.h +1 -0
  226. data/ext/enterprise_script_service/mruby/include/mruby/version.h +25 -6
  227. data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +198 -72
  228. data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +71 -78
  229. data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +12 -10
  230. data/ext/enterprise_script_service/mruby/lib/{mruby-core-ext.rb → mruby/core_ext.rb} +10 -3
  231. data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +84 -32
  232. data/ext/enterprise_script_service/mruby/lib/mruby/lockfile.rb +1 -1
  233. data/ext/enterprise_script_service/mruby/lib/mruby/presym.rb +132 -0
  234. data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
  235. data/ext/enterprise_script_service/mruby/mrbgems/default-no-fpu.gembox +3 -0
  236. data/ext/enterprise_script_service/mruby/mrbgems/default-no-stdio.gembox +4 -0
  237. data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +9 -81
  238. data/ext/enterprise_script_service/mruby/mrbgems/full-core.gembox +1 -4
  239. data/ext/enterprise_script_service/mruby/mrbgems/math.gembox +10 -0
  240. data/ext/enterprise_script_service/mruby/mrbgems/metaprog.gembox +15 -0
  241. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +1 -32
  242. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +10 -12
  243. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
  244. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +30 -18
  245. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mruby-config +18 -8
  246. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +3 -6
  247. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +10 -10
  248. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +14 -9
  249. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +3 -2
  250. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +4 -4
  251. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +2 -6
  252. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +6 -2
  253. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +23 -5
  254. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +11 -2
  255. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +46 -35
  256. data/ext/enterprise_script_service/mruby/mrbgems/{mruby-compiler → mruby-bin-mrbc}/bintest/mrbc.rb +0 -0
  257. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +3 -4
  258. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +41 -28
  259. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +25 -4
  260. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -2
  261. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +26 -6
  262. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +1 -1
  263. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
  264. data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrbgem.rake +5 -0
  265. data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrblib/catch.rb +27 -0
  266. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +7 -1
  267. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +495 -436
  268. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/keywords +5 -0
  269. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/lex.def +49 -44
  270. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +637 -220
  271. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13734 -0
  272. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +20 -23
  273. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +2 -2
  274. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +9 -9
  275. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/test/complex.rb +4 -4
  276. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +1 -0
  277. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +2 -2
  278. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/mrbgem.rake +2 -2
  279. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
  280. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +19 -238
  281. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
  282. data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +19 -15
  283. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +31 -5
  284. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +7 -0
  285. data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +5 -6
  286. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +18 -16
  287. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +39 -7
  288. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
  289. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +9 -4
  290. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
  291. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +9 -14
  292. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +107 -59
  293. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +22 -38
  294. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +417 -203
  295. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +20 -12
  296. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +33 -2
  297. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +58 -50
  298. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +13 -14
  299. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +13 -12
  300. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/test/math.rb +5 -4
  301. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +56 -73
  302. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +13 -4
  303. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/README.md +4 -3
  304. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +80 -78
  305. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +4 -4
  306. data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +14 -13
  307. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +8 -16
  308. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +18 -13
  309. data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/mrbgem.rake +10 -0
  310. data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/src/memsize.c +231 -0
  311. data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/test/memsize.rb +63 -0
  312. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/README.md +15 -18
  313. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +120 -67
  314. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -30
  315. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +65 -26
  316. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +34 -21
  317. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.c +1 -1
  318. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +98 -43
  319. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +2 -2
  320. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +39 -6
  321. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +21 -43
  322. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/test/range.rb +27 -3
  323. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +12 -20
  324. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +216 -38
  325. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/test/rational.rb +6 -6
  326. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/README.md +6 -4
  327. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +5 -5
  328. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +3 -2
  329. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
  330. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +47 -45
  331. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
  332. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +161 -93
  333. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +9 -25
  334. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +23 -1
  335. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +17 -14
  336. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +1 -1
  337. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +23 -36
  338. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +7 -6
  339. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +1 -1
  340. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/README.md +0 -1
  341. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +5 -5
  342. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +17 -44
  343. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +4 -4
  344. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +37 -41
  345. data/ext/enterprise_script_service/mruby/mrbgems/stdlib-ext.gembox +18 -0
  346. data/ext/enterprise_script_service/mruby/mrbgems/stdlib-io.gembox +12 -0
  347. data/ext/enterprise_script_service/mruby/mrbgems/stdlib.gembox +54 -0
  348. data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
  349. data/ext/enterprise_script_service/mruby/mrblib/10error.rb +4 -0
  350. data/ext/enterprise_script_service/mruby/mrblib/array.rb +17 -9
  351. data/ext/enterprise_script_service/mruby/mrblib/enum.rb +1 -1
  352. data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -23
  353. data/ext/enterprise_script_service/mruby/mrblib/init_mrblib.c +0 -11
  354. data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +36 -11
  355. data/ext/enterprise_script_service/mruby/mrblib/range.rb +25 -3
  356. data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_proto_fuzzer.cpp +2 -2
  357. data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.h +1 -1
  358. data/ext/enterprise_script_service/mruby/src/array.c +67 -90
  359. data/ext/enterprise_script_service/mruby/src/backtrace.c +18 -19
  360. data/ext/enterprise_script_service/mruby/src/class.c +819 -211
  361. data/ext/enterprise_script_service/mruby/src/codedump.c +226 -197
  362. data/ext/enterprise_script_service/mruby/src/debug.c +14 -11
  363. data/ext/enterprise_script_service/mruby/src/dump.c +470 -207
  364. data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
  365. data/ext/enterprise_script_service/mruby/src/error.c +94 -20
  366. data/ext/enterprise_script_service/mruby/src/etc.c +56 -39
  367. data/ext/enterprise_script_service/mruby/src/fmt_fp.c +103 -27
  368. data/ext/enterprise_script_service/mruby/src/gc.c +86 -349
  369. data/ext/enterprise_script_service/mruby/src/hash.c +1058 -723
  370. data/ext/enterprise_script_service/mruby/src/kernel.c +78 -226
  371. data/ext/enterprise_script_service/mruby/src/load.c +215 -159
  372. data/ext/enterprise_script_service/mruby/src/numeric.c +400 -382
  373. data/ext/enterprise_script_service/mruby/src/object.c +115 -90
  374. data/ext/enterprise_script_service/mruby/src/print.c +31 -6
  375. data/ext/enterprise_script_service/mruby/src/proc.c +56 -45
  376. data/ext/enterprise_script_service/mruby/src/range.c +49 -33
  377. data/ext/enterprise_script_service/mruby/src/state.c +58 -42
  378. data/ext/enterprise_script_service/mruby/src/string.c +151 -156
  379. data/ext/enterprise_script_service/mruby/src/symbol.c +132 -66
  380. data/ext/enterprise_script_service/mruby/src/value_array.h +1 -0
  381. data/ext/enterprise_script_service/mruby/src/variable.c +158 -158
  382. data/ext/enterprise_script_service/mruby/src/vm.c +655 -645
  383. data/ext/enterprise_script_service/mruby/tasks/benchmark.rake +6 -6
  384. data/ext/enterprise_script_service/mruby/tasks/bin.rake +23 -0
  385. data/ext/enterprise_script_service/mruby/tasks/core.rake +12 -0
  386. data/ext/enterprise_script_service/mruby/tasks/doc.rake +50 -38
  387. data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +64 -61
  388. data/ext/enterprise_script_service/mruby/tasks/libmruby.rake +10 -1
  389. data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +13 -1
  390. data/ext/enterprise_script_service/mruby/tasks/mrblib.rake +40 -0
  391. data/ext/enterprise_script_service/mruby/tasks/presym.rake +44 -0
  392. data/ext/enterprise_script_service/mruby/tasks/test.rake +68 -0
  393. data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
  394. data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +8 -7
  395. data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +13 -17
  396. data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +21 -25
  397. data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
  398. data/ext/enterprise_script_service/mruby/test/bintest.rb +5 -5
  399. data/ext/enterprise_script_service/mruby/test/t/argumenterror.rb +16 -0
  400. data/ext/enterprise_script_service/mruby/test/t/array.rb +7 -3
  401. data/ext/enterprise_script_service/mruby/test/t/bs_literal.rb +1 -1
  402. data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
  403. data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
  404. data/ext/enterprise_script_service/mruby/test/t/float.rb +18 -8
  405. data/ext/enterprise_script_service/mruby/test/t/hash.rb +903 -281
  406. data/ext/enterprise_script_service/mruby/test/t/integer.rb +10 -38
  407. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +16 -25
  408. data/ext/enterprise_script_service/mruby/test/t/literals.rb +50 -0
  409. data/ext/enterprise_script_service/mruby/test/t/module.rb +2 -2
  410. data/ext/enterprise_script_service/mruby/test/t/numeric.rb +1 -1
  411. data/ext/enterprise_script_service/mruby/test/t/range.rb +83 -1
  412. data/ext/enterprise_script_service/mruby/test/t/string.rb +4 -0
  413. data/ext/enterprise_script_service/mruby/test/t/superclass.rb +10 -10
  414. data/ext/enterprise_script_service/mruby/test/t/syntax.rb +24 -0
  415. data/ext/enterprise_script_service/mruby/test/t/vformat.rb +3 -3
  416. data/ext/enterprise_script_service/mruby_config.rb +2 -5
  417. data/ext/enterprise_script_service/mruby_engine.cpp +1 -1
  418. data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
  419. data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
  420. data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
  421. data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
  422. data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
  423. data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
  424. data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
  425. data/ext/enterprise_script_service/msgpack/README.md +3 -2
  426. data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
  427. data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
  428. data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
  429. data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
  430. data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
  431. data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
  432. data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
  433. data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
  434. data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
  435. data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
  436. data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
  437. data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
  438. data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
  439. data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
  440. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
  441. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
  442. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
  443. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
  444. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
  445. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
  446. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
  447. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
  448. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
  449. data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
  450. data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
  451. data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
  452. data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
  453. data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
  454. data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
  455. data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
  456. data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
  457. data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
  458. data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
  459. data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
  460. data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
  461. data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
  462. data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
  463. data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
  464. data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
  465. data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
  466. data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
  467. data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
  468. data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
  469. data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
  470. data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
  471. data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
  472. data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
  473. data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
  474. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
  475. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
  476. data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
  477. data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
  478. data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
  479. data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
  480. data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
  481. data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
  482. data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
  483. data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
  484. data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
  485. data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
  486. data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
  487. data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
  488. data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
  489. data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
  490. data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
  491. data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
  492. data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
  493. data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
  494. data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
  495. data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
  496. data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
  497. data/lib/script_core/engine.rb +24 -5
  498. data/lib/script_core/executable.rb +4 -3
  499. data/lib/script_core/version.rb +1 -1
  500. data/lib/tasks/script_core.rake +3 -1
  501. data/script_core.gemspec +1 -2
  502. data/spec/dummy/app/lib/script_engine.rb +64 -5
  503. data/spec/script_core_spec.rb +13 -0
  504. metadata +123 -61
  505. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
  506. data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
  507. data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
  508. data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
  509. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
  510. data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
  511. data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
  512. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
  513. data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -626
  514. data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -626
  515. data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
  516. data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
  517. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
  518. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
  519. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
  520. data/ext/enterprise_script_service/mruby/TODO +0 -8
  521. data/ext/enterprise_script_service/mruby/benchmark/build_config_boxing.rb +0 -28
  522. data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_arm64-v8a.rb +0 -26
  523. data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_armeabi.rb +0 -26
  524. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/kernel.c +0 -30
  525. data/ext/enterprise_script_service/mruby/mrblib/mrblib.rake +0 -18
  526. data/ext/enterprise_script_service/mruby/src/crc.c +0 -39
  527. data/ext/enterprise_script_service/mruby/src/mruby_core.rake +0 -19
  528. data/ext/enterprise_script_service/mruby/travis_config.rb +0 -54
  529. data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
@@ -0,0 +1,12 @@
1
+ # It also works with MRB_NO_FLOAT.
2
+
3
+ MRuby::GemBox.new do |conf|
4
+ # Use standard IO/File class
5
+ conf.gem :core => "mruby-io"
6
+
7
+ # Use standard IO/File class
8
+ conf.gem :core => "mruby-socket"
9
+
10
+ # Use standard print/puts/p
11
+ conf.gem :core => "mruby-print"
12
+ end
@@ -0,0 +1,54 @@
1
+ # It also works with MRB_NO_STDIO and MRB_NO_FLOAT.
2
+
3
+ MRuby::GemBox.new do |conf|
4
+ # Use Comparable module extension
5
+ conf.gem :core => "mruby-compar-ext"
6
+
7
+ # Use Enumerable module extension
8
+ conf.gem :core => "mruby-enum-ext"
9
+
10
+ # Use String class extension
11
+ conf.gem :core => "mruby-string-ext"
12
+
13
+ # Use Numeric class extension
14
+ conf.gem :core => "mruby-numeric-ext"
15
+
16
+ # Use Array class extension
17
+ conf.gem :core => "mruby-array-ext"
18
+
19
+ # Use Hash class extension
20
+ conf.gem :core => "mruby-hash-ext"
21
+
22
+ # Use Range class extension
23
+ conf.gem :core => "mruby-range-ext"
24
+
25
+ # Use Proc class extension
26
+ conf.gem :core => "mruby-proc-ext"
27
+
28
+ # Use Symbol class extension
29
+ conf.gem :core => "mruby-symbol-ext"
30
+
31
+ # Use Object class extension
32
+ conf.gem :core => "mruby-object-ext"
33
+
34
+ # Use ObjectSpace class
35
+ conf.gem :core => "mruby-objectspace"
36
+
37
+ # Use Fiber class
38
+ conf.gem :core => "mruby-fiber"
39
+
40
+ # Use Enumerator class (require mruby-fiber)
41
+ conf.gem :core => "mruby-enumerator"
42
+
43
+ # Use Enumerator::Lazy class (require mruby-enumerator)
44
+ conf.gem :core => "mruby-enum-lazy"
45
+
46
+ # Use toplevel object (main) methods extension
47
+ conf.gem :core => "mruby-toplevel-ext"
48
+
49
+ # Use Kernel module extension
50
+ conf.gem :core => "mruby-kernel-ext"
51
+
52
+ # Use class/module extension
53
+ conf.gem :core => "mruby-class-ext"
54
+ end
@@ -1,3 +1,13 @@
1
+ class BasicObject
2
+ def !=(other)
3
+ if self == other
4
+ false
5
+ else
6
+ true
7
+ end
8
+ end
9
+ end
10
+
1
11
  class Module
2
12
  # 15.2.2.4.12
3
13
  def attr_accessor(*names)
@@ -21,6 +21,10 @@ class RegexpError < StandardError
21
21
  class TypeError < StandardError
22
22
  end
23
23
 
24
+ # ISO 15.2.30
25
+ class ZeroDivisionError < StandardError
26
+ end
27
+
24
28
  # ISO 15.2.31
25
29
  class NameError < StandardError
26
30
  attr_accessor :name
@@ -10,16 +10,16 @@ class Array
10
10
  # and pass the respective element.
11
11
  #
12
12
  # ISO 15.2.12.5.10
13
- # def each(&block)
14
- # return to_enum :each unless block
13
+ def each(&block)
14
+ return to_enum :each unless block
15
15
 
16
- # idx = 0
17
- # while idx < length
18
- # block.call(self[idx])
19
- # idx += 1
20
- # end
21
- # self
22
- # end
16
+ idx = 0
17
+ while idx < length
18
+ block.call(self[idx])
19
+ idx += 1
20
+ end
21
+ self
22
+ end
23
23
 
24
24
  ##
25
25
  # Calls the given block for each element of +self+
@@ -66,6 +66,10 @@ def collect!(&block)
66
66
  #
67
67
  # ISO 15.2.12.5.15
68
68
  def initialize(size=0, obj=nil, &block)
69
+ if size.is_a?(Array) && obj==nil && block == nil
70
+ self.replace(size)
71
+ return self
72
+ end
69
73
  size = size.__to_int
70
74
  raise ArgumentError, "negative array size" if size < 0
71
75
 
@@ -268,4 +272,8 @@ def sort!(&block)
268
272
  def sort(&block)
269
273
  self.dup.sort!(&block)
270
274
  end
275
+
276
+ def to_a
277
+ self
278
+ end
271
279
  end
@@ -10,7 +10,7 @@
10
10
  # implement a meaningful `<=>` operator, as these methods
11
11
  # rely on an ordering between members of the collection.
12
12
  #
13
- # @ISO 15.3.2
13
+ # ISO 15.3.2
14
14
  module Enumerable
15
15
 
16
16
  NONE = Object.new
@@ -140,30 +140,10 @@ def each_key(&block)
140
140
  def each_value(&block)
141
141
  return to_enum :each_value unless block
142
142
 
143
- self.keys.each{|k| block.call(self[k])}
143
+ self.values.each{|v| block.call(v)}
144
144
  self
145
145
  end
146
146
 
147
- ##
148
- # Replaces the contents of <i>hsh</i> with the contents of other hash
149
- #
150
- # ISO 15.2.13.4.23
151
- def replace(hash)
152
- raise TypeError, "Hash required (#{hash.class} given)" unless Hash === hash
153
- self.clear
154
- hash.each_key{|k|
155
- self[k] = hash[k]
156
- }
157
- if hash.default_proc
158
- self.default_proc = hash.default_proc
159
- else
160
- self.default = hash.default
161
- end
162
- self
163
- end
164
- # ISO 15.2.13.4.17
165
- alias initialize_copy replace
166
-
167
147
  ##
168
148
  # Return a hash which contains the content of
169
149
  # +self+ and +other+. If a block is given
@@ -192,11 +172,11 @@ def _inspect(recur_list)
192
172
  recur_list[self.object_id] = true
193
173
  ary=[]
194
174
  keys=self.keys
175
+ vals=self.values
195
176
  size=keys.size
196
177
  i=0
197
178
  while i<size
198
- k=keys[i]
199
- ary<<(k._inspect(recur_list) + "=>" + self[k]._inspect(recur_list))
179
+ ary<<(keys[i]._inspect(recur_list) + "=>" + vals[i]._inspect(recur_list))
200
180
  i+=1
201
181
  end
202
182
  "{"+ary.join(", ")+"}"
@@ -1,11 +0,0 @@
1
- #include <mruby.h>
2
- #include <mruby/irep.h>
3
-
4
- extern const uint8_t mrblib_irep[];
5
-
6
- void
7
- mrb_init_mrblib(mrb_state *mrb)
8
- {
9
- mrb_load_irep(mrb, mrblib_irep);
10
- }
11
-
@@ -34,11 +34,11 @@ def abs
34
34
  end
35
35
 
36
36
  ##
37
- # Integral
37
+ # Integer
38
38
  #
39
- # mruby special - module to share methods between Floats and Integers
40
- # to make them compatible
41
- module Integral
39
+ # ISO 15.2.8
40
+ ##
41
+ class Integer
42
42
  ##
43
43
  # Calls the given block once for each Integer
44
44
  # from +self+ downto +num+.
@@ -125,14 +125,7 @@ def step(num=nil, step=1, &block)
125
125
  end
126
126
  self
127
127
  end
128
- end
129
128
 
130
- ##
131
- # Integer
132
- #
133
- # ISO 15.2.8
134
- class Integer
135
- include Integral
136
129
  ##
137
130
  # Returns the receiver simply.
138
131
  #
@@ -161,3 +154,35 @@ def floor
161
154
  # ISO 15.2.8.3.26
162
155
  alias truncate floor
163
156
  end
157
+
158
+ class Float
159
+ ##
160
+ # Calls the given block from +self+ to +num+
161
+ # incremented by +step+ (default 1).
162
+ #
163
+ def step(num=nil, step=1, &block)
164
+ raise ArgumentError, "step can't be 0" if step == 0
165
+ return to_enum(:step, num, step) unless block
166
+
167
+ i = self
168
+ if num == self || step.infinite?
169
+ block.call(i) if step > 0 && i <= (num||i) || step < 0 && i >= (num||-i)
170
+ elsif num == nil
171
+ while true
172
+ block.call(i)
173
+ i += step
174
+ end
175
+ elsif step > 0
176
+ while i <= num
177
+ block.call(i)
178
+ i += step
179
+ end
180
+ else
181
+ while i >= num
182
+ block.call(i)
183
+ i += step
184
+ end
185
+ end
186
+ self
187
+ end
188
+ end if Object.const_defined?(:Float)
@@ -12,10 +12,27 @@ class Range
12
12
  def each(&block)
13
13
  return to_enum :each unless block
14
14
 
15
- val = self.first
16
- last = self.last
15
+ val = self.begin
16
+ last = self.end
17
17
 
18
- if val.kind_of?(Fixnum) && last.kind_of?(Fixnum) # fixnums are special
18
+ if val.kind_of?(Fixnum) && last.nil?
19
+ i = val
20
+ while true
21
+ block.call(i)
22
+ i += 1
23
+ end
24
+ return self
25
+ end
26
+
27
+ if val.kind_of?(String) && last.nil?
28
+ if val.respond_to? :__upto_endless
29
+ return val.__upto_endless(&block)
30
+ else
31
+ str_each = true
32
+ end
33
+ end
34
+
35
+ if val.kind_of?(Integer) && last.kind_of?(Integer) # fixnums are special
19
36
  lim = last
20
37
  lim += 1 unless exclude_end?
21
38
  i = val
@@ -56,6 +73,11 @@ def hash
56
73
  h += 1 if self.exclude_end?
57
74
  h
58
75
  end
76
+
77
+ def to_a
78
+ raise RangeError, "cannot convert endless range to an array" if self.last.nil?
79
+ super
80
+ end
59
81
  end
60
82
 
61
83
  ##
@@ -5,8 +5,8 @@
5
5
  #include <mruby.h>
6
6
  #include <mruby/compile.h>
7
7
 
8
- #include "libprotobuf-mutator/src/libfuzzer/libfuzzer_macro.h"
9
- #include "ruby.pb.h"
8
+ #include <src/libfuzzer/libfuzzer_macro.h>
9
+ #include <ruby.pb.h>
10
10
  #include "proto_to_ruby.h"
11
11
 
12
12
  using namespace ruby_fuzzer;
@@ -4,7 +4,7 @@
4
4
  #include <ostream>
5
5
  #include <sstream>
6
6
  #include <stack>
7
- #include "ruby.pb.h"
7
+ #include <ruby.pb.h>
8
8
 
9
9
  namespace ruby_fuzzer {
10
10
  class protoConverter
@@ -10,7 +10,7 @@
10
10
  #include <mruby/string.h>
11
11
  #include <mruby/range.h>
12
12
  #include <mruby/proc.h>
13
- #include <mruby/opcode.h>
13
+ #include <mruby/presym.h>
14
14
  #include "value_array.h"
15
15
 
16
16
  #define ARY_DEFAULT_LEN 4
@@ -280,7 +280,7 @@ static mrb_value
280
280
  mrb_ary_s_create(mrb_state *mrb, mrb_value klass)
281
281
  {
282
282
  mrb_value ary;
283
- mrb_value *vals;
283
+ const mrb_value *vals;
284
284
  mrb_int len;
285
285
  struct RArray *a;
286
286
 
@@ -340,7 +340,7 @@ mrb_ary_plus(mrb_state *mrb, mrb_value self)
340
340
  {
341
341
  struct RArray *a1 = mrb_ary_ptr(self);
342
342
  struct RArray *a2;
343
- mrb_value *ptr;
343
+ const mrb_value *ptr;
344
344
  mrb_int blen, len1;
345
345
 
346
346
  mrb_get_args(mrb, "a", &ptr, &blen);
@@ -508,22 +508,26 @@ mrb_ary_push(mrb_state *mrb, mrb_value ary, mrb_value elem)
508
508
  static mrb_value
509
509
  mrb_ary_push_m(mrb_state *mrb, mrb_value self)
510
510
  {
511
- mrb_value *argv;
512
- mrb_int len, len2, alen;
511
+ mrb_int argc;
512
+ const mrb_value *argv;
513
+ mrb_int len, len2;
513
514
  struct RArray *a;
514
515
 
515
- mrb_get_args(mrb, "*!", &argv, &alen);
516
+ argc = mrb_get_argc(mrb);
517
+ argv = mrb_get_argv(mrb);
516
518
  a = mrb_ary_ptr(self);
517
519
  ary_modify(mrb, a);
518
520
  len = ARY_LEN(a);
519
- len2 = len + alen;
521
+ len2 = len + argc;
520
522
  if (ARY_CAPA(a) < len2) {
521
523
  ary_expand_capa(mrb, a, len2);
522
524
  }
523
- array_copy(ARY_PTR(a)+len, argv, alen);
525
+ array_copy(ARY_PTR(a)+len, argv, argc);
524
526
  ARY_SET_LEN(a, len2);
525
- mrb_write_barrier(mrb, (struct RBasic*)a);
526
-
527
+ while (argc--) {
528
+ mrb_field_write_barrier_value(mrb, (struct RBasic*)a, *argv);
529
+ argv++;
530
+ }
527
531
  return self;
528
532
  }
529
533
 
@@ -611,7 +615,8 @@ static mrb_value
611
615
  mrb_ary_unshift_m(mrb_state *mrb, mrb_value self)
612
616
  {
613
617
  struct RArray *a = mrb_ary_ptr(self);
614
- mrb_value *vals, *ptr;
618
+ const mrb_value *vals;
619
+ mrb_value *ptr;
615
620
  mrb_int alen, len;
616
621
 
617
622
  mrb_get_args(mrb, "*!", &vals, &alen);
@@ -732,6 +737,10 @@ mrb_ary_splice(mrb_state *mrb, mrb_value ary, mrb_int head, mrb_int len, mrb_val
732
737
  argv = ARY_PTR(r);
733
738
  }
734
739
  }
740
+ else if (mrb_undef_p(rpl)) {
741
+ argc = 0;
742
+ argv = NULL;
743
+ }
735
744
  else {
736
745
  argc = 1;
737
746
  argv = &rpl;
@@ -804,20 +813,27 @@ ary_subseq(mrb_state *mrb, struct RArray *a, mrb_int beg, mrb_int len)
804
813
  return mrb_obj_value(b);
805
814
  }
806
815
 
816
+ mrb_value
817
+ mrb_ary_subseq(mrb_state *mrb, mrb_value ary, mrb_int beg, mrb_int len)
818
+ {
819
+ struct RArray *a = mrb_ary_ptr(ary);
820
+ return ary_subseq(mrb, a, beg, len);
821
+ }
822
+
807
823
  static mrb_int
808
824
  aget_index(mrb_state *mrb, mrb_value index)
809
825
  {
810
- if (mrb_fixnum_p(index)) {
811
- return mrb_fixnum(index);
826
+ if (mrb_integer_p(index)) {
827
+ return mrb_integer(index);
812
828
  }
813
- #ifndef MRB_WITHOUT_FLOAT
829
+ #ifndef MRB_NO_FLOAT
814
830
  else if (mrb_float_p(index)) {
815
831
  return (mrb_int)mrb_float(index);
816
832
  }
817
833
  #endif
818
834
  else {
819
835
  mrb_int i, argc;
820
- mrb_value *argv;
836
+ const mrb_value *argv;
821
837
 
822
838
  mrb_get_args(mrb, "i*!", &i, &argv, &argc);
823
839
  return i;
@@ -855,10 +871,12 @@ static mrb_value
855
871
  mrb_ary_aget(mrb_state *mrb, mrb_value self)
856
872
  {
857
873
  struct RArray *a = mrb_ary_ptr(self);
858
- mrb_int i, len, alen;
874
+ mrb_int i;
875
+ mrb_int len, alen;
859
876
  mrb_value index;
860
877
 
861
- if (mrb_get_args(mrb, "o|i", &index, &len) == 1) {
878
+ if (mrb_get_argc(mrb) == 1) {
879
+ index = mrb_get_arg1(mrb);
862
880
  switch (mrb_type(index)) {
863
881
  /* a[n..m] */
864
882
  case MRB_TT_RANGE:
@@ -868,13 +886,14 @@ mrb_ary_aget(mrb_state *mrb, mrb_value self)
868
886
  else {
869
887
  return mrb_nil_value();
870
888
  }
871
- case MRB_TT_FIXNUM:
872
- return mrb_ary_ref(mrb, self, mrb_fixnum(index));
889
+ case MRB_TT_INTEGER:
890
+ return mrb_ary_ref(mrb, self, mrb_integer(index));
873
891
  default:
874
892
  return mrb_ary_ref(mrb, self, aget_index(mrb, index));
875
893
  }
876
894
  }
877
895
 
896
+ mrb_get_args(mrb, "oi", &index, &len);
878
897
  i = aget_index(mrb, index);
879
898
  alen = ARY_LEN(a);
880
899
  if (i < 0) i += alen;
@@ -927,8 +946,11 @@ mrb_ary_aset(mrb_state *mrb, mrb_value self)
927
946
  mrb_value v1, v2, v3;
928
947
  mrb_int i, len;
929
948
 
930
- mrb_ary_modify(mrb, mrb_ary_ptr(self));
931
- if (mrb_get_args(mrb, "oo|o", &v1, &v2, &v3) == 2) {
949
+ ary_modify(mrb, mrb_ary_ptr(self));
950
+ if (mrb_get_argc(mrb) == 2) {
951
+ const mrb_value *vs = mrb_get_argv(mrb);
952
+ v1 = vs[0]; v2 = vs[1];
953
+
932
954
  /* a[n..m] = v */
933
955
  switch (mrb_range_beg_len(mrb, v1, &i, &len, RARRAY_LEN(self), FALSE)) {
934
956
  case MRB_RANGE_TYPE_MISMATCH:
@@ -944,6 +966,7 @@ mrb_ary_aset(mrb_state *mrb, mrb_value self)
944
966
  return v2;
945
967
  }
946
968
 
969
+ mrb_get_args(mrb, "ooo", &v1, &v2, &v3);
947
970
  /* a[n,m] = v */
948
971
  mrb_ary_splice(mrb, self, aget_index(mrb, v1), aget_index(mrb, v2), v3);
949
972
  return v3;
@@ -1027,10 +1050,9 @@ mrb_ary_last(mrb_state *mrb, mrb_value self)
1027
1050
  static mrb_value
1028
1051
  mrb_ary_index_m(mrb_state *mrb, mrb_value self)
1029
1052
  {
1030
- mrb_value obj;
1053
+ mrb_value obj = mrb_get_arg1(mrb);
1031
1054
  mrb_int i;
1032
1055
 
1033
- mrb_get_args(mrb, "o", &obj);
1034
1056
  for (i = 0; i < RARRAY_LEN(self); i++) {
1035
1057
  if (mrb_equal(mrb, RARRAY_PTR(self)[i], obj)) {
1036
1058
  return mrb_fixnum_value(i);
@@ -1042,10 +1064,9 @@ mrb_ary_index_m(mrb_state *mrb, mrb_value self)
1042
1064
  static mrb_value
1043
1065
  mrb_ary_rindex_m(mrb_state *mrb, mrb_value self)
1044
1066
  {
1045
- mrb_value obj;
1067
+ mrb_value obj = mrb_get_arg1(mrb);
1046
1068
  mrb_int i, len;
1047
1069
 
1048
- mrb_get_args(mrb, "o", &obj);
1049
1070
  for (i = RARRAY_LEN(self) - 1; i >= 0; i--) {
1050
1071
  if (mrb_equal(mrb, RARRAY_PTR(self)[i], obj)) {
1051
1072
  return mrb_fixnum_value(i);
@@ -1060,22 +1081,26 @@ mrb_ary_rindex_m(mrb_state *mrb, mrb_value self)
1060
1081
  MRB_API mrb_value
1061
1082
  mrb_ary_splat(mrb_state *mrb, mrb_value v)
1062
1083
  {
1063
- mrb_value a;
1084
+ mrb_value ary;
1085
+ struct RArray *a;
1064
1086
 
1065
1087
  if (mrb_array_p(v)) {
1066
- return v;
1088
+ a = ary_dup(mrb, mrb_ary_ptr(v));
1089
+ return mrb_obj_value(a);
1067
1090
  }
1068
1091
 
1069
- if (!mrb_respond_to(mrb, v, mrb_intern_lit(mrb, "to_a"))) {
1092
+ if (!mrb_respond_to(mrb, v, MRB_SYM(to_a))) {
1070
1093
  return mrb_ary_new_from_values(mrb, 1, &v);
1071
1094
  }
1072
1095
 
1073
- a = mrb_funcall(mrb, v, "to_a", 0);
1074
- if (mrb_nil_p(a)) {
1096
+ ary = mrb_funcall_id(mrb, v, MRB_SYM(to_a), 0);
1097
+ if (mrb_nil_p(ary)) {
1075
1098
  return mrb_ary_new_from_values(mrb, 1, &v);
1076
1099
  }
1077
- mrb_ensure_array_type(mrb, a);
1078
- return a;
1100
+ mrb_ensure_array_type(mrb, ary);
1101
+ a = mrb_ary_ptr(ary);
1102
+ a = ary_dup(mrb, a);
1103
+ return mrb_obj_value(a);
1079
1104
  }
1080
1105
 
1081
1106
  static mrb_value
@@ -1099,8 +1124,14 @@ mrb_ary_clear(mrb_state *mrb, mrb_value self)
1099
1124
  else if (!ARY_EMBED_P(a)){
1100
1125
  mrb_free(mrb, a->as.heap.ptr);
1101
1126
  }
1102
- ARY_SET_EMBED_LEN(a, 0);
1103
-
1127
+ if (MRB_ARY_EMBED_LEN_MAX > 0) {
1128
+ ARY_SET_EMBED_LEN(a, 0);
1129
+ }
1130
+ else {
1131
+ a->as.heap.ptr = NULL;
1132
+ a->as.heap.aux.capa = 0;
1133
+ ARY_SET_LEN(a, 0);
1134
+ }
1104
1135
  return self;
1105
1136
  }
1106
1137
 
@@ -1219,9 +1250,8 @@ mrb_ary_join_m(mrb_state *mrb, mrb_value ary)
1219
1250
  static mrb_value
1220
1251
  mrb_ary_eq(mrb_state *mrb, mrb_value ary1)
1221
1252
  {
1222
- mrb_value ary2;
1253
+ mrb_value ary2 = mrb_get_arg1(mrb);
1223
1254
 
1224
- mrb_get_args(mrb, "o", &ary2);
1225
1255
  if (mrb_obj_equal(mrb, ary1, ary2)) return mrb_true_value();
1226
1256
  if (!mrb_array_p(ary2)) {
1227
1257
  return mrb_false_value();
@@ -1234,9 +1264,8 @@ mrb_ary_eq(mrb_state *mrb, mrb_value ary1)
1234
1264
  static mrb_value
1235
1265
  mrb_ary_cmp(mrb_state *mrb, mrb_value ary1)
1236
1266
  {
1237
- mrb_value ary2;
1267
+ mrb_value ary2 = mrb_get_arg1(mrb);
1238
1268
 
1239
- mrb_get_args(mrb, "o", &ary2);
1240
1269
  if (mrb_obj_equal(mrb, ary1, ary2)) return mrb_fixnum_value(0);
1241
1270
  if (!mrb_array_p(ary2)) {
1242
1271
  return mrb_nil_value();
@@ -1259,56 +1288,6 @@ mrb_ary_svalue(mrb_state *mrb, mrb_value ary)
1259
1288
  }
1260
1289
  }
1261
1290
 
1262
- static const mrb_code each_iseq[] = {
1263
- OP_ENTER, 0x0, 0x00, 0x1, /* OP_ENTER 0:0:0:0:0:0:1 */
1264
- OP_JMPIF, 0x1, 0x0, 19, /* OP_JMPIF R1 19 */
1265
- OP_LOADSELF, 0x3, /* OP_LOADSELF R3 */
1266
- OP_LOADSYM, 0x4, 0x0, /* OP_LOADSYM R4 :each*/
1267
- OP_SEND, 0x3, 0x1, 0x1, /* OP_SEND R3 :to_enum 1 */
1268
- OP_RETURN, 0x3, /* OP_RETURN R3 */
1269
- OP_LOADI_0, 0x2, /* OP_LOADI_0 R2 */
1270
- OP_JMP, 0x0, 43, /* OP_JMP 49 */
1271
- OP_MOVE, 0x3, 0x1, /* OP_MOVE R3 R1 */
1272
- OP_LOADSELF, 0x4, /* OP_LOADSELF R4 */
1273
- OP_MOVE, 0x5, 0x2, /* OP_MOVE R5 R2 */
1274
- OP_SEND, 0x4, 0x2, 0x1, /* OP_SEND R4 :[] 1 */
1275
- OP_SEND, 0x3, 0x3, 0x1, /* OP_SEND R3 :call 1 */
1276
- OP_ADDI, 0x2, 1, /* OP_ADDI R3 1 */
1277
- OP_MOVE, 0x3, 0x2, /* OP_MOVE R3 R2 */
1278
- OP_LOADSELF, 0x4, /* OP_LOADSELF R4 */
1279
- OP_SEND, 0x4, 0x4, 0x0, /* OP_SEND R4 :length 0 */
1280
- OP_LT, 0x3, /* OP_LT R3 */
1281
- OP_JMPIF, 0x3, 0x0, 24, /* OP_JMPIF R3 24 */
1282
- OP_RETURN, 0x0 /* OP_RETURN R3 */
1283
- };
1284
-
1285
- static void
1286
- init_ary_each(mrb_state *mrb, struct RClass *ary)
1287
- {
1288
- struct RProc *p;
1289
- mrb_method_t m;
1290
- mrb_irep *each_irep = (mrb_irep*)mrb_malloc(mrb, sizeof(mrb_irep));
1291
- static const mrb_irep mrb_irep_zero = { 0 };
1292
-
1293
- *each_irep = mrb_irep_zero;
1294
- each_irep->syms = (mrb_sym*)mrb_malloc(mrb, sizeof(mrb_sym)*5);
1295
- each_irep->syms[0] = mrb_intern_lit(mrb, "each");
1296
- each_irep->syms[1] = mrb_intern_lit(mrb, "to_enum");
1297
- each_irep->syms[2] = mrb_intern_lit(mrb, "[]");
1298
- each_irep->syms[3] = mrb_intern_lit(mrb, "call");
1299
- each_irep->syms[4] = mrb_intern_lit(mrb, "length");
1300
- each_irep->slen = 5;
1301
- each_irep->flags = MRB_ISEQ_NO_FREE;
1302
- each_irep->iseq = each_iseq;
1303
- each_irep->ilen = sizeof(each_iseq);
1304
- each_irep->nregs = 7;
1305
- each_irep->nlocals = 3;
1306
- p = mrb_proc_new(mrb, each_irep);
1307
- p->flags |= MRB_PROC_SCOPE | MRB_PROC_STRICT;
1308
- MRB_METHOD_FROM_PROC(m, p);
1309
- mrb_define_method_raw(mrb, ary, mrb_intern_lit(mrb, "each"), m);
1310
- }
1311
-
1312
1291
  void
1313
1292
  mrb_init_array(mrb_state *mrb)
1314
1293
  {
@@ -1349,6 +1328,4 @@ mrb_init_array(mrb_state *mrb)
1349
1328
  mrb_define_method(mrb, a, "__ary_cmp", mrb_ary_cmp, MRB_ARGS_REQ(1));
1350
1329
  mrb_define_method(mrb, a, "__ary_index", mrb_ary_index_m, MRB_ARGS_REQ(1)); /* kept for mruby-array-ext */
1351
1330
  mrb_define_method(mrb, a, "__svalue", mrb_ary_svalue, MRB_ARGS_NONE());
1352
-
1353
- init_ary_each(mrb, a);
1354
1331
  }