script_core 0.2.7 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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