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
@@ -1,5 +1,22 @@
1
1
  #!/bin/sh
2
2
 
3
+ print_help()
4
+ {
5
+ echo "Usage: mruby-config [switches]"
6
+ echo " switches:"
7
+ echo " --cflags print flags passed to compiler"
8
+ echo " --ldflags print flags passed to linker"
9
+ echo " --ldflags-before-libs print flags passed to linker before linked libraries"
10
+ echo " --libs print linked libraries"
11
+ echo " --libmruby-path print libmruby path"
12
+ echo " --help print this help"
13
+ exit 0
14
+ }
15
+
16
+ if [ $# -eq 0 ]; then
17
+ print_help
18
+ fi
19
+
3
20
  while [ $# -gt 0 ]; do
4
21
  case $1 in
5
22
  --cflags) echo MRUBY_CFLAGS;;
@@ -7,14 +24,7 @@ while [ $# -gt 0 ]; do
7
24
  --ldflags-before-libs) echo MRUBY_LDFLAGS_BEFORE_LIBS;;
8
25
  --libs) echo MRUBY_LIBS;;
9
26
  --libmruby-path) echo MRUBY_LIBMRUBY_PATH;;
10
- --help) echo "Usage: mruby-config [switches]"
11
- echo " switches:"
12
- echo " --cflags print flags passed to compiler"
13
- echo " --ldflags print flags passed to linker"
14
- echo " --ldflags-before-libs print flags passed to linker before linked libraries"
15
- echo " --libs print linked libraries"
16
- echo " --libmruby-path print libmruby path"
17
- exit 0;;
27
+ *) print_help;;
18
28
  esac
19
29
  shift
20
30
  done
@@ -13,14 +13,14 @@ def self.test(rubysource, testcase)
13
13
  script.flush
14
14
 
15
15
  # compile
16
- `./bin/mrbc -g -o "#{bin.path}" "#{script.path}"`
16
+ `#{cmd("mrbc")} -g -o "#{bin.path}" "#{script.path}"`
17
17
 
18
18
  # add mrdb quit
19
19
  testcase << {:cmd=>"quit"}
20
20
 
21
21
  stdin_data = testcase.map{|t| t[:cmd]}.join("\n") << "\n"
22
22
 
23
- ["bin/mrdb #{script.path}","bin/mrdb -b #{bin.path}"].each do |cmd|
23
+ ["#{cmd('mrdb')} #{script.path}", "#{cmd('mrdb')} -b #{bin.path}"].each do |cmd|
24
24
  o, s = Open3.capture2(cmd, :stdin_data => stdin_data)
25
25
 
26
26
  exp_vals = testcase.map{|t| t.fetch(:exp, nil)}
@@ -63,10 +63,7 @@ def self.test(rubysource, testcase)
63
63
  # ruby source
64
64
  src = "foo = 'foo'\n"
65
65
 
66
- str = ""
67
- 103.times {
68
- str += "1234567890"
69
- }
66
+ str = ":#{'abcdefghij' * 103}"
70
67
  cmd = "p a=#{str}"
71
68
 
72
69
  # test case
@@ -13,7 +13,7 @@ def self.test(rubysource, testcase)
13
13
  script.flush
14
14
 
15
15
  # compile
16
- `./bin/mrbc -g -o "#{bin.path}" "#{script.path}"`
16
+ `#{cmd("mrbc")} -g -o "#{bin.path}" "#{script.path}"`
17
17
 
18
18
  # add mrdb quit
19
19
  testcase << {:cmd=>"quit"}
@@ -21,7 +21,7 @@ def self.test(rubysource, testcase)
21
21
  stdin_data = testcase.map{|t| t[:cmd]}.join("\n") << "\n"
22
22
 
23
23
  prompt = /^\(#{Regexp.escape(script.path)}:\d+\) /
24
- ["bin/mrdb #{script.path}","bin/mrdb -b #{bin.path}"].each do |cmd|
24
+ ["#{cmd('mrdb')} #{script.path}", "#{cmd('mrdb')} -b #{bin.path}"].each do |cmd|
25
25
  o, s = Open3.capture2(cmd, :stdin_data => stdin_data)
26
26
  scanner = StringScanner.new(o)
27
27
  scanner.skip_until(prompt)
@@ -67,7 +67,7 @@ def self.test(rubysource, testcase)
67
67
  BinTest_MrubyBinDebugger.test(src, tc)
68
68
  end
69
69
 
70
- assert('mruby-bin-debugger(print) nomal') do
70
+ assert('mruby-bin-debugger(print) normal') do
71
71
  # ruby source
72
72
  src = <<"SRC"
73
73
  foo = 'foo'
@@ -99,7 +99,7 @@ def self.test(rubysource, testcase)
99
99
  BinTest_MrubyBinDebugger.test(src, tc)
100
100
  end
101
101
 
102
- # Kernel#instance_eval(string) does't work multiple statements.
102
+ # Kernel#instance_eval(string) doesn't work multiple statements.
103
103
  =begin
104
104
  assert('mruby-bin-debugger(print) multiple statements') do
105
105
  # ruby source
@@ -234,7 +234,7 @@ def m
234
234
  BinTest_MrubyBinDebugger.test(src, tc)
235
235
  end
236
236
 
237
- assert('mruby-bin-debugger(print) same name:local variabe') do
237
+ assert('mruby-bin-debugger(print) same name:local variable') do
238
238
  # ruby source (bp is break point)
239
239
  src = <<"SRC"
240
240
  lv = 'top'
@@ -516,7 +516,7 @@ def m
516
516
  tc << {:cmd=>'p a+1', :exp=>'$1 = 2'}
517
517
  tc << {:cmd=>'p 2-b', :exp=>'$2 = -3'}
518
518
  tc << {:cmd=>'p c * 3', :exp=>'$3 = 24'}
519
- tc << {:cmd=>'p a/b', :exp=>'$4 = 0.2'}
519
+ tc << {:cmd=>'p a/b', :exp=>'$4 = 0'}
520
520
  tc << {:cmd=>'p c%b', :exp=>'$5 = 3'}
521
521
  tc << {:cmd=>'p 2**10', :exp=>'$6 = 1024'}
522
522
  tc << {:cmd=>'p ~3', :exp=>'$7 = -4'}
@@ -614,13 +614,13 @@ def m
614
614
  tc << {:cmd=>'p a+=9', :exp=>'$1 = 10'}
615
615
  tc << {:cmd=>'p b-=c', :exp=>'$2 = 15'}
616
616
  tc << {:cmd=>'p bar*=2', :exp=>'$3 = "barbar"'}
617
- tc << {:cmd=>'p a/=4', :exp=>'$4 = 2.5'}
617
+ tc << {:cmd=>'p a/=4', :exp=>'$4 = 2'}
618
618
  tc << {:cmd=>'p c%=4', :exp=>'$5 = 2'}
619
619
 
620
620
  tc << {:cmd=>'p b&=0b0101', :exp=>'$6 = 5'}
621
621
  tc << {:cmd=>'p c|=0x10', :exp=>'$7 = 18'}
622
622
 
623
- tc << {:cmd=>'p "#{a} #{b} #{c}"', :exp=>'$8 = "2.5 5 18"'}
623
+ tc << {:cmd=>'p "#{a} #{b} #{c}"', :exp=>'$8 = "2 5 18"'}
624
624
  tc << {:cmd=>'p "#{foo}#{bar}#{baz}"', :exp=>'$9 = "foobarbarbaz"'}
625
625
 
626
626
  tc << {:cmd=>'p a,b,c=[10,20,30]',:exp=>'$10 = [10, 20, 30]'}
@@ -682,13 +682,13 @@ def m
682
682
  tc << {:cmd=>'p a+=9', :exp=>'$1 = 10'}
683
683
  tc << {:cmd=>'p b-=c', :exp=>'$2 = 15'}
684
684
  tc << {:cmd=>'p bar*=2', :exp=>'$3 = "barbar"'}
685
- tc << {:cmd=>'p a/=4', :exp=>'$4 = 2.5'}
685
+ tc << {:cmd=>'p a/=4', :exp=>'$4 = 2'}
686
686
  tc << {:cmd=>'p c%=4', :exp=>'$5 = 2'}
687
687
 
688
688
  tc << {:cmd=>'p b&=0b0101', :exp=>'$6 = 5'}
689
689
  tc << {:cmd=>'p c|=0x10', :exp=>'$7 = 18'}
690
690
 
691
- tc << {:cmd=>'p "#{a} #{b} #{c}"', :exp=>'$8 = "2.5 5 18"'}
691
+ tc << {:cmd=>'p "#{a} #{b} #{c}"', :exp=>'$8 = "2 5 18"'}
692
692
  tc << {:cmd=>'p "#{foo}#{bar}#{baz}"', :exp=>'$9 = "foobarbarbaz"'}
693
693
 
694
694
  tc << {:cmd=>'p a,b,c=[10,20,30]',:exp=>'$10 = [10, 20, 30]'}
@@ -84,7 +84,7 @@ free_breakpoint(mrb_state *mrb, mrb_debug_breakpoint *bp)
84
84
  }
85
85
 
86
86
  static uint16_t
87
- check_file_lineno(mrb_state *mrb, struct mrb_irep *irep, const char *file, uint16_t lineno)
87
+ check_file_lineno(mrb_state *mrb, const struct mrb_irep *irep, const char *file, uint16_t lineno)
88
88
  {
89
89
  mrb_irep_debug_info_file *info_file;
90
90
  uint16_t result = 0;
@@ -151,7 +151,7 @@ compare_break_method(mrb_state *mrb, mrb_debug_breakpoint *bp, struct RClass *cl
151
151
  }
152
152
 
153
153
  sc = mrb_class_get(mrb, method_p->class_name);
154
- ssym = mrb_symbol(mrb_check_intern_cstr(mrb, method_p->method_name));
154
+ ssym = mrb_intern_check_cstr(mrb, method_p->method_name);
155
155
  m = mrb_method_search_vm(mrb, &sc, ssym);
156
156
  if (MRB_METHOD_UNDEF_P(m)) {
157
157
  return MRB_DEBUG_OK;
@@ -173,6 +173,7 @@ mrb_debug_set_break_line(mrb_state *mrb, mrb_debug_context *dbg, const char *fil
173
173
  int32_t index;
174
174
  char* set_file;
175
175
  uint16_t result;
176
+ size_t len;
176
177
 
177
178
  if ((mrb == NULL)||(dbg == NULL)||(file == NULL)) {
178
179
  return MRB_DEBUG_INVALID_ARGUMENT;
@@ -195,7 +196,8 @@ mrb_debug_set_break_line(mrb_state *mrb, mrb_debug_context *dbg, const char *fil
195
196
  return MRB_DEBUG_BREAK_INVALID_LINENO;
196
197
  }
197
198
 
198
- set_file = (char*)mrb_malloc(mrb, strlen(file) + 1);
199
+ len = strlen(file) + 1;
200
+ set_file = (char*)mrb_malloc(mrb, len);
199
201
 
200
202
  index = dbg->bpnum;
201
203
  dbg->bp[index].bpno = dbg->next_bpno;
@@ -205,7 +207,7 @@ mrb_debug_set_break_line(mrb_state *mrb, mrb_debug_context *dbg, const char *fil
205
207
  dbg->bp[index].point.linepoint.lineno = lineno;
206
208
  dbg->bpnum++;
207
209
 
208
- strncpy(set_file, file, strlen(file) + 1);
210
+ strncpy(set_file, file, len);
209
211
 
210
212
  dbg->bp[index].point.linepoint.file = set_file;
211
213
 
@@ -218,6 +220,7 @@ mrb_debug_set_break_method(mrb_state *mrb, mrb_debug_context *dbg, const char *c
218
220
  int32_t index;
219
221
  char* set_class;
220
222
  char* set_method;
223
+ size_t len;
221
224
 
222
225
  if ((mrb == NULL) || (dbg == NULL) || (method_name == NULL)) {
223
226
  return MRB_DEBUG_INVALID_ARGUMENT;
@@ -232,16 +235,18 @@ mrb_debug_set_break_method(mrb_state *mrb, mrb_debug_context *dbg, const char *c
232
235
  }
233
236
 
234
237
  if (class_name != NULL) {
235
- set_class = (char*)mrb_malloc(mrb, strlen(class_name) + 1);
236
- strncpy(set_class, class_name, strlen(class_name) + 1);
238
+ len = strlen(class_name) + 1;
239
+ set_class = (char*)mrb_malloc(mrb, len);
240
+ strncpy(set_class, class_name, len);
237
241
  }
238
242
  else {
239
243
  set_class = NULL;
240
244
  }
241
245
 
242
- set_method = (char*)mrb_malloc(mrb, strlen(method_name) + 1);
246
+ len = strlen(method_name) + 1;
247
+ set_method = (char*)mrb_malloc(mrb, len);
243
248
 
244
- strncpy(set_method, method_name, strlen(method_name) + 1);
249
+ strncpy(set_method, method_name, len);
245
250
 
246
251
  index = dbg->bpnum;
247
252
  dbg->bp[index].bpno = dbg->next_bpno;
@@ -428,7 +433,7 @@ mrb_debug_disable_break_all(mrb_state *mrb, mrb_debug_context *dbg)
428
433
  }
429
434
 
430
435
  static mrb_bool
431
- check_start_pc_for_line(mrb_state *mrb, mrb_irep *irep, const mrb_code *pc, uint16_t line)
436
+ check_start_pc_for_line(mrb_state *mrb, const mrb_irep *irep, const mrb_code *pc, uint16_t line)
432
437
  {
433
438
  if (pc > irep->iseq) {
434
439
  if (line == mrb_debug_get_line(mrb, irep, pc - irep->iseq - 1)) {
@@ -11,6 +11,7 @@
11
11
  #include <mruby/error.h>
12
12
  #include <mruby/numeric.h>
13
13
  #include <mruby/string.h>
14
+ #include <mruby/presym.h>
14
15
  #include "apiprint.h"
15
16
 
16
17
  static void
@@ -33,7 +34,7 @@ mrdb_check_syntax(mrb_state *mrb, mrb_debug_context *dbg, const char *expr, size
33
34
  mrb_value
34
35
  mrb_debug_eval(mrb_state *mrb, mrb_debug_context *dbg, const char *expr, size_t len, mrb_bool *exc, int direct_eval)
35
36
  {
36
- void (*tmp)(struct mrb_state *, struct mrb_irep *, const mrb_code *, mrb_value *);
37
+ void (*tmp)(struct mrb_state *, const struct mrb_irep *, const mrb_code *, mrb_value *);
37
38
  mrb_value ruby_code;
38
39
  mrb_value s;
39
40
  mrb_value v;
@@ -67,7 +68,7 @@ mrb_debug_eval(mrb_state *mrb, mrb_debug_context *dbg, const char *expr, size_t
67
68
 
68
69
  recv = dbg->regs[0];
69
70
 
70
- v = mrb_funcall(mrb, recv, "instance_eval", 1, ruby_code);
71
+ v = mrb_funcall_id(mrb, recv, MRB_SYM(instance_eval), 1, ruby_code);
71
72
  }
72
73
 
73
74
  if (exc) {
@@ -5,7 +5,6 @@
5
5
 
6
6
  #include <stdlib.h>
7
7
  #include <string.h>
8
- #include <stdio.h>
9
8
  #include <ctype.h>
10
9
 
11
10
  #include <mruby.h>
@@ -14,6 +13,7 @@
14
13
  #include <mruby/class.h>
15
14
  #include <mruby/opcode.h>
16
15
  #include <mruby/variable.h>
16
+ #include <mruby/proc.h>
17
17
 
18
18
  #include "mrdb.h"
19
19
  #include "apibreak.h"
@@ -505,7 +505,7 @@ get_and_parse_command(mrb_state *mrb, mrdb_state *mrdb)
505
505
  }
506
506
 
507
507
  static int32_t
508
- check_method_breakpoint(mrb_state *mrb, mrb_irep *irep, const mrb_code *pc, mrb_value *regs)
508
+ check_method_breakpoint(mrb_state *mrb, const mrb_irep *irep, const mrb_code *pc, mrb_value *regs)
509
509
  {
510
510
  struct RClass* c;
511
511
  mrb_sym sym;
@@ -527,7 +527,7 @@ check_method_breakpoint(mrb_state *mrb, mrb_irep *irep, const mrb_code *pc, mrb_
527
527
  sym = irep->syms[insn.b];
528
528
  break;
529
529
  case OP_SUPER:
530
- c = mrb->c->ci->target_class->super;
530
+ c = mrb_vm_ci_target_class(mrb->c->ci)->super;
531
531
  sym = mrb->c->ci->mid;
532
532
  break;
533
533
  default:
@@ -546,7 +546,7 @@ check_method_breakpoint(mrb_state *mrb, mrb_irep *irep, const mrb_code *pc, mrb_
546
546
  }
547
547
 
548
548
  static void
549
- mrb_code_fetch_hook(mrb_state *mrb, mrb_irep *irep, const mrb_code *pc, mrb_value *regs)
549
+ mrb_code_fetch_hook(mrb_state *mrb, const mrb_irep *irep, const mrb_code *pc, mrb_value *regs)
550
550
  {
551
551
  const char *file;
552
552
  int32_t line;
@@ -10,10 +10,6 @@
10
10
 
11
11
  #include "mrdbconf.h"
12
12
 
13
- #ifdef _MSC_VER
14
- # define __func__ __FUNCTION__
15
- #endif
16
-
17
13
  #define MAX_COMMAND_WORD (16)
18
14
 
19
15
  typedef enum debug_command_id {
@@ -103,8 +99,8 @@ typedef struct mrb_debug_breakpoint {
103
99
  } mrb_debug_breakpoint;
104
100
 
105
101
  typedef struct mrb_debug_context {
106
- struct mrb_irep *root_irep;
107
- struct mrb_irep *irep;
102
+ const struct mrb_irep *root_irep;
103
+ const struct mrb_irep *irep;
108
104
  const mrb_code *pc;
109
105
  mrb_value *regs;
110
106
 
@@ -6,8 +6,12 @@
6
6
  #ifndef MRDBCONF_H
7
7
  #define MRDBCONF_H
8
8
 
9
- #ifndef MRB_ENABLE_DEBUG_HOOK
10
- # error Need 'MRB_ENABLE_DEBUG_HOOK' configuration in your 'build_config.rb'
9
+ #ifndef MRB_USE_DEBUG_HOOK
10
+ # error mruby-bin-debugger need 'MRB_USE_DEBUG_HOOK' in your build configuration
11
+ #endif
12
+
13
+ #ifdef MRB_NO_STDIO
14
+ # error mruby-bin-debugger conflicts 'MRB_NO_STDIO' in your build configuration
11
15
  #endif
12
16
 
13
17
  /* configuration options: */
@@ -1,20 +1,21 @@
1
1
  require 'open3'
2
+ require 'tempfile'
2
3
 
3
4
  assert('mirb normal operations') do
4
- o, s = Open3.capture2('bin/mirb', :stdin_data => "a=1\nb=2\na+b\n")
5
+ o, s = Open3.capture2(cmd("mirb"), :stdin_data => "a=1\nb=2\na+b\n")
5
6
  assert_true o.include?('=> 3')
6
7
  assert_true o.include?('=> 2')
7
8
  end
8
9
 
9
10
  assert('regression for #1563') do
10
- o, s = Open3.capture2('bin/mirb', :stdin_data => "a=1;b=2;c=3\nb\nc")
11
+ o, s = Open3.capture2(cmd("mirb"), :stdin_data => "a=1;b=2;c=3\nb\nc")
11
12
  assert_true o.include?('=> 3')
12
13
  end
13
14
 
14
15
  assert('mirb -d option') do
15
- o, _ = Open3.capture2('bin/mirb', :stdin_data => "$DEBUG\n")
16
+ o, _ = Open3.capture2(cmd("mirb"), :stdin_data => "$DEBUG\n")
16
17
  assert_true o.include?('=> false')
17
- o, _ = Open3.capture2('bin/mirb -d', :stdin_data => "$DEBUG\n")
18
+ o, _ = Open3.capture2("#{cmd('mirb')} -d", :stdin_data => "$DEBUG\n")
18
19
  assert_true o.include?('=> true')
19
20
  end
20
21
 
@@ -29,6 +30,23 @@ def hoge
29
30
  EOS
30
31
  lib.flush
31
32
 
32
- o, _ = Open3.capture2("bin/mirb -r #{lib.path}", :stdin_data => "Hoge.new.hoge\n")
33
+ o, _ = Open3.capture2("#{cmd('mirb')} -r #{lib.path}", :stdin_data => "Hoge.new.hoge\n")
33
34
  assert_true o.include?('=> :hoge')
34
35
  end
36
+
37
+ assert('top level local variables are in file scope') do
38
+ lib = Tempfile.new('lib.rb')
39
+ lib.write <<-TESTLIB
40
+ a = 1
41
+ A = -> { a }
42
+ TESTLIB
43
+ lib.flush
44
+
45
+ o, _ = Open3.capture2("#{cmd('mirb')} -r #{lib.path}", :stdin_data => <<-TESTCODE)
46
+ a
47
+ a = 5
48
+ A.call
49
+ TESTCODE
50
+
51
+ assert_kind_of Integer, o =~ /\bundefined method 'a' \(NoMethodError\).*=> 5\b.*=> 1\b/m
52
+ end
@@ -4,7 +4,7 @@
4
4
  spec.summary = 'mirb command'
5
5
 
6
6
  if spec.build.cc.search_header_path 'readline/readline.h'
7
- spec.cc.defines << "ENABLE_READLINE"
7
+ spec.cc.defines << "MRB_USE_READLINE"
8
8
  if spec.build.cc.search_header_path 'termcap.h'
9
9
  if MRUBY_BUILD_HOST_IS_CYGWIN || MRUBY_BUILD_HOST_IS_OPENBSD
10
10
  if spec.build.cc.search_header_path 'termcap.h'
@@ -20,12 +20,21 @@
20
20
  spec.linker.libraries << 'edit'
21
21
  else
22
22
  spec.linker.libraries << 'readline'
23
+ if RUBY_PLATFORM.include?('darwin')
24
+ # Workaround to build with Homebrew's readline on Mac (#4537)
25
+ lib_path = spec.build.cc.header_search_paths.find do |include_path|
26
+ lib_path = File.expand_path("#{include_path}/../lib")
27
+ break lib_path if File.exist?("#{lib_path}/libreadline.dylib") ||
28
+ File.exist?("#{lib_path}/libreadline.a")
29
+ end
30
+ spec.linker.library_paths << lib_path if lib_path
31
+ end
23
32
  if spec.build.cc.search_header_path 'curses.h'
24
33
  spec.linker.libraries << 'ncurses'
25
34
  end
26
35
  end
27
36
  elsif spec.build.cc.search_header_path 'linenoise.h'
28
- spec.cc.defines << "ENABLE_LINENOISE"
37
+ spec.cc.defines << "MRB_USE_LINENOISE"
29
38
  end
30
39
 
31
40
  spec.bins = %w(mirb)
@@ -7,23 +7,38 @@
7
7
  */
8
8
 
9
9
  #include <mruby.h>
10
+
11
+ #ifdef MRB_NO_STDIO
12
+ # error mruby-bin-mirb conflicts 'MRB_NO_STDIO' in your build configuration
13
+ #endif
14
+
10
15
  #include <mruby/array.h>
11
16
  #include <mruby/proc.h>
12
17
  #include <mruby/compile.h>
13
18
  #include <mruby/dump.h>
14
19
  #include <mruby/string.h>
15
20
  #include <mruby/variable.h>
16
- #include <mruby/throw.h>
21
+ #include <mruby/presym.h>
17
22
 
18
23
  #include <stdlib.h>
19
24
  #include <string.h>
20
- #include <stdio.h>
21
25
  #include <ctype.h>
22
26
 
23
27
  #include <signal.h>
24
28
  #include <setjmp.h>
25
29
 
30
+ /* obsolete configuration */
26
31
  #ifdef ENABLE_READLINE
32
+ # define MRB_USE_READLINE
33
+ #endif
34
+ #ifdef ENABLE_LINENOISE
35
+ # define MRB_USE_LINENOISE
36
+ #endif
37
+ #ifdef DISABLE_MIRB_UNDERSCORE
38
+ # define MRB_NO_MIRB_UNDERSCORE
39
+ #endif
40
+
41
+ #ifdef MRB_USE_READLINE
27
42
  #include <readline/readline.h>
28
43
  #include <readline/history.h>
29
44
  #define MIRB_ADD_HISTORY(line) add_history(line)
@@ -37,8 +52,8 @@
37
52
  #define MIRB_WRITE_HISTORY(path) write_history(path)
38
53
  #define MIRB_READ_HISTORY(path) read_history(path)
39
54
  #define MIRB_USING_HISTORY() using_history()
40
- #elif defined(ENABLE_LINENOISE)
41
- #define ENABLE_READLINE
55
+ #elif defined(MRB_USE_LINENOISE)
56
+ #define MRB_USE_READLINE
42
57
  #include <linenoise.h>
43
58
  #define MIRB_ADD_HISTORY(line) linenoiseHistoryAdd(line)
44
59
  #define MIRB_READLINE(ch) linenoise(ch)
@@ -58,7 +73,7 @@
58
73
  #define SIGJMP_BUF jmp_buf
59
74
  #endif
60
75
 
61
- #ifdef ENABLE_READLINE
76
+ #ifdef MRB_USE_READLINE
62
77
 
63
78
  static const char history_file_name[] = ".mirb_history";
64
79
 
@@ -100,13 +115,13 @@ p(mrb_state *mrb, mrb_value obj, int prompt)
100
115
  mrb_value val;
101
116
  char* msg;
102
117
 
103
- val = mrb_funcall(mrb, obj, "inspect", 0);
118
+ val = mrb_funcall_id(mrb, obj, MRB_SYM(inspect), 0);
104
119
  if (prompt) {
105
120
  if (!mrb->exc) {
106
121
  fputs(" => ", stdout);
107
122
  }
108
123
  else {
109
- val = mrb_funcall(mrb, mrb_obj_value(mrb->exc), "inspect", 0);
124
+ val = mrb_funcall_id(mrb, mrb_obj_value(mrb->exc), MRB_SYM(inspect), 0);
110
125
  }
111
126
  }
112
127
  if (!mrb_string_p(val)) {
@@ -349,7 +364,7 @@ print_hint(void)
349
364
  printf("mirb - Embeddable Interactive Ruby Shell\n\n");
350
365
  }
351
366
 
352
- #ifndef ENABLE_READLINE
367
+ #ifndef MRB_USE_READLINE
353
368
  /* Print the command line prompt of the REPL */
354
369
  static void
355
370
  print_cmdline(int code_block_open)
@@ -390,7 +405,7 @@ check_keyword(const char *buf, const char *word)
390
405
  }
391
406
 
392
407
 
393
- #ifndef ENABLE_READLINE
408
+ #ifndef MRB_USE_READLINE
394
409
  volatile sig_atomic_t input_canceled = 0;
395
410
  void
396
411
  ctrl_c_handler(int signo)
@@ -406,7 +421,7 @@ ctrl_c_handler(int signo)
406
421
  }
407
422
  #endif
408
423
 
409
- #ifndef DISABLE_MIRB_UNDERSCORE
424
+ #ifndef MRB_NO_MIRB_UNDERSCORE
410
425
  void decl_lv_underscore(mrb_state *mrb, mrbc_context *cxt)
411
426
  {
412
427
  struct RProc *proc;
@@ -431,7 +446,7 @@ main(int argc, char **argv)
431
446
  {
432
447
  char ruby_code[4096] = { 0 };
433
448
  char last_code_line[1024] = { 0 };
434
- #ifndef ENABLE_READLINE
449
+ #ifndef MRB_USE_READLINE
435
450
  int last_char;
436
451
  size_t char_index;
437
452
  #else
@@ -475,7 +490,7 @@ main(int argc, char **argv)
475
490
  mrb_define_global_const(mrb, "ARGV", ARGV);
476
491
  mrb_gv_set(mrb, mrb_intern_lit(mrb, "$DEBUG"), mrb_bool_value(args.debug));
477
492
 
478
- #ifdef ENABLE_READLINE
493
+ #ifdef MRB_USE_READLINE
479
494
  history_path = get_history_path(mrb);
480
495
  if (history_path == NULL) {
481
496
  fputs("failed to get history path\n", stderr);
@@ -491,12 +506,9 @@ main(int argc, char **argv)
491
506
 
492
507
  cxt = mrbc_context_new(mrb);
493
508
 
494
- #ifndef DISABLE_MIRB_UNDERSCORE
495
- decl_lv_underscore(mrb, cxt);
496
- #endif
497
-
498
509
  /* Load libraries */
499
510
  for (i = 0; i < args.libc; i++) {
511
+ struct REnv *e;
500
512
  FILE *lfp = fopen(args.libv[i], "r");
501
513
  if (lfp == NULL) {
502
514
  printf("Cannot open library file. (%s)\n", args.libv[i]);
@@ -505,8 +517,16 @@ main(int argc, char **argv)
505
517
  }
506
518
  mrb_load_file_cxt(mrb, lfp, cxt);
507
519
  fclose(lfp);
520
+ e = mrb_vm_ci_env(mrb->c->cibase);
521
+ mrb_vm_ci_env_set(mrb->c->cibase, NULL);
522
+ mrb_env_unshare(mrb, e);
523
+ mrbc_cleanup_local_variables(mrb, cxt);
508
524
  }
509
525
 
526
+ #ifndef MRB_NO_MIRB_UNDERSCORE
527
+ decl_lv_underscore(mrb, cxt);
528
+ #endif
529
+
510
530
  cxt->capture_errors = TRUE;
511
531
  cxt->lineno = 1;
512
532
  mrbc_filename(mrb, cxt, "(mirb)");
@@ -516,17 +536,14 @@ main(int argc, char **argv)
516
536
 
517
537
  while (TRUE) {
518
538
  char *utf8;
519
- struct mrb_jmpbuf c_jmp;
520
539
 
521
- MRB_TRY(&c_jmp);
522
- mrb->jmp = &c_jmp;
523
540
  if (args.rfp) {
524
541
  if (fgets(last_code_line, sizeof(last_code_line)-1, args.rfp) != NULL)
525
542
  goto done;
526
543
  break;
527
544
  }
528
545
 
529
- #ifndef ENABLE_READLINE
546
+ #ifndef MRB_USE_READLINE
530
547
  print_cmdline(code_block_open);
531
548
 
532
549
  signal(SIGINT, ctrl_c_handler);
@@ -634,19 +651,18 @@ main(int argc, char **argv)
634
651
  /* generate bytecode */
635
652
  struct RProc *proc = mrb_generate_code(mrb, parser);
636
653
  if (proc == NULL) {
637
- fputs("codegen error\n", stderr);
638
654
  mrb_parser_free(parser);
639
- break;
655
+ continue;
640
656
  }
641
657
 
642
658
  if (args.verbose) {
643
659
  mrb_codedump_all(mrb, proc);
644
660
  }
645
661
  /* adjust stack length of toplevel environment */
646
- if (mrb->c->cibase->env) {
647
- struct REnv *e = mrb->c->cibase->env;
648
- if (e && MRB_ENV_STACK_LEN(e) < proc->body.irep->nlocals) {
649
- MRB_ENV_SET_STACK_LEN(e, proc->body.irep->nlocals);
662
+ if (mrb->c->cibase->u.env) {
663
+ struct REnv *e = mrb_vm_ci_env(mrb->c->cibase);
664
+ if (e && MRB_ENV_LEN(e) < proc->body.irep->nlocals) {
665
+ MRB_ENV_SET_LEN(e, proc->body.irep->nlocals);
650
666
  }
651
667
  }
652
668
  /* pass a proc for evaluation */
@@ -663,12 +679,12 @@ main(int argc, char **argv)
663
679
  }
664
680
  else {
665
681
  /* no */
666
- if (!mrb_respond_to(mrb, result, mrb_intern_lit(mrb, "inspect"))){
682
+ if (!mrb_respond_to(mrb, result, MRB_SYM(inspect))){
667
683
  result = mrb_any_to_s(mrb, result);
668
684
  }
669
685
  p(mrb, result, 1);
670
- #ifndef DISABLE_MIRB_UNDERSCORE
671
- *(mrb->c->stack + 1) = result;
686
+ #ifndef MRB_NO_MIRB_UNDERSCORE
687
+ *(mrb->c->ci->stack + 1) = result;
672
688
  #endif
673
689
  }
674
690
  }
@@ -678,14 +694,9 @@ main(int argc, char **argv)
678
694
  }
679
695
  mrb_parser_free(parser);
680
696
  cxt->lineno++;
681
- MRB_CATCH(&c_jmp) {
682
- p(mrb, mrb_obj_value(mrb->exc), 0);
683
- mrb->exc = 0;
684
- }
685
- MRB_END_EXC(&c_jmp);
686
697
  }
687
698
 
688
- #ifdef ENABLE_READLINE
699
+ #ifdef MRB_USE_READLINE
689
700
  MIRB_WRITE_HISTORY(history_path);
690
701
  mrb_free(mrb, history_path);
691
702
  #endif