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
@@ -7,13 +7,15 @@
7
7
  #ifndef MRB_THROW_H
8
8
  #define MRB_THROW_H
9
9
 
10
- #if defined(MRB_ENABLE_CXX_ABI)
10
+ #if defined(MRB_USE_CXX_ABI)
11
11
  # if !defined(__cplusplus)
12
12
  # error Trying to use C++ exception handling in C code
13
13
  # endif
14
14
  #endif
15
15
 
16
- #if defined(MRB_ENABLE_CXX_EXCEPTION) && defined(__cplusplus)
16
+ #if defined(MRB_USE_CXX_EXCEPTION)
17
+
18
+ # if defined(__cplusplus)
17
19
 
18
20
  #define MRB_TRY(buf) try {
19
21
  #define MRB_CATCH(buf) } catch(mrb_jmpbuf_impl e) { if (e != (buf)->impl) { throw e; }
@@ -22,6 +24,10 @@
22
24
  #define MRB_THROW(buf) throw((buf)->impl)
23
25
  typedef mrb_int mrb_jmpbuf_impl;
24
26
 
27
+ # else
28
+ # error "need to be compiled with C++ compiler"
29
+ # endif /* __cplusplus */
30
+
25
31
  #else
26
32
 
27
33
  #include <setjmp.h>
@@ -29,6 +35,9 @@ typedef mrb_int mrb_jmpbuf_impl;
29
35
  #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
30
36
  #define MRB_SETJMP _setjmp
31
37
  #define MRB_LONGJMP _longjmp
38
+ #elif defined(__MINGW64__) && defined(__GNUC__) && __GNUC__ >= 4
39
+ #define MRB_SETJMP __builtin_setjmp
40
+ #define MRB_LONGJMP __builtin_longjmp
32
41
  #else
33
42
  #define MRB_SETJMP setjmp
34
43
  #define MRB_LONGJMP longjmp
@@ -46,9 +55,11 @@ typedef mrb_int mrb_jmpbuf_impl;
46
55
  struct mrb_jmpbuf {
47
56
  mrb_jmpbuf_impl impl;
48
57
 
49
- #if defined(MRB_ENABLE_CXX_EXCEPTION) && defined(__cplusplus)
58
+ #if defined(MRB_USE_CXX_EXCEPTION)
50
59
  static mrb_int jmpbuf_id;
60
+ # if defined(__cplusplus)
51
61
  mrb_jmpbuf() : impl(jmpbuf_id++) {}
62
+ # endif
52
63
  #endif
53
64
  };
54
65
 
@@ -34,10 +34,6 @@ typedef uint32_t mrb_sym;
34
34
  typedef uint8_t mrb_bool;
35
35
  struct mrb_state;
36
36
 
37
- #if defined(MRB_INT16) && defined(MRB_INT64)
38
- # error "You can't define MRB_INT16 and MRB_INT64 at the same time."
39
- #endif
40
-
41
37
  #if defined _MSC_VER && _MSC_VER < 1800
42
38
  # define PRIo64 "llo"
43
39
  # define PRId64 "lld"
@@ -57,25 +53,19 @@ struct mrb_state;
57
53
 
58
54
  #if defined(MRB_INT64)
59
55
  typedef int64_t mrb_int;
56
+ typedef uint64_t mrb_uint;
60
57
  # define MRB_INT_BIT 64
61
- # define MRB_INT_MIN (INT64_MIN>>MRB_FIXNUM_SHIFT)
62
- # define MRB_INT_MAX (INT64_MAX>>MRB_FIXNUM_SHIFT)
58
+ # define MRB_INT_MIN INT64_MIN
59
+ # define MRB_INT_MAX INT64_MAX
63
60
  # define MRB_PRIo PRIo64
64
61
  # define MRB_PRId PRId64
65
62
  # define MRB_PRIx PRIx64
66
- #elif defined(MRB_INT16)
67
- typedef int16_t mrb_int;
68
- # define MRB_INT_BIT 16
69
- # define MRB_INT_MIN (INT16_MIN>>MRB_FIXNUM_SHIFT)
70
- # define MRB_INT_MAX (INT16_MAX>>MRB_FIXNUM_SHIFT)
71
- # define MRB_PRIo PRIo16
72
- # define MRB_PRId PRId16
73
- # define MRB_PRIx PRIx16
74
63
  #else
75
64
  typedef int32_t mrb_int;
65
+ typedef uint32_t mrb_uint;
76
66
  # define MRB_INT_BIT 32
77
- # define MRB_INT_MIN (INT32_MIN>>MRB_FIXNUM_SHIFT)
78
- # define MRB_INT_MAX (INT32_MAX>>MRB_FIXNUM_SHIFT)
67
+ # define MRB_INT_MIN INT32_MIN
68
+ # define MRB_INT_MAX INT32_MAX
79
69
  # define MRB_PRIo PRIo32
80
70
  # define MRB_PRId PRId32
81
71
  # define MRB_PRIx PRIx32
@@ -87,9 +77,9 @@ struct mrb_state;
87
77
  # define MRB_ENDIAN_LOHI(a,b) b a
88
78
  #endif
89
79
 
90
- #ifndef MRB_WITHOUT_FLOAT
80
+ #ifndef MRB_NO_FLOAT
91
81
  MRB_API double mrb_float_read(const char*, char**);
92
- #ifdef MRB_USE_FLOAT
82
+ #ifdef MRB_USE_FLOAT32
93
83
  typedef float mrb_float;
94
84
  #else
95
85
  typedef double mrb_float;
@@ -102,7 +92,7 @@ MRB_API int mrb_msvc_vsnprintf(char *s, size_t n, const char *format, va_list ar
102
92
  MRB_API int mrb_msvc_snprintf(char *s, size_t n, const char *format, ...);
103
93
  # define vsnprintf(s, n, format, arg) mrb_msvc_vsnprintf(s, n, format, arg)
104
94
  # define snprintf(s, n, format, ...) mrb_msvc_snprintf(s, n, format, __VA_ARGS__)
105
- # if _MSC_VER < 1800 && !defined MRB_WITHOUT_FLOAT
95
+ # if _MSC_VER < 1800 && !defined MRB_NO_FLOAT
106
96
  # include <float.h>
107
97
  # define isfinite(n) _finite(n)
108
98
  # define isnan _isnan
@@ -115,34 +105,36 @@ static const unsigned int IEEE754_INFINITY_BITS_SINGLE = 0x7F800000;
115
105
  #endif
116
106
 
117
107
  enum mrb_vtype {
118
- MRB_TT_FALSE = 0, /* 0 */
119
- MRB_TT_TRUE, /* 1 */
120
- MRB_TT_FLOAT, /* 2 */
121
- MRB_TT_FIXNUM, /* 3 */
122
- MRB_TT_SYMBOL, /* 4 */
123
- MRB_TT_UNDEF, /* 5 */
124
- MRB_TT_CPTR, /* 6 */
125
- MRB_TT_FREE, /* 7 */
126
- MRB_TT_OBJECT, /* 8 */
127
- MRB_TT_CLASS, /* 9 */
128
- MRB_TT_MODULE, /* 10 */
129
- MRB_TT_ICLASS, /* 11 */
130
- MRB_TT_SCLASS, /* 12 */
131
- MRB_TT_PROC, /* 13 */
132
- MRB_TT_ARRAY, /* 14 */
133
- MRB_TT_HASH, /* 15 */
134
- MRB_TT_STRING, /* 16 */
135
- MRB_TT_RANGE, /* 17 */
136
- MRB_TT_EXCEPTION, /* 18 */
137
- MRB_TT_FILE, /* 19 */
138
- MRB_TT_ENV, /* 20 */
139
- MRB_TT_DATA, /* 21 */
140
- MRB_TT_FIBER, /* 22 */
141
- MRB_TT_ISTRUCT, /* 23 */
142
- MRB_TT_BREAK, /* 24 */
143
- MRB_TT_MAXDEFINE /* 25 */
108
+ MRB_TT_FALSE = 0,
109
+ MRB_TT_TRUE,
110
+ MRB_TT_FLOAT,
111
+ MRB_TT_INTEGER,
112
+ MRB_TT_SYMBOL,
113
+ MRB_TT_UNDEF,
114
+ MRB_TT_CPTR,
115
+ MRB_TT_FREE,
116
+ MRB_TT_OBJECT,
117
+ MRB_TT_CLASS,
118
+ MRB_TT_MODULE,
119
+ MRB_TT_ICLASS,
120
+ MRB_TT_SCLASS,
121
+ MRB_TT_PROC,
122
+ MRB_TT_ARRAY,
123
+ MRB_TT_HASH,
124
+ MRB_TT_STRING,
125
+ MRB_TT_RANGE,
126
+ MRB_TT_EXCEPTION,
127
+ MRB_TT_ENV,
128
+ MRB_TT_DATA,
129
+ MRB_TT_FIBER,
130
+ MRB_TT_ISTRUCT,
131
+ MRB_TT_BREAK,
132
+ MRB_TT_MAXDEFINE
144
133
  };
145
134
 
135
+ /* for compatibility */
136
+ #define MRB_TT_FIXNUM MRB_TT_INTEGER
137
+
146
138
  #include <mruby/object.h>
147
139
 
148
140
  #ifdef MRB_DOCUMENTATION_BLOCK
@@ -161,6 +153,13 @@ typedef void mrb_value;
161
153
 
162
154
  #endif
163
155
 
156
+ #if defined(MRB_WORD_BOXING) || (defined(MRB_NAN_BOXING) && defined(MRB_64BIT))
157
+ struct RCptr {
158
+ MRB_OBJECT_HEADER;
159
+ void *p;
160
+ };
161
+ #endif
162
+
164
163
  #if defined(MRB_NAN_BOXING)
165
164
  #include "boxing_nan.h"
166
165
  #elif defined(MRB_WORD_BOXING)
@@ -169,12 +168,9 @@ typedef void mrb_value;
169
168
  #include "boxing_no.h"
170
169
  #endif
171
170
 
172
- #define MRB_SYMBOL_BIT (sizeof(mrb_sym) * CHAR_BIT - MRB_SYMBOL_SHIFT)
173
- #define MRB_SYMBOL_MAX (UINT32_MAX >> MRB_SYMBOL_SHIFT)
174
-
175
171
  #if INTPTR_MAX < MRB_INT_MAX
176
172
  typedef intptr_t mrb_ssize;
177
- # define MRB_SSIZE_MAX (INTPTR_MAX>>MRB_FIXNUM_SHIFT)
173
+ # define MRB_SSIZE_MAX INTPTR_MAX
178
174
  #else
179
175
  typedef mrb_int mrb_ssize;
180
176
  # define MRB_SSIZE_MAX MRB_INT_MAX
@@ -183,8 +179,11 @@ typedef void mrb_value;
183
179
  #ifndef mrb_immediate_p
184
180
  #define mrb_immediate_p(o) (mrb_type(o) < MRB_TT_FREE)
185
181
  #endif
182
+ #ifndef mrb_integer_p
183
+ #define mrb_integer_p(o) (mrb_type(o) == MRB_TT_INTEGER)
184
+ #endif
186
185
  #ifndef mrb_fixnum_p
187
- #define mrb_fixnum_p(o) (mrb_type(o) == MRB_TT_FIXNUM)
186
+ #define mrb_fixnum_p(o) mrb_integer_p(o)
188
187
  #endif
189
188
  #ifndef mrb_symbol_p
190
189
  #define mrb_symbol_p(o) (mrb_type(o) == MRB_TT_SYMBOL)
@@ -201,7 +200,7 @@ typedef void mrb_value;
201
200
  #ifndef mrb_true_p
202
201
  #define mrb_true_p(o) (mrb_type(o) == MRB_TT_TRUE)
203
202
  #endif
204
- #ifndef MRB_WITHOUT_FLOAT
203
+ #ifndef MRB_NO_FLOAT
205
204
  #ifndef mrb_float_p
206
205
  #define mrb_float_p(o) (mrb_type(o) == MRB_TT_FLOAT)
207
206
  #endif
@@ -245,9 +244,6 @@ typedef void mrb_value;
245
244
  #ifndef mrb_range_p
246
245
  #define mrb_range_p(o) (mrb_type(o) == MRB_TT_RANGE)
247
246
  #endif
248
- #ifndef mrb_file_p
249
- #define mrb_file_p(o) (mrb_type(o) == MRB_TT_FILE)
250
- #endif
251
247
  #ifndef mrb_env_p
252
248
  #define mrb_env_p(o) (mrb_type(o) == MRB_TT_ENV)
253
249
  #endif
@@ -273,7 +269,7 @@ typedef void mrb_value;
273
269
  *
274
270
  * Takes a float and boxes it into an mrb_value
275
271
  */
276
- #ifndef MRB_WITHOUT_FLOAT
272
+ #ifndef MRB_NO_FLOAT
277
273
  MRB_INLINE mrb_value mrb_float_value(struct mrb_state *mrb, mrb_float f)
278
274
  {
279
275
  mrb_value v;
@@ -293,14 +289,19 @@ mrb_cptr_value(struct mrb_state *mrb, void *p)
293
289
  }
294
290
 
295
291
  /**
296
- * Returns a fixnum in Ruby.
297
- *
298
- * Takes an integer and boxes it into an mrb_value
292
+ * Returns an integer in Ruby.
299
293
  */
294
+ MRB_INLINE mrb_value mrb_int_value(struct mrb_state *mrb, mrb_int i)
295
+ {
296
+ mrb_value v;
297
+ SET_INT_VALUE(mrb, v, i);
298
+ return v;
299
+ }
300
+
300
301
  MRB_INLINE mrb_value mrb_fixnum_value(mrb_int i)
301
302
  {
302
303
  mrb_value v;
303
- SET_INT_VALUE(v, i);
304
+ SET_FIXNUM_VALUE(v, i);
304
305
  return v;
305
306
  }
306
307
 
@@ -35,6 +35,7 @@ mrb_value mrb_vm_cv_get(mrb_state*, mrb_sym);
35
35
  void mrb_vm_cv_set(mrb_state*, mrb_sym, mrb_value);
36
36
  mrb_value mrb_vm_const_get(mrb_state*, mrb_sym);
37
37
  void mrb_vm_const_set(mrb_state*, mrb_sym, mrb_value);
38
+ size_t mrb_obj_iv_tbl_memsize(mrb_value);
38
39
  MRB_API mrb_value mrb_const_get(mrb_state*, mrb_value, mrb_sym);
39
40
  MRB_API void mrb_const_set(mrb_state*, mrb_value, mrb_sym, mrb_value);
40
41
  MRB_API mrb_bool mrb_const_defined(mrb_state*, mrb_value, mrb_sym);
@@ -27,7 +27,7 @@ MRB_BEGIN_DECL
27
27
  /*
28
28
  * The version of Ruby used by mruby.
29
29
  */
30
- #define MRUBY_RUBY_VERSION "2.0"
30
+ #define MRUBY_RUBY_VERSION "3.0"
31
31
 
32
32
  /*
33
33
  * Ruby engine.
@@ -37,18 +37,36 @@ MRB_BEGIN_DECL
37
37
  /*
38
38
  * Major release version number.
39
39
  */
40
- #define MRUBY_RELEASE_MAJOR 2
40
+ #define MRUBY_RELEASE_MAJOR 3
41
41
 
42
42
  /*
43
43
  * Minor release version number.
44
44
  */
45
- #define MRUBY_RELEASE_MINOR 1
45
+ #define MRUBY_RELEASE_MINOR 0
46
46
 
47
47
  /*
48
48
  * Tiny release version number.
49
49
  */
50
50
  #define MRUBY_RELEASE_TEENY 0
51
51
 
52
+ /*
53
+ * Patch level.
54
+ */
55
+ #define MRUBY_PATCHLEVEL -1
56
+
57
+ /*
58
+ * Patch level string. (optional)
59
+ */
60
+ #define MRUBY_PATCHLEVEL_STR ""
61
+
62
+ #ifndef MRUBY_PATCHLEVEL_STR
63
+ # if MRUBY_PATCHLEVEL < 0
64
+ # define MRUBY_PATCHLEVEL_STR "dev"
65
+ # else
66
+ # define MRUBY_PATCHLEVEL_STR "p"MRB_STRINGIZE(MRUBY_PATCHLEVEL)
67
+ # endif
68
+ #endif
69
+
52
70
  /*
53
71
  * The mruby version.
54
72
  */
@@ -62,17 +80,17 @@ MRB_BEGIN_DECL
62
80
  /*
63
81
  * Release year.
64
82
  */
65
- #define MRUBY_RELEASE_YEAR 2019
83
+ #define MRUBY_RELEASE_YEAR 2021
66
84
 
67
85
  /*
68
86
  * Release month.
69
87
  */
70
- #define MRUBY_RELEASE_MONTH 11
88
+ #define MRUBY_RELEASE_MONTH 3
71
89
 
72
90
  /*
73
91
  * Release day.
74
92
  */
75
- #define MRUBY_RELEASE_DAY 19
93
+ #define MRUBY_RELEASE_DAY 5
76
94
 
77
95
  /*
78
96
  * Release date as a string.
@@ -108,6 +126,7 @@ MRB_BEGIN_DECL
108
126
  */
109
127
  #define MRUBY_DESCRIPTION \
110
128
  "mruby " MRUBY_VERSION \
129
+ MRUBY_PATCHLEVEL_STR \
111
130
  " (" MRUBY_RELEASE_DATE ")" \
112
131
 
113
132
  /*
@@ -1,10 +1,11 @@
1
- require "mruby-core-ext"
1
+ require "mruby/core_ext"
2
2
  require "mruby/build/load_gems"
3
3
  require "mruby/build/command"
4
4
 
5
5
  module MRuby
6
6
  autoload :Gem, "mruby/gem"
7
7
  autoload :Lockfile, "mruby/lockfile"
8
+ autoload :Presym, "mruby/presym"
8
9
 
9
10
  class << self
10
11
  def targets
@@ -22,6 +23,18 @@ def each_target(&block)
22
23
  class Toolchain
23
24
  class << self
24
25
  attr_accessor :toolchains
26
+
27
+ def guess
28
+ if cc = ENV["CC"] || ENV["CXX"]
29
+ return "clang" if cc.include?("clang")
30
+ else
31
+ return "clang" if RUBY_PLATFORM =~ /darwin|(?:free|open)bsd/
32
+ return "gcc" if RUBY_PLATFORM.include?("cygwin")
33
+ return "visualcpp" if ENV.include?("VisualStudioVersion")
34
+ return "visualcpp" if ENV.include?("VSINSTALLDIR")
35
+ end
36
+ "gcc"
37
+ end
25
38
  end
26
39
 
27
40
  def initialize(name, &block)
@@ -29,7 +42,7 @@ def initialize(name, &block)
29
42
  MRuby::Toolchain.toolchains[@name] = self
30
43
  end
31
44
 
32
- def setup(conf,params={})
45
+ def setup(conf, params={})
33
46
  conf.instance_exec(conf, params, &@initializer)
34
47
  end
35
48
 
@@ -39,12 +52,27 @@ def setup(conf,params={})
39
52
  class Build
40
53
  class << self
41
54
  attr_accessor :current
55
+
56
+ def mruby_config_path
57
+ path = ENV['MRUBY_CONFIG'] || ENV['CONFIG']
58
+ if path.nil? || path.empty?
59
+ path = "#{MRUBY_ROOT}/build_config/default.rb"
60
+ elsif !File.file?(path) && !Pathname.new(path).absolute?
61
+ f = "#{MRUBY_ROOT}/build_config/#{path}.rb"
62
+ path = File.exist?(f) ? f : File.extname(path).empty? ? f : path
63
+ end
64
+ path
65
+ end
66
+
67
+ def install_dir
68
+ @install_dir ||= ENV['INSTALL_DIR'] || "#{MRUBY_ROOT}/bin"
69
+ end
42
70
  end
71
+
43
72
  include Rake::DSL
44
73
  include LoadGems
45
74
  attr_accessor :name, :bins, :exts, :file_separator, :build_dir, :gem_clone_dir
46
- attr_reader :libmruby_objs, :gems, :toolchains, :gem_dir_to_repo_url
47
- attr_writer :enable_bintest, :enable_test
75
+ attr_reader :products, :libmruby_core_objs, :libmruby_objs, :gems, :toolchains, :presym, :mrbc_build, :gem_dir_to_repo_url
48
76
 
49
77
  alias libmruby libmruby_objs
50
78
 
@@ -52,16 +80,16 @@ class << self
52
80
  COMMANDS = COMPILERS + %w(linker archiver yacc gperf git exts mrbc)
53
81
  attr_block MRuby::Build::COMMANDS
54
82
 
55
- Exts = Struct.new(:object, :executable, :library)
83
+ Exts = Struct.new(:object, :executable, :library, :presym_preprocessed)
56
84
 
57
- def initialize(name='host', build_dir=nil, &block)
85
+ def initialize(name='host', build_dir=nil, internal: false, &block)
58
86
  @name = name.to_s
59
87
 
60
- unless MRuby.targets[@name]
88
+ unless current = MRuby.targets[@name]
61
89
  if ENV['OS'] == 'Windows_NT'
62
- @exts = Exts.new('.o', '.exe', '.a')
90
+ @exts = Exts.new('.o', '.exe', '.a', '.pi')
63
91
  else
64
- @exts = Exts.new('.o', '', '.a')
92
+ @exts = Exts.new('.o', '', '.a', '.pi')
65
93
  end
66
94
 
67
95
  build_dir = build_dir || ENV['MRUBY_BUILD_DIR'] || "#{MRUBY_ROOT}/build"
@@ -69,10 +97,10 @@ def initialize(name='host', build_dir=nil, &block)
69
97
  @file_separator = '/'
70
98
  @build_dir = "#{build_dir}/#{@name}"
71
99
  @gem_clone_dir = "#{build_dir}/repos/#{@name}"
72
- @cc = Command::Compiler.new(self, %w(.c))
73
- @cxx = Command::Compiler.new(self, %w(.cc .cxx .cpp))
74
- @objc = Command::Compiler.new(self, %w(.m))
75
- @asm = Command::Compiler.new(self, %w(.S .asm))
100
+ @cc = Command::Compiler.new(self, %w(.c), label: "CC")
101
+ @cxx = Command::Compiler.new(self, %w(.cc .cxx .cpp), label: "CXX")
102
+ @objc = Command::Compiler.new(self, %w(.m), label: "OBJC")
103
+ @asm = Command::Compiler.new(self, %w(.S .asm .s), label: "ASM")
76
104
  @linker = Command::Linker.new(self)
77
105
  @archiver = Command::Archiver.new(self)
78
106
  @yacc = Command::Yacc.new(self)
@@ -80,8 +108,12 @@ def initialize(name='host', build_dir=nil, &block)
80
108
  @git = Command::Git.new(self)
81
109
  @mrbc = Command::Mrbc.new(self)
82
110
 
111
+ @products = []
83
112
  @bins = []
84
- @gems, @libmruby_objs = MRuby::Gem::List.new, []
113
+ @gems = MRuby::Gem::List.new
114
+ @libmruby_core_objs = []
115
+ @libmruby_objs = [@libmruby_core_objs]
116
+ @enable_libmruby = true
85
117
  @build_mrbtest_lib_only = false
86
118
  @cxx_exception_enabled = false
87
119
  @cxx_exception_disabled = false
@@ -89,17 +121,33 @@ def initialize(name='host', build_dir=nil, &block)
89
121
  @enable_bintest = false
90
122
  @enable_test = false
91
123
  @enable_lock = true
124
+ @enable_presym = true
125
+ @mrbcfile_external = false
126
+ @internal = internal
92
127
  @toolchains = []
93
128
  @gem_dir_to_repo_url = {}
94
129
 
95
- MRuby.targets[@name] = self
130
+ MRuby.targets[@name] = current = self
96
131
  end
97
132
 
98
- MRuby::Build.current = MRuby.targets[@name]
99
- MRuby.targets[@name].instance_eval(&block)
133
+ MRuby::Build.current = current
134
+ current.instance_eval(&block)
135
+ if current.libmruby_enabled? && !current.mrbcfile_external?
136
+ if current.presym_enabled?
137
+ current.create_mrbc_build if current.host? || current.gems["mruby-bin-mrbc"]
138
+ elsif current.host?
139
+ current.build_mrbc_exec
140
+ end
141
+ end
142
+ current.presym = Presym.new(current) if current.presym_enabled?
143
+ end
144
+
145
+ def libmruby_enabled?
146
+ @enable_libmruby
147
+ end
100
148
 
101
- build_mrbc_exec if name == 'host'
102
- build_mrbtest if test_enabled?
149
+ def disable_libmruby
150
+ @enable_libmruby = false
103
151
  end
104
152
 
105
153
  def debug_enabled?
@@ -118,6 +166,17 @@ def enable_debug
118
166
  @enable_debug = true
119
167
  end
120
168
 
169
+ def presym_enabled?
170
+ @enable_presym
171
+ end
172
+
173
+ def disable_presym
174
+ if @enable_presym
175
+ @enable_presym = false
176
+ compilers.each{|c| c.defines << "MRB_NO_PRESYM"}
177
+ end
178
+ end
179
+
121
180
  def disable_lock
122
181
  @enable_lock = false
123
182
  end
@@ -141,7 +200,7 @@ def enable_cxx_exception
141
200
  end
142
201
  @cxx_exception_enabled = true
143
202
  compilers.each { |c|
144
- c.defines += %w(MRB_ENABLE_CXX_EXCEPTION)
203
+ c.defines += %w(MRB_USE_CXX_EXCEPTION)
145
204
  c.flags << c.cxx_exception_flag
146
205
  }
147
206
  linker.command = cxx.command if toolchains.find { |v| v == 'gcc' }
@@ -161,7 +220,7 @@ def enable_cxx_abi
161
220
  raise "cxx_exception already enabled"
162
221
  end
163
222
  compilers.each { |c|
164
- c.defines += %w(MRB_ENABLE_CXX_EXCEPTION MRB_ENABLE_CXX_ABI)
223
+ c.defines += %w(MRB_USE_CXX_EXCEPTION MRB_USE_CXX_ABI)
165
224
  c.flags << c.cxx_compile_flag
166
225
  c.flags = c.flags.flatten - c.cxx_invalid_flags.flatten
167
226
  }
@@ -169,8 +228,29 @@ def enable_cxx_abi
169
228
  @cxx_abi_enabled = true
170
229
  end
171
230
 
172
- def compile_as_cxx src, cxx_src, obj = nil, includes = []
173
- obj = objfile(cxx_src) if obj.nil?
231
+ def compile_as_cxx(src, cxx_src = nil, obj = nil, includes = [])
232
+ #
233
+ # If `cxx_src` is specified, this method behaves the same as before as
234
+ # compatibility mode, but `.d` file is not read.
235
+ #
236
+ # If `cxx_src` is omitted, `.d` file is read by using mruby standard
237
+ # Rake rule (C++ source name is also changed).
238
+ #
239
+ if cxx_src
240
+ obj ||= cxx_src + @exts.object
241
+ dsts = [obj]
242
+ dsts << (cxx_src + @exts.presym_preprocessed) if presym_enabled?
243
+ defines = []
244
+ include_paths = ["#{MRUBY_ROOT}/src", *includes]
245
+ dsts.each do |dst|
246
+ file dst => cxx_src do |t|
247
+ cxx.run t.name, t.prerequisites.first, defines, include_paths
248
+ end
249
+ end
250
+ else
251
+ cxx_src = "#{build_dir}/#{src.relative_path})".ext << "-cxx.cxx"
252
+ obj = cxx_src.ext(@exts.object)
253
+ end
174
254
 
175
255
  file cxx_src => [src, __FILE__] do |t|
176
256
  mkdir_p File.dirname t.name
@@ -178,20 +258,16 @@ def compile_as_cxx src, cxx_src, obj = nil, includes = []
178
258
  #define __STDC_CONSTANT_MACROS
179
259
  #define __STDC_LIMIT_MACROS
180
260
 
181
- #ifndef MRB_ENABLE_CXX_ABI
261
+ #ifndef MRB_USE_CXX_ABI
182
262
  extern "C" {
183
263
  #endif
184
264
  #include "#{File.absolute_path src}"
185
- #ifndef MRB_ENABLE_CXX_ABI
265
+ #ifndef MRB_USE_CXX_ABI
186
266
  }
187
267
  #endif
188
268
  EOS
189
269
  end
190
270
 
191
- file obj => cxx_src do |t|
192
- cxx.run t.name, t.prerequisites.first, [], ["#{MRUBY_ROOT}/src"] + includes
193
- end
194
-
195
271
  obj
196
272
  end
197
273
 
@@ -203,7 +279,7 @@ def bintest_enabled?
203
279
  @enable_bintest
204
280
  end
205
281
 
206
- def toolchain(name, params={})
282
+ def toolchain(name=Toolchain.guess, params={})
207
283
  name = name.to_s
208
284
  tc = Toolchain.toolchains[name] || begin
209
285
  path = "#{MRUBY_ROOT}/tasks/toolchains/#{name}.rake"
@@ -226,17 +302,14 @@ def root
226
302
  def enable_test
227
303
  @enable_test = true
228
304
  end
305
+ alias build_mrbtest enable_test
229
306
 
230
307
  def test_enabled?
231
308
  @enable_test
232
309
  end
233
310
 
234
- def build_mrbtest
235
- gem :core => 'mruby-test'
236
- end
237
-
238
311
  def build_mrbc_exec
239
- gem :core => 'mruby-bin-mrbc'
312
+ gem :core => 'mruby-bin-mrbc' unless @gems['mruby-bin-mrbc']
240
313
  end
241
314
 
242
315
  def locks
@@ -246,9 +319,22 @@ def locks
246
319
  def mrbcfile
247
320
  return @mrbcfile if @mrbcfile
248
321
 
249
- mrbc_build = MRuby.targets['host']
250
- gems.each { |v| mrbc_build = self if v.name == 'mruby-bin-mrbc' }
251
- @mrbcfile = mrbc_build.exefile("#{mrbc_build.build_dir}/bin/mrbc")
322
+ gem_name = "mruby-bin-mrbc"
323
+ gem = @gems[gem_name]
324
+ gem ||= (host = MRuby.targets["host"]) && host.gems[gem_name]
325
+ unless gem
326
+ fail "external mrbc or mruby-bin-mrbc gem in current('#{@name}') or 'host' build is required"
327
+ end
328
+ @mrbcfile = exefile("#{gem.build.build_dir}/bin/mrbc")
329
+ end
330
+
331
+ def mrbcfile=(path)
332
+ @mrbcfile = path
333
+ @mrbcfile_external = true
334
+ end
335
+
336
+ def mrbcfile_external?
337
+ @mrbcfile_external
252
338
  end
253
339
 
254
340
  def compilers
@@ -258,29 +344,39 @@ def compilers
258
344
  end
259
345
 
260
346
  def define_rules
347
+ use_mrdb = @gems["mruby-bin-debugger"]
261
348
  compilers.each do |compiler|
262
349
  if respond_to?(:enable_gems?) && enable_gems?
263
- compiler.defines -= %w(DISABLE_GEMS)
350
+ compiler.defines -= %w(MRB_NO_GEMS)
264
351
  else
265
- compiler.defines += %w(DISABLE_GEMS)
352
+ compiler.defines += %w(MRB_NO_GEMS)
266
353
  end
267
- compiler.define_rules build_dir, File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
354
+ compiler.defines |= %w(MRB_USE_DEBUG_HOOK) if use_mrdb
355
+ end
356
+ [@cc, *(@cxx if cxx_exception_enabled?)].each do |compiler|
357
+ compiler.define_rules(@build_dir, MRUBY_ROOT, @exts.object)
358
+ compiler.define_rules(@build_dir, MRUBY_ROOT, @exts.presym_preprocessed) if presym_enabled?
268
359
  end
269
360
  end
270
361
 
271
- def filename(name)
272
- if name.is_a?(Array)
273
- name.flatten.map { |n| filename(n) }
274
- else
275
- name.gsub('/', file_separator)
362
+ def define_installer(src)
363
+ dst = "#{self.class.install_dir}/#{File.basename(src)}"
364
+ file dst => src do
365
+ install_D src, dst
276
366
  end
367
+ dst
277
368
  end
278
369
 
279
- def cygwin_filename(name)
370
+ def define_installer_if_needed(bin)
371
+ exe = exefile("#{build_dir}/bin/#{bin}")
372
+ host? ? define_installer(exe) : exe
373
+ end
374
+
375
+ def filename(name)
280
376
  if name.is_a?(Array)
281
- name.flatten.map { |n| cygwin_filename(n) }
377
+ name.flatten.map { |n| filename(n) }
282
378
  else
283
- '"%s"' % `cygpath -w "#{filename(name)}"`.strip
379
+ name.gsub('/', file_separator)
284
380
  end
285
381
  end
286
382
 
@@ -334,7 +430,9 @@ def run_bintest
334
430
  puts ">>> Bintest #{name} <<<"
335
431
  targets = @gems.select { |v| File.directory? "#{v.dir}/bintest" }.map { |v| filename v.dir }
336
432
  targets << filename(".") if File.directory? "./bintest"
337
- sh "ruby test/bintest.rb#{verbose_flag} #{targets.join ' '}"
433
+ mrbc = @gems["mruby-bin-mrbc"] ? exefile("#{@build_dir}/bin/mrbc") : mrbcfile
434
+ env = {"BUILD_DIR" => @build_dir, "MRBCFILE" => mrbc}
435
+ sh env, "ruby test/bintest.rb#{verbose_flag} #{targets.join ' '}"
338
436
  end
339
437
 
340
438
  def print_build_summary
@@ -344,7 +442,8 @@ def print_build_summary
344
442
  puts " Binaries: #{@bins.join(', ')}" unless @bins.empty?
345
443
  unless @gems.empty?
346
444
  puts " Included Gems:"
347
- @gems.map do |gem|
445
+ gems = @gems.sort_by { |gem| gem.name }
446
+ gems.each do |gem|
348
447
  gem_version = " - #{gem.version}" if gem.version != '0.0.0'
349
448
  gem_summary = " - #{gem.summary}" if gem.summary
350
449
  puts " #{gem.name}#{gem_version}#{gem_summary}"
@@ -366,6 +465,42 @@ def libmruby_core_static
366
465
  def libraries
367
466
  [libmruby_static]
368
467
  end
468
+
469
+ def host?
470
+ @name == "host"
471
+ end
472
+
473
+ def internal?
474
+ @internal
475
+ end
476
+
477
+ protected
478
+
479
+ attr_writer :presym
480
+
481
+ def create_mrbc_build
482
+ exclusions = %i[@name @build_dir @gems @enable_test @enable_bintest @internal]
483
+ name = "#{@name}/mrbc"
484
+ MRuby.targets.delete(name)
485
+ build = self.class.new(name, internal: true){}
486
+ build.build_dir = "#{@build_dir}/mrbc"
487
+ instance_variables.each do |n|
488
+ next if exclusions.include?(n)
489
+ v = instance_variable_get(n)
490
+ v = case v
491
+ when nil, true, false, Numeric; v
492
+ when String, Command; v.clone
493
+ else Marshal.load(Marshal.dump(v)) # deep clone
494
+ end
495
+ build.instance_variable_set(n, v)
496
+ end
497
+ build.build_mrbc_exec
498
+ build.disable_libmruby
499
+ build.disable_presym
500
+ @mrbc_build = build
501
+ self.mrbcfile = build.mrbcfile
502
+ build
503
+ end
369
504
  end # Build
370
505
 
371
506
  class CrossBuild < Build
@@ -376,13 +511,21 @@ class CrossBuild < Build
376
511
  attr_accessor :host_target, :build_target
377
512
 
378
513
  def initialize(name, build_dir=nil, &block)
379
- @endian = nil
380
514
  @test_runner = Command::CrossTestRunner.new(self)
381
515
  super
516
+ unless mrbcfile_external? || MRuby.targets['host']
517
+ # add minimal 'host'
518
+ MRuby::Build.new('host') do |conf|
519
+ conf.toolchain
520
+ conf.build_mrbc_exec
521
+ conf.disable_libmruby
522
+ conf.disable_presym
523
+ end
524
+ end
382
525
  end
383
526
 
384
527
  def mrbcfile
385
- MRuby.targets['host'].exefile("#{MRuby.targets['host'].build_dir}/bin/mrbc")
528
+ mrbcfile_external? ? super : MRuby::targets['host'].mrbcfile
386
529
  end
387
530
 
388
531
  def run_test
@@ -396,25 +539,8 @@ def run_test
396
539
  end
397
540
  end
398
541
 
399
- def big_endian
400
- if @endian
401
- puts "Endian has already specified as #{@endian}."
402
- return
403
- end
404
- @endian = :big
405
- @mrbc.compile_options += ' -E'
406
- compilers.each do |c|
407
- c.defines += %w(MRB_ENDIAN_BIG)
408
- end
409
- end
542
+ protected
410
543
 
411
- def little_endian
412
- if @endian
413
- puts "Endian has already specified as #{@endian}."
414
- return
415
- end
416
- @endian = :little
417
- @mrbc.compile_options += ' -e'
418
- end
544
+ def create_mrbc_build; end
419
545
  end # CrossBuild
420
546
  end # MRuby