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
@@ -16,39 +16,85 @@
16
16
  MRB_BEGIN_DECL
17
17
 
18
18
  enum irep_pool_type {
19
- IREP_TT_STRING,
20
- IREP_TT_FIXNUM,
21
- IREP_TT_FLOAT,
19
+ IREP_TT_STR = 0, /* string (need free) */
20
+ IREP_TT_SSTR = 2, /* string (static) */
21
+ IREP_TT_INT32 = 1, /* 32bit integer */
22
+ IREP_TT_INT64 = 3, /* 64bit integer */
23
+ IREP_TT_FLOAT = 5, /* float (double/float) */
22
24
  };
23
25
 
24
- struct mrb_locals {
25
- mrb_sym name;
26
- uint16_t r;
26
+ #define IREP_TT_NFLAG 1 /* number (non string) flag */
27
+ #define IREP_TT_SFLAG 2 /* static string flag */
28
+
29
+ typedef struct mrb_pool_value {
30
+ uint32_t tt; /* packed type and length (for string) */
31
+ union {
32
+ const char *str;
33
+ int32_t i32;
34
+ #if defined(MRB_64BIT) || defined(MRB_INT64)
35
+ int64_t i64;
36
+ #endif
37
+ #ifndef MRB_NO_FLOAT
38
+ mrb_float f;
39
+ #endif
40
+ } u;
41
+ } mrb_pool_value;
42
+
43
+ enum mrb_catch_type {
44
+ MRB_CATCH_RESCUE = 0,
45
+ MRB_CATCH_ENSURE = 1,
46
+ };
47
+
48
+ struct mrb_irep_catch_handler {
49
+ uint8_t type; /* enum mrb_catch_type */
50
+ uint8_t begin[4]; /* The starting address to match the hander. Includes this. */
51
+ uint8_t end[4]; /* The endpoint address that matches the hander. Not Includes this. */
52
+ uint8_t target[4]; /* The address to jump to if a match is made. */
27
53
  };
28
54
 
29
55
  /* Program data array struct */
30
56
  typedef struct mrb_irep {
31
57
  uint16_t nlocals; /* Number of local variables */
32
58
  uint16_t nregs; /* Number of register variables */
59
+ uint16_t clen; /* Number of catch handlers */
33
60
  uint8_t flags;
34
61
 
35
62
  const mrb_code *iseq;
36
- mrb_value *pool;
37
- mrb_sym *syms;
38
- struct mrb_irep **reps;
39
-
40
- struct mrb_locals *lv;
63
+ /*
64
+ * A catch handler table is placed after the iseq entity.
65
+ * The reason it doesn't add fields to the structure is to keep the mrb_irep structure from bloating.
66
+ * The catch handler table can be obtained with `mrb_irep_catch_handler_table(irep)`.
67
+ */
68
+ const mrb_pool_value *pool;
69
+ const mrb_sym *syms;
70
+ const struct mrb_irep * const *reps;
71
+
72
+ const mrb_sym *lv;
41
73
  /* debug info */
42
74
  struct mrb_irep_debug_info* debug_info;
43
75
 
44
- uint16_t ilen, plen, slen, rlen;
45
- uint32_t refcnt;
76
+ uint32_t ilen;
77
+ uint16_t plen, slen;
78
+ uint16_t rlen;
79
+ uint16_t refcnt;
46
80
  } mrb_irep;
47
81
 
48
82
  #define MRB_ISEQ_NO_FREE 1
83
+ #define MRB_IREP_NO_FREE 2
84
+ #define MRB_IREP_STATIC (MRB_ISEQ_NO_FREE | MRB_IREP_NO_FREE)
49
85
 
50
86
  MRB_API mrb_irep *mrb_add_irep(mrb_state *mrb);
51
87
 
88
+ /** load mruby bytecode functions
89
+ * Please note! Currently due to interactions with the GC calling these functions will
90
+ * leak one RProc object per function call.
91
+ * To prevent this save the current memory arena before calling and restore the arena
92
+ * right after, like so
93
+ * int ai = mrb_gc_arena_save(mrb);
94
+ * mrb_value status = mrb_load_irep(mrb, buffer);
95
+ * mrb_gc_arena_restore(mrb, ai);
96
+ */
97
+
52
98
  /* @param [const uint8_t*] irep code, expected as a literal */
53
99
  MRB_API mrb_value mrb_load_irep(mrb_state*, const uint8_t*);
54
100
 
@@ -77,11 +123,25 @@ struct mrb_insn_data {
77
123
  uint8_t insn;
78
124
  uint16_t a;
79
125
  uint16_t b;
80
- uint8_t c;
126
+ uint16_t c;
81
127
  };
82
128
 
83
129
  struct mrb_insn_data mrb_decode_insn(const mrb_code *pc);
84
130
 
131
+ static inline const struct mrb_irep_catch_handler *
132
+ mrb_irep_catch_handler_table(const struct mrb_irep *irep)
133
+ {
134
+ if (irep->clen > 0) {
135
+ return (const struct mrb_irep_catch_handler*)(irep->iseq + irep->ilen);
136
+ }
137
+ else {
138
+ return (const struct mrb_irep_catch_handler*)NULL;
139
+ }
140
+ }
141
+
142
+ #define mrb_irep_catch_handler_pack(n, v) uint32_to_bin(n, v)
143
+ #define mrb_irep_catch_handler_unpack(v) bin_to_uint32(v)
144
+
85
145
  MRB_END_DECL
86
146
 
87
147
  #endif /* MRUBY_IREP_H */
@@ -21,7 +21,10 @@ MRB_BEGIN_DECL
21
21
 
22
22
  struct RIStruct {
23
23
  MRB_OBJECT_HEADER;
24
- char inline_data[ISTRUCT_DATA_SIZE];
24
+ union {
25
+ intptr_t inline_alignment[3];
26
+ char inline_data[ISTRUCT_DATA_SIZE];
27
+ };
25
28
  };
26
29
 
27
30
  #define RISTRUCT(obj) ((struct RIStruct*)(mrb_ptr(obj)))
@@ -61,7 +61,6 @@ static const uint8_t __m_either[] = {0x03, 0x0c, 0x30, 0xc0};
61
61
  typedef struct kh_##name { \
62
62
  khint_t n_buckets; \
63
63
  khint_t size; \
64
- khint_t n_occupied; \
65
64
  uint8_t *ed_flags; \
66
65
  khkey_t *keys; \
67
66
  khval_t *vals; \
@@ -92,19 +91,28 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
92
91
  khval_t: value data type
93
92
  kh_is_map: (0: hash set / 1: hash map)
94
93
  __hash_func: hash function
95
- __hash_equal: hash comparation function
94
+ __hash_equal: hash comparison function
96
95
  */
97
96
  #define KHASH_DEFINE(name, khkey_t, khval_t, kh_is_map, __hash_func, __hash_equal) \
98
- void kh_alloc_##name(mrb_state *mrb, kh_##name##_t *h) \
97
+ mrb_noreturn void mrb_raise_nomemory(mrb_state *mrb); \
98
+ int kh_alloc_simple_##name(mrb_state *mrb, kh_##name##_t *h) \
99
99
  { \
100
100
  khint_t sz = h->n_buckets; \
101
101
  size_t len = sizeof(khkey_t) + (kh_is_map ? sizeof(khval_t) : 0); \
102
- uint8_t *p = (uint8_t*)mrb_malloc(mrb, sizeof(uint8_t)*sz/4+len*sz); \
103
- h->size = h->n_occupied = 0; \
102
+ uint8_t *p = (uint8_t*)mrb_malloc_simple(mrb, sizeof(uint8_t)*sz/4+len*sz); \
103
+ if (!p) { return 1; } \
104
+ h->size = 0; \
104
105
  h->keys = (khkey_t *)p; \
105
106
  h->vals = kh_is_map ? (khval_t *)(p+sizeof(khkey_t)*sz) : NULL; \
106
107
  h->ed_flags = p+len*sz; \
107
108
  kh_fill_flags(h->ed_flags, 0xaa, sz/4); \
109
+ return 0; \
110
+ } \
111
+ void kh_alloc_##name(mrb_state *mrb, kh_##name##_t *h) \
112
+ { \
113
+ if (kh_alloc_simple_##name(mrb, h)) { \
114
+ mrb_raise_nomemory(mrb); \
115
+ } \
108
116
  } \
109
117
  kh_##name##_t *kh_init_##name##_size(mrb_state *mrb, khint_t size) { \
110
118
  kh_##name##_t *h = (kh_##name##_t*)mrb_calloc(mrb, 1, sizeof(kh_##name##_t)); \
@@ -112,7 +120,10 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
112
120
  size = KHASH_MIN_SIZE; \
113
121
  khash_power2(size); \
114
122
  h->n_buckets = size; \
115
- kh_alloc_##name(mrb, h); \
123
+ if (kh_alloc_simple_##name(mrb, h)) { \
124
+ mrb_free(mrb, h); \
125
+ mrb_raise_nomemory(mrb); \
126
+ } \
116
127
  return h; \
117
128
  } \
118
129
  kh_##name##_t *kh_init_##name(mrb_state *mrb) { \
@@ -130,7 +141,7 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
130
141
  (void)mrb; \
131
142
  if (h && h->ed_flags) { \
132
143
  kh_fill_flags(h->ed_flags, 0xaa, h->n_buckets/4); \
133
- h->size = h->n_occupied = 0; \
144
+ h->size = 0; \
134
145
  } \
135
146
  } \
136
147
  khint_t kh_get_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key) \
@@ -174,7 +185,7 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
174
185
  khint_t kh_put_##name(mrb_state *mrb, kh_##name##_t *h, khkey_t key, int *ret) \
175
186
  { \
176
187
  khint_t k, del_k, step = 0; \
177
- if (h->n_occupied >= khash_upper_bound(h)) { \
188
+ if (h->size >= khash_upper_bound(h)) { \
178
189
  kh_resize_##name(mrb, h, h->n_buckets*2); \
179
190
  } \
180
191
  k = __hash_func(mrb,key) & khash_mask(h); \
@@ -204,7 +215,6 @@ kh_fill_flags(uint8_t *p, uint8_t c, size_t len)
204
215
  h->keys[k] = key; \
205
216
  h->ed_flags[k/4] &= ~__m_empty[k%4]; \
206
217
  h->size++; \
207
- h->n_occupied++; \
208
218
  if (ret) *ret = 1; \
209
219
  return k; \
210
220
  } \
@@ -1,5 +1,5 @@
1
1
  /**
2
- ** @file mruby/numeric.h - Numeric, Integer, Float, Fixnum class
2
+ ** @file mruby/numeric.h - Numeric, Integer, Float class
3
3
  **
4
4
  ** See Copyright Notice in mruby.h
5
5
  */
@@ -12,17 +12,17 @@
12
12
  /**
13
13
  * Numeric class and it's sub-classes.
14
14
  *
15
- * Integer, Float and Fixnum
15
+ * Integer and Float
16
16
  */
17
17
  MRB_BEGIN_DECL
18
18
 
19
- #define TYPED_POSFIXABLE(f,t) ((f) <= (t)MRB_INT_MAX)
20
- #define TYPED_NEGFIXABLE(f,t) ((f) >= (t)MRB_INT_MIN)
19
+ #define TYPED_POSFIXABLE(f,t) ((f) <= (t)MRB_FIXNUM_MAX)
20
+ #define TYPED_NEGFIXABLE(f,t) ((f) >= (t)MRB_FIXNUM_MIN)
21
21
  #define TYPED_FIXABLE(f,t) (TYPED_POSFIXABLE(f,t) && TYPED_NEGFIXABLE(f,t))
22
22
  #define POSFIXABLE(f) TYPED_POSFIXABLE(f,mrb_int)
23
23
  #define NEGFIXABLE(f) TYPED_NEGFIXABLE(f,mrb_int)
24
24
  #define FIXABLE(f) TYPED_FIXABLE(f,mrb_int)
25
- #ifndef MRB_WITHOUT_FLOAT
25
+ #ifndef MRB_NO_FLOAT
26
26
  #ifdef MRB_INT64
27
27
  #define FIXABLE_FLOAT(f) ((f)>=-9223372036854775808.0 && (f)<9223372036854775808.0)
28
28
  #else
@@ -30,15 +30,15 @@ MRB_BEGIN_DECL
30
30
  #endif
31
31
  #endif
32
32
 
33
- #ifndef MRB_WITHOUT_FLOAT
33
+ #ifndef MRB_NO_FLOAT
34
34
  MRB_API mrb_value mrb_flo_to_fixnum(mrb_state *mrb, mrb_value val);
35
35
  #endif
36
36
  MRB_API mrb_value mrb_fixnum_to_str(mrb_state *mrb, mrb_value x, mrb_int base);
37
37
  /* ArgumentError if format string doesn't match /%(\.[0-9]+)?[aAeEfFgG]/ */
38
- #ifndef MRB_WITHOUT_FLOAT
38
+ #ifndef MRB_NO_FLOAT
39
39
  MRB_API mrb_value mrb_float_to_str(mrb_state *mrb, mrb_value x, const char *fmt);
40
+ MRB_API int mrb_float_to_cstr(mrb_state *mrb, char *buf, size_t len, const char *fmt, mrb_float f);
40
41
  MRB_API mrb_float mrb_to_flo(mrb_state *mrb, mrb_value x);
41
- MRB_API mrb_value mrb_int_value(mrb_state *mrb, mrb_float f);
42
42
  #endif
43
43
 
44
44
  MRB_API mrb_value mrb_num_plus(mrb_state *mrb, mrb_value x, mrb_value y);
@@ -70,103 +70,77 @@ MRB_API mrb_value mrb_num_mul(mrb_state *mrb, mrb_value x, mrb_value y);
70
70
 
71
71
  #ifdef MRB_HAVE_TYPE_GENERIC_CHECKED_ARITHMETIC_BUILTINS
72
72
 
73
- #ifndef MRB_WORD_BOXING
74
- # define WBCHK(x) 0
75
- #else
76
- # define WBCHK(x) !FIXABLE(x)
77
- #endif
78
-
79
73
  static inline mrb_bool
80
74
  mrb_int_add_overflow(mrb_int augend, mrb_int addend, mrb_int *sum)
81
75
  {
82
- return __builtin_add_overflow(augend, addend, sum) || WBCHK(*sum);
76
+ return __builtin_add_overflow(augend, addend, sum);
83
77
  }
84
78
 
85
79
  static inline mrb_bool
86
80
  mrb_int_sub_overflow(mrb_int minuend, mrb_int subtrahend, mrb_int *difference)
87
81
  {
88
- return __builtin_sub_overflow(minuend, subtrahend, difference) || WBCHK(*difference);
82
+ return __builtin_sub_overflow(minuend, subtrahend, difference);
89
83
  }
90
84
 
91
85
  static inline mrb_bool
92
86
  mrb_int_mul_overflow(mrb_int multiplier, mrb_int multiplicand, mrb_int *product)
93
87
  {
94
- return __builtin_mul_overflow(multiplier, multiplicand, product) || WBCHK(*product);
88
+ return __builtin_mul_overflow(multiplier, multiplicand, product);
95
89
  }
96
90
 
97
- #undef WBCHK
98
-
99
91
  #else
100
92
 
101
- #define MRB_UINT_MAKE2(n) uint ## n ## _t
102
- #define MRB_UINT_MAKE(n) MRB_UINT_MAKE2(n)
103
- #define mrb_uint MRB_UINT_MAKE(MRB_INT_BIT)
104
-
105
- #define MRB_INT_OVERFLOW_MASK ((mrb_uint)1 << (MRB_INT_BIT - 1 - MRB_FIXNUM_SHIFT))
93
+ #define MRB_INT_OVERFLOW_MASK ((mrb_uint)1 << (MRB_INT_BIT - 1))
106
94
 
107
95
  static inline mrb_bool
108
- mrb_int_add_overflow(mrb_int augend, mrb_int addend, mrb_int *sum)
96
+ mrb_int_add_overflow(mrb_int a, mrb_int b, mrb_int *c)
109
97
  {
110
- mrb_uint x = (mrb_uint)augend;
111
- mrb_uint y = (mrb_uint)addend;
98
+ mrb_uint x = (mrb_uint)a;
99
+ mrb_uint y = (mrb_uint)b;
112
100
  mrb_uint z = (mrb_uint)(x + y);
113
- *sum = (mrb_int)z;
101
+ *c = (mrb_int)z;
114
102
  return !!(((x ^ z) & (y ^ z)) & MRB_INT_OVERFLOW_MASK);
115
103
  }
116
104
 
117
105
  static inline mrb_bool
118
- mrb_int_sub_overflow(mrb_int minuend, mrb_int subtrahend, mrb_int *difference)
106
+ mrb_int_sub_overflow(mrb_int a, mrb_int b, mrb_int *c)
119
107
  {
120
- mrb_uint x = (mrb_uint)minuend;
121
- mrb_uint y = (mrb_uint)subtrahend;
108
+ mrb_uint x = (mrb_uint)a;
109
+ mrb_uint y = (mrb_uint)b;
122
110
  mrb_uint z = (mrb_uint)(x - y);
123
- *difference = (mrb_int)z;
111
+ *c = (mrb_int)z;
124
112
  return !!(((x ^ z) & (~y ^ z)) & MRB_INT_OVERFLOW_MASK);
125
113
  }
126
114
 
127
115
  static inline mrb_bool
128
- mrb_int_mul_overflow(mrb_int multiplier, mrb_int multiplicand, mrb_int *product)
116
+ mrb_int_mul_overflow(mrb_int a, mrb_int b, mrb_int *c)
129
117
  {
130
- #if MRB_INT_BIT == 32
131
- int64_t n = (int64_t)multiplier * multiplicand;
132
- *product = (mrb_int)n;
133
- return !FIXABLE(n);
134
- #else
135
- if (multiplier > 0) {
136
- if (multiplicand > 0) {
137
- if (multiplier > MRB_INT_MAX / multiplicand) return TRUE;
138
- }
139
- else {
140
- if (multiplicand < MRB_INT_MAX / multiplier) return TRUE;
141
- }
142
- }
143
- else {
144
- if (multiplicand > 0) {
145
- if (multiplier < MRB_INT_MAX / multiplicand) return TRUE;
146
- }
147
- else {
148
- if (multiplier != 0 && multiplicand < MRB_INT_MAX / multiplier) return TRUE;
149
- }
150
- }
151
- *product = multiplier * multiplicand;
118
+ #ifdef MRB_INT32
119
+ int64_t n = (int64_t)a * b;
120
+ *c = (mrb_int)n;
121
+ return n > MRB_INT_MAX || n < MRB_INT_MIN;
122
+ #else /* MRB_INT64 */
123
+ if (a > 0 && b > 0 && a > MRB_INT_MAX / b) return TRUE;
124
+ if (a < 0 && b > 0 && a < MRB_INT_MIN / b) return TRUE;
125
+ if (a > 0 && b < 0 && b < MRB_INT_MIN / a) return TRUE;
126
+ if (a < 0 && b < 0 && (a <= MRB_INT_MIN || b <= MRB_INT_MIN || -a > MRB_INT_MAX / -b))
127
+ return TRUE;
128
+ *c = a * b;
152
129
  return FALSE;
153
130
  #endif
154
131
  }
155
132
 
156
133
  #undef MRB_INT_OVERFLOW_MASK
157
- #undef mrb_uint
158
- #undef MRB_UINT_MAKE
159
- #undef MRB_UINT_MAKE2
160
134
 
161
135
  #endif
162
136
 
163
- #ifndef MRB_WITHOUT_FLOAT
137
+ #ifndef MRB_NO_FLOAT
164
138
  # include <stdint.h>
165
139
  # include <float.h>
166
140
 
167
141
  # define MRB_FLT_RADIX FLT_RADIX
168
142
 
169
- # ifdef MRB_USE_FLOAT
143
+ # ifdef MRB_USE_FLOAT32
170
144
  # define MRB_FLT_MANT_DIG FLT_MANT_DIG
171
145
  # define MRB_FLT_EPSILON FLT_EPSILON
172
146
  # define MRB_FLT_DIG FLT_DIG
@@ -177,7 +151,7 @@ mrb_int_mul_overflow(mrb_int multiplier, mrb_int multiplicand, mrb_int *product)
177
151
  # define MRB_FLT_MAX FLT_MAX
178
152
  # define MRB_FLT_MAX_10_EXP FLT_MAX_10_EXP
179
153
 
180
- # else /* not MRB_USE_FLOAT */
154
+ # else /* not MRB_USE_FLOAT32 */
181
155
  # define MRB_FLT_MANT_DIG DBL_MANT_DIG
182
156
  # define MRB_FLT_EPSILON DBL_EPSILON
183
157
  # define MRB_FLT_DIG DBL_DIG
@@ -187,8 +161,8 @@ mrb_int_mul_overflow(mrb_int multiplier, mrb_int multiplicand, mrb_int *product)
187
161
  # define MRB_FLT_MAX_EXP DBL_MAX_EXP
188
162
  # define MRB_FLT_MAX DBL_MAX
189
163
  # define MRB_FLT_MAX_10_EXP DBL_MAX_10_EXP
190
- # endif /* MRB_USE_FLOAT */
191
- #endif /* MRB_WITHOUT_FLOAT */
164
+ # endif /* MRB_USE_FLOAT32 */
165
+ #endif /* MRB_NO_FLOAT */
192
166
 
193
167
  MRB_END_DECL
194
168
 
@@ -36,34 +36,8 @@ enum mrb_insn {
36
36
  #define FETCH_BB() do {a=READ_B(); b=READ_B();} while (0)
37
37
  #define FETCH_BBB() do {a=READ_B(); b=READ_B(); c=READ_B();} while (0)
38
38
  #define FETCH_BS() do {a=READ_B(); b=READ_S();} while (0)
39
+ #define FETCH_BSS() do {a=READ_B(); b=READ_S(); c=READ_S();} while (0)
39
40
  #define FETCH_S() do {a=READ_S();} while (0)
40
41
  #define FETCH_W() do {a=READ_W();} while (0)
41
42
 
42
- /* with OP_EXT1 (1st 16bit) */
43
- #define FETCH_Z_1() FETCH_Z()
44
- #define FETCH_B_1() FETCH_S()
45
- #define FETCH_BB_1() do {a=READ_S(); b=READ_B();} while (0)
46
- #define FETCH_BBB_1() do {a=READ_S(); b=READ_B(); c=READ_B();} while (0)
47
- #define FETCH_BS_1() do {a=READ_S(); b=READ_S();} while (0)
48
- #define FETCH_S_1() FETCH_S()
49
- #define FETCH_W_1() FETCH_W()
50
-
51
- /* with OP_EXT2 (2nd 16bit) */
52
- #define FETCH_Z_2() FETCH_Z()
53
- #define FETCH_B_2() FETCH_B()
54
- #define FETCH_BB_2() do {a=READ_B(); b=READ_S();} while (0)
55
- #define FETCH_BBB_2() do {a=READ_B(); b=READ_S(); c=READ_B();} while (0)
56
- #define FETCH_BS_2() FETCH_BS()
57
- #define FETCH_S_2() FETCH_S()
58
- #define FETCH_W_2() FETCH_W()
59
-
60
- /* with OP_EXT3 (1st & 2nd 16bit) */
61
- #define FETCH_Z_3() FETCH_Z()
62
- #define FETCH_B_3() FETCH_B()
63
- #define FETCH_BB_3() do {a=READ_S(); b=READ_S();} while (0)
64
- #define FETCH_BBB_3() do {a=READ_S(); b=READ_S(); c=READ_B();} while (0)
65
- #define FETCH_BS_3() do {a=READ_S(); b=READ_S();} while (0)
66
- #define FETCH_S_3() FETCH_S()
67
- #define FETCH_W_3() FETCH_W()
68
-
69
43
  #endif /* MRUBY_OPCODE_H */
@@ -1,11 +1,12 @@
1
1
  /* operand types:
2
- + Z: no operand (Z,Z,Z,Z)
3
- + B: 8bit (B,S,B,B)
4
- + BB: 8+8bit (BB,SB,BS,SS)
5
- + BBB: 8+8+8bit (BBB,SBB,BSB,SSB)
6
- + BS: 8+16bit (BS,SS,BS,BS)
7
- + S: 16bit (S,S,S,S)
8
- + W: 24bit (W,W,W,W)
2
+ + Z: no operand
3
+ + B: 8bit
4
+ + BB: 8+8bit
5
+ + BBB: 8+8+8bit
6
+ + BS: 8+16bit
7
+ + BSS: 8+16+16bit
8
+ + S: 16bit
9
+ + W: 24bit
9
10
  */
10
11
 
11
12
  /*-----------------------------------------------------------------------
@@ -14,6 +15,7 @@ operation code operands semantics
14
15
  OPCODE(NOP, Z) /* no operation */
15
16
  OPCODE(MOVE, BB) /* R(a) = R(b) */
16
17
  OPCODE(LOADL, BB) /* R(a) = Pool(b) */
18
+ OPCODE(LOADL16, BS) /* R(a) = Pool(b) */
17
19
  OPCODE(LOADI, BB) /* R(a) = mrb_int(b) */
18
20
  OPCODE(LOADINEG, BB) /* R(a) = mrb_int(-b) */
19
21
  OPCODE(LOADI__1, B) /* R(a) = mrb_int(-1) */
@@ -25,7 +27,10 @@ OPCODE(LOADI_4, B) /* R(a) = mrb_int(4) */
25
27
  OPCODE(LOADI_5, B) /* R(a) = mrb_int(5) */
26
28
  OPCODE(LOADI_6, B) /* R(a) = mrb_int(6) */
27
29
  OPCODE(LOADI_7, B) /* R(a) = mrb_int(7) */
30
+ OPCODE(LOADI16, BS) /* R(a) = mrb_int(b) */
31
+ OPCODE(LOADI32, BSS) /* R(a) = mrb_int((b<<16)+c) */
28
32
  OPCODE(LOADSYM, BB) /* R(a) = Syms(b) */
33
+ OPCODE(LOADSYM16, BS) /* R(a) = Syms(b) */
29
34
  OPCODE(LOADNIL, B) /* R(a) = nil */
30
35
  OPCODE(LOADSELF, B) /* R(a) = self */
31
36
  OPCODE(LOADT, B) /* R(a) = true */
@@ -44,28 +49,26 @@ OPCODE(GETMCNST, BB) /* R(a) = R(a)::Syms(b) */
44
49
  OPCODE(SETMCNST, BB) /* R(a+1)::Syms(b) = R(a) */
45
50
  OPCODE(GETUPVAR, BBB) /* R(a) = uvget(b,c) */
46
51
  OPCODE(SETUPVAR, BBB) /* uvset(b,c,R(a)) */
47
- OPCODE(JMP, S) /* pc=a */
48
- OPCODE(JMPIF, BS) /* if R(a) pc=b */
49
- OPCODE(JMPNOT, BS) /* if !R(a) pc=b */
50
- OPCODE(JMPNIL, BS) /* if R(a)==nil pc=b */
51
- OPCODE(ONERR, S) /* rescue_push(a) */
52
+ OPCODE(JMP, S) /* pc+=a */
53
+ OPCODE(JMPIF, BS) /* if R(a) pc+=b */
54
+ OPCODE(JMPNOT, BS) /* if !R(a) pc+=b */
55
+ OPCODE(JMPNIL, BS) /* if R(a)==nil pc+=b */
56
+ OPCODE(JMPUW, S) /* unwind_and_jump_to(a) */
52
57
  OPCODE(EXCEPT, B) /* R(a) = exc */
53
58
  OPCODE(RESCUE, BB) /* R(b) = R(a).isa?(R(b)) */
54
- OPCODE(POPERR, B) /* a.times{rescue_pop()} */
55
- OPCODE(RAISE, B) /* raise(R(a)) */
56
- OPCODE(EPUSH, B) /* ensure_push(SEQ[a]) */
57
- OPCODE(EPOP, B) /* A.times{ensure_pop().call} */
59
+ OPCODE(RAISEIF, B) /* raise(R(a)) if R(a) */
58
60
  OPCODE(SENDV, BB) /* R(a) = call(R(a),Syms(b),*R(a+1)) */
59
61
  OPCODE(SENDVB, BB) /* R(a) = call(R(a),Syms(b),*R(a+1),&R(a+2)) */
60
62
  OPCODE(SEND, BBB) /* R(a) = call(R(a),Syms(b),R(a+1),...,R(a+c)) */
61
63
  OPCODE(SENDB, BBB) /* R(a) = call(R(a),Syms(b),R(a+1),...,R(a+c),&R(a+c+1)) */
64
+ OPCODE(SENDVK, BB) /* R(a) = call(R(a),Syms(b),*R(a+1),**(a+2),&R(a+3)) # todo */
62
65
  OPCODE(CALL, Z) /* R(0) = self.call(frame.argc, frame.argv) */
63
66
  OPCODE(SUPER, BB) /* R(a) = super(R(a+1),... ,R(a+b+1)) */
64
67
  OPCODE(ARGARY, BS) /* R(a) = argument array (16=m5:r1:m5:d1:lv4) */
65
68
  OPCODE(ENTER, W) /* arg setup according to flags (23=m5:o5:r1:m5:k5:d1:b1) */
66
- OPCODE(KEY_P, BB) /* R(a) = kdict.key?(Syms(b)) # todo */
67
- OPCODE(KEYEND, Z) /* raise unless kdict.empty? # todo */
68
- OPCODE(KARG, BB) /* R(a) = kdict[Syms(b)]; kdict.delete(Syms(b)) # todo */
69
+ OPCODE(KEY_P, BB) /* R(a) = kdict.key?(Syms(b)) */
70
+ OPCODE(KEYEND, Z) /* raise unless kdict.empty? */
71
+ OPCODE(KARG, BB) /* R(a) = kdict[Syms(b)]; kdict.delete(Syms(b)) */
69
72
  OPCODE(RETURN, B) /* return R(a) (normal) */
70
73
  OPCODE(RETURN_BLK, B) /* return R(a) (in-block return) */
71
74
  OPCODE(BREAK, B) /* break R(a) */
@@ -91,19 +94,24 @@ OPCODE(ASET, BBB) /* R(a)[c] = R(b) */
91
94
  OPCODE(APOST, BBB) /* *R(a),R(a+1)..R(a+c) = R(a)[b..] */
92
95
  OPCODE(INTERN, B) /* R(a) = intern(R(a)) */
93
96
  OPCODE(STRING, BB) /* R(a) = str_dup(Lit(b)) */
97
+ OPCODE(STRING16, BS) /* R(a) = str_dup(Lit(b)) */
94
98
  OPCODE(STRCAT, B) /* str_cat(R(a),R(a+1)) */
95
- OPCODE(HASH, BB) /* R(a) = hash_new(R(a),R(a+1)..R(a+b)) */
96
- OPCODE(HASHADD, BB) /* R(a) = hash_push(R(a),R(a+1)..R(a+b)) */
99
+ OPCODE(HASH, BB) /* R(a) = hash_new(R(a),R(a+1)..R(a+b*2-1)) */
100
+ OPCODE(HASHADD, BB) /* R(a) = hash_push(R(a),R(a+1)..R(a+b*2)) */
97
101
  OPCODE(HASHCAT, B) /* R(a) = hash_cat(R(a),R(a+1)) */
98
102
  OPCODE(LAMBDA, BB) /* R(a) = lambda(SEQ[b],L_LAMBDA) */
103
+ OPCODE(LAMBDA16, BS) /* R(a) = lambda(SEQ[b],L_LAMBDA) */
99
104
  OPCODE(BLOCK, BB) /* R(a) = lambda(SEQ[b],L_BLOCK) */
105
+ OPCODE(BLOCK16, BS) /* R(a) = lambda(SEQ[b],L_BLOCK) */
100
106
  OPCODE(METHOD, BB) /* R(a) = lambda(SEQ[b],L_METHOD) */
107
+ OPCODE(METHOD16, BS) /* R(a) = lambda(SEQ[b],L_METHOD) */
101
108
  OPCODE(RANGE_INC, B) /* R(a) = range_new(R(a),R(a+1),FALSE) */
102
109
  OPCODE(RANGE_EXC, B) /* R(a) = range_new(R(a),R(a+1),TRUE) */
103
110
  OPCODE(OCLASS, B) /* R(a) = ::Object */
104
111
  OPCODE(CLASS, BB) /* R(a) = newclass(R(a),Syms(b),R(a+1)) */
105
112
  OPCODE(MODULE, BB) /* R(a) = newmodule(R(a),Syms(b)) */
106
113
  OPCODE(EXEC, BB) /* R(a) = blockexec(R(a),SEQ[b]) */
114
+ OPCODE(EXEC16, BS) /* R(a) = blockexec(R(a),SEQ[b]) */
107
115
  OPCODE(DEF, BB) /* R(a).newmethod(Syms(b),R(a+1)) */
108
116
  OPCODE(ALIAS, BB) /* alias_method(target_class,Syms(a),Syms(b)) */
109
117
  OPCODE(UNDEF, B) /* undef_method(target_class,Syms(a)) */
@@ -111,7 +119,4 @@ OPCODE(SCLASS, B) /* R(a) = R(a).singleton_class */
111
119
  OPCODE(TCLASS, B) /* R(a) = target_class */
112
120
  OPCODE(DEBUG, BBB) /* print a,b,c */
113
121
  OPCODE(ERR, B) /* raise(LocalJumpError, Lit(a)) */
114
- OPCODE(EXT1, Z) /* make 1st operand 16bit */
115
- OPCODE(EXT2, Z) /* make 2nd operand 16bit */
116
- OPCODE(EXT3, Z) /* make 1st and 2nd operands 16bit */
117
122
  OPCODE(STOP, Z) /* stop VM */