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
@@ -209,17 +209,18 @@ def assert_float_and_int(exp_ary, act_ary)
209
209
  assert_float(+Math::PI, Math.atan2(+0.0, -0.0))
210
210
  assert_float(-Math::PI, Math.atan2(-0.0, -0.0))
211
211
 
212
+ assert_float(0, Math.atan2(0, 1))
213
+ assert_float(Math::PI / 4, Math.atan2(1, 1))
214
+ assert_float(Math::PI / 2, Math.atan2(1, 0))
215
+
212
216
  inf = Float::INFINITY
217
+ skip "Math.atan2() return NaN" if Math.atan2(+inf, -inf).nan?
213
218
  expected = 3.0 * Math::PI / 4.0
214
219
  assert_float(+expected, Math.atan2(+inf, -inf))
215
220
  assert_float(-expected, Math.atan2(-inf, -inf))
216
221
  expected = Math::PI / 4.0
217
222
  assert_float(+expected, Math.atan2(+inf, +inf))
218
223
  assert_float(-expected, Math.atan2(-inf, +inf))
219
-
220
- assert_float(0, Math.atan2(0, 1))
221
- assert_float(Math::PI / 4, Math.atan2(1, 1))
222
- assert_float(Math::PI / 2, Math.atan2(1, 0))
223
224
  end
224
225
 
225
226
  assert('Math.ldexp') do
@@ -5,6 +5,7 @@
5
5
  #include "mruby/proc.h"
6
6
  #include "mruby/class.h"
7
7
  #include "mruby/string.h"
8
+ #include "mruby/presym.h"
8
9
 
9
10
  typedef enum {
10
11
  NOEX_PUBLIC = 0x00,
@@ -132,66 +133,75 @@ mrb_obj_ivar_set(mrb_state *mrb, mrb_value self)
132
133
  static mrb_value
133
134
  mrb_local_variables(mrb_state *mrb, mrb_value self)
134
135
  {
135
- struct RProc *proc;
136
- mrb_irep *irep;
136
+ const struct RProc *proc;
137
+ const mrb_irep *irep;
137
138
  mrb_value vars;
138
139
  size_t i;
139
140
 
140
141
  proc = mrb->c->ci[-1].proc;
141
142
 
142
- if (MRB_PROC_CFUNC_P(proc)) {
143
+ if (proc == NULL || MRB_PROC_CFUNC_P(proc)) {
143
144
  return mrb_ary_new(mrb);
144
145
  }
145
146
  vars = mrb_hash_new(mrb);
146
147
  while (proc) {
147
148
  if (MRB_PROC_CFUNC_P(proc)) break;
148
149
  irep = proc->body.irep;
149
- if (!irep->lv) break;
150
- for (i = 0; i + 1 < irep->nlocals; ++i) {
151
- if (irep->lv[i].name) {
152
- mrb_sym sym = irep->lv[i].name;
153
- const char *name = mrb_sym_name(mrb, sym);
154
- switch (name[0]) {
155
- case '*': case '&':
156
- break;
157
- default:
158
- mrb_hash_set(mrb, vars, mrb_symbol_value(sym), mrb_true_value());
159
- break;
150
+ if (irep->lv) {
151
+ for (i = 0; i + 1 < irep->nlocals; ++i) {
152
+ if (irep->lv[i]) {
153
+ mrb_sym sym = irep->lv[i];
154
+ const char *name = mrb_sym_name(mrb, sym);
155
+ switch (name[0]) {
156
+ case '*': case '&':
157
+ break;
158
+ default:
159
+ mrb_hash_set(mrb, vars, mrb_symbol_value(sym), mrb_true_value());
160
+ break;
161
+ }
160
162
  }
161
163
  }
162
164
  }
163
- if (!MRB_PROC_ENV_P(proc)) break;
165
+ if (MRB_PROC_SCOPE_P(proc)) break;
164
166
  proc = proc->upper;
165
- //if (MRB_PROC_SCOPE_P(proc)) break;
166
- if (!proc->c) break;
167
167
  }
168
168
 
169
169
  return mrb_hash_keys(mrb, vars);
170
170
  }
171
171
 
172
172
  KHASH_DECLARE(st, mrb_sym, char, FALSE)
173
+ KHASH_DEFINE(st, mrb_sym, char, FALSE, kh_int_hash_func, kh_int_hash_equal)
173
174
 
174
- static void
175
- method_entry_loop(mrb_state *mrb, struct RClass *klass, khash_t(st) *set, khash_t(st) *undef)
175
+ struct mt_set {
176
+ khash_t(st) *set;
177
+ khash_t(st) *undef;
178
+ };
179
+
180
+ static int
181
+ method_entry_i(mrb_state *mrb, mrb_sym mid, mrb_method_t m, void *p)
176
182
  {
177
- khint_t i;
183
+ struct mt_set *s = (struct mt_set*)p;
178
184
 
179
- khash_t(mt) *h = klass->mt;
180
- if (!h || kh_size(h) == 0) return;
181
- for (i=0;i<kh_end(h);i++) {
182
- if (kh_exist(h, i)) {
183
- mrb_method_t m = kh_value(h, i);
184
- if (MRB_METHOD_UNDEF_P(m)) {
185
- if (undef) {
186
- kh_put(st, mrb, undef, kh_key(h, i));
187
- }
188
- }
189
- else if (undef == NULL ||
190
- kh_get(st, mrb, undef, kh_key(h, i)) == kh_end(undef)) {
191
- kh_put(st, mrb, set, kh_key(h, i));
192
- }
185
+ if (MRB_METHOD_UNDEF_P(m)) {
186
+ if (s->undef) {
187
+ kh_put(st, mrb, s->undef, mid);
193
188
  }
194
189
  }
190
+ else if (s->undef == NULL ||
191
+ kh_get(st, mrb, s->undef, mid) == kh_end(s->undef)) {
192
+ kh_put(st, mrb, s->set, mid);
193
+ }
194
+ return 0;
195
+ }
196
+
197
+ static void
198
+ method_entry_loop(mrb_state *mrb, struct RClass *klass, khash_t(st) *set, khash_t(st) *undef)
199
+ {
200
+ struct mt_set s;
201
+
202
+ s.set = set;
203
+ s.undef = undef;
204
+ mrb_mt_foreach(mrb, klass, method_entry_i, (void*)&s);
195
205
  }
196
206
 
197
207
  static mrb_value
@@ -392,21 +402,12 @@ mrb_obj_singleton_methods_m(mrb_state *mrb, mrb_value self)
392
402
  return mrb_obj_singleton_methods(mrb, recur, self);
393
403
  }
394
404
 
405
+ mrb_value mrb_mod_define_method_m(mrb_state *mrb, struct RClass *c);
406
+
395
407
  static mrb_value
396
408
  mod_define_singleton_method(mrb_state *mrb, mrb_value self)
397
409
  {
398
- struct RProc *p;
399
- mrb_method_t m;
400
- mrb_sym mid;
401
- mrb_value blk = mrb_nil_value();
402
-
403
- mrb_get_args(mrb, "n&!", &mid, &blk);
404
- p = (struct RProc*)mrb_obj_alloc(mrb, MRB_TT_PROC, mrb->proc_class);
405
- mrb_proc_copy(p, mrb_proc_ptr(blk));
406
- p->flags |= MRB_PROC_STRICT;
407
- MRB_METHOD_FROM_PROC(m, p);
408
- mrb_define_method_raw(mrb, mrb_class_ptr(mrb_singleton_class(mrb, self)), mid, m);
409
- return mrb_symbol_value(mid);
410
+ return mrb_mod_define_method_m(mrb, mrb_class_ptr(mrb_singleton_class(mrb, self)));
410
411
  }
411
412
 
412
413
  static mrb_bool
@@ -609,28 +610,6 @@ mrb_mod_instance_methods(mrb_state *mrb, mrb_value mod)
609
610
  return mrb_class_instance_method_list(mrb, recur, c, 0);
610
611
  }
611
612
 
612
- static void
613
- remove_method(mrb_state *mrb, mrb_value mod, mrb_sym mid)
614
- {
615
- struct RClass *c = mrb_class_ptr(mod);
616
- khash_t(mt) *h;
617
- khiter_t k;
618
-
619
- MRB_CLASS_ORIGIN(c);
620
- h = c->mt;
621
-
622
- if (h) {
623
- k = kh_get(mt, mrb, h, mid);
624
- if (k != kh_end(h)) {
625
- kh_del(mt, mrb, h, k);
626
- mrb_funcall(mrb, mod, "method_removed", 1, mrb_symbol_value(mid));
627
- return;
628
- }
629
- }
630
-
631
- mrb_name_error(mrb, mid, "method '%n' not defined in %v", mid, mod);
632
- }
633
-
634
613
  /* 15.2.2.4.41 */
635
614
  /*
636
615
  * call-seq:
@@ -644,12 +623,14 @@ static mrb_value
644
623
  mrb_mod_remove_method(mrb_state *mrb, mrb_value mod)
645
624
  {
646
625
  mrb_int argc;
647
- mrb_value *argv;
626
+ const mrb_value *argv;
627
+ struct RClass *c = mrb_class_ptr(mod);
648
628
 
649
629
  mrb_get_args(mrb, "*", &argv, &argc);
650
630
  mrb_check_frozen(mrb, mrb_obj_ptr(mod));
651
631
  while (argc--) {
652
- remove_method(mrb, mod, mrb_obj_to_sym(mrb, *argv));
632
+ mrb_remove_method(mrb, c, mrb_obj_to_sym(mrb, *argv));
633
+ mrb_funcall_id(mrb, mod, MRB_SYM(method_removed), 1, *argv);
653
634
  argv++;
654
635
  }
655
636
  return mod;
@@ -665,14 +646,13 @@ mrb_mod_s_constants(mrb_state *mrb, mrb_value mod)
665
646
  static mrb_value
666
647
  mrb_mod_s_nesting(mrb_state *mrb, mrb_value mod)
667
648
  {
668
- struct RProc *proc;
649
+ const struct RProc *proc;
669
650
  mrb_value ary;
670
651
  struct RClass *c = NULL;
671
652
 
672
653
  ary = mrb_ary_new(mrb);
673
654
  proc = mrb->c->ci[-1].proc; /* callee proc */
674
- mrb_assert(!MRB_PROC_CFUNC_P(proc));
675
- while (proc) {
655
+ while (proc && !MRB_PROC_CFUNC_P(proc)) {
676
656
  if (MRB_PROC_SCOPE_P(proc)) {
677
657
  struct RClass *c2 = MRB_PROC_TARGET_CLASS(proc);
678
658
 
@@ -686,6 +666,9 @@ mrb_mod_s_nesting(mrb_state *mrb, mrb_value mod)
686
666
  return ary;
687
667
  }
688
668
 
669
+ /* implementation of #send method */
670
+ mrb_value mrb_f_send(mrb_state *mrb, mrb_value self);
671
+
689
672
  void
690
673
  mrb_mruby_metaprog_gem_init(mrb_state* mrb)
691
674
  {
@@ -114,6 +114,15 @@ def foo
114
114
  # Kernel#local_variables: 15.3.1.3.28
115
115
  local_variables.sort
116
116
  }.call(-1, -2)
117
+
118
+ a = Object.new
119
+ def a.hoge(vars, *, **)
120
+ Proc.new {
121
+ x, y = 1, 2
122
+ local_variables.sort
123
+ }
124
+ end
125
+ assert_equal([:vars, :x, :y]) { a.hoge(0).call }
117
126
  end
118
127
 
119
128
  assert('Kernel#define_singleton_method') do
@@ -386,15 +395,15 @@ def foo; end
386
395
 
387
396
  assert('alias_method and remove_method') do
388
397
  begin
389
- Fixnum.alias_method :to_s_, :to_s
390
- Fixnum.remove_method :to_s
398
+ Integer.alias_method :to_s_, :to_s
399
+ Integer.remove_method :to_s
391
400
 
392
401
  assert_nothing_raised do
393
402
  # segfaults if mrb_cptr is used
394
403
  1.to_s
395
404
  end
396
405
  ensure
397
- Fixnum.alias_method :to_s, :to_s_
398
- Fixnum.remove_method :to_s_
406
+ Integer.alias_method :to_s, :to_s_
407
+ Integer.remove_method :to_s_
399
408
  end
400
409
  end
@@ -1,7 +1,7 @@
1
1
  mruby-method
2
2
  ===
3
3
 
4
- A implementetion of class **Method** and **UnboundMethod** for mruby
4
+ A implementation of class **Method** and **UnboundMethod** for mruby
5
5
 
6
6
  ```ruby
7
7
  p Enumerable.instance_method(:find_all).source_location
@@ -10,11 +10,12 @@ p Enumerable.instance_method(:find_all).source_location
10
10
 
11
11
  # Note
12
12
 
13
- `source_location` method need this configuration in build_config.rb
13
+ You need to enable debug option in your build configuration to use
14
+ `source_location` method in this gem, for example:
14
15
 
15
16
  ```ruby
16
17
  MRuby::Build.new do |conf|
17
- enable_debug
18
+ conf.enable_debug
18
19
  end
19
20
  ```
20
21
 
@@ -4,6 +4,7 @@
4
4
  #include "mruby/variable.h"
5
5
  #include "mruby/proc.h"
6
6
  #include "mruby/string.h"
7
+ #include "mruby/presym.h"
7
8
 
8
9
  static struct RObject *
9
10
  method_object_alloc(mrb_state *mrb, struct RClass *mclass)
@@ -29,55 +30,54 @@ static mrb_value
29
30
  unbound_method_bind(mrb_state *mrb, mrb_value self)
30
31
  {
31
32
  struct RObject *me;
32
- mrb_value owner = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_owner"));
33
- mrb_value name = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_name"));
34
- mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_proc"));
35
- mrb_value klass = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_klass"));
36
- mrb_value recv;
33
+ mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
34
+ mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
35
+ mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
36
+ mrb_value klass = mrb_iv_get(mrb, self, MRB_SYM(_klass));
37
+ mrb_value recv = mrb_get_arg1(mrb);
37
38
 
38
- mrb_get_args(mrb, "o", &recv);
39
39
  bind_check(mrb, recv, owner);
40
- me = method_object_alloc(mrb, mrb_class_get(mrb, "Method"));
41
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_owner"), owner);
42
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_recv"), recv);
43
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_name"), name);
44
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_proc"), proc);
45
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_klass"), klass);
40
+ me = method_object_alloc(mrb, mrb_class_get_id(mrb, MRB_SYM(Method)));
41
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_owner), owner);
42
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_recv), recv);
43
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_name), name);
44
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_proc), proc);
45
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_klass), klass);
46
46
 
47
47
  return mrb_obj_value(me);
48
48
  }
49
49
 
50
- #define IV_GET(value, name) mrb_iv_get(mrb, value, mrb_intern_lit(mrb, name))
50
+ #define IV_GET(value, name) mrb_iv_get(mrb, value, name)
51
51
  static mrb_value
52
52
  method_eql(mrb_state *mrb, mrb_value self)
53
53
  {
54
- mrb_value other, receiver, orig_proc, other_proc;
54
+ mrb_value other = mrb_get_arg1(mrb);
55
+ mrb_value receiver, orig_proc, other_proc;
55
56
  struct RClass *owner, *klass;
56
57
  struct RProc *orig_rproc, *other_rproc;
57
58
 
58
- mrb_get_args(mrb, "o", &other);
59
59
  if (!mrb_obj_is_instance_of(mrb, other, mrb_class(mrb, self)))
60
60
  return mrb_false_value();
61
61
 
62
62
  if (mrb_class(mrb, self) != mrb_class(mrb, other))
63
63
  return mrb_false_value();
64
64
 
65
- klass = mrb_class_ptr(IV_GET(self, "_klass"));
66
- if (klass != mrb_class_ptr(IV_GET(other, "_klass")))
65
+ klass = mrb_class_ptr(IV_GET(self, MRB_SYM(_klass)));
66
+ if (klass != mrb_class_ptr(IV_GET(other, MRB_SYM(_klass))))
67
67
  return mrb_false_value();
68
68
 
69
- owner = mrb_class_ptr(IV_GET(self, "_owner"));
70
- if (owner != mrb_class_ptr(IV_GET(other, "_owner")))
69
+ owner = mrb_class_ptr(IV_GET(self, MRB_SYM(_owner)));
70
+ if (owner != mrb_class_ptr(IV_GET(other, MRB_SYM(_owner))))
71
71
  return mrb_false_value();
72
72
 
73
- receiver = IV_GET(self, "_recv");
74
- if (!mrb_obj_equal(mrb, receiver, IV_GET(other, "_recv")))
73
+ receiver = IV_GET(self, MRB_SYM(_recv));
74
+ if (!mrb_obj_equal(mrb, receiver, IV_GET(other, MRB_SYM(_recv))))
75
75
  return mrb_false_value();
76
76
 
77
- orig_proc = IV_GET(self, "_proc");
78
- other_proc = IV_GET(other, "_proc");
77
+ orig_proc = IV_GET(self, MRB_SYM(_proc));
78
+ other_proc = IV_GET(other, MRB_SYM(_proc));
79
79
  if (mrb_nil_p(orig_proc) && mrb_nil_p(other_proc)) {
80
- if (mrb_symbol(IV_GET(self, "_name")) == mrb_symbol(IV_GET(other, "_name")))
80
+ if (mrb_symbol(IV_GET(self, MRB_SYM(_name))) == mrb_symbol(IV_GET(other, MRB_SYM(_name))))
81
81
  return mrb_true_value();
82
82
  else
83
83
  return mrb_false_value();
@@ -110,7 +110,7 @@ method_eql(mrb_state *mrb, mrb_value self)
110
110
 
111
111
  static mrb_value
112
112
  mcall(mrb_state *mrb, mrb_value recv, mrb_value proc, mrb_value name, struct RClass *owner,
113
- int argc, mrb_value *argv, mrb_value block)
113
+ mrb_int argc, const mrb_value *argv, mrb_value block)
114
114
  {
115
115
  mrb_value ret;
116
116
  mrb_sym orig_mid = mrb->c->ci->mid;
@@ -119,7 +119,7 @@ mcall(mrb_state *mrb, mrb_value recv, mrb_value proc, mrb_value name, struct RCl
119
119
  if (mrb_nil_p(proc)) {
120
120
  mrb_value missing_argv = mrb_ary_new_from_values(mrb, argc, argv);
121
121
  mrb_ary_unshift(mrb, missing_argv, name);
122
- ret = mrb_funcall_argv(mrb, recv, mrb_intern_lit(mrb, "method_missing"), argc + 1, RARRAY_PTR(missing_argv));
122
+ ret = mrb_funcall_argv(mrb, recv, MRB_SYM(method_missing), argc + 1, RARRAY_PTR(missing_argv));
123
123
  }
124
124
  else if (!mrb_nil_p(block)) {
125
125
  /*
@@ -138,12 +138,13 @@ mcall(mrb_state *mrb, mrb_value recv, mrb_value proc, mrb_value name, struct RCl
138
138
  static mrb_value
139
139
  method_call(mrb_state *mrb, mrb_value self)
140
140
  {
141
- mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_proc"));
142
- mrb_value name = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_name"));
143
- mrb_value recv = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_recv"));
144
- struct RClass *owner = mrb_class_ptr(mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_owner")));
141
+ mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
142
+ mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
143
+ mrb_value recv = mrb_iv_get(mrb, self, MRB_SYM(_recv));
144
+ struct RClass *owner = mrb_class_ptr(mrb_iv_get(mrb, self, MRB_SYM(_owner)));
145
145
  mrb_int argc;
146
- mrb_value *argv, block;
146
+ const mrb_value *argv;
147
+ mrb_value block;
147
148
 
148
149
  mrb_get_args(mrb, "*&", &argv, &argc, &block);
149
150
  return mcall(mrb, recv, proc, name, owner, argc, argv, block);
@@ -152,12 +153,13 @@ method_call(mrb_state *mrb, mrb_value self)
152
153
  static mrb_value
153
154
  method_bcall(mrb_state *mrb, mrb_value self)
154
155
  {
155
- mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_proc"));
156
- mrb_value name = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_name"));
157
- mrb_value recv = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_recv"));
158
- mrb_value owner = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_owner"));
156
+ mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
157
+ mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
158
+ mrb_value recv = mrb_iv_get(mrb, self, MRB_SYM(_recv));
159
+ mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
159
160
  mrb_int argc;
160
- mrb_value *argv, block;
161
+ const mrb_value *argv;
162
+ mrb_value block;
161
163
 
162
164
  mrb_get_args(mrb, "o*&", &recv, &argv, &argc, &block);
163
165
  bind_check(mrb, recv, owner);
@@ -168,17 +170,17 @@ static mrb_value
168
170
  method_unbind(mrb_state *mrb, mrb_value self)
169
171
  {
170
172
  struct RObject *ume;
171
- mrb_value owner = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_owner"));
172
- mrb_value name = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_name"));
173
- mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_proc"));
174
- mrb_value klass = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_klass"));
173
+ mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
174
+ mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
175
+ mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
176
+ mrb_value klass = mrb_iv_get(mrb, self, MRB_SYM(_klass));
175
177
 
176
178
  ume = method_object_alloc(mrb, mrb_class_get(mrb, "UnboundMethod"));
177
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_owner"), owner);
178
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_recv"), mrb_nil_value());
179
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_name"), name);
180
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_proc"), proc);
181
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_klass"), klass);
179
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_owner), owner);
180
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_recv), mrb_nil_value());
181
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_name), name);
182
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_proc), proc);
183
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_klass), klass);
182
184
 
183
185
  return mrb_obj_value(ume);
184
186
  }
@@ -197,10 +199,10 @@ method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid)
197
199
  static mrb_value
198
200
  method_super_method(mrb_state *mrb, mrb_value self)
199
201
  {
200
- mrb_value recv = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_recv"));
201
- mrb_value klass = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_klass"));
202
- mrb_value owner = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_owner"));
203
- mrb_value name = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_name"));
202
+ mrb_value recv = mrb_iv_get(mrb, self, MRB_SYM(_recv));
203
+ mrb_value klass = mrb_iv_get(mrb, self, MRB_SYM(_klass));
204
+ mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
205
+ mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
204
206
  struct RClass *super, *rklass;
205
207
  struct RProc *proc;
206
208
  struct RObject *me;
@@ -226,11 +228,11 @@ method_super_method(mrb_state *mrb, mrb_value self)
226
228
  super = super->c;
227
229
 
228
230
  me = method_object_alloc(mrb, mrb_obj_class(mrb, self));
229
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_owner"), mrb_obj_value(super));
230
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_recv"), recv);
231
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_name"), name);
232
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_proc"), mrb_obj_value(proc));
233
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_klass"), mrb_obj_value(rklass));
231
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_owner), mrb_obj_value(super));
232
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_recv), recv);
233
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_name), name);
234
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_proc), mrb_obj_value(proc));
235
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_klass), mrb_obj_value(rklass));
234
236
 
235
237
  return mrb_obj_value(me);
236
238
  }
@@ -238,7 +240,7 @@ method_super_method(mrb_state *mrb, mrb_value self)
238
240
  static mrb_value
239
241
  method_arity(mrb_state *mrb, mrb_value self)
240
242
  {
241
- mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_proc"));
243
+ mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
242
244
  mrb_int arity = mrb_nil_p(proc) ? -1 : mrb_proc_arity(mrb_proc_ptr(proc));
243
245
  return mrb_fixnum_value(arity);
244
246
  }
@@ -246,7 +248,7 @@ method_arity(mrb_state *mrb, mrb_value self)
246
248
  static mrb_value
247
249
  method_source_location(mrb_state *mrb, mrb_value self)
248
250
  {
249
- mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_proc"));
251
+ mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
250
252
  struct RProc *rproc;
251
253
  struct RClass *orig;
252
254
  mrb_value ret;
@@ -257,7 +259,7 @@ method_source_location(mrb_state *mrb, mrb_value self)
257
259
  rproc = mrb_proc_ptr(proc);
258
260
  orig = rproc->c;
259
261
  rproc->c = mrb->proc_class;
260
- ret = mrb_funcall(mrb, proc, "source_location", 0);
262
+ ret = mrb_funcall_id(mrb, proc, MRB_SYM(source_location), 0);
261
263
  rproc->c = orig;
262
264
  return ret;
263
265
  }
@@ -265,13 +267,13 @@ method_source_location(mrb_state *mrb, mrb_value self)
265
267
  static mrb_value
266
268
  method_parameters(mrb_state *mrb, mrb_value self)
267
269
  {
268
- mrb_value proc = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_proc"));
270
+ mrb_value proc = mrb_iv_get(mrb, self, MRB_SYM(_proc));
269
271
  struct RProc *rproc;
270
272
  struct RClass *orig;
271
273
  mrb_value ret;
272
274
 
273
275
  if (mrb_nil_p(proc)) {
274
- mrb_value rest = mrb_symbol_value(mrb_intern_lit(mrb, "rest"));
276
+ mrb_value rest = mrb_symbol_value(MRB_SYM(rest));
275
277
  mrb_value arest = mrb_ary_new_from_values(mrb, 1, &rest);
276
278
  return mrb_ary_new_from_values(mrb, 1, &arest);
277
279
  }
@@ -279,7 +281,7 @@ method_parameters(mrb_state *mrb, mrb_value self)
279
281
  rproc = mrb_proc_ptr(proc);
280
282
  orig = rproc->c;
281
283
  rproc->c = mrb->proc_class;
282
- ret = mrb_funcall(mrb, proc, "parameters", 0);
284
+ ret = mrb_funcall_id(mrb, proc, MRB_SYM(parameters), 0);
283
285
  rproc->c = orig;
284
286
  return ret;
285
287
  }
@@ -287,9 +289,9 @@ method_parameters(mrb_state *mrb, mrb_value self)
287
289
  static mrb_value
288
290
  method_to_s(mrb_state *mrb, mrb_value self)
289
291
  {
290
- mrb_value owner = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_owner"));
291
- mrb_value klass = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_klass"));
292
- mrb_value name = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_name"));
292
+ mrb_value owner = mrb_iv_get(mrb, self, MRB_SYM(_owner));
293
+ mrb_value klass = mrb_iv_get(mrb, self, MRB_SYM(_klass));
294
+ mrb_value name = mrb_iv_get(mrb, self, MRB_SYM(_name));
293
295
  mrb_value str = mrb_str_new_lit(mrb, "#<");
294
296
  struct RClass *rklass;
295
297
 
@@ -323,10 +325,10 @@ mrb_search_method_owner(mrb_state *mrb, struct RClass *c, mrb_value obj, mrb_sym
323
325
  if (unbound) {
324
326
  goto name_error;
325
327
  }
326
- if (!mrb_respond_to(mrb, obj, mrb_intern_lit(mrb, "respond_to_missing?"))) {
328
+ if (!mrb_respond_to(mrb, obj, MRB_SYM_Q(respond_to_missing))) {
327
329
  goto name_error;
328
330
  }
329
- ret = mrb_funcall(mrb, obj, "respond_to_missing?", 2, mrb_symbol_value(name), mrb_true_value());
331
+ ret = mrb_funcall_id(mrb, obj, MRB_SYM_Q(respond_to_missing), 2, mrb_symbol_value(name), mrb_true_value());
330
332
  if (!mrb_test(ret)) {
331
333
  goto name_error;
332
334
  }
@@ -355,11 +357,11 @@ mrb_kernel_method(mrb_state *mrb, mrb_value self)
355
357
  mrb_search_method_owner(mrb, mrb_class(mrb, self), self, name, &owner, &proc, FALSE);
356
358
 
357
359
  me = method_object_alloc(mrb, mrb_class_get(mrb, "Method"));
358
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_owner"), mrb_obj_value(owner));
359
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_recv"), self);
360
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_name"), mrb_symbol_value(name));
361
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_proc"), proc ? mrb_obj_value(proc) : mrb_nil_value());
362
- mrb_obj_iv_set(mrb, me, mrb_intern_lit(mrb, "_klass"), mrb_obj_value(mrb_class(mrb, self)));
360
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_owner), mrb_obj_value(owner));
361
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_recv), self);
362
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_name), mrb_symbol_value(name));
363
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_proc), proc ? mrb_obj_value(proc) : mrb_nil_value());
364
+ mrb_obj_iv_set(mrb, me, MRB_SYM(_klass), mrb_obj_value(mrb_class(mrb, self)));
363
365
 
364
366
  return mrb_obj_value(me);
365
367
  }
@@ -377,11 +379,11 @@ mrb_module_instance_method(mrb_state *mrb, mrb_value self)
377
379
  mrb_search_method_owner(mrb, mrb_class_ptr(self), self, name, &owner, &proc, TRUE);
378
380
 
379
381
  ume = method_object_alloc(mrb, mrb_class_get(mrb, "UnboundMethod"));
380
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_owner"), mrb_obj_value(owner));
381
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_recv"), mrb_nil_value());
382
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_name"), mrb_symbol_value(name));
383
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_proc"), proc ? mrb_obj_value(proc) : mrb_nil_value());
384
- mrb_obj_iv_set(mrb, ume, mrb_intern_lit(mrb, "_klass"), self);
382
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_owner), mrb_obj_value(owner));
383
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_recv), mrb_nil_value());
384
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_name), mrb_symbol_value(name));
385
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_proc), proc ? mrb_obj_value(proc) : mrb_nil_value());
386
+ mrb_obj_iv_set(mrb, ume, MRB_SYM(_klass), self);
385
387
 
386
388
  return mrb_obj_value(ume);
387
389
  }
@@ -389,19 +391,19 @@ mrb_module_instance_method(mrb_state *mrb, mrb_value self)
389
391
  static mrb_value
390
392
  method_owner(mrb_state *mrb, mrb_value self)
391
393
  {
392
- return mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_owner"));
394
+ return mrb_iv_get(mrb, self, MRB_SYM(_owner));
393
395
  }
394
396
 
395
397
  static mrb_value
396
398
  method_receiver(mrb_state *mrb, mrb_value self)
397
399
  {
398
- return mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_recv"));
400
+ return mrb_iv_get(mrb, self, MRB_SYM(_recv));
399
401
  }
400
402
 
401
403
  static mrb_value
402
404
  method_name(mrb_state *mrb, mrb_value self)
403
405
  {
404
- return mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "_name"));
406
+ return mrb_iv_get(mrb, self, MRB_SYM(_name));
405
407
  }
406
408
 
407
409
  void