script_core 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
  }