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
@@ -39,7 +39,7 @@ def build(target_name)
39
39
  end
40
40
 
41
41
  def write
42
- locks = {"mruby_version" => mruby}
42
+ locks = {"mruby" => mruby}
43
43
  locks["builds"] = @builds if @builds
44
44
  File.write(@filename, YAML.dump(locks))
45
45
  end
@@ -0,0 +1,132 @@
1
+ module MRuby
2
+ class Presym
3
+ include Rake::DSL
4
+
5
+ OPERATORS = {
6
+ "!" => "not",
7
+ "%" => "mod",
8
+ "&" => "and",
9
+ "*" => "mul",
10
+ "+" => "add",
11
+ "-" => "sub",
12
+ "/" => "div",
13
+ "<" => "lt",
14
+ ">" => "gt",
15
+ "^" => "xor",
16
+ "`" => "tick",
17
+ "|" => "or",
18
+ "~" => "neg",
19
+ "!=" => "neq",
20
+ "!~" => "nmatch",
21
+ "&&" => "andand",
22
+ "**" => "pow",
23
+ "+@" => "plus",
24
+ "-@" => "minus",
25
+ "<<" => "lshift",
26
+ "<=" => "le",
27
+ "==" => "eq",
28
+ "=~" => "match",
29
+ ">=" => "ge",
30
+ ">>" => "rshift",
31
+ "[]" => "aref",
32
+ "||" => "oror",
33
+ "<=>" => "cmp",
34
+ "===" => "eqq",
35
+ "[]=" => "aset",
36
+ }.freeze
37
+
38
+ SYMBOL_TO_MACRO = {
39
+ # Symbol => Macro
40
+ # [prefix, suffix] => [prefix, suffix]
41
+ ["@@" , "" ] => ["CV" , "" ],
42
+ ["@" , "" ] => ["IV" , "" ],
43
+ ["" , "!" ] => ["" , "_B" ],
44
+ ["" , "?" ] => ["" , "_Q" ],
45
+ ["" , "=" ] => ["" , "_E" ],
46
+ ["" , "" ] => ["" , "" ],
47
+ }.freeze
48
+
49
+ C_STR_LITERAL_RE = /"(?:[^\\\"]|\\.)*"/
50
+
51
+ def initialize(build)
52
+ @build = build
53
+ end
54
+
55
+ def scan(paths)
56
+ presym_hash = {}
57
+ paths.each {|path| read_preprocessed(presym_hash, path)}
58
+ presym_hash.keys.sort_by!{|sym| [c_literal_size(sym), sym]}
59
+ end
60
+
61
+ def read_list
62
+ File.readlines(list_path, mode: "r:binary").each(&:chomp!)
63
+ end
64
+
65
+ def write_list(presyms)
66
+ _pp "GEN", list_path.relative_path
67
+ File.binwrite(list_path, presyms.join("\n") << "\n")
68
+ end
69
+
70
+ def write_id_header(presyms)
71
+ prefix_re = Regexp.union(*SYMBOL_TO_MACRO.keys.map(&:first).uniq)
72
+ suffix_re = Regexp.union(*SYMBOL_TO_MACRO.keys.map(&:last).uniq)
73
+ sym_re = /\A(#{prefix_re})?([\w&&\D]\w*)(#{suffix_re})?\z/o
74
+ _pp "GEN", id_header_path.relative_path
75
+ File.open(id_header_path, "w:binary") do |f|
76
+ f.puts "enum mruby_presym {"
77
+ presyms.each.with_index(1) do |sym, num|
78
+ if sym_re =~ sym && (affixes = SYMBOL_TO_MACRO[[$1, $3]])
79
+ f.puts " MRB_#{affixes * 'SYM'}__#{$2} = #{num},"
80
+ elsif name = OPERATORS[sym]
81
+ f.puts " MRB_OPSYM__#{name} = #{num},"
82
+ end
83
+ end
84
+ f.puts "};"
85
+ f.puts
86
+ f.puts "#define MRB_PRESYM_MAX #{presyms.size}"
87
+ end
88
+ end
89
+
90
+ def write_table_header(presyms)
91
+ _pp "GEN", table_header_path.relative_path
92
+ File.open(table_header_path, "w:binary") do |f|
93
+ f.puts "static const uint16_t presym_length_table[] = {"
94
+ presyms.each{|sym| f.puts " #{sym.bytesize},\t/* #{sym} */"}
95
+ f.puts "};"
96
+ f.puts
97
+ f.puts "static const char * const presym_name_table[] = {"
98
+ presyms.each{|sym| f.puts %| "#{sym}",|}
99
+ f.puts "};"
100
+ end
101
+ end
102
+
103
+ def list_path
104
+ @list_pat ||= "#{@build.build_dir}/presym".freeze
105
+ end
106
+
107
+ def header_dir;
108
+ @header_dir ||= "#{@build.build_dir}/include/mruby/presym".freeze
109
+ end
110
+
111
+ def id_header_path
112
+ @id_header_path ||= "#{header_dir}/id.h".freeze
113
+ end
114
+
115
+ def table_header_path
116
+ @table_header_path ||= "#{header_dir}/table.h".freeze
117
+ end
118
+
119
+ private
120
+
121
+ def read_preprocessed(presym_hash, path)
122
+ File.binread(path).scan(/<@! (.*?) !@>/) do |part,|
123
+ literals = part.scan(C_STR_LITERAL_RE)
124
+ presym_hash[literals.map{|l| l[1..-2]}.join] = true unless literals.empty?
125
+ end
126
+ end
127
+
128
+ def c_literal_size(literal_without_quote)
129
+ literal_without_quote.size # TODO: consider escape sequence
130
+ end
131
+ end
132
+ end
@@ -0,0 +1,3 @@
1
+ MRuby::GemBox.new do |conf|
2
+ conf.gembox "stdlib"
3
+ end
@@ -0,0 +1,4 @@
1
+ MRuby::GemBox.new do |conf|
2
+ conf.gembox "stdlib"
3
+ conf.gembox "math"
4
+ end
@@ -1,79 +1,12 @@
1
1
  MRuby::GemBox.new do |conf|
2
- # Meta-programming features
3
- conf.gem :core => "mruby-metaprog"
2
+ conf.gembox "stdlib"
3
+ conf.gembox "stdlib-ext"
4
+ conf.gembox "stdlib-io"
5
+ conf.gembox "math"
6
+ conf.gembox "metaprog"
4
7
 
5
- # Use standard IO/File class
6
- conf.gem :core => "mruby-io"
7
-
8
- # Use standard Array#pack, String#unpack methods
9
- conf.gem :core => "mruby-pack"
10
-
11
- # Use standard Kernel#sprintf method
12
- conf.gem :core => "mruby-sprintf"
13
-
14
- # Use standard print/puts/p
15
- conf.gem :core => "mruby-print"
16
-
17
- # Use standard Math module
18
- conf.gem :core => "mruby-math"
19
-
20
- # Use standard Time class
21
- conf.gem :core => "mruby-time"
22
-
23
- # Use standard Struct class
24
- conf.gem :core => "mruby-struct"
25
-
26
- # Use Comparable module extension
27
- conf.gem :core => "mruby-compar-ext"
28
-
29
- # Use Enumerable module extension
30
- conf.gem :core => "mruby-enum-ext"
31
-
32
- # Use String class extension
33
- conf.gem :core => "mruby-string-ext"
34
-
35
- # Use Numeric class extension
36
- conf.gem :core => "mruby-numeric-ext"
37
-
38
- # Use Array class extension
39
- conf.gem :core => "mruby-array-ext"
40
-
41
- # Use Hash class extension
42
- conf.gem :core => "mruby-hash-ext"
43
-
44
- # Use Range class extension
45
- conf.gem :core => "mruby-range-ext"
46
-
47
- # Use Proc class extension
48
- conf.gem :core => "mruby-proc-ext"
49
-
50
- # Use Symbol class extension
51
- conf.gem :core => "mruby-symbol-ext"
52
-
53
- # Use Random class
54
- conf.gem :core => "mruby-random"
55
-
56
- # Use Object class extension
57
- conf.gem :core => "mruby-object-ext"
58
-
59
- # Use ObjectSpace class
60
- conf.gem :core => "mruby-objectspace"
61
-
62
- # Use Fiber class
63
- conf.gem :core => "mruby-fiber"
64
-
65
- # Use Enumerator class (require mruby-fiber)
66
- conf.gem :core => "mruby-enumerator"
67
-
68
- # Use Enumerator::Lazy class (require mruby-enumerator)
69
- conf.gem :core => "mruby-enum-lazy"
70
-
71
- # Use toplevel object (main) methods extension
72
- conf.gem :core => "mruby-toplevel-ext"
73
-
74
- # Use Rational/Complex numbers
75
- conf.gem :core => "mruby-rational"
76
- conf.gem :core => "mruby-complex"
8
+ # Generate mrbc command
9
+ conf.gem :core => "mruby-bin-mrbc"
77
10
 
78
11
  # Generate mirb command
79
12
  conf.gem :core => "mruby-bin-mirb"
@@ -84,18 +17,6 @@ MRuby::GemBox.new do |conf|
84
17
  # Generate mruby-strip command
85
18
  conf.gem :core => "mruby-bin-strip"
86
19
 
87
- # Use Kernel module extension
88
- conf.gem :core => "mruby-kernel-ext"
89
-
90
- # Use class/module extension
91
- conf.gem :core => "mruby-class-ext"
92
-
93
- # Use Method/UnboundMethod class
94
- conf.gem :core => "mruby-method"
95
-
96
- # Use eval()
97
- conf.gem :core => "mruby-eval"
98
-
99
- # Use mruby-compiler to build other mrbgems
100
- conf.gem :core => "mruby-compiler"
20
+ # Generate mruby-config command
21
+ conf.gem :core => "mruby-bin-config"
101
22
  end
@@ -1,9 +1,6 @@
1
1
  MRuby::GemBox.new do |conf|
2
- conf.gem :core => "mruby-sprintf"
3
- conf.gem :core => "mruby-print"
4
-
5
2
  Dir.glob("#{root}/mrbgems/mruby-*/mrbgem.rake") do |x|
6
3
  g = File.basename File.dirname x
7
- conf.gem :core => g unless g =~ /^mruby-(print|sprintf|bin-debugger|test)$/
4
+ conf.gem :core => g unless g =~ /^mruby-(?:bin-debugger|test)$/
8
5
  end
9
6
  end
@@ -0,0 +1,10 @@
1
+ # It also works with MRB_NO_STDIO.
2
+
3
+ MRuby::GemBox.new do |conf|
4
+ # Use standard Math module
5
+ conf.gem :core => "mruby-math"
6
+
7
+ # Use Rational/Complex numbers
8
+ conf.gem :core => "mruby-rational"
9
+ conf.gem :core => "mruby-complex"
10
+ end
@@ -0,0 +1,15 @@
1
+ # It also works with MRB_NO_STDIO and MRB_NO_FLOAT.
2
+
3
+ MRuby::GemBox.new do |conf|
4
+ # Meta-programming features
5
+ conf.gem :core => "mruby-metaprog"
6
+
7
+ # Use Method/UnboundMethod class
8
+ conf.gem :core => "mruby-method"
9
+
10
+ # Use eval()
11
+ conf.gem :core => "mruby-eval"
12
+
13
+ # Use mruby-compiler to build other mrbgems
14
+ conf.gem :core => "mruby-compiler"
15
+ end
@@ -209,7 +209,7 @@ def intersection(*args)
209
209
  # a.flatten(1) #=> [1, 2, 3, [4, 5]]
210
210
  #
211
211
  def flatten(depth=nil)
212
- res = dup
212
+ res = Array.new(self)
213
213
  res.flatten! depth
214
214
  res
215
215
  end
@@ -3,6 +3,7 @@
3
3
  #include <mruby/array.h>
4
4
  #include <mruby/range.h>
5
5
  #include <mruby/hash.h>
6
+ #include <mruby/presym.h>
6
7
 
7
8
  /*
8
9
  * call-seq:
@@ -97,7 +98,7 @@ static mrb_value
97
98
  mrb_ary_values_at(mrb_state *mrb, mrb_value self)
98
99
  {
99
100
  mrb_int argc;
100
- mrb_value *argv;
101
+ const mrb_value *argv;
101
102
 
102
103
  mrb_get_args(mrb, "*", &argv, &argc);
103
104
 
@@ -148,11 +149,11 @@ mrb_ary_slice_bang(mrb_state *mrb, mrb_value self)
148
149
  else {
149
150
  return mrb_nil_value();
150
151
  }
151
- case MRB_TT_FIXNUM:
152
- val = mrb_funcall(mrb, self, "delete_at", 1, index);
152
+ case MRB_TT_INTEGER:
153
+ val = mrb_funcall_id(mrb, self, MRB_SYM(delete_at), 1, index);
153
154
  return val;
154
155
  default:
155
- val = mrb_funcall(mrb, self, "delete_at", 1, index);
156
+ val = mrb_funcall_id(mrb, self, MRB_SYM(delete_at), 1, index);
156
157
  return val;
157
158
  }
158
159
  }
@@ -1,26 +1,35 @@
1
- unless MRuby::Build.current.kind_of?(MRuby::CrossBuild)
2
- MRuby::Gem::Specification.new('mruby-bin-config') do |spec|
3
- name = 'mruby-config'
4
- spec.license = 'MIT'
5
- spec.author = 'mruby developers'
6
- spec.summary = "#{name} command"
1
+ iscross = MRuby::Build.current.kind_of?(MRuby::CrossBuild)
7
2
 
3
+ MRuby::Gem::Specification.new('mruby-bin-config') do |spec|
4
+ name = 'mruby-config'
5
+ spec.license = 'MIT'
6
+ spec.author = 'mruby developers'
7
+ spec.summary = "#{name} command"
8
+
9
+ if iscross
10
+ mruby_config_dir = "#{build.build_dir}/host-bin"
11
+ else
8
12
  mruby_config_dir = "#{build.build_dir}/bin"
9
- mruby_config = name + (ENV['OS'] == 'Windows_NT' ? '.bat' : '')
10
- mruby_config_path = "#{mruby_config_dir}/#{mruby_config}"
11
- make_cfg = "#{build.build_dir}/lib/libmruby.flags.mak"
12
- tmplt_path = "#{__dir__}/#{mruby_config}"
13
+ end
14
+ mruby_config = name + (ENV['OS'] == 'Windows_NT' ? '.bat' : '')
15
+ mruby_config_path = "#{mruby_config_dir}/#{mruby_config}"
16
+ make_cfg = "#{build.build_dir}/lib/libmruby.flags.mak"
17
+ tmplt_path = "#{__dir__}/#{mruby_config}"
18
+
19
+ if iscross
20
+ build.products << mruby_config_path
21
+ else
13
22
  build.bins << mruby_config
23
+ end
14
24
 
15
- directory mruby_config_dir
25
+ directory mruby_config_dir
16
26
 
17
- file mruby_config_path => [mruby_config_dir, make_cfg, tmplt_path] do |t|
18
- config = Hash[File.readlines(make_cfg).map!(&:chomp).map! {|l|
19
- l.gsub('\\"', '"').split(' = ', 2).map! {|s| s.sub(/^(?=.)/, 'echo ')}
20
- }]
21
- tmplt = File.read(tmplt_path)
22
- File.write(t.name, tmplt.gsub(/(#{Regexp.union(*config.keys)})\b/, config))
23
- chmod(0755, t.name)
24
- end
27
+ file mruby_config_path => [mruby_config_dir, make_cfg, tmplt_path] do |t|
28
+ config = Hash[File.readlines(make_cfg).map!(&:chomp).map! {|l|
29
+ l.gsub('\\"', '"').split(' = ', 2).map! {|s| s.sub(/^(?=.)/, 'echo ')}
30
+ }]
31
+ tmplt = File.read(tmplt_path)
32
+ File.write(t.name, tmplt.gsub(/(#{Regexp.union(*config.keys)})\b/, config))
33
+ chmod(0755, t.name)
25
34
  end
26
35
  end
@@ -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