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
@@ -24,7 +24,7 @@ vf_s_format_c(mrb_state *mrb, mrb_value klass)
24
24
  mrb_value fmt_str, arg_str;
25
25
  const char *fmt;
26
26
  char c;
27
-
27
+
28
28
  mrb_get_args(mrb, "SS", &fmt_str, &arg_str);
29
29
  fmt = RSTRING_CSTR(mrb, fmt_str);
30
30
  c = RSTRING_CSTR(mrb, arg_str)[0];
@@ -48,7 +48,7 @@ vf_s_format_d(mrb_state *mrb, mrb_value klass)
48
48
  return mrb_format(mrb, fmt, d);
49
49
  }
50
50
 
51
- #ifndef MRB_WITHOUT_FLOAT
51
+ #ifndef MRB_NO_FLOAT
52
52
  /* f float */
53
53
  static mrb_value
54
54
  vf_s_format_f(mrb_state *mrb, mrb_value klass)
@@ -164,10 +164,10 @@ mrb_init_test_vformat(mrb_state *mrb)
164
164
 
165
165
  #define VF_DEFINE_FORMAT_METHOD(t) VF_DEFINE_FORMAT_METHOD_n(t,2)
166
166
  #define VF_DEFINE_FORMAT_METHOD_n(t,n) mrb_define_class_method(mrb, vf, #t, vf_s_format_##t, MRB_ARGS_REQ(n));
167
-
167
+
168
168
  VF_DEFINE_FORMAT_METHOD(c);
169
169
  VF_DEFINE_FORMAT_METHOD(d);
170
- #ifndef MRB_WITHOUT_FLOAT
170
+ #ifndef MRB_NO_FLOAT
171
171
  VF_DEFINE_FORMAT_METHOD(f);
172
172
  #endif
173
173
  VF_DEFINE_FORMAT_METHOD(i);
@@ -4,7 +4,7 @@
4
4
  ** See Copyright Notice in mruby.h
5
5
  */
6
6
 
7
- #ifndef MRB_WITHOUT_FLOAT
7
+ #ifndef MRB_NO_FLOAT
8
8
  #include <math.h>
9
9
  #endif
10
10
 
@@ -14,8 +14,9 @@
14
14
  #include <mruby/numeric.h>
15
15
  #include <mruby/time.h>
16
16
  #include <mruby/string.h>
17
+ #include <mruby/presym.h>
17
18
 
18
- #ifdef MRB_DISABLE_STDIO
19
+ #ifdef MRB_NO_STDIO
19
20
  #include <string.h>
20
21
  #endif
21
22
 
@@ -30,7 +31,7 @@ double round(double x) {
30
31
  }
31
32
  #endif
32
33
 
33
- #ifndef MRB_WITHOUT_FLOAT
34
+ #ifndef MRB_NO_FLOAT
34
35
  # if !defined(__MINGW64__) && defined(_WIN32)
35
36
  # define llround(x) round(x)
36
37
  # endif
@@ -65,7 +66,7 @@ double round(double x) {
65
66
 
66
67
  /* asctime(3) */
67
68
  /* mruby usually use its own implementation of struct tm to string conversion */
68
- /* except when DISABLE_STDIO is set. In that case, it uses asctime() or asctime_r(). */
69
+ /* except when MRB_NO_STDIO is set. In that case, it uses asctime() or asctime_r(). */
69
70
  /* By default mruby tries to use asctime_r() which is reentrant. */
70
71
  /* Undef following macro on platforms that does not have asctime_r(). */
71
72
  /* #define NO_ASCTIME_R */
@@ -180,7 +181,7 @@ static const mrb_timezone_name timezone_names[] = {
180
181
  { "LOCAL", sizeof("LOCAL") - 1 },
181
182
  };
182
183
 
183
- #ifndef MRB_DISABLE_STDIO
184
+ #ifndef MRB_NO_STDIO
184
185
  static const char mon_names[12][4] = {
185
186
  "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
186
187
  };
@@ -199,13 +200,13 @@ struct mrb_time {
199
200
 
200
201
  static const struct mrb_data_type mrb_time_type = { "Time", mrb_free };
201
202
 
202
- #ifndef MRB_WITHOUT_FLOAT
203
+ #ifndef MRB_NO_FLOAT
203
204
  void mrb_check_num_exact(mrb_state *mrb, mrb_float num);
204
205
  typedef mrb_float mrb_sec;
205
206
  #define mrb_sec_value(mrb, sec) mrb_float_value(mrb, sec)
206
207
  #else
207
208
  typedef mrb_int mrb_sec;
208
- #define mrb_sec_value(mrb, sec) mrb_fixnum_value(sec)
209
+ #define mrb_sec_value(mrb, sec) mrb_int_value(mrb, sec)
209
210
  #endif
210
211
 
211
212
  #define MRB_TIME_T_UINT (~(time_t)0 > 0)
@@ -218,11 +219,15 @@ typedef mrb_int mrb_sec;
218
219
  (sizeof(time_t) <= 4 ? INT32_MAX : INT64_MAX) \
219
220
  )
220
221
 
222
+ /* return true if time_t is fit in mrb_int */
221
223
  static mrb_bool
222
224
  fixable_time_t_p(time_t v)
223
225
  {
224
226
  if (MRB_INT_MIN <= MRB_TIME_MIN && MRB_TIME_MAX <= MRB_INT_MAX) return TRUE;
225
- return FIXABLE(v);
227
+ if (v > (time_t)MRB_INT_MAX) return FALSE;
228
+ if (MRB_TIME_T_UINT) return TRUE;
229
+ if (MRB_INT_MIN > (mrb_int)v) return FALSE;
230
+ return TRUE;
226
231
  }
227
232
 
228
233
  static time_t
@@ -231,7 +236,7 @@ mrb_to_time_t(mrb_state *mrb, mrb_value obj, time_t *usec)
231
236
  time_t t;
232
237
 
233
238
  switch (mrb_type(obj)) {
234
- #ifndef MRB_WITHOUT_FLOAT
239
+ #ifndef MRB_NO_FLOAT
235
240
  case MRB_TT_FLOAT:
236
241
  {
237
242
  mrb_float f = mrb_float(obj);
@@ -250,14 +255,14 @@ mrb_to_time_t(mrb_state *mrb, mrb_value obj, time_t *usec)
250
255
  }
251
256
  }
252
257
  break;
253
- #endif /* MRB_WITHOUT_FLOAT */
258
+ #endif /* MRB_NO_FLOAT */
254
259
  default:
255
- case MRB_TT_FIXNUM:
260
+ case MRB_TT_INTEGER:
256
261
  {
257
- mrb_int i = mrb_int(mrb, obj);
262
+ mrb_int i = mrb_integer(obj);
258
263
 
259
- if ((MRB_INT_MAX > MRB_TIME_MAX && i > 0 && i > (mrb_int)MRB_TIME_MAX) ||
260
- (MRB_TIME_MIN > MRB_INT_MIN && MRB_TIME_MIN > i)) {
264
+ if ((MRB_INT_MAX > MRB_TIME_MAX && i > 0 && (time_t)i > MRB_TIME_MAX) ||
265
+ (0 > MRB_TIME_MIN && MRB_TIME_MIN > MRB_INT_MIN && MRB_TIME_MIN > i)) {
261
266
  goto out_of_range;
262
267
  }
263
268
 
@@ -420,7 +425,7 @@ mrb_time_now(mrb_state *mrb, mrb_value self)
420
425
  MRB_API mrb_value
421
426
  mrb_time_at(mrb_state *mrb, time_t sec, time_t usec, enum mrb_timezone zone)
422
427
  {
423
- return mrb_time_make_time(mrb, mrb_class_get(mrb, "Time"), sec, usec, zone);
428
+ return mrb_time_make_time(mrb, mrb_class_get_id(mrb, MRB_SYM(Time)), sec, usec, zone);
424
429
  }
425
430
 
426
431
  /* 15.2.19.6.1 */
@@ -572,7 +577,7 @@ mrb_time_minus(mrb_state *mrb, mrb_value self)
572
577
  tm = time_get_ptr(mrb, self);
573
578
  tm2 = DATA_CHECK_GET_PTR(mrb, other, &mrb_time_type, struct mrb_time);
574
579
  if (tm2) {
575
- #ifndef MRB_WITHOUT_FLOAT
580
+ #ifndef MRB_NO_FLOAT
576
581
  mrb_float f;
577
582
  f = (mrb_sec)(tm->sec - tm2->sec)
578
583
  + (mrb_sec)(tm->usec - tm2->usec) / 1.0e6;
@@ -581,7 +586,7 @@ mrb_time_minus(mrb_state *mrb, mrb_value self)
581
586
  mrb_int f;
582
587
  f = tm->sec - tm2->sec;
583
588
  if (tm->usec < tm2->usec) f--;
584
- return mrb_fixnum_value(f);
589
+ return mrb_int_value(mrb, f);
585
590
  #endif
586
591
  }
587
592
  else {
@@ -648,7 +653,7 @@ mrb_time_asctime(mrb_state *mrb, mrb_value self)
648
653
  struct tm *d = &tm->datetime;
649
654
  int len;
650
655
 
651
- #if defined(MRB_DISABLE_STDIO)
656
+ #if defined(MRB_NO_STDIO)
652
657
  char *s;
653
658
  # ifdef NO_ASCTIME_R
654
659
  s = asctime(d);
@@ -843,7 +848,7 @@ mrb_time_sec(mrb_state *mrb, mrb_value self)
843
848
  return mrb_fixnum_value(tm->datetime.tm_sec);
844
849
  }
845
850
 
846
- #ifndef MRB_WITHOUT_FLOAT
851
+ #ifndef MRB_NO_FLOAT
847
852
  /* 15.2.19.7.24 */
848
853
  /* Returns a Float with the time since the epoch in seconds. */
849
854
  static mrb_value
@@ -864,12 +869,12 @@ mrb_time_to_i(mrb_state *mrb, mrb_value self)
864
869
  struct mrb_time *tm;
865
870
 
866
871
  tm = time_get_ptr(mrb, self);
867
- #ifndef MRB_WITHOUT_FLOAT
872
+ #ifndef MRB_NO_FLOAT
868
873
  if (!fixable_time_t_p(tm->sec)) {
869
874
  return mrb_float_value(mrb, (mrb_float)tm->sec);
870
875
  }
871
876
  #endif
872
- return mrb_fixnum_value((mrb_int)tm->sec);
877
+ return mrb_int_value(mrb, (mrb_int)tm->sec);
873
878
  }
874
879
 
875
880
  /* 15.2.19.7.26 */
@@ -880,11 +885,6 @@ mrb_time_usec(mrb_state *mrb, mrb_value self)
880
885
  struct mrb_time *tm;
881
886
 
882
887
  tm = time_get_ptr(mrb, self);
883
- #ifndef MRB_WITHOUT_FLOAT
884
- if (!fixable_time_t_p(tm->usec)) {
885
- return mrb_float_value(mrb, (mrb_float)tm->usec);
886
- }
887
- #endif
888
888
  return mrb_fixnum_value((mrb_int)tm->usec);
889
889
  }
890
890
 
@@ -995,7 +995,7 @@ mrb_mruby_time_gem_init(mrb_state* mrb)
995
995
 
996
996
  mrb_define_method(mrb, tc, "sec" , mrb_time_sec, MRB_ARGS_NONE()); /* 15.2.19.7.23 */
997
997
  mrb_define_method(mrb, tc, "to_i", mrb_time_to_i, MRB_ARGS_NONE()); /* 15.2.19.7.25 */
998
- #ifndef MRB_WITHOUT_FLOAT
998
+ #ifndef MRB_NO_FLOAT
999
999
  mrb_define_method(mrb, tc, "to_f", mrb_time_to_f, MRB_ARGS_NONE()); /* 15.2.19.7.24 */
1000
1000
  #endif
1001
1001
  mrb_define_method(mrb, tc, "usec", mrb_time_usec, MRB_ARGS_NONE()); /* 15.2.19.7.26 */
@@ -0,0 +1,18 @@
1
+ # It also works with MRB_NO_STDIO and MRB_NO_FLOAT.
2
+
3
+ MRuby::GemBox.new do |conf|
4
+ # Use standard Array#pack, String#unpack methods
5
+ conf.gem :core => "mruby-pack"
6
+
7
+ # Use standard Kernel#sprintf method
8
+ conf.gem :core => "mruby-sprintf"
9
+
10
+ # Use standard Time class
11
+ conf.gem :core => "mruby-time"
12
+
13
+ # Use standard Struct class
14
+ conf.gem :core => "mruby-struct"
15
+
16
+ # Use Random class
17
+ conf.gem :core => "mruby-random"
18
+ end
@@ -0,0 +1,12 @@
1
+ # It also works with MRB_NO_FLOAT.
2
+
3
+ MRuby::GemBox.new do |conf|
4
+ # Use standard IO/File class
5
+ conf.gem :core => "mruby-io"
6
+
7
+ # Use standard IO/File class
8
+ conf.gem :core => "mruby-socket"
9
+
10
+ # Use standard print/puts/p
11
+ conf.gem :core => "mruby-print"
12
+ end
@@ -0,0 +1,54 @@
1
+ # It also works with MRB_NO_STDIO and MRB_NO_FLOAT.
2
+
3
+ MRuby::GemBox.new do |conf|
4
+ # Use Comparable module extension
5
+ conf.gem :core => "mruby-compar-ext"
6
+
7
+ # Use Enumerable module extension
8
+ conf.gem :core => "mruby-enum-ext"
9
+
10
+ # Use String class extension
11
+ conf.gem :core => "mruby-string-ext"
12
+
13
+ # Use Numeric class extension
14
+ conf.gem :core => "mruby-numeric-ext"
15
+
16
+ # Use Array class extension
17
+ conf.gem :core => "mruby-array-ext"
18
+
19
+ # Use Hash class extension
20
+ conf.gem :core => "mruby-hash-ext"
21
+
22
+ # Use Range class extension
23
+ conf.gem :core => "mruby-range-ext"
24
+
25
+ # Use Proc class extension
26
+ conf.gem :core => "mruby-proc-ext"
27
+
28
+ # Use Symbol class extension
29
+ conf.gem :core => "mruby-symbol-ext"
30
+
31
+ # Use Object class extension
32
+ conf.gem :core => "mruby-object-ext"
33
+
34
+ # Use ObjectSpace class
35
+ conf.gem :core => "mruby-objectspace"
36
+
37
+ # Use Fiber class
38
+ conf.gem :core => "mruby-fiber"
39
+
40
+ # Use Enumerator class (require mruby-fiber)
41
+ conf.gem :core => "mruby-enumerator"
42
+
43
+ # Use Enumerator::Lazy class (require mruby-enumerator)
44
+ conf.gem :core => "mruby-enum-lazy"
45
+
46
+ # Use toplevel object (main) methods extension
47
+ conf.gem :core => "mruby-toplevel-ext"
48
+
49
+ # Use Kernel module extension
50
+ conf.gem :core => "mruby-kernel-ext"
51
+
52
+ # Use class/module extension
53
+ conf.gem :core => "mruby-class-ext"
54
+ end
@@ -21,6 +21,10 @@ class RegexpError < StandardError
21
21
  class TypeError < StandardError
22
22
  end
23
23
 
24
+ # ISO 15.2.30
25
+ class ZeroDivisionError < StandardError
26
+ end
27
+
24
28
  # ISO 15.2.31
25
29
  class NameError < StandardError
26
30
  attr_accessor :name
@@ -10,16 +10,16 @@ class Array
10
10
  # and pass the respective element.
11
11
  #
12
12
  # ISO 15.2.12.5.10
13
- # def each(&block)
14
- # return to_enum :each unless block
13
+ def each(&block)
14
+ return to_enum :each unless block
15
15
 
16
- # idx = 0
17
- # while idx < length
18
- # block.call(self[idx])
19
- # idx += 1
20
- # end
21
- # self
22
- # end
16
+ idx = 0
17
+ while idx < length
18
+ block.call(self[idx])
19
+ idx += 1
20
+ end
21
+ self
22
+ end
23
23
 
24
24
  ##
25
25
  # Calls the given block for each element of +self+
@@ -66,6 +66,10 @@ def collect!(&block)
66
66
  #
67
67
  # ISO 15.2.12.5.15
68
68
  def initialize(size=0, obj=nil, &block)
69
+ if size.is_a?(Array) && obj==nil && block == nil
70
+ self.replace(size)
71
+ return self
72
+ end
69
73
  size = size.__to_int
70
74
  raise ArgumentError, "negative array size" if size < 0
71
75
 
@@ -268,4 +272,8 @@ def sort!(&block)
268
272
  def sort(&block)
269
273
  self.dup.sort!(&block)
270
274
  end
275
+
276
+ def to_a
277
+ self
278
+ end
271
279
  end
@@ -10,7 +10,7 @@
10
10
  # implement a meaningful `<=>` operator, as these methods
11
11
  # rely on an ordering between members of the collection.
12
12
  #
13
- # @ISO 15.3.2
13
+ # ISO 15.3.2
14
14
  module Enumerable
15
15
 
16
16
  NONE = Object.new
@@ -144,26 +144,6 @@ def each_value(&block)
144
144
  self
145
145
  end
146
146
 
147
- ##
148
- # Replaces the contents of <i>hsh</i> with the contents of other hash
149
- #
150
- # ISO 15.2.13.4.23
151
- def replace(hash)
152
- raise TypeError, "Hash required (#{hash.class} given)" unless Hash === hash
153
- self.clear
154
- hash.each_key{|k|
155
- self[k] = hash[k]
156
- }
157
- if hash.default_proc
158
- self.default_proc = hash.default_proc
159
- else
160
- self.default = hash.default
161
- end
162
- self
163
- end
164
- # ISO 15.2.13.4.17
165
- alias initialize_copy replace
166
-
167
147
  ##
168
148
  # Return a hash which contains the content of
169
149
  # +self+ and +other+. If a block is given
@@ -1,11 +0,0 @@
1
- #include <mruby.h>
2
- #include <mruby/irep.h>
3
-
4
- extern const uint8_t mrblib_irep[];
5
-
6
- void
7
- mrb_init_mrblib(mrb_state *mrb)
8
- {
9
- mrb_load_irep(mrb, mrblib_irep);
10
- }
11
-
@@ -34,11 +34,11 @@ def abs
34
34
  end
35
35
 
36
36
  ##
37
- # Integral
37
+ # Integer
38
38
  #
39
- # mruby special - module to share methods between Floats and Integers
40
- # to make them compatible
41
- module Integral
39
+ # ISO 15.2.8
40
+ ##
41
+ class Integer
42
42
  ##
43
43
  # Calls the given block once for each Integer
44
44
  # from +self+ downto +num+.
@@ -125,14 +125,7 @@ def step(num=nil, step=1, &block)
125
125
  end
126
126
  self
127
127
  end
128
- end
129
128
 
130
- ##
131
- # Integer
132
- #
133
- # ISO 15.2.8
134
- class Integer
135
- include Integral
136
129
  ##
137
130
  # Returns the receiver simply.
138
131
  #
@@ -161,3 +154,35 @@ def floor
161
154
  # ISO 15.2.8.3.26
162
155
  alias truncate floor
163
156
  end
157
+
158
+ class Float
159
+ ##
160
+ # Calls the given block from +self+ to +num+
161
+ # incremented by +step+ (default 1).
162
+ #
163
+ def step(num=nil, step=1, &block)
164
+ raise ArgumentError, "step can't be 0" if step == 0
165
+ return to_enum(:step, num, step) unless block
166
+
167
+ i = self
168
+ if num == self || step.infinite?
169
+ block.call(i) if step > 0 && i <= (num||i) || step < 0 && i >= (num||-i)
170
+ elsif num == nil
171
+ while true
172
+ block.call(i)
173
+ i += step
174
+ end
175
+ elsif step > 0
176
+ while i <= num
177
+ block.call(i)
178
+ i += step
179
+ end
180
+ else
181
+ while i >= num
182
+ block.call(i)
183
+ i += step
184
+ end
185
+ end
186
+ self
187
+ end
188
+ end if Object.const_defined?(:Float)