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
@@ -1,5 +1,7 @@
1
- #assert('Kernel.sprintf') do
2
- #end
1
+ assert('sprintf invalid') do
2
+ assert_raise(ArgumentError) { sprintf('%1$*d', 3) }
3
+ assert_raise(ArgumentError) { sprintf('%1$.*d', 3) }
4
+ end
3
5
 
4
6
  assert('String#%') do
5
7
  assert_equal "one=1", "one=%d" % 1
@@ -422,7 +422,6 @@ def upto(max, exclusive=false, &block)
422
422
  # both edges are all digits
423
423
  bi = self.to_i(10)
424
424
  ei = max.to_i(10)
425
- len = self.length
426
425
  if (bi > 0 or bi == "0"*len) and (ei > 0 or ei == "0"*maxlen)
427
426
  while bi <= ei
428
427
  break if exclusive and bi == ei
@@ -444,4 +443,27 @@ def upto(max, exclusive=false, &block)
444
443
  end
445
444
  self
446
445
  end
446
+
447
+ def __upto_endless(&block)
448
+ return to_enum(:__upto_endless) unless block
449
+
450
+ len = self.length
451
+ # both edges are all digits
452
+ bi = self.to_i(10)
453
+ if bi > 0 or bi == "0"*len
454
+ while true
455
+ s = bi.to_s
456
+ s = s.rjust(len, "0") if s.length < len
457
+ yield s
458
+ bi += 1
459
+ end
460
+ return self
461
+ end
462
+ bs = self
463
+ while true
464
+ yield bs
465
+ bs = bs.succ
466
+ end
467
+ self
468
+ end
447
469
  end
@@ -12,7 +12,7 @@
12
12
  #define ENC_COMP_P(enc, enc_lit) \
13
13
  str_casecmp_p(RSTRING_PTR(enc), RSTRING_LEN(enc), enc_lit, sizeof(enc_lit"")-1)
14
14
 
15
- #ifdef MRB_WITHOUT_FLOAT
15
+ #ifdef MRB_NO_FLOAT
16
16
  # define mrb_float_p(o) FALSE
17
17
  #endif
18
18
 
@@ -166,7 +166,7 @@ mrb_str_concat_m(mrb_state *mrb, mrb_value self)
166
166
  {
167
167
  mrb_value str = mrb_get_arg1(mrb);
168
168
 
169
- if (mrb_fixnum_p(str) || mrb_float_p(str))
169
+ if (mrb_integer_p(str) || mrb_float_p(str))
170
170
  #ifdef MRB_UTF8_STRING
171
171
  str = int_chr_utf8(mrb, str);
172
172
  #else
@@ -194,7 +194,8 @@ mrb_str_concat_m(mrb_state *mrb, mrb_value self)
194
194
  static mrb_value
195
195
  mrb_str_start_with(mrb_state *mrb, mrb_value self)
196
196
  {
197
- mrb_value *argv, sub;
197
+ const mrb_value *argv;
198
+ mrb_value sub;
198
199
  mrb_int argc, i;
199
200
  mrb_get_args(mrb, "*", &argv, &argc);
200
201
 
@@ -223,7 +224,8 @@ mrb_str_start_with(mrb_state *mrb, mrb_value self)
223
224
  static mrb_value
224
225
  mrb_str_end_with(mrb_state *mrb, mrb_value self)
225
226
  {
226
- mrb_value *argv, sub;
227
+ const mrb_value *argv;
228
+ mrb_value sub;
227
229
  mrb_int argc, i;
228
230
  mrb_get_args(mrb, "*", &argv, &argc);
229
231
 
@@ -1072,7 +1074,8 @@ static mrb_value
1072
1074
  mrb_str_del_prefix_bang(mrb_state *mrb, mrb_value self)
1073
1075
  {
1074
1076
  mrb_int plen, slen;
1075
- char *ptr, *s;
1077
+ const char *ptr;
1078
+ char *s;
1076
1079
  struct RString *str = RSTRING(self);
1077
1080
 
1078
1081
  mrb_get_args(mrb, "s", &ptr, &plen);
@@ -1105,7 +1108,7 @@ static mrb_value
1105
1108
  mrb_str_del_prefix(mrb_state *mrb, mrb_value self)
1106
1109
  {
1107
1110
  mrb_int plen, slen;
1108
- char *ptr;
1111
+ const char *ptr;
1109
1112
 
1110
1113
  mrb_get_args(mrb, "s", &ptr, &plen);
1111
1114
  slen = RSTRING_LEN(self);
@@ -1129,7 +1132,8 @@ static mrb_value
1129
1132
  mrb_str_del_suffix_bang(mrb_state *mrb, mrb_value self)
1130
1133
  {
1131
1134
  mrb_int plen, slen;
1132
- char *ptr, *s;
1135
+ const char *ptr;
1136
+ char *s;
1133
1137
  struct RString *str = RSTRING(self);
1134
1138
 
1135
1139
  mrb_get_args(mrb, "s", &ptr, &plen);
@@ -1160,7 +1164,7 @@ static mrb_value
1160
1164
  mrb_str_del_suffix(mrb_state *mrb, mrb_value self)
1161
1165
  {
1162
1166
  mrb_int plen, slen;
1163
- char *ptr;
1167
+ const char *ptr;
1164
1168
 
1165
1169
  mrb_get_args(mrb, "s", &ptr, &plen);
1166
1170
  slen = RSTRING_LEN(self);
@@ -1229,7 +1233,7 @@ mrb_mruby_string_ext_gem_init(mrb_state* mrb)
1229
1233
 
1230
1234
  mrb_define_method(mrb, s, "__lines", mrb_str_lines, MRB_ARGS_NONE());
1231
1235
 
1232
- mrb_define_method(mrb, mrb_module_get(mrb, "Integral"), "chr", mrb_int_chr, MRB_ARGS_OPT(1));
1236
+ mrb_define_method(mrb, mrb_class_get(mrb, "Integer"), "chr", mrb_int_chr, MRB_ARGS_OPT(1));
1233
1237
  }
1234
1238
 
1235
1239
  void
@@ -20,7 +20,7 @@ def each(&block)
20
20
 
21
21
  ##
22
22
  # Calls the given block for each element of +self+
23
- # and pass the name and value of the respectiev
23
+ # and pass the name and value of the respective
24
24
  # element.
25
25
  #
26
26
  # ISO 15.2.18.4.5
@@ -13,6 +13,7 @@
13
13
  #include <mruby/hash.h>
14
14
  #include <mruby/range.h>
15
15
  #include <mruby/proc.h>
16
+ #include <mruby/presym.h>
16
17
 
17
18
  #define RSTRUCT_LEN(st) RARRAY_LEN(st)
18
19
  #define RSTRUCT_PTR(st) RARRAY_PTR(st)
@@ -20,7 +21,7 @@
20
21
  static struct RClass *
21
22
  struct_class(mrb_state *mrb)
22
23
  {
23
- return mrb_class_get(mrb, "Struct");
24
+ return mrb_class_get_id(mrb, MRB_SYM(Struct));
24
25
  }
25
26
 
26
27
  static inline mrb_value
@@ -42,7 +43,7 @@ struct_ivar_get(mrb_state *mrb, mrb_value cls, mrb_sym id)
42
43
  static mrb_value
43
44
  struct_s_members(mrb_state *mrb, struct RClass *klass)
44
45
  {
45
- mrb_value members = struct_ivar_get(mrb, mrb_obj_value(klass), mrb_intern_lit(mrb, "__members__"));
46
+ mrb_value members = struct_ivar_get(mrb, mrb_obj_value(klass), MRB_SYM(__members__));
46
47
 
47
48
  if (mrb_nil_p(members)) {
48
49
  mrb_raise(mrb, E_TYPE_ERROR, "uninitialized struct");
@@ -113,7 +114,7 @@ mrb_struct_members(mrb_state *mrb, mrb_value obj)
113
114
  static mrb_value
114
115
  mrb_struct_ref(mrb_state *mrb, mrb_value obj)
115
116
  {
116
- mrb_int i = mrb_fixnum(mrb_proc_cfunc_env_get(mrb, 0));
117
+ mrb_int i = mrb_integer(mrb_proc_cfunc_env_get(mrb, 0));
117
118
  mrb_value *ptr = RSTRUCT_PTR(obj);
118
119
 
119
120
  if (!ptr) return mrb_nil_value();
@@ -152,7 +153,7 @@ mrb_id_attrset(mrb_state *mrb, mrb_sym id)
152
153
  static mrb_value
153
154
  mrb_struct_set_m(mrb_state *mrb, mrb_value obj)
154
155
  {
155
- mrb_int i = mrb_fixnum(mrb_proc_cfunc_env_get(mrb, 0));
156
+ mrb_int i = mrb_integer(mrb_proc_cfunc_env_get(mrb, 0));
156
157
  mrb_value *ptr;
157
158
  mrb_value val = mrb_get_arg1(mrb);
158
159
 
@@ -214,7 +215,7 @@ make_struct(mrb_state *mrb, mrb_value name, mrb_value members, struct RClass *kl
214
215
  }
215
216
  MRB_SET_INSTANCE_TT(c, MRB_TT_ARRAY);
216
217
  nstr = mrb_obj_value(c);
217
- mrb_iv_set(mrb, nstr, mrb_intern_lit(mrb, "__members__"), members);
218
+ mrb_iv_set(mrb, nstr, MRB_SYM(__members__), members);
218
219
 
219
220
  mrb_define_class_method(mrb, c, "new", mrb_instance_new, MRB_ARGS_ANY());
220
221
  mrb_define_class_method(mrb, c, "[]", mrb_instance_new, MRB_ARGS_ANY());
@@ -262,12 +263,12 @@ static mrb_value
262
263
  mrb_struct_s_def(mrb_state *mrb, mrb_value klass)
263
264
  {
264
265
  mrb_value name, rest;
265
- mrb_value *pargv;
266
+ const mrb_value *pargv;
266
267
  mrb_int argcnt;
267
268
  mrb_int i;
268
269
  mrb_value b, st;
269
270
  mrb_sym id;
270
- mrb_value *argv;
271
+ const mrb_value *argv;
271
272
  mrb_int argc;
272
273
 
273
274
  name = mrb_nil_value();
@@ -310,7 +311,7 @@ num_members(mrb_state *mrb, struct RClass *klass)
310
311
  {
311
312
  mrb_value members;
312
313
 
313
- members = struct_ivar_get(mrb, mrb_obj_value(klass), mrb_intern_lit(mrb, "__members__"));
314
+ members = struct_ivar_get(mrb, mrb_obj_value(klass), MRB_SYM(__members__));
314
315
  if (!mrb_array_p(members)) {
315
316
  mrb_raise(mrb, E_TYPE_ERROR, "broken members");
316
317
  }
@@ -321,7 +322,7 @@ num_members(mrb_state *mrb, struct RClass *klass)
321
322
  /*
322
323
  */
323
324
  static mrb_value
324
- mrb_struct_initialize_withArg(mrb_state *mrb, mrb_int argc, mrb_value *argv, mrb_value self)
325
+ mrb_struct_initialize_withArg(mrb_state *mrb, mrb_int argc, const mrb_value *argv, mrb_value self)
325
326
  {
326
327
  struct RClass *klass = mrb_obj_class(mrb, self);
327
328
  mrb_int i, n;
@@ -343,7 +344,7 @@ mrb_struct_initialize_withArg(mrb_state *mrb, mrb_int argc, mrb_value *argv, mrb
343
344
  static mrb_value
344
345
  mrb_struct_initialize(mrb_state *mrb, mrb_value self)
345
346
  {
346
- mrb_value *argv;
347
+ const mrb_value *argv;
347
348
  mrb_int argc;
348
349
 
349
350
  mrb_get_args(mrb, "*!", &argv, &argc);
@@ -428,12 +429,8 @@ mrb_struct_aref(mrb_state *mrb, mrb_value s)
428
429
  mrb_value idx = mrb_get_arg1(mrb);
429
430
 
430
431
  if (mrb_string_p(idx)) {
431
- mrb_value sym = mrb_check_intern_str(mrb, idx);
432
-
433
- if (mrb_nil_p(sym)) {
434
- mrb_name_error(mrb, mrb_intern_str(mrb, idx), "no member '%v' in struct", idx);
435
- }
436
- idx = sym;
432
+ mrb_sym sym = mrb_intern_str(mrb, idx);
433
+ idx = mrb_symbol_value(sym);
437
434
  }
438
435
  if (mrb_symbol_p(idx)) {
439
436
  return struct_aref_sym(mrb, s, mrb_symbol(idx));
@@ -495,12 +492,8 @@ mrb_struct_aset(mrb_state *mrb, mrb_value s)
495
492
  mrb_get_args(mrb, "oo", &idx, &val);
496
493
 
497
494
  if (mrb_string_p(idx)) {
498
- mrb_value sym = mrb_check_intern_str(mrb, idx);
499
-
500
- if (mrb_nil_p(sym)) {
501
- mrb_name_error(mrb, mrb_intern_str(mrb, idx), "no member '%v' in struct", idx);
502
- }
503
- idx = sym;
495
+ mrb_sym sym = mrb_intern_str(mrb, idx);
496
+ idx = mrb_symbol_value(sym);
504
497
  }
505
498
  if (mrb_symbol_p(idx)) {
506
499
  return mrb_struct_aset_sym(mrb, s, mrb_symbol(idx), val);
@@ -604,8 +597,8 @@ mrb_struct_eql(mrb_state *mrb, mrb_value s)
604
597
 
605
598
  /*
606
599
  * call-seq:
607
- * struct.length -> Fixnum
608
- * struct.size -> Fixnum
600
+ * struct.length -> Integer
601
+ * struct.size -> Integer
609
602
  *
610
603
  * Returns number of struct members.
611
604
  */
@@ -654,7 +647,7 @@ static mrb_value
654
647
  mrb_struct_values_at(mrb_state *mrb, mrb_value self)
655
648
  {
656
649
  mrb_int argc;
657
- mrb_value *argv;
650
+ const mrb_value *argv;
658
651
 
659
652
  mrb_get_args(mrb, "*", &argv, &argc);
660
653
 
@@ -1,5 +1,4 @@
1
1
  #include <mruby.h>
2
- #include <mruby/khash.h>
3
2
  #include <mruby/array.h>
4
3
  #include <mruby/string.h>
5
4
 
@@ -18,16 +17,18 @@
18
17
  * :Tms, :getwd, :$=, :ThreadGroup,
19
18
  * :wait2, :$>]
20
19
  */
21
- #ifdef MRB_ENABLE_ALL_SYMBOLS
20
+ #ifdef MRB_USE_ALL_SYMBOLS
22
21
  static mrb_value
23
22
  mrb_sym_all_symbols(mrb_state *mrb, mrb_value self)
24
23
  {
25
24
  mrb_sym i, lim;
26
25
  mrb_value ary = mrb_ary_new_capa(mrb, mrb->symidx);
27
26
 
27
+ for (i=1; i<=MRB_PRESYM_MAX; i++) {
28
+ mrb_ary_push(mrb, ary, mrb_symbol_value(i));
29
+ }
28
30
  for (i=1, lim=mrb->symidx+1; i<lim; i++) {
29
- mrb_sym sym = i<<1;
30
- mrb_ary_push(mrb, ary, mrb_symbol_value(sym));
31
+ mrb_ary_push(mrb, ary, mrb_symbol_value(i+MRB_PRESYM_MAX));
31
32
  }
32
33
 
33
34
  return ary;
@@ -58,7 +59,7 @@ void
58
59
  mrb_mruby_symbol_ext_gem_init(mrb_state* mrb)
59
60
  {
60
61
  struct RClass *s = mrb->symbol_class;
61
- #ifdef MRB_ENABLE_ALL_SYMBOLS
62
+ #ifdef MRB_USE_ALL_SYMBOLS
62
63
  mrb_define_class_method(mrb, s, "all_symbols", mrb_sym_all_symbols, MRB_ARGS_NONE());
63
64
  #endif
64
65
  mrb_define_method(mrb, s, "length", mrb_sym_length, MRB_ARGS_NONE());
@@ -48,7 +48,7 @@
48
48
  end
49
49
 
50
50
  assert("Symbol#empty?") do
51
- assert_true :''.empty?
51
+ assert_false :'a'.empty?
52
52
  end
53
53
 
54
54
  assert('Symbol#intern') do
@@ -4,4 +4,3 @@ Running Tests
4
4
  To run the tests, execute the following from the project's root directory.
5
5
 
6
6
  $ make test
7
-
@@ -50,7 +50,7 @@ eval_test(mrb_state *mrb)
50
50
  static mrb_value
51
51
  t_print(mrb_state *mrb, mrb_value self)
52
52
  {
53
- mrb_value *argv;
53
+ const mrb_value *argv;
54
54
  mrb_int argc;
55
55
  mrb_int i;
56
56
 
@@ -224,8 +224,8 @@ mrb_init_test_driver(mrb_state *mrb, mrb_bool verbose)
224
224
  mrb_define_const(mrb, mrbtest, "FIXNUM_MIN", mrb_fixnum_value(MRB_INT_MIN));
225
225
  mrb_define_const(mrb, mrbtest, "FIXNUM_BIT", mrb_fixnum_value(MRB_INT_BIT));
226
226
 
227
- #ifndef MRB_WITHOUT_FLOAT
228
- #ifdef MRB_USE_FLOAT
227
+ #ifndef MRB_NO_FLOAT
228
+ #ifdef MRB_USE_FLOAT32
229
229
  mrb_define_const(mrb, mrbtest, "FLOAT_TOLERANCE", mrb_float_value(mrb, 1e-6));
230
230
  #else
231
231
  mrb_define_const(mrb, mrbtest, "FLOAT_TOLERANCE", mrb_float_value(mrb, 1e-12));
@@ -252,9 +252,9 @@ mrb_t_pass_result(mrb_state *mrb_dst, mrb_state *mrb_src)
252
252
  #define TEST_COUNT_PASS(name) \
253
253
  do { \
254
254
  res_src = mrb_gv_get(mrb_src, mrb_intern_lit(mrb_src, "$" #name)); \
255
- if (mrb_fixnum_p(res_src)) { \
255
+ if (mrb_integer_p(res_src)) { \
256
256
  mrb_value res_dst = mrb_gv_get(mrb_dst, mrb_intern_lit(mrb_dst, "$" #name)); \
257
- mrb_gv_set(mrb_dst, mrb_intern_lit(mrb_dst, "$" #name), mrb_fixnum_value(mrb_fixnum(res_dst) + mrb_fixnum(res_src))); \
257
+ mrb_gv_set(mrb_dst, mrb_intern_lit(mrb_dst, "$" #name), mrb_int_value(mrb_dst, mrb_integer(res_dst) + mrb_integer(res_src))); \
258
258
  } \
259
259
  } while (FALSE) \
260
260
 
@@ -3,32 +3,24 @@
3
3
  spec.author = 'mruby developers'
4
4
  spec.summary = 'mruby test'
5
5
 
6
- build.bins << 'mrbtest'
7
- spec.add_dependency('mruby-compiler', :core => 'mruby-compiler')
8
-
9
6
  spec.test_rbfiles = Dir.glob("#{MRUBY_ROOT}/test/t/*.rb")
10
7
 
11
8
  clib = "#{build_dir}/mrbtest.c"
12
9
  mlib = clib.ext(exts.object)
13
10
  exec = exefile("#{build.build_dir}/bin/mrbtest")
14
-
15
- mrbtest_lib = libfile("#{build_dir}/mrbtest")
16
- mrbtest_objs = []
17
-
18
- driver_objs = Dir.glob("#{dir}/*.{c,cpp,cxx,cc,m,asm,s,S}").map do |f|
19
- objfile(f.relative_path_from(dir).to_s.pathmap("#{build_dir}/%X"))
20
- end
21
-
22
11
  assert_c = "#{build_dir}/assert.c"
23
12
  assert_rb = "#{MRUBY_ROOT}/test/assert.rb"
24
13
  assert_lib = assert_c.ext(exts.object)
25
- mrbtest_objs << assert_lib
14
+ mrbtest_lib = libfile("#{build_dir}/mrbtest")
15
+ mrbtest_objs = [assert_lib]
16
+ driver_objs = srcs_to_objs(".")
26
17
 
27
18
  file assert_lib => assert_c
28
19
  file assert_c => [assert_rb, build.mrbcfile] do |t|
20
+ _pp "GEN", t.name.relative_path
29
21
  mkdir_p File.dirname(t.name)
30
22
  open(t.name, 'w') do |f|
31
- mrbc.run f, assert_rb, 'mrbtest_assert_irep'
23
+ mrbc.run f, assert_rb, 'mrbtest_assert_irep', false
32
24
  end
33
25
  end
34
26
 
@@ -36,11 +28,13 @@
36
28
 
37
29
  build.gems.each do |g|
38
30
  test_rbobj = g.test_rbireps.ext(exts.object)
39
- g.test_objs << test_rbobj
40
- dep_list = build.gems.tsort_dependencies(g.test_dependencies, gem_table).select(&:generate_functions)
31
+ mrbtest_objs.concat(g.test_objs)
32
+ mrbtest_objs << test_rbobj
33
+ dep_list = build.gems.tsort_dependencies([g.name], gem_table).select(&:generate_functions)
41
34
 
42
35
  file test_rbobj => g.test_rbireps
43
36
  file g.test_rbireps => [g.test_rbfiles, build.mrbcfile].flatten do |t|
37
+ _pp "GEN", t.name.relative_path
44
38
  mkdir_p File.dirname(t.name)
45
39
  open(t.name, 'w') do |f|
46
40
  g.print_gem_test_header(f)
@@ -58,12 +52,12 @@
58
52
  if test_preload.nil?
59
53
  f.puts %Q[extern const uint8_t mrbtest_assert_irep[];]
60
54
  else
61
- g.build.mrbc.run f, test_preload, "gem_test_irep_#{g.funcname}_preload"
55
+ g.build.mrbc.run f, test_preload, "gem_test_irep_#{g.funcname}_preload", false
62
56
  end
63
57
  g.test_rbfiles.flatten.each_with_index do |rbfile, i|
64
- g.build.mrbc.run f, rbfile, "gem_test_irep_#{g.funcname}_#{i}"
58
+ g.build.mrbc.run f, rbfile, "gem_test_irep_#{g.funcname}_#{i}", false
65
59
  end
66
- f.puts %Q[void mrb_#{g.funcname}_gem_test(mrb_state *mrb);] unless g.test_objs.empty?
60
+ f.puts %Q[void mrb_#{g.funcname}_gem_test(mrb_state *mrb);] if g.custom_test_init?
67
61
  dep_list.each do |d|
68
62
  f.puts %Q[void GENERATED_TMP_mrb_#{d.funcname}_gem_init(mrb_state *mrb);]
69
63
  f.puts %Q[void GENERATED_TMP_mrb_#{d.funcname}_gem_final(mrb_state *mrb);]
@@ -81,7 +75,7 @@
81
75
  f.puts %Q[ ai = mrb_gc_arena_save(mrb);]
82
76
  f.puts %Q[ mrb2 = mrb_open_core(mrb_default_allocf, NULL);]
83
77
  f.puts %Q[ if (mrb2 == NULL) {]
84
- f.puts %Q[ fprintf(stderr, "Invalid mrb_state, exiting \%s", __FUNCTION__);]
78
+ f.puts %Q[ fprintf(stderr, "Invalid mrb_state, exiting \%s", __func__);]
85
79
  f.puts %Q[ exit(EXIT_FAILURE);]
86
80
  f.puts %Q[ }]
87
81
  dep_list.each do |d|
@@ -126,41 +120,19 @@
126
120
  end
127
121
  end
128
122
 
129
- build.gems.each do |v|
130
- mrbtest_objs.concat v.test_objs
131
- end
132
-
133
123
  file mrbtest_lib => mrbtest_objs do |t|
134
124
  build.archiver.run t.name, t.prerequisites
135
125
  end
136
126
 
137
127
  unless build.build_mrbtest_lib_only?
138
128
  file exec => [*driver_objs, mlib, mrbtest_lib, build.libmruby_static] do |t|
139
- gem_flags = build.gems.map { |g| g.linker.flags }
140
- gem_flags_before_libraries = build.gems.map { |g| g.linker.flags_before_libraries }
141
- gem_flags_after_libraries = build.gems.map { |g| g.linker.flags_after_libraries }
142
- gem_libraries = build.gems.map { |g| g.linker.libraries }
143
- gem_library_paths = build.gems.map { |g| g.linker.library_paths }
144
- build.linker.run t.name, t.prerequisites, gem_libraries, gem_library_paths, gem_flags,
145
- gem_flags_before_libraries, gem_flags_after_libraries
129
+ build.linker.run t.name, t.prerequisites, *build.gems.linker_attrs
146
130
  end
147
131
  end
148
132
 
149
- # store the last gem selection and make the re-build
150
- # of the test gem depending on a change to the gem
151
- # selection
152
- active_gems_path = "#{build_dir}/active_gems_path.lst"
153
- active_gem_list = File.read active_gems_path if File.exist? active_gems_path
154
- current_gem_list = build.gems.map(&:name).join("\n")
155
- task active_gems_path do |_t|
156
- mkdir_p File.dirname(active_gems_path)
157
- File.write active_gems_path, current_gem_list
158
- end
159
- file clib => active_gems_path if active_gem_list != current_gem_list
160
-
161
133
  file mlib => clib
162
- file clib => [build.mrbcfile, __FILE__] do |_t|
163
- _pp "GEN", "*.rb", "#{clib.relative_path}"
134
+ file clib => ["#{build.build_dir}/mrbgems/active_gems.txt", build.mrbcfile, __FILE__] do |_t|
135
+ _pp "GEN", clib.relative_path
164
136
  mkdir_p File.dirname(clib)
165
137
  open(clib, 'w') do |f|
166
138
  f.puts %Q[/*]