script_core 0.2.7 → 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 (283) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/Gemfile +2 -2
  4. data/ext/enterprise_script_service/Rakefile +1 -1
  5. data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +117 -74
  6. data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +41 -37
  7. data/ext/enterprise_script_service/mruby/.github/workflows/lint.yml +23 -0
  8. data/ext/enterprise_script_service/mruby/.github/workflows/oss-fuzz.yml +27 -0
  9. data/ext/enterprise_script_service/mruby/.github/workflows/spell-checker.yml +17 -0
  10. data/ext/enterprise_script_service/mruby/.gitlab-ci.yml +3 -3
  11. data/ext/enterprise_script_service/mruby/.markdownlint.yml +16 -0
  12. data/ext/enterprise_script_service/mruby/.travis.yml +2 -2
  13. data/ext/enterprise_script_service/mruby/.yamllint +8 -0
  14. data/ext/enterprise_script_service/mruby/AUTHORS +3 -0
  15. data/ext/enterprise_script_service/mruby/CODEOWNERS +1 -0
  16. data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +6 -13
  17. data/ext/enterprise_script_service/mruby/Doxyfile +4 -4
  18. data/ext/enterprise_script_service/mruby/LICENSE +1 -1
  19. data/ext/enterprise_script_service/mruby/Makefile +1 -1
  20. data/ext/enterprise_script_service/mruby/README.md +4 -14
  21. data/ext/enterprise_script_service/mruby/Rakefile +18 -108
  22. data/ext/enterprise_script_service/mruby/TODO.md +17 -0
  23. data/ext/enterprise_script_service/mruby/appveyor.yml +31 -25
  24. data/ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb +1 -1
  25. data/ext/enterprise_script_service/mruby/build_config.rb +9 -152
  26. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_ArduinoDue.rb → build_config/ArduinoDue.rb} +2 -19
  27. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelEdison.rb → build_config/IntelEdison.rb} +2 -2
  28. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelGalileo.rb → build_config/IntelGalileo.rb} +1 -18
  29. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_RX630.rb → build_config/RX630.rb} +2 -19
  30. data/ext/enterprise_script_service/mruby/build_config/android_arm64-v8a.rb +11 -0
  31. data/ext/enterprise_script_service/mruby/build_config/android_armeabi.rb +11 -0
  32. 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
  33. data/ext/enterprise_script_service/mruby/build_config/bench.rb +11 -0
  34. data/ext/enterprise_script_service/mruby/build_config/boxing.rb +21 -0
  35. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_chipKITMax32.rb → build_config/chipKITMax32.rb} +2 -19
  36. data/ext/enterprise_script_service/mruby/{travis_config.rb → build_config/ci/gcc-clang.rb} +10 -10
  37. data/ext/enterprise_script_service/mruby/build_config/ci/msvc.rb +20 -0
  38. data/ext/enterprise_script_service/mruby/build_config/clang-asan.rb +11 -0
  39. data/ext/enterprise_script_service/mruby/build_config/cross-32bit.rb +14 -0
  40. data/ext/enterprise_script_service/mruby/build_config/default.rb +80 -0
  41. data/ext/enterprise_script_service/mruby/{examples/targets/build_config_dreamcast_shelf.rb → build_config/dreamcast_shelf.rb} +5 -19
  42. data/ext/enterprise_script_service/mruby/build_config/gameboyadvance.rb +73 -0
  43. data/ext/enterprise_script_service/mruby/build_config/host-cxx.rb +12 -0
  44. data/ext/enterprise_script_service/mruby/build_config/host-debug.rb +20 -0
  45. data/ext/enterprise_script_service/mruby/build_config/host-gprof.rb +14 -0
  46. data/ext/enterprise_script_service/mruby/build_config/host-m32.rb +15 -0
  47. data/ext/enterprise_script_service/mruby/build_config/host-shared.rb +36 -0
  48. data/ext/enterprise_script_service/mruby/build_config/mrbc.rb +11 -0
  49. data/ext/enterprise_script_service/mruby/build_config/no-float.rb +17 -0
  50. data/ext/enterprise_script_service/mruby/doc/guides/compile.md +138 -49
  51. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +5 -4
  52. data/ext/enterprise_script_service/mruby/doc/guides/gc-arena-howto.md +1 -1
  53. data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +49 -22
  54. data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +31 -14
  55. data/ext/enterprise_script_service/mruby/doc/guides/symbol.md +83 -0
  56. data/ext/enterprise_script_service/mruby/doc/limitations.md +35 -36
  57. data/ext/enterprise_script_service/mruby/doc/mruby3.md +163 -0
  58. data/ext/enterprise_script_service/mruby/doc/opcode.md +93 -107
  59. data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +1 -1
  60. data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +5 -1
  61. data/ext/enterprise_script_service/mruby/examples/mrbgems/c_extension_example/src/example.c +5 -1
  62. data/ext/enterprise_script_service/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +1 -1
  63. data/ext/enterprise_script_service/mruby/include/mrbconf.h +81 -62
  64. data/ext/enterprise_script_service/mruby/include/mruby.h +137 -96
  65. data/ext/enterprise_script_service/mruby/include/mruby/array.h +23 -6
  66. data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +73 -48
  67. data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +8 -8
  68. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +79 -48
  69. data/ext/enterprise_script_service/mruby/include/mruby/class.h +10 -8
  70. data/ext/enterprise_script_service/mruby/include/mruby/common.h +4 -1
  71. data/ext/enterprise_script_service/mruby/include/mruby/compile.h +13 -7
  72. data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
  73. data/ext/enterprise_script_service/mruby/include/mruby/dump.h +17 -35
  74. data/ext/enterprise_script_service/mruby/include/mruby/endian.h +44 -0
  75. data/ext/enterprise_script_service/mruby/include/mruby/error.h +39 -5
  76. data/ext/enterprise_script_service/mruby/include/mruby/gc.h +1 -0
  77. data/ext/enterprise_script_service/mruby/include/mruby/hash.h +33 -13
  78. data/ext/enterprise_script_service/mruby/include/mruby/irep.h +64 -14
  79. data/ext/enterprise_script_service/mruby/include/mruby/khash.h +6 -14
  80. data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +36 -63
  81. data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +1 -27
  82. data/ext/enterprise_script_service/mruby/include/mruby/ops.h +27 -23
  83. data/ext/enterprise_script_service/mruby/include/mruby/presym.h +40 -0
  84. data/ext/enterprise_script_service/mruby/include/mruby/presym/disable.h +70 -0
  85. data/ext/enterprise_script_service/mruby/include/mruby/presym/enable.h +37 -0
  86. data/ext/enterprise_script_service/mruby/include/mruby/presym/scanning.h +73 -0
  87. data/ext/enterprise_script_service/mruby/include/mruby/proc.h +80 -13
  88. data/ext/enterprise_script_service/mruby/include/mruby/string.h +10 -15
  89. data/ext/enterprise_script_service/mruby/include/mruby/throw.h +14 -3
  90. data/ext/enterprise_script_service/mruby/include/mruby/value.h +29 -19
  91. data/ext/enterprise_script_service/mruby/include/mruby/variable.h +1 -0
  92. data/ext/enterprise_script_service/mruby/include/mruby/version.h +26 -7
  93. data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +198 -44
  94. data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +55 -37
  95. data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +12 -10
  96. data/ext/enterprise_script_service/mruby/lib/{mruby-core-ext.rb → mruby/core_ext.rb} +10 -3
  97. data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +75 -32
  98. data/ext/enterprise_script_service/mruby/lib/mruby/lockfile.rb +1 -1
  99. data/ext/enterprise_script_service/mruby/lib/mruby/presym.rb +132 -0
  100. data/ext/enterprise_script_service/mruby/mrbgems/default-no-fpu.gembox +3 -0
  101. data/ext/enterprise_script_service/mruby/mrbgems/default-no-stdio.gembox +4 -0
  102. data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +9 -88
  103. data/ext/enterprise_script_service/mruby/mrbgems/full-core.gembox +1 -4
  104. data/ext/enterprise_script_service/mruby/mrbgems/math.gembox +10 -0
  105. data/ext/enterprise_script_service/mruby/mrbgems/metaprog.gembox +15 -0
  106. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +1 -1
  107. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -4
  108. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +28 -19
  109. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mruby-config +18 -8
  110. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +3 -6
  111. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +10 -10
  112. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +14 -9
  113. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +3 -2
  114. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +4 -3
  115. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +2 -6
  116. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +4 -4
  117. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +23 -5
  118. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +11 -2
  119. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +41 -34
  120. data/ext/enterprise_script_service/mruby/mrbgems/{mruby-compiler → mruby-bin-mrbc}/bintest/mrbc.rb +0 -0
  121. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +3 -4
  122. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +19 -9
  123. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +25 -4
  124. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -1
  125. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +22 -6
  126. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +1 -1
  127. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +2 -2
  128. data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrbgem.rake +5 -0
  129. data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrblib/catch.rb +27 -0
  130. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +2 -1
  131. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +430 -399
  132. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/keywords +5 -0
  133. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/lex.def +49 -44
  134. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +559 -217
  135. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +4774 -4193
  136. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +18 -19
  137. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
  138. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +8 -7
  139. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/test/complex.rb +4 -4
  140. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +1 -0
  141. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +2 -2
  142. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/mrbgem.rake +2 -2
  143. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +17 -25
  144. data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +18 -13
  145. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +30 -2
  146. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +7 -0
  147. data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +2 -2
  148. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +18 -16
  149. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +2 -2
  150. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +9 -4
  151. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +2 -2
  152. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +55 -52
  153. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +4 -2
  154. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +99 -87
  155. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +2 -0
  156. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +2 -3
  157. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +1 -1
  158. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +7 -6
  159. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +13 -12
  160. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/test/math.rb +5 -4
  161. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +43 -58
  162. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +4 -4
  163. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/README.md +4 -3
  164. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +77 -74
  165. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +4 -4
  166. data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +14 -13
  167. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +5 -4
  168. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +18 -12
  169. data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/mrbgem.rake +10 -0
  170. data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/src/memsize.c +231 -0
  171. data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/test/memsize.rb +63 -0
  172. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/README.md +15 -18
  173. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +38 -88
  174. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -30
  175. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +62 -26
  176. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +32 -19
  177. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.c +1 -1
  178. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +98 -43
  179. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +2 -2
  180. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +39 -6
  181. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +20 -40
  182. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/test/range.rb +27 -3
  183. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +11 -17
  184. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +216 -38
  185. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/test/rational.rb +6 -6
  186. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/README.md +6 -4
  187. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +4 -4
  188. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +3 -2
  189. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +47 -45
  190. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +102 -71
  191. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +4 -2
  192. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +23 -1
  193. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +13 -9
  194. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +1 -1
  195. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +18 -25
  196. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +6 -5
  197. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +1 -1
  198. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/README.md +0 -1
  199. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +5 -5
  200. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +16 -44
  201. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +4 -4
  202. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +27 -27
  203. data/ext/enterprise_script_service/mruby/mrbgems/stdlib-ext.gembox +18 -0
  204. data/ext/enterprise_script_service/mruby/mrbgems/stdlib-io.gembox +12 -0
  205. data/ext/enterprise_script_service/mruby/mrbgems/stdlib.gembox +54 -0
  206. data/ext/enterprise_script_service/mruby/mrblib/10error.rb +4 -0
  207. data/ext/enterprise_script_service/mruby/mrblib/array.rb +17 -9
  208. data/ext/enterprise_script_service/mruby/mrblib/enum.rb +1 -1
  209. data/ext/enterprise_script_service/mruby/mrblib/hash.rb +0 -20
  210. data/ext/enterprise_script_service/mruby/mrblib/init_mrblib.c +0 -11
  211. data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +36 -11
  212. data/ext/enterprise_script_service/mruby/mrblib/range.rb +25 -3
  213. data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_proto_fuzzer.cpp +2 -2
  214. data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.h +1 -1
  215. data/ext/enterprise_script_service/mruby/src/array.c +43 -80
  216. data/ext/enterprise_script_service/mruby/src/backtrace.c +16 -17
  217. data/ext/enterprise_script_service/mruby/src/class.c +774 -182
  218. data/ext/enterprise_script_service/mruby/src/codedump.c +223 -198
  219. data/ext/enterprise_script_service/mruby/src/debug.c +6 -6
  220. data/ext/enterprise_script_service/mruby/src/dump.c +466 -141
  221. data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
  222. data/ext/enterprise_script_service/mruby/src/error.c +36 -13
  223. data/ext/enterprise_script_service/mruby/src/etc.c +43 -34
  224. data/ext/enterprise_script_service/mruby/src/fmt_fp.c +5 -6
  225. data/ext/enterprise_script_service/mruby/src/gc.c +73 -71
  226. data/ext/enterprise_script_service/mruby/src/hash.c +1050 -707
  227. data/ext/enterprise_script_service/mruby/src/kernel.c +75 -220
  228. data/ext/enterprise_script_service/mruby/src/load.c +196 -166
  229. data/ext/enterprise_script_service/mruby/src/numeric.c +352 -314
  230. data/ext/enterprise_script_service/mruby/src/object.c +97 -90
  231. data/ext/enterprise_script_service/mruby/src/print.c +4 -3
  232. data/ext/enterprise_script_service/mruby/src/proc.c +48 -56
  233. data/ext/enterprise_script_service/mruby/src/range.c +45 -21
  234. data/ext/enterprise_script_service/mruby/src/state.c +25 -32
  235. data/ext/enterprise_script_service/mruby/src/string.c +59 -101
  236. data/ext/enterprise_script_service/mruby/src/symbol.c +121 -56
  237. data/ext/enterprise_script_service/mruby/src/value_array.h +1 -0
  238. data/ext/enterprise_script_service/mruby/src/variable.c +158 -158
  239. data/ext/enterprise_script_service/mruby/src/vm.c +617 -602
  240. data/ext/enterprise_script_service/mruby/tasks/benchmark.rake +6 -6
  241. data/ext/enterprise_script_service/mruby/tasks/bin.rake +23 -0
  242. data/ext/enterprise_script_service/mruby/tasks/core.rake +12 -0
  243. data/ext/enterprise_script_service/mruby/tasks/doc.rake +50 -38
  244. data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +83 -77
  245. data/ext/enterprise_script_service/mruby/tasks/libmruby.rake +10 -1
  246. data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +13 -1
  247. data/ext/enterprise_script_service/mruby/tasks/mrblib.rake +40 -0
  248. data/ext/enterprise_script_service/mruby/tasks/presym.rake +44 -0
  249. data/ext/enterprise_script_service/mruby/tasks/test.rake +68 -0
  250. data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +6 -5
  251. data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +10 -14
  252. data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +17 -21
  253. data/ext/enterprise_script_service/mruby/test/bintest.rb +5 -5
  254. data/ext/enterprise_script_service/mruby/test/t/argumenterror.rb +16 -0
  255. data/ext/enterprise_script_service/mruby/test/t/array.rb +7 -3
  256. data/ext/enterprise_script_service/mruby/test/t/bs_literal.rb +1 -1
  257. data/ext/enterprise_script_service/mruby/test/t/float.rb +18 -8
  258. data/ext/enterprise_script_service/mruby/test/t/hash.rb +903 -281
  259. data/ext/enterprise_script_service/mruby/test/t/integer.rb +10 -38
  260. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +1 -1
  261. data/ext/enterprise_script_service/mruby/test/t/literals.rb +50 -0
  262. data/ext/enterprise_script_service/mruby/test/t/module.rb +2 -2
  263. data/ext/enterprise_script_service/mruby/test/t/numeric.rb +1 -1
  264. data/ext/enterprise_script_service/mruby/test/t/range.rb +83 -1
  265. data/ext/enterprise_script_service/mruby/test/t/string.rb +4 -0
  266. data/ext/enterprise_script_service/mruby/test/t/superclass.rb +10 -10
  267. data/ext/enterprise_script_service/mruby/test/t/syntax.rb +24 -0
  268. data/ext/enterprise_script_service/mruby/test/t/vformat.rb +3 -3
  269. data/ext/enterprise_script_service/mruby_config.rb +2 -5
  270. data/ext/enterprise_script_service/mruby_engine.cpp +1 -1
  271. data/lib/script_core/version.rb +1 -1
  272. data/spec/script_core_spec.rb +13 -0
  273. metadata +61 -23
  274. data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +0 -24
  275. data/ext/enterprise_script_service/mruby/TODO +0 -8
  276. data/ext/enterprise_script_service/mruby/appveyor_config.rb +0 -46
  277. data/ext/enterprise_script_service/mruby/benchmark/build_config_boxing.rb +0 -28
  278. data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_arm64-v8a.rb +0 -26
  279. data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_armeabi.rb +0 -26
  280. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/kernel.c +0 -30
  281. data/ext/enterprise_script_service/mruby/mrblib/mrblib.rake +0 -18
  282. data/ext/enterprise_script_service/mruby/src/crc.c +0 -39
  283. data/ext/enterprise_script_service/mruby/src/mruby_core.rake +0 -19
@@ -14,16 +14,6 @@
14
14
 
15
15
  assert_raise(TypeError){ 0+nil }
16
16
  assert_raise(TypeError){ 1+nil }
17
-
18
- c = Mrbtest::FIXNUM_MAX + 1
19
- d = Mrbtest::FIXNUM_MAX.__send__(:+, 1)
20
-
21
- skip unless Object.const_defined?(:Float)
22
- e = Mrbtest::FIXNUM_MAX + 1.0
23
- assert_equal Float, c.class
24
- assert_equal Float, d.class
25
- assert_float e, c
26
- assert_float e, d
27
17
  end
28
18
 
29
19
  assert('Integer#-', '15.2.8.3.2') do
@@ -32,37 +22,17 @@
32
22
 
33
23
  assert_equal 1, a
34
24
  assert_equal 1.0, b if Object.const_defined?(:Float)
35
-
36
- c = Mrbtest::FIXNUM_MIN - 1
37
- d = Mrbtest::FIXNUM_MIN.__send__(:-, 1)
38
-
39
- skip unless Object.const_defined?(:Float)
40
- e = Mrbtest::FIXNUM_MIN - 1.0
41
- assert_equal Float, c.class
42
- assert_equal Float, d.class
43
- assert_float e, c
44
- assert_float e, d
45
25
  end
46
26
 
47
27
  assert('Integer#*', '15.2.8.3.3') do
48
28
  a = 1*1
49
- b = 1*1.0 if Object.const_defined?(:Float)
50
-
51
29
  assert_equal 1, a
52
- assert_equal 1.0, b if Object.const_defined?(:Float)
53
-
30
+ if Object.const_defined?(:Float)
31
+ b = 1*1.0
32
+ assert_equal 1.0, b
33
+ end
54
34
  assert_raise(TypeError){ 0*nil }
55
35
  assert_raise(TypeError){ 1*nil }
56
-
57
- c = Mrbtest::FIXNUM_MAX * 2
58
- d = Mrbtest::FIXNUM_MAX.__send__(:*, 2)
59
-
60
- skip unless Object.const_defined?(:Float)
61
- e = Mrbtest::FIXNUM_MAX * 2.0
62
- assert_equal Float, c.class
63
- assert_equal Float, d.class
64
- assert_float e, c
65
- assert_float e, d
66
36
  end
67
37
 
68
38
  assert('Integer#/', '15.2.8.3.4') do
@@ -73,6 +43,12 @@
73
43
  assert_equal 2.0, b
74
44
  end
75
45
 
46
+ assert('Integer#quo') do
47
+ a = 6.quo(5)
48
+
49
+ assert_equal 1.2, a
50
+ end
51
+
76
52
  assert('Integer#%', '15.2.8.3.5') do
77
53
  a = 1%1
78
54
  b = 1%1.0
@@ -155,10 +131,6 @@
155
131
  assert_equal 23, 46 << -1
156
132
 
157
133
  skip unless Object.const_defined?(:Float)
158
-
159
- # Overflow to Fixnum
160
- assert_float 9223372036854775808.0, 1 << 63
161
- assert_float(-13835058055282163712.0, -3 << 62)
162
134
  end
163
135
 
164
136
  assert('Integer#>>', '15.2.8.3.13') do
@@ -76,7 +76,7 @@ def bg_try(&b)
76
76
  end
77
77
 
78
78
  assert('Kernel#__id__', '15.3.1.3.3') do
79
- assert_equal Fixnum, __id__.class
79
+ assert_equal Integer, __id__.class
80
80
  end
81
81
 
82
82
  assert('Kernel#__send__', '15.3.1.3.4') do
@@ -162,6 +162,47 @@
162
162
  QQ2
163
163
  "o")
164
164
 
165
+ r = <<~RRR
166
+ rrr
167
+ rrr
168
+ RRR
169
+ s = <<~"SSS"
170
+ sss
171
+ sss
172
+ SSS
173
+ t = <<~'TTT'
174
+ ttt
175
+ ttt
176
+ TTT
177
+ u = [<<~UUU1 , <<~"UUU2" , <<~'UUU3' ]
178
+ u#{1}u
179
+ UUU1
180
+ u#{2}u
181
+ UUU2
182
+ u#{3}u
183
+ UUU3
184
+ v1 = <<~VVV
185
+
186
+ vvv
187
+ #{"vvv"}
188
+ VVV
189
+ v2 = <<~VVV
190
+ \tvvv
191
+ vvv
192
+ VVV
193
+ v3 = <<~VVV
194
+ v v v
195
+ vvv
196
+ VVV
197
+ v4 = <<~VVV
198
+ vvv \
199
+ vvv
200
+ VVV
201
+ v5 = <<~VVV
202
+ vvv \
203
+ vvv
204
+ VVV
205
+
165
206
  w = %W( 1 #{<<WWW} 3
166
207
  www
167
208
  WWW
@@ -197,6 +238,15 @@
197
238
  assert_equal [1, "nn1\n", 3, 4], n
198
239
  assert_equal "a $ q\n $ c $ d", q1
199
240
  assert_equal "l $ mqq\nn $ o", q2
241
+ assert_equal "rrr\n rrr\n", r
242
+ assert_equal "sss\n sss\n", s
243
+ assert_equal "ttt\n ttt\n", t
244
+ assert_equal ["u1u\n", "u2u\n", "u\#{3}u\n"], u
245
+ assert_equal "\nvvv\nvvv\n", v1
246
+ assert_equal "\tvvv\n vvv\n", v2
247
+ assert_equal "v v v\n vvv\n", v3
248
+ assert_equal "vvv vvv\n", v4
249
+ assert_equal " vvv vvv\n", v5
200
250
  assert_equal ["1", "www\n", "3", "4", "5"], w
201
251
  assert_equal [1, "foo 222 333\n 444\n5\n bar\n6\n", 9], x
202
252
  assert_equal "", z
@@ -593,7 +593,7 @@ class << self
593
593
  # to_f / other
594
594
  # end
595
595
  # end
596
- # Fixnum.send(:prepend, M)
596
+ # Integer.send(:prepend, M)
597
597
  # assert_equal(0.5, 1 / 2, "#{bug7983}")
598
598
  # }
599
599
  # assert_equal(0, 1 / 2)
@@ -674,7 +674,7 @@ class << self
674
674
  c1 = labeled_class("C1")
675
675
  c2 = labeled_class("C2", c1) {prepend m}
676
676
  c1.class_eval {prepend m}
677
- assert_equal([m, c2, m, c1], c2.ancestors[0, 4], "should accesisble prepended module in superclass")
677
+ assert_equal([m, c2, m, c1], c2.ancestors[0, 4], "should accessible prepended module in superclass")
678
678
  end
679
679
 
680
680
  # requires #assert_separately
@@ -36,7 +36,7 @@ def assert_step(exp, receiver, args, inf: false)
36
36
  n = Class.new(Numeric){ def /(x); 15.1;end }.new
37
37
 
38
38
  assert_equal(2, 10/5)
39
- assert_equal(0.0625, 1/16)
39
+ assert_equal(0, 1/16)
40
40
  assert_equal(15.1, n/10)
41
41
  assert_raise(TypeError){ 1/n }
42
42
  assert_raise(TypeError){ 1/nil }
@@ -8,19 +8,39 @@
8
8
  assert('Range#==', '15.2.14.4.1') do
9
9
  assert_true (1..10) == (1..10)
10
10
  assert_false (1..10) == (1..100)
11
+ assert_false (1..10) == (1..)
12
+ assert_false (1..10) == (..10)
13
+
14
+ assert_true (1..) == (1..nil)
15
+ assert_true (1..) == (1..)
16
+ assert_false (1..) == (1...)
17
+
18
+ assert_true (..1) == (nil..1)
19
+ assert_true (..1) == (..1)
20
+ assert_false (..1) == (...1)
21
+
11
22
  skip unless Object.const_defined?(:Float)
12
23
  assert_true (1..10) == Range.new(1.0, 10.0)
24
+
13
25
  end
14
26
 
15
27
  assert('Range#===', '15.2.14.4.2') do
16
28
  a = (1..10)
29
+ b = (1..)
30
+ c = (..10)
17
31
 
18
32
  assert_true a === 5
19
33
  assert_false a === 20
34
+ assert_true b === 20
35
+ assert_false b === 0
36
+ assert_false c === 20
37
+ assert_true c === 0
20
38
  end
21
39
 
22
40
  assert('Range#begin', '15.2.14.4.3') do
23
41
  assert_equal 1, (1..10).begin
42
+ assert_equal 1, (1..).begin
43
+ assert_nil (..1).begin
24
44
  end
25
45
 
26
46
  assert('Range#each', '15.2.14.4.4') do
@@ -28,27 +48,45 @@
28
48
  b = 0
29
49
  a.each {|i| b += i}
30
50
  assert_equal 6, b
51
+ c = []
52
+ (1..).each { |i| c << i; break if c.size == 10 }
53
+ assert_equal [1, 2, 3, 4, 5, 6, 7, 8 ,9, 10], c
31
54
  end
32
55
 
33
56
  assert('Range#end', '15.2.14.4.5') do
34
57
  assert_equal 10, (1..10).end
58
+ assert_nil (1..).end
59
+ assert_equal 10, (..10).end
35
60
  end
36
61
 
37
62
  assert('Range#exclude_end?', '15.2.14.4.6') do
38
63
  assert_true (1...10).exclude_end?
39
64
  assert_false (1..10).exclude_end?
65
+ assert_true (1...).exclude_end?
66
+ assert_false (1..).exclude_end?
67
+ assert_true (...1).exclude_end?
68
+ assert_false (..1).exclude_end?
40
69
  end
41
70
 
42
71
  assert('Range#first', '15.2.14.4.7') do
43
72
  assert_equal 1, (1..10).first
73
+ assert_equal 1, (1..).first
44
74
  end
45
75
 
46
76
  assert('Range#include?', '15.2.14.4.8') do
47
77
  assert_true (1..10).include?(10)
48
78
  assert_false (1..10).include?(11)
79
+ assert_true (1..).include?(10)
80
+ assert_false (1..).include?(0)
81
+ assert_true (..10).include?(10)
82
+ assert_true (..10).include?(0)
49
83
 
50
84
  assert_true (1...10).include?(9)
51
85
  assert_false (1...10).include?(10)
86
+ assert_true (1...).include?(10)
87
+ assert_false (1...).include?(0)
88
+ assert_false (...10).include?(10)
89
+ assert_true (...10).include?(0)
52
90
  end
53
91
 
54
92
  assert('Range#initialize', '15.2.14.4.9') do
@@ -61,17 +99,29 @@
61
99
  assert_false b.exclude_end?
62
100
 
63
101
  assert_raise(NameError) { (0..1).__send__(:initialize, 1, 3) }
102
+
103
+ c = Range.new(1, nil, true)
104
+ d = Range.new(1, nil, false)
105
+
106
+ assert_equal (1...nil), c
107
+ assert_true c.exclude_end?
108
+ assert_equal (1..nil), d
109
+ assert_false d.exclude_end?
64
110
  end
65
111
 
66
112
  assert('Range#last', '15.2.14.4.10') do
67
113
  assert_equal 10, (1..10).last
114
+ assert_nil (1..).last
68
115
  end
69
116
 
70
117
  assert('Range#member?', '15.2.14.4.11') do
71
118
  a = (1..10)
119
+ b = (1..)
72
120
 
73
121
  assert_true a.member?(5)
74
122
  assert_false a.member?(20)
123
+ assert_true b.member?(20)
124
+ assert_false b.member?(0)
75
125
  end
76
126
 
77
127
  assert('Range#to_s', '15.2.14.4.12') do
@@ -79,6 +129,10 @@
79
129
  assert_equal "0...1", (0...1).to_s
80
130
  assert_equal "a..b", ("a".."b").to_s
81
131
  assert_equal "a...b", ("a"..."b").to_s
132
+ assert_equal "0..", (0..).to_s
133
+ assert_equal "0...", (0...).to_s
134
+ assert_equal "a..", ("a"..).to_s
135
+ assert_equal "a...", ("a"...).to_s
82
136
  end
83
137
 
84
138
  assert('Range#inspect', '15.2.14.4.13') do
@@ -86,19 +140,36 @@
86
140
  assert_equal "0...1", (0...1).inspect
87
141
  assert_equal "\"a\"..\"b\"", ("a".."b").inspect
88
142
  assert_equal "\"a\"...\"b\"", ("a"..."b").inspect
143
+ assert_equal "0..", (0..).inspect
144
+ assert_equal "0...", (0...).inspect
145
+ assert_equal "\"a\"..", ("a"..).inspect
146
+ assert_equal "\"a\"...", ("a"...).inspect
89
147
  end
90
148
 
91
149
  assert('Range#eql?', '15.2.14.4.14') do
92
150
  assert_true (1..10).eql? (1..10)
93
151
  assert_false (1..10).eql? (1..100)
94
- assert_false (1..10).eql? (Range.new(1.0, 10.0))
95
152
  assert_false (1..10).eql? "1..10"
153
+ assert_true (1..).eql? (1..)
154
+ assert_false (1..).eql? (2..)
155
+ assert_false (1..).eql? "1.."
156
+ skip unless Object.const_defined?(:Float)
157
+ assert_false (1..10).eql? (Range.new(1.0, 10.0))
158
+ assert_false (1..).eql? (Range.new(1.0, nil))
96
159
  end
97
160
 
98
161
  assert('Range#initialize_copy', '15.2.14.4.15') do
99
162
  assert_raise(NameError) { (0..1).__send__(:initialize_copy, 1..3) }
100
163
  end
101
164
 
165
+ assert('Range#hash', '15.3.1.3.15') do
166
+ assert_kind_of(Integer, (1..10).hash)
167
+ assert_equal (1..10).hash, (1..10).hash
168
+ assert_not_equal (1..10).hash, (1...10).hash
169
+ assert_equal (1..).hash, (1..).hash
170
+ assert_not_equal (1..).hash, (1...).hash
171
+ end
172
+
102
173
  assert('Range#dup') do
103
174
  r = (1..3).dup
104
175
  assert_equal 1, r.begin
@@ -109,4 +180,15 @@
109
180
  assert_equal "a", r.begin
110
181
  assert_equal "z", r.end
111
182
  assert_true r.exclude_end?
183
+
184
+ r = (1..).dup
185
+ assert_equal 1, r.begin
186
+ assert_nil r.end
187
+ assert_false r.exclude_end?
188
+ end
189
+
190
+ assert('Range#to_a') do
191
+ assert_equal([1, 2, 3, 4, 5], (1..5).to_a)
192
+ assert_equal([1, 2, 3, 4], (1...5).to_a)
193
+ assert_raise(RangeError) { (1..).to_a }
112
194
  end
@@ -90,6 +90,7 @@
90
90
  h1 = 'abc'[3..4]
91
91
  i1 = 'abc'[4..5]
92
92
  j1 = 'abcdefghijklmnopqrstuvwxyz'[1..3]
93
+ k1 = 'abcdefghijklmnopqrstuvwxyz'[-3..]
93
94
  a2 = 'abc'[1...0]
94
95
  b2 = 'abc'[1...1]
95
96
  c2 = 'abc'[1...2]
@@ -100,6 +101,7 @@
100
101
  h2 = 'abc'[3...4]
101
102
  i2 = 'abc'[4...5]
102
103
  j2 = 'abcdefghijklmnopqrstuvwxyz'[1...3]
104
+ k2 = 'abcdefghijklmnopqrstuvwxyz'[-3...]
103
105
 
104
106
  assert_equal '', a1
105
107
  assert_equal 'b', b1
@@ -111,6 +113,7 @@
111
113
  assert_equal '', h1
112
114
  assert_nil i2
113
115
  assert_equal 'bcd', j1
116
+ assert_equal 'xyz', k1
114
117
  assert_equal '', a2
115
118
  assert_equal '', b2
116
119
  assert_equal 'b', c2
@@ -121,6 +124,7 @@
121
124
  assert_equal '', h2
122
125
  assert_nil i2
123
126
  assert_equal 'bc', j2
127
+ assert_equal 'xyz', k2
124
128
  end
125
129
 
126
130
  assert('String#[]=') do
@@ -25,20 +25,20 @@
25
25
  [:ArgumentError, :StandardError, '15.2.24.2'],
26
26
  # [:LocalJumpError, :StandardError, '15.2.25.2'],
27
27
  [:LocalJumpError, :ScriptError, '15.2.25.2'], # mruby specific
28
- [:RangeError, :StandardError, '12.2.26.2'],
29
- [:RegexpError, :StandardError, '12.2.27.2'],
30
- [:RuntimeError, :StandardError, '12.2.28.2'],
31
- [:TypeError, :StandardError, '12.2.29.2'],
32
- # [:ZeroDivisionError, :StandardError, '12.2.30.2'], # No ZeroDivisionError in mruby
28
+ [:RangeError, :StandardError, '15.2.26.2'],
29
+ [:RegexpError, :StandardError, '15.2.27.2'],
30
+ [:RuntimeError, :StandardError, '15.2.28.2'],
31
+ [:TypeError, :StandardError, '15.2.29.2'],
32
+ [:ZeroDivisionError, :StandardError, '15.2.30.2'],
33
33
  [:NameError, :StandardError, '15.2.31.2'],
34
34
  [:NoMethodError, :NameError, '15.2.32.2'],
35
35
  [:IndexError, :StandardError, '15.2.33.2'],
36
- # [:IOError, :StandardError, '12.2.34.2'],
37
- # [:EOFError, :IOError, '12.2.35.2'],
36
+ # [:IOError, :StandardError, '15.2.34.2'],
37
+ # [:EOFError, :IOError, '15.2.35.2'],
38
38
  # [:SystemCallError, :StandardError, '15.2.36.2'],
39
- [:ScriptError, :Exception, '12.2.37.2'],
40
- [:SyntaxError, :ScriptError, '12.2.38.2'],
41
- # [:LoadError, :ScriptError, '12.2.39,2'],
39
+ [:ScriptError, :Exception, '15.2.37.2'],
40
+ [:SyntaxError, :ScriptError, '15.2.38.2'],
41
+ # [:LoadError, :ScriptError, '15.2.39,2'],
42
42
  ].each do |cls, super_cls, iso|
43
43
  assert "Direct superclass of #{cls}", iso do
44
44
  skip "#{cls} isn't defined" unless Object.const_defined? cls
@@ -345,6 +345,11 @@ def o.to_a
345
345
  assert_equal [2], (a = *o)
346
346
  end
347
347
 
348
+ assert('one-line pattern match') do
349
+ 1 => a
350
+ assert_equal(1, a)
351
+ end
352
+
348
353
  assert('splat object in case statement') do
349
354
  o = Object.new
350
355
  def o.to_a
@@ -681,3 +686,22 @@ def m(a: b = 1, c:) [a, b, c] end
681
686
  _0 = :l
682
687
  assert_equal(:l, ->{_0}.call)
683
688
  end
689
+
690
+ assert('argument forwarding') do
691
+ c = Class.new {
692
+ def a0(*a,&b)
693
+ assert_equal([1,2,3], a)
694
+ assert_not_nil(b)
695
+ end
696
+ def a(...)
697
+ a0(...)
698
+ end
699
+ def b(a,...)
700
+ assert_equal(a,1)
701
+ a0(1,...)
702
+ end
703
+ }
704
+ o = c.new
705
+ o.a(1,2,3){}
706
+ o.b(1,2,3){}
707
+ end