script_core 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (381) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +8 -6
  4. data/.ruby-version +1 -1
  5. data/Gemfile +2 -1
  6. data/bin/sandbox +1 -1
  7. data/ext/enterprise_script_service/Rakefile +1 -1
  8. data/ext/enterprise_script_service/flags.rb +5 -0
  9. data/ext/enterprise_script_service/libseccomp/CHANGELOG +15 -0
  10. data/ext/enterprise_script_service/libseccomp/CREDITS +3 -0
  11. data/ext/enterprise_script_service/libseccomp/Makefile.am +1 -1
  12. data/ext/enterprise_script_service/libseccomp/README.md +1 -1
  13. data/ext/enterprise_script_service/libseccomp/SECURITY.md +45 -0
  14. data/ext/enterprise_script_service/libseccomp/configure.ac +3 -3
  15. data/ext/enterprise_script_service/libseccomp/doc/admin/MAINTAINER_PROCESS.md +95 -0
  16. data/ext/enterprise_script_service/libseccomp/{RELEASE_PROCESS.md → doc/admin/RELEASE_PROCESS.md} +9 -1
  17. data/ext/enterprise_script_service/libseccomp/include/Makefile.am +1 -1
  18. data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +2292 -0
  19. data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +3 -1065
  20. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +35 -3
  21. data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +35 -3
  22. data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +43 -11
  23. data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +33 -1
  24. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +33 -1
  25. data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +34 -2
  26. data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +43 -11
  27. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +44 -12
  28. data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +46 -14
  29. data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +142 -18
  30. data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +47 -15
  31. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +143 -17
  32. data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +33 -1
  33. data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +94 -12
  34. data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +142 -19
  35. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +33 -1
  36. data/ext/enterprise_script_service/libseccomp/src/db.c +1 -0
  37. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +10 -3
  38. data/ext/enterprise_script_service/libseccomp/src/python/Makefile.am +4 -4
  39. data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +2 -0
  40. data/ext/enterprise_script_service/libseccomp/tests/.gitignore +1 -0
  41. data/ext/enterprise_script_service/libseccomp/tests/50-sim-hash_collision.c +98 -0
  42. data/ext/enterprise_script_service/libseccomp/tests/50-sim-hash_collision.py +61 -0
  43. data/ext/enterprise_script_service/libseccomp/tests/50-sim-hash_collision.tests +18 -0
  44. data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +6 -3
  45. data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -2
  46. data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -0
  47. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +2 -0
  48. data/ext/enterprise_script_service/mruby-mpdecimal/src/ext.c +1 -1
  49. data/ext/enterprise_script_service/mruby/.gitignore +2 -2
  50. data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +10 -3
  51. data/ext/enterprise_script_service/mruby/Doxyfile +2408 -0
  52. data/ext/enterprise_script_service/mruby/README.md +21 -8
  53. data/ext/enterprise_script_service/mruby/Rakefile +4 -13
  54. data/ext/enterprise_script_service/mruby/appveyor_config.rb +1 -1
  55. data/ext/enterprise_script_service/mruby/build_config.rb +3 -3
  56. data/ext/enterprise_script_service/mruby/doc/guides/compile.md +42 -42
  57. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
  58. data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +45 -6
  59. data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +5 -0
  60. data/ext/enterprise_script_service/mruby/doc/limitations.md +88 -38
  61. data/ext/enterprise_script_service/mruby/doc/mruby_logo_red_icon.png +0 -0
  62. data/ext/enterprise_script_service/mruby/doc/opcode.md +94 -94
  63. data/ext/enterprise_script_service/mruby/include/mrbconf.h +74 -11
  64. data/ext/enterprise_script_service/mruby/include/mruby.h +242 -146
  65. data/ext/enterprise_script_service/mruby/include/mruby/array.h +7 -7
  66. data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +2 -9
  67. data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +11 -10
  68. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +104 -69
  69. data/ext/enterprise_script_service/mruby/include/mruby/class.h +7 -5
  70. data/ext/enterprise_script_service/mruby/include/mruby/common.h +9 -7
  71. data/ext/enterprise_script_service/mruby/include/mruby/compile.h +6 -6
  72. data/ext/enterprise_script_service/mruby/include/mruby/data.h +5 -5
  73. data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
  74. data/ext/enterprise_script_service/mruby/include/mruby/dump.h +3 -7
  75. data/ext/enterprise_script_service/mruby/include/mruby/error.h +34 -6
  76. data/ext/enterprise_script_service/mruby/include/mruby/gc.h +2 -2
  77. data/ext/enterprise_script_service/mruby/include/mruby/hash.h +4 -11
  78. data/ext/enterprise_script_service/mruby/include/mruby/irep.h +16 -4
  79. data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -4
  80. data/ext/enterprise_script_service/mruby/include/mruby/khash.h +2 -2
  81. data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +41 -7
  82. data/ext/enterprise_script_service/mruby/include/mruby/object.h +8 -9
  83. data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +2 -2
  84. data/ext/enterprise_script_service/mruby/include/mruby/ops.h +6 -6
  85. data/ext/enterprise_script_service/mruby/include/mruby/proc.h +19 -13
  86. data/ext/enterprise_script_service/mruby/include/mruby/range.h +10 -4
  87. data/ext/enterprise_script_service/mruby/include/mruby/re.h +2 -2
  88. data/ext/enterprise_script_service/mruby/include/mruby/string.h +130 -107
  89. data/ext/enterprise_script_service/mruby/include/mruby/throw.h +2 -2
  90. data/ext/enterprise_script_service/mruby/include/mruby/value.h +137 -49
  91. data/ext/enterprise_script_service/mruby/include/mruby/variable.h +3 -5
  92. data/ext/enterprise_script_service/mruby/include/mruby/version.h +24 -10
  93. data/ext/enterprise_script_service/mruby/lib/mruby-core-ext.rb +2 -39
  94. data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +32 -15
  95. data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +63 -17
  96. data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +24 -10
  97. data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +11 -7
  98. data/ext/enterprise_script_service/mruby/lib/mruby/lockfile.rb +81 -0
  99. data/ext/enterprise_script_service/mruby/minirake +27 -11
  100. data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +3 -0
  101. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrbgem.rake +0 -1
  102. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +47 -9
  103. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +3 -3
  104. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +50 -29
  105. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +3 -3
  106. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +2 -2
  107. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +3 -3
  108. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +2 -2
  109. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +1 -1
  110. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +4 -0
  111. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +28 -1
  112. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +1 -2
  113. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +75 -8
  114. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +134 -90
  115. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +7 -8
  116. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +69 -46
  117. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/keywords +0 -3
  118. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/lex.def +51 -59
  119. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +430 -241
  120. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrbgem.rake +10 -0
  121. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +122 -0
  122. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +249 -0
  123. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/test/complex.rb +153 -0
  124. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/mrblib/chain.rb +19 -17
  125. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/test/enum_chain.rb +41 -9
  126. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +30 -4
  127. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/test/enum.rb +8 -3
  128. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrbgem.rake +0 -1
  129. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +46 -14
  130. data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +51 -2
  131. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +10 -0
  132. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +47 -44
  133. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +2 -2
  134. data/ext/enterprise_script_service/mruby/mrbgems/mruby-exit/src/mruby-exit.c +9 -4
  135. data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +16 -12
  136. data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/test/fiber.rb +1 -1
  137. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +0 -2
  138. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +3 -0
  139. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +3 -7
  140. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +1 -3
  141. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +1 -1
  142. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +0 -5
  143. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +24 -38
  144. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/kernel.rb +16 -0
  145. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +19 -18
  146. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +5 -16
  147. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +54 -42
  148. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +24 -20
  149. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file_test.rb +4 -9
  150. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +41 -35
  151. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +9 -36
  152. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +1 -1
  153. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +9 -27
  154. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +2 -0
  155. data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +5 -2
  156. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +39 -24
  157. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +48 -17
  158. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/method.rb +0 -12
  159. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +134 -101
  160. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +9 -1
  161. data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +1 -5
  162. data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +17 -37
  163. data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +0 -8
  164. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -1
  165. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +15 -1
  166. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +35 -6
  167. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/test/nil.rb +4 -0
  168. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -5
  169. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +1 -1
  170. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +28 -23
  171. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/test/pack.rb +43 -49
  172. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +3 -9
  173. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +6 -9
  174. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.rb +21 -5
  175. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +157 -124
  176. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +72 -26
  177. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +38 -0
  178. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +26 -11
  179. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/test/range.rb +111 -1
  180. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrbgem.rake +5 -0
  181. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +117 -0
  182. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +209 -0
  183. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/test/rational.rb +308 -0
  184. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +1 -1
  185. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +10 -9
  186. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/kernel.c +2 -2
  187. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +22 -24
  188. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrbgem.rake +0 -1
  189. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +8 -4
  190. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +116 -117
  191. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/numeric.rb +29 -0
  192. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/range.rb +26 -0
  193. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/string.rb +32 -50
  194. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +5 -7
  195. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +43 -57
  196. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/test/struct.rb +16 -11
  197. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +2 -2
  198. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +1 -1
  199. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +152 -1
  200. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +4 -3
  201. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +200 -0
  202. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/include/mruby/time.h +2 -1
  203. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +199 -68
  204. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/test/time.rb +81 -46
  205. data/ext/enterprise_script_service/mruby/mrblib/array.rb +14 -16
  206. data/ext/enterprise_script_service/mruby/mrblib/enum.rb +13 -9
  207. data/ext/enterprise_script_service/mruby/mrblib/hash.rb +5 -7
  208. data/ext/enterprise_script_service/mruby/mrblib/kernel.rb +1 -1
  209. data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +4 -4
  210. data/ext/enterprise_script_service/mruby/mrblib/range.rb +1 -1
  211. data/ext/enterprise_script_service/mruby/mrblib/string.rb +55 -112
  212. data/ext/enterprise_script_service/mruby/mruby-source.gemspec +1 -1
  213. data/ext/enterprise_script_service/mruby/oss-fuzz/config/mruby.dict +105 -0
  214. data/ext/enterprise_script_service/mruby/oss-fuzz/config/mruby_fuzzer.options +5 -0
  215. data/ext/enterprise_script_service/mruby/oss-fuzz/config/mruby_proto_fuzzer.options +4 -0
  216. data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_fuzzer.c +18 -0
  217. data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_proto_fuzzer.cpp +44 -0
  218. data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.cpp +455 -0
  219. data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.h +55 -0
  220. data/ext/enterprise_script_service/mruby/oss-fuzz/ruby.proto +201 -0
  221. data/ext/enterprise_script_service/mruby/src/array.c +95 -46
  222. data/ext/enterprise_script_service/mruby/src/backtrace.c +6 -8
  223. data/ext/enterprise_script_service/mruby/src/class.c +370 -278
  224. data/ext/enterprise_script_service/mruby/src/codedump.c +34 -34
  225. data/ext/enterprise_script_service/mruby/src/debug.c +2 -2
  226. data/ext/enterprise_script_service/mruby/src/dump.c +8 -6
  227. data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
  228. data/ext/enterprise_script_service/mruby/src/error.c +157 -55
  229. data/ext/enterprise_script_service/mruby/src/etc.c +13 -46
  230. data/ext/enterprise_script_service/mruby/src/fmt_fp.c +2 -2
  231. data/ext/enterprise_script_service/mruby/src/gc.c +30 -11
  232. data/ext/enterprise_script_service/mruby/src/hash.c +23 -14
  233. data/ext/enterprise_script_service/mruby/src/kernel.c +16 -54
  234. data/ext/enterprise_script_service/mruby/src/load.c +40 -76
  235. data/ext/enterprise_script_service/mruby/src/numeric.c +164 -94
  236. data/ext/enterprise_script_service/mruby/src/object.c +16 -39
  237. data/ext/enterprise_script_service/mruby/src/pool.c +0 -2
  238. data/ext/enterprise_script_service/mruby/src/proc.c +47 -48
  239. data/ext/enterprise_script_service/mruby/src/range.c +22 -35
  240. data/ext/enterprise_script_service/mruby/src/state.c +5 -94
  241. data/ext/enterprise_script_service/mruby/src/string.c +874 -710
  242. data/ext/enterprise_script_service/mruby/src/symbol.c +73 -48
  243. data/ext/enterprise_script_service/mruby/src/variable.c +58 -38
  244. data/ext/enterprise_script_service/mruby/src/vm.c +133 -304
  245. data/ext/enterprise_script_service/mruby/tasks/doc.rake +48 -0
  246. data/ext/enterprise_script_service/mruby/tasks/toolchains/clang.rake +3 -4
  247. data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +20 -19
  248. data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +0 -12
  249. data/ext/enterprise_script_service/mruby/test/assert.rb +186 -25
  250. data/ext/enterprise_script_service/mruby/test/t/array.rb +34 -6
  251. data/ext/enterprise_script_service/mruby/test/t/class.rb +26 -0
  252. data/ext/enterprise_script_service/mruby/test/t/enumerable.rb +2 -2
  253. data/ext/enterprise_script_service/mruby/test/t/float.rb +17 -17
  254. data/ext/enterprise_script_service/mruby/test/t/hash.rb +2 -0
  255. data/ext/enterprise_script_service/mruby/test/t/integer.rb +14 -6
  256. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +38 -19
  257. data/ext/enterprise_script_service/mruby/test/t/module.rb +87 -14
  258. data/ext/enterprise_script_service/mruby/test/t/numeric.rb +65 -23
  259. data/ext/enterprise_script_service/mruby/test/t/range.rb +4 -4
  260. data/ext/enterprise_script_service/mruby/test/t/string.rb +211 -49
  261. data/ext/enterprise_script_service/mruby/test/t/syntax.rb +19 -2
  262. data/ext/enterprise_script_service/mruby/test/t/vformat.rb +92 -0
  263. data/ext/enterprise_script_service/mruby/travis_config.rb +2 -2
  264. data/ext/enterprise_script_service/mruby_config.rb +10 -0
  265. data/ext/enterprise_script_service/mruby_engine.cpp +2 -2
  266. data/ext/enterprise_script_service/mruby_engine.gembox +1 -0
  267. data/ext/enterprise_script_service/msgpack/CHANGELOG.md +14 -0
  268. data/ext/enterprise_script_service/msgpack/Files.cmake +4 -0
  269. data/ext/enterprise_script_service/msgpack/README.md +1 -1
  270. data/ext/enterprise_script_service/msgpack/appveyor.yml +1 -1
  271. data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_msgpack_tuple.hpp.erb +1 -1
  272. data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_msgpack_tuple_decl.hpp.erb +1 -1
  273. data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_zone.hpp.erb +3 -3
  274. data/ext/enterprise_script_service/msgpack/example/boost/asio_send_recv.cpp +1 -1
  275. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp11/timespec.hpp +16 -0
  276. data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/wstring.hpp +15 -0
  277. data/ext/enterprise_script_service/msgpack/include/msgpack/object.h +2 -0
  278. data/ext/enterprise_script_service/msgpack/include/msgpack/pack_template.h +17 -9
  279. data/ext/enterprise_script_service/msgpack/include/msgpack/sysdep.h +27 -16
  280. data/ext/enterprise_script_service/msgpack/include/msgpack/type.hpp +2 -0
  281. data/ext/enterprise_script_service/msgpack/include/msgpack/unpack_template.h +5 -0
  282. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +0 -1
  283. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/check_container_size.hpp +1 -1
  284. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/chrono.hpp +5 -5
  285. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/timespec.hpp +140 -0
  286. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp +32 -32
  287. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp +32 -32
  288. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp +6 -6
  289. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp +10 -10
  290. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/ext.hpp +1 -1
  291. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/fixint.hpp +5 -4
  292. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/int.hpp +40 -13
  293. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/int_decl.hpp +3 -2
  294. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +121 -0
  295. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp03_zone.hpp +3 -3
  296. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp11_zone.hpp +3 -3
  297. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object.hpp +6 -6
  298. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object_fwd.hpp +1 -1
  299. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/pack.hpp +40 -5
  300. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/unpack.hpp +11 -11
  301. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/vrefbuffer.hpp +7 -7
  302. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/zbuffer.hpp +5 -5
  303. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/adaptor/int_decl.hpp +1 -1
  304. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/create_object_visitor.hpp +1 -1
  305. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/parse.hpp +13 -13
  306. data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_parse.hpp +28 -26
  307. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/int_decl.hpp +1 -1
  308. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse.hpp +13 -13
  309. data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
  310. data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +6 -6
  311. data/ext/enterprise_script_service/msgpack/include/msgpack/zone.h +1 -1
  312. data/ext/enterprise_script_service/msgpack/src/objectc.c +83 -148
  313. data/ext/enterprise_script_service/msgpack/src/unpack.c +73 -47
  314. data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +1 -1
  315. data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +5 -0
  316. data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +5 -0
  317. data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +7 -0
  318. data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +7 -0
  319. data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +6 -0
  320. data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +15 -9
  321. data/ext/enterprise_script_service/msgpack/test/buffer.cpp +7 -0
  322. data/ext/enterprise_script_service/msgpack/test/carray.cpp +7 -0
  323. data/ext/enterprise_script_service/msgpack/test/cases.cpp +7 -1
  324. data/ext/enterprise_script_service/msgpack/test/convert.cpp +6 -0
  325. data/ext/enterprise_script_service/msgpack/test/fixint.cpp +7 -1
  326. data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +6 -1
  327. data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +5 -0
  328. data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +8 -2
  329. data/ext/enterprise_script_service/msgpack/test/json.cpp +6 -0
  330. data/ext/enterprise_script_service/msgpack/test/limit.cpp +7 -0
  331. data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +128 -6
  332. data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +7 -2
  333. data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +20 -3
  334. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +159 -0
  335. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +5 -0
  336. data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +8 -3
  337. data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +6 -0
  338. data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +5 -0
  339. data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +23 -18
  340. data/ext/enterprise_script_service/msgpack/test/object.cpp +77 -45
  341. data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +28 -10
  342. data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +25 -18
  343. data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +7 -0
  344. data/ext/enterprise_script_service/msgpack/test/raw.cpp +17 -12
  345. data/ext/enterprise_script_service/msgpack/test/reference.cpp +6 -0
  346. data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +6 -0
  347. data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +6 -0
  348. data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +6 -0
  349. data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +6 -2
  350. data/ext/enterprise_script_service/msgpack/test/streaming.cpp +10 -3
  351. data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +7 -0
  352. data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +6 -0
  353. data/ext/enterprise_script_service/msgpack/test/user_class.cpp +5 -0
  354. data/ext/enterprise_script_service/msgpack/test/version.cpp +6 -0
  355. data/ext/enterprise_script_service/msgpack/test/visitor.cpp +7 -0
  356. data/ext/enterprise_script_service/msgpack/test/zone.cpp +6 -0
  357. data/lib/script_core/version.rb +1 -1
  358. data/lib/tasks/mruby/engine.gembox.example +1 -0
  359. data/lib/tasks/script_core.rake +21 -3
  360. data/spec/dummy/app/helpers/fields_helper.rb +2 -2
  361. data/spec/dummy/mruby/engine.gembox +1 -0
  362. data/spec/script_core_spec.rb +1 -1
  363. metadata +38 -22
  364. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/.gitignore +0 -1
  365. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/.travis.yml +0 -2
  366. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/run_test.rb +0 -26
  367. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/mrblib/kernel.rb +0 -15
  368. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/unbound_method.rb +0 -9
  369. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/.gitignore +0 -5
  370. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/.travis.yml +0 -2
  371. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/packtest.rb +0 -157
  372. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/run_test.rb +0 -26
  373. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/mt19937ar.c +0 -224
  374. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/mt19937ar.h +0 -80
  375. data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.h +0 -12
  376. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.gitignore +0 -4
  377. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis.yml +0 -29
  378. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis_build_config.rb +0 -6
  379. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/Rakefile +0 -29
  380. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/.travis.yml +0 -4
  381. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/run_test.rb +0 -28
@@ -37,6 +37,11 @@ conf.gem :mgem => 'mruby-yaml'
37
37
  conf.gem :mgem => 'yaml' # 'mruby-' prefix could be omitted
38
38
  ```
39
39
 
40
+ For specifying commit hash to checkout use `:checksum_hash` option:
41
+ ```ruby
42
+ conf.gem mgem: 'mruby-redis', checksum_hash: '3446d19fc4a3f9697b5ddbf2a904f301c42f2f4e'
43
+ ```
44
+
40
45
  If there is missing dependencies, mrbgem dependencies solver will reference
41
46
  mrbgem from core or mgem-list.
42
47
 
@@ -14,17 +14,17 @@ This document does not contain a complete list of limitations.
14
14
  Please help to improve it by submitting your findings.
15
15
 
16
16
 
17
- ## ```1/2``` gives ```0.5```
17
+ ## `1/2` gives `0.5`
18
18
 
19
- Since mruby does not have ```Bignum```, bigger integers are represented
20
- by ```Float``` numbers. To enhance interoperability between ```Fixnum```
21
- and ```Float```, mruby provides ```Float#upto``` and other iterating
22
- methods for the ```Float``` class. As a side effect, ```1/2``` gives ```0.5```
23
- not ```0```.
19
+ Since mruby does not have `Bignum`, bigger integers are represented
20
+ by `Float` numbers. To enhance interoperability between `Fixnum`
21
+ and `Float`, mruby provides `Float#upto` and other iterating
22
+ methods for the `Float` class. As a side effect, `1/2` gives `0.5`
23
+ not `0`.
24
24
 
25
- ## ```Array``` passed to ```puts```
25
+ ## `Array` passed to `puts`
26
26
 
27
- Passing an Array to ```puts``` results in different output.
27
+ Passing an Array to `puts` results in different output.
28
28
 
29
29
  ```ruby
30
30
  puts [1,2,3]
@@ -38,15 +38,15 @@ puts [1,2,3]
38
38
  3
39
39
  ```
40
40
 
41
- #### mruby [2.0.1 (2019-4-4)]
41
+ #### mruby [2.1.0 (2019-11-19)]
42
42
 
43
43
  ```
44
44
  [1, 2, 3]
45
45
  ```
46
46
 
47
- ## ```Kernel.raise``` in rescue clause
47
+ ## `Kernel.raise` in rescue clause
48
48
 
49
- ```Kernel.raise``` without arguments does not raise the current exception within
49
+ `Kernel.raise` without arguments does not raise the current exception within
50
50
  a rescue clause.
51
51
 
52
52
  ```ruby
@@ -59,21 +59,21 @@ end
59
59
 
60
60
  #### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)]
61
61
 
62
- ```ZeroDivisionError``` is raised.
62
+ `ZeroDivisionError` is raised.
63
63
 
64
- #### mruby [2.0.1 (2019-4-4)]
64
+ #### mruby [2.1.0 (2019-11-19)]
65
65
 
66
66
  No exception is raised.
67
67
 
68
68
  ## Fiber execution can't cross C function boundary
69
69
 
70
- mruby's ```Fiber``` is implemented in a similar way to Lua's co-routine. This
70
+ mruby's `Fiber` is implemented in a similar way to Lua's co-routine. This
71
71
  results in the consequence that you can't switch context within C functions.
72
- Only exception is ```mrb_fiber_yield``` at return.
72
+ Only exception is `mrb_fiber_yield` at return.
73
73
 
74
- ## ```Array``` does not support instance variables
74
+ ## `Array` does not support instance variables
75
75
 
76
- To reduce memory consumption ```Array``` does not support instance variables.
76
+ To reduce memory consumption `Array` does not support instance variables.
77
77
 
78
78
  ```ruby
79
79
  class Liste < Array
@@ -87,16 +87,16 @@ p Liste.new "foobar"
87
87
 
88
88
  #### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)]
89
89
 
90
- ``` [] ```
90
+ ` [] `
91
91
 
92
- #### mruby [2.0.1 (2019-4-4)]
92
+ #### mruby [2.1.0 (2019-11-19)]
93
93
 
94
- ```ArgumentError``` is raised.
94
+ `ArgumentError` is raised.
95
95
 
96
96
  ## Method visibility
97
97
 
98
98
  For simplicity reasons no method visibility (public/private/protected) is
99
- supported.
99
+ supported. Those methods are defined but they are dummy methods.
100
100
 
101
101
  ```ruby
102
102
  class VisibleTest
@@ -119,17 +119,53 @@ false
119
119
  true
120
120
  ```
121
121
 
122
- #### mruby [2.0.1 (2019-4-4)]
122
+ #### mruby [2.1.0 (2019-11-19)]
123
123
 
124
124
  ```
125
125
  true
126
126
  true
127
127
  ```
128
128
 
129
- ## defined?
129
+ ### Visibility Declaration
130
130
 
131
- The ```defined?``` keyword is considered too complex to be fully
132
- implemented. It is recommended to use ```const_defined?``` and
131
+ The declaration form of following visibility methods are not implemented.
132
+
133
+ * `public`
134
+ * `private`
135
+ * `protected`
136
+ * `module_function`
137
+
138
+ Especially, `module_function` method is not dummy, but no declaration form.
139
+
140
+ ```
141
+ module TestModule
142
+ module_function
143
+ def test_func
144
+ p 'test_func called'
145
+ end
146
+
147
+ test_func
148
+ end
149
+
150
+ p 'ok'
151
+ ```
152
+
153
+ #### Ruby [ruby 2.5.5p157 (2019-03-15 revision 67260)]
154
+
155
+ ```
156
+ ok
157
+ ```
158
+
159
+ #### mruby [2.1.0 (2019-11-19)]
160
+
161
+ ```
162
+ test.rb:8: undefined method 'test_func' (NoMethodError)
163
+ ```
164
+
165
+ ## `defined?`
166
+
167
+ The `defined?` keyword is considered too complex to be fully
168
+ implemented. It is recommended to use `const_defined?` and
133
169
  other reflection methods instead.
134
170
 
135
171
  ```ruby
@@ -142,11 +178,11 @@ defined?(Foo)
142
178
  nil
143
179
  ```
144
180
 
145
- #### mruby [2.0.1 (2019-4-4)]
181
+ #### mruby [2.1.0 (2019-11-19)]
146
182
 
147
- ```NameError``` is raised.
183
+ `NameError` is raised.
148
184
 
149
- ## ```alias``` on global variables
185
+ ## `alias` on global variables
150
186
 
151
187
  Aliasing a global variable works in CRuby but is not part
152
188
  of the ISO standard.
@@ -157,9 +193,9 @@ alias $a $__a__
157
193
 
158
194
  #### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)]
159
195
 
160
- ``` nil ```
196
+ ` nil `
161
197
 
162
- #### mruby [2.0.1 (2019-4-4)]
198
+ #### mruby [2.1.0 (2019-11-19)]
163
199
 
164
200
  Syntax error
165
201
 
@@ -178,15 +214,15 @@ end
178
214
 
179
215
  #### Ruby [ruby 2.0.0p645 (2015-04-13 revision 50299)]
180
216
 
181
- ```ArgumentError``` is raised.
182
- The re-defined ```+``` operator does not accept any arguments.
217
+ `ArgumentError` is raised.
218
+ The re-defined `+` operator does not accept any arguments.
183
219
 
184
- #### mruby [2.0.1 (2019-4-4)]
220
+ #### mruby [2.1.0 (2019-11-19)]
185
221
 
186
- ``` 'ab' ```
222
+ ` 'ab' `
187
223
  Behavior of the operator wasn't changed.
188
224
 
189
- ## Kernel#binding is not supported
225
+ ## `Kernel#binding` is not supported
190
226
 
191
227
  `Kernel#binding` method is not supported.
192
228
 
@@ -197,7 +233,7 @@ $ ruby -e 'puts Proc.new {}.binding'
197
233
  #<Binding:0x00000e9deabb9950>
198
234
  ```
199
235
 
200
- #### mruby [2.0.1 (2019-4-4)]
236
+ #### mruby [2.1.0 (2019-11-19)]
201
237
 
202
238
  ```
203
239
  $ ./bin/mruby -e 'puts Proc.new {}.binding'
@@ -219,7 +255,7 @@ $ ruby -e 'def m(*r,**k) p [r,k] end; m("a"=>1,:b=>2)'
219
255
  [[{"a"=>1}], {:b=>2}]
220
256
  ```
221
257
 
222
- #### mruby [mruby 2.0.1]
258
+ #### mruby [mruby 2.1.0]
223
259
 
224
260
  ```
225
261
  $ ./bin/mruby -e 'def m(*r,**k) p [r,k] end; m("a"=>1,:b=>2)'
@@ -238,7 +274,7 @@ Destructured arguments (`b` and `c` in above example) cannot be accessed
238
274
  from the default expression of optional arguments and keyword arguments,
239
275
  since actual assignment is done after the evaluation of those default
240
276
  expressions. Thus:
241
-
277
+
242
278
  ```ruby
243
279
  def f(a,(b,c),d=b)
244
280
  p [a,b,c,d]
@@ -247,3 +283,17 @@ f(1,[2,3])
247
283
  ```
248
284
 
249
285
  CRuby gives `[1,2,3,nil]`. mruby raises `NoMethodError` for `b`.
286
+
287
+ ## `nil?` redefinition in conditional expressions
288
+
289
+ Redefinition of `nil?` is ignored in conditional expressions.
290
+
291
+ ```ruby
292
+ a = "a"
293
+ def a.nil?
294
+ true
295
+ end
296
+ puts(a.nil? ? "truthy" : "falsy")
297
+ ```
298
+
299
+ Ruby outputs `falsy`. mruby outputs `truthy`.
@@ -31,97 +31,97 @@ with `"`, either `OP_EXT1` or `OP_EXT2` or `OP_EXT2` can be prefixed.
31
31
 
32
32
  ## table.1 Instruction Table
33
33
 
34
- |Instruction Name |Operand type |Semantics
35
- |-----------------|-------------|-----------------
36
- |OP_NOP | - |
37
- |OP_MOVE" |BB |R(a) = R(b)
38
- |OP_LOADL" |BB |R(a) = Pool(b)
39
- |OP_LOADI" |BsB |R(a) = mrb_int(b)
40
- |OP_LOADI_0' |B |R(a) = 0
41
- |OP_LOADI_1' |B |R(a) = 1
42
- |OP_LOADI_2' |B |R(a) = 2
43
- |OP_LOADI_3' |B |R(a) = 3
44
- |OP_LOADSYM" |BB |R(a) = Syms(b)
45
- |OP_LOADNIL' |B |R(a) = nil
46
- |OP_LOADSELF' |B |R(a) = self
47
- |OP_LOADT' |B |R(a) = true
48
- |OP_LOADF' |B |R(a) = false
49
- |OP_GETGV" |BB |R(a) = getglobal(Syms(b))
50
- |OP_SETGV" |BB |setglobal(Syms(b), R(a))
51
- |OP_GETSV" |BB |R(a) = Special[b]
52
- |OP_SETSV" |BB |Special[b] = R(a)
53
- |OP_GETIV" |BB |R(a) = ivget(Syms(b))
54
- |OP_SETIV" |BB |ivset(Syms(b),R(a))
55
- |OP_GETCV" |BB |R(a) = cvget(Syms(b))
56
- |OP_SETCV" |BB |cvset(Syms(b),R(a))
57
- |OP_GETCONST" |BB |R(a) = constget(Syms(b))
58
- |OP_SETCONST" |BB |constset(Syms(b),R(a))
59
- |OP_GETMCNST" |BB |R(a) = R(a)::Syms(b)
60
- |OP_SETMCNST" |BB |R(a+1)::Syms(b) = R(a)
61
- |OP_GETUPVAR' |BBB |R(a) = uvget(b,c)
62
- |OP_SETUPVAR' |BBB |uvset(b,c,R(a))
63
- |OP_JMP |S |pc+=a
64
- |OP_JMPIF' |SB |if R(b) pc+=a
65
- |OP_JMPNOT' |SB |if !R(b) pc+=a
66
- |OP_ONERR |sS |rescue_push(pc+a)
67
- |OP_EXCEPT' |B |R(a) = exc
68
- |OP_RESCUE" |BB |R(b) = R(a).isa?(R(b))
69
- |OP_POPERR |B |a.times{rescue_pop()}
70
- |OP_RAISE' |B |raise(R(a))
71
- |OP_EPUSH' |B |ensure_push(SEQ[a])
72
- |OP_EPOP |B |A.times{ensure_pop().call}
73
- |OP_SENDV" |BB |R(a) = call(R(a),Syms(b),*R(a+1))
74
- |OP_SENDVB" |BB |R(a) = call(R(a),Syms(b),*R(a+1),&R(a+2))
75
- |OP_SEND" |BBB |R(a) = call(R(a),Syms(b),R(a+1),...,R(a+c))
76
- |OP_SENDB" |BBB |R(a) = call(R(a),Syms(Bx),R(a+1),...,R(a+c),&R(a+c+1))
77
- |OP_CALL' |B |R(a) = self.call(frame.argc, frame.argv)
78
- |OP_SUPER' |BB |R(a) = super(R(a+1),... ,R(a+b+1))
79
- |OP_ARGARY' |BS |R(a) = argument array (16=5:1:5:1:4)
80
- |OP_ENTER |W |arg setup according to flags (23=5:5:1:5:5:1:1)
81
- |OP_KARG" |BB |R(a) = kdict[Syms(Bx)] # todo
82
- |OP_KARG2" |BB |R(a) = kdict[Syms(Bx)]; kdict.rm(Syms(b)) # todo
83
- |OP_RETURN' |B |return R(a) (normal)
84
- |OP_RETURN_BLK' |B |return R(a) (in-block return)
85
- |OP_BREAK' |B |break R(a)
86
- |OP_BLKPUSH' |BS |R(a) = block (16=5:1:5:1:4)
87
- |OP_ADD" |BB |R(a) = R(a)+R(a+1)
88
- |OP_ADDI" |BBB |R(a) = R(a)+mrb_int(c)
89
- |OP_SUB" |BB |R(a) = R(a)-R(a+1)
90
- |OP_SUBI" |BB |R(a) = R(a)-C
91
- |OP_MUL" |BB |R(a) = R(a)*R(a+1)
92
- |OP_DIV" |BB |R(a) = R(a)/R(a+1)
93
- |OP_EQ" |BB |R(a) = R(a)==R(a+1)
94
- |OP_LT" |BB |R(a) = R(a)<R(a+1)
95
- |OP_LE" |BB |R(a) = R(a)<=R(a+1)
96
- |OP_GT" |BB |R(a) = R(a)>R(a+1)
97
- |OP_GE" |BB |R(a) = R(a)>=R(a+1)
98
- |OP_ARRAY' |BB |R(a) = ary_new(R(a),R(a+1)..R(a+b))
99
- |OP_ARRAY2" |BB |R(a) = ary_new(R(b),R(b+1)..R(b+c))
100
- |OP_ARYCAT' |B |ary_cat(R(a),R(a+1))
101
- |OP_ARYPUSH' |B |ary_push(R(a),R(a+1))
102
- |OP_AREF' |BB |R(a) = R(a)[b]
103
- |OP_ASET' |BB |R(a)[b] = R(a+1)
104
- |OP_APOST' |BB |*R(a),R(A+1)..R(A+C) = R(a)[B..]
105
- |OP_STRING" |BB |R(a) = str_dup(Lit(b))
106
- |OP_STRCAT' |B |str_cat(R(a),R(a+1))
107
- |OP_HASH' |BB |R(a) = hash_new(R(a),R(a+1)..R(a+b))
108
- |OP_HASHADD' |BB |R(a) = hash_push(R(a),R(a+1)..R(a+b))
109
- |OP_LAMBDA" |BB |R(a) = lambda(SEQ[b],OP_L_LAMBDA)
110
- |OP_BLOCK" |BB |R(a) = lambda(SEQ[b],OP_L_BLOCK)
111
- |OP_METHOD" |BB |R(a) = lambda(SEQ[b],OP_L_METHOD)
112
- |OP_RANGE_INC' |B |R(a) = range_new(R(a),R(a+1),FALSE)
113
- |OP_RANGE_EXC' |B |R(a) = range_new(R(a),R(a+1),TRUE)
114
- |OP_OCLASS' |B |R(a) = ::Object
115
- |OP_CLASS" |BB |R(a) = newclass(R(a),Syms(b),R(a+1))
116
- |OP_MODULE" |BB |R(a) = newmodule(R(a),Syms(b))
117
- |OP_EXEC" |BB |R(a) = blockexec(R(a),SEQ[b])
118
- |OP_DEF" |BB |R(a).newmethod(Syms(b),R(a+1))
119
- |OP_ALIAS' |B |alias_method(R(a),R(a+1),R(a+2))
120
- |OP_UNDEF" |BB |undef_method(R(a),Syms(b))
121
- |OP_SCLASS' |B |R(a) = R(a).singleton_class
122
- |OP_TCLASS' |B |R(a) = target_class
123
- |OP_ERR' |B |raise(RuntimeError, Lit(Bx))
124
- |OP_EXT1 |- |make 1st operand 16bit
125
- |OP_EXT2 |- |make 2nd operand 16bit
126
- |OP_EXT3 |- |make 1st and 2nd operands 16bit
127
- |OP_STOP |- |stop VM
34
+ | Instruction Name | Operand type | Semantics |
35
+ |:-----------------|--------------|---------------------|
36
+ | OP_NOP | - | |
37
+ | OP_MOVE" | BB | R(a) = R(b)
38
+ | OP_LOADL" | BB | R(a) = Pool(b)
39
+ | OP_LOADI" | BsB | R(a) = mrb_int(b)
40
+ | OP_LOADI_0' | B | R(a) = 0
41
+ | OP_LOADI_1' | B | R(a) = 1
42
+ | OP_LOADI_2' | B | R(a) = 2
43
+ | OP_LOADI_3' | B | R(a) = 3
44
+ | OP_LOADSYM" | BB | R(a) = Syms(b)
45
+ | OP_LOADNIL' | B | R(a) = nil
46
+ | OP_LOADSELF' | B | R(a) = self
47
+ | OP_LOADT' | B | R(a) = true
48
+ | OP_LOADF' | B | R(a) = false
49
+ | OP_GETGV" | BB | R(a) = getglobal(Syms(b))
50
+ | OP_SETGV" | BB | setglobal(Syms(b), R(a))
51
+ | OP_GETSV" | BB | R(a) = Special[b]
52
+ | OP_SETSV" | BB | Special[b] = R(a)
53
+ | OP_GETIV" | BB | R(a) = ivget(Syms(b))
54
+ | OP_SETIV" | BB | ivset(Syms(b),R(a))
55
+ | OP_GETCV" | BB | R(a) = cvget(Syms(b))
56
+ | OP_SETCV" | BB | cvset(Syms(b),R(a))
57
+ | OP_GETCONST" | BB | R(a) = constget(Syms(b))
58
+ | OP_SETCONST" | BB | constset(Syms(b),R(a))
59
+ | OP_GETMCNST" | BB | R(a) = R(a)::Syms(b)
60
+ | OP_SETMCNST" | BB | R(a+1)::Syms(b) = R(a)
61
+ | OP_GETUPVAR' | BBB | R(a) = uvget(b,c)
62
+ | OP_SETUPVAR' | BBB | uvset(b,c,R(a))
63
+ | OP_JMP | S | pc+=a
64
+ | OP_JMPIF' | SB | if R(b) pc+=a
65
+ | OP_JMPNOT' | SB | if !R(b) pc+=a
66
+ | OP_ONERR | sS | rescue_push(pc+a)
67
+ | OP_EXCEPT' | B | R(a) = exc
68
+ | OP_RESCUE" | BB | R(b) = R(a).isa?(R(b))
69
+ | OP_POPERR | B | a.times{rescue_pop()}
70
+ | OP_RAISE' | B | raise(R(a))
71
+ | OP_EPUSH' | B | ensure_push(SEQ[a])
72
+ | OP_EPOP | B | A.times{ensure_pop().call}
73
+ | OP_SENDV" | BB | R(a) = call(R(a),Syms(b),*R(a+1))
74
+ | OP_SENDVB" | BB | R(a) = call(R(a),Syms(b),*R(a+1),&R(a+2))
75
+ | OP_SEND" | BBB | R(a) = call(R(a),Syms(b),R(a+1),...,R(a+c))
76
+ | OP_SENDB" | BBB | R(a) = call(R(a),Syms(Bx),R(a+1),...,R(a+c),&R(a+c+1))
77
+ | OP_CALL' | B | R(a) = self.call(frame.argc, frame.argv)
78
+ | OP_SUPER' | BB | R(a) = super(R(a+1),... ,R(a+b+1))
79
+ | OP_ARGARY' | BS | R(a) = argument array (16=5:1:5:1:4)
80
+ | OP_ENTER | W | arg setup according to flags (23=5:5:1:5:5:1:1)
81
+ | OP_KARG" | BB | R(a) = kdict[Syms(Bx)] # todo
82
+ | OP_KARG2" | BB | R(a) = kdict[Syms(Bx)]; kdict.rm(Syms(b)) # todo
83
+ | OP_RETURN' | B | return R(a) (normal)
84
+ | OP_RETURN_BLK' | B | return R(a) (in-block return)
85
+ | OP_BREAK' | B | break R(a)
86
+ | OP_BLKPUSH' | BS | R(a) = block (16=5:1:5:1:4)
87
+ | OP_ADD" | BB | R(a) = R(a)+R(a+1)
88
+ | OP_ADDI" | BBB | R(a) = R(a)+mrb_int(c)
89
+ | OP_SUB" | BB | R(a) = R(a)-R(a+1)
90
+ | OP_SUBI" | BB | R(a) = R(a)-C
91
+ | OP_MUL" | BB | R(a) = R(a)*R(a+1)
92
+ | OP_DIV" | BB | R(a) = R(a)/R(a+1)
93
+ | OP_EQ" | BB | R(a) = R(a)==R(a+1)
94
+ | OP_LT" | BB | R(a) = R(a)<R(a+1)
95
+ | OP_LE" | BB | R(a) = R(a)<=R(a+1)
96
+ | OP_GT" | BB | R(a) = R(a)>R(a+1)
97
+ | OP_GE" | BB | R(a) = R(a)>=R(a+1)
98
+ | OP_ARRAY' | BB | R(a) = ary_new(R(a),R(a+1)..R(a+b))
99
+ | OP_ARRAY2" | BB | R(a) = ary_new(R(b),R(b+1)..R(b+c))
100
+ | OP_ARYCAT' | B | ary_cat(R(a),R(a+1))
101
+ | OP_ARYPUSH' | B | ary_push(R(a),R(a+1))
102
+ | OP_AREF' | BB | R(a) = R(a)[b]
103
+ | OP_ASET' | BB | R(a)[b] = R(a+1)
104
+ | OP_APOST' | BB | *R(a),R(A+1)..R(A+C) = R(a)[B..]
105
+ | OP_STRING" | BB | R(a) = str_dup(Lit(b))
106
+ | OP_STRCAT' | B | str_cat(R(a),R(a+1))
107
+ | OP_HASH' | BB | R(a) = hash_new(R(a),R(a+1)..R(a+b))
108
+ | OP_HASHADD' | BB | R(a) = hash_push(R(a),R(a+1)..R(a+b))
109
+ | OP_LAMBDA" | BB | R(a) = lambda(SEQ[b],OP_L_LAMBDA)
110
+ | OP_BLOCK" | BB | R(a) = lambda(SEQ[b],OP_L_BLOCK)
111
+ | OP_METHOD" | BB | R(a) = lambda(SEQ[b],OP_L_METHOD)
112
+ | OP_RANGE_INC' | B | R(a) = range_new(R(a),R(a+1),FALSE)
113
+ | OP_RANGE_EXC' | B | R(a) = range_new(R(a),R(a+1),TRUE)
114
+ | OP_OCLASS' | B | R(a) = ::Object
115
+ | OP_CLASS" | BB | R(a) = newclass(R(a),Syms(b),R(a+1))
116
+ | OP_MODULE" | BB | R(a) = newmodule(R(a),Syms(b))
117
+ | OP_EXEC" | BB | R(a) = blockexec(R(a),SEQ[b])
118
+ | OP_DEF" | BB | R(a).newmethod(Syms(b),R(a+1))
119
+ | OP_ALIAS' | B | alias_method(R(a),R(a+1),R(a+2))
120
+ | OP_UNDEF" | BB | undef_method(R(a),Syms(b))
121
+ | OP_SCLASS' | B | R(a) = R(a).singleton_class
122
+ | OP_TCLASS' | B | R(a) = target_class
123
+ | OP_ERR' | B | raise(RuntimeError, Lit(Bx))
124
+ | OP_EXT1 | - | make 1st operand 16bit
125
+ | OP_EXT2 | - | make 2nd operand 16bit
126
+ | OP_EXT3 | - | make 1st and 2nd operands 16bit
127
+ | OP_STOP | - | stop VM
@@ -36,15 +36,19 @@
36
36
  /* size of the method cache (need to be the power of 2) */
37
37
  //#define MRB_METHOD_CACHE_SIZE (1<<7)
38
38
 
39
- /* add -DMRB_METHOD_TABLE_INLINE to reduce the size of method table */
40
- /* MRB_METHOD_TABLE_INLINE requires LSB of function pointers to be zero */
41
- /* you might need to specify --falign-functions=n (where n>1) */
42
- //#define MRB_METHOD_TABLE_INLINE
39
+ /* add -DMRB_METHOD_T_STRUCT on machines that use higher bits of pointers */
40
+ /* no MRB_METHOD_T_STRUCT requires highest 2 bits of function pointers to be zero */
41
+ //#define MRB_METHOD_T_STRUCT
43
42
 
44
- /* add -DMRB_INT16 to use 16bit integer for mrb_int; conflict with MRB_INT64 */
43
+ /* add -DMRB_INT16 to use 16bit integer for mrb_int; conflict with MRB_INT32 and MRB_INT64 */
45
44
  //#define MRB_INT16
46
45
 
47
- /* add -DMRB_INT64 to use 64bit integer for mrb_int; conflict with MRB_INT16 */
46
+ /* add -DMRB_INT32 to use 32bit integer for mrb_int; conflict with MRB_INT16 and MRB_INT64;
47
+ Default for 32-bit CPU mode. */
48
+ //#define MRB_INT32
49
+
50
+ /* add -DMRB_INT64 to use 64bit integer for mrb_int; conflict with MRB_INT16 and MRB_INT32;
51
+ Default for 64-bit CPU mode. */
48
52
  //#define MRB_INT64
49
53
 
50
54
  /* if no specific integer type is chosen */
@@ -81,12 +85,13 @@
81
85
  /* number of object per heap page */
82
86
  //#define MRB_HEAP_PAGE_SIZE 1024
83
87
 
84
- /* if _etext and _edata available, mruby can reduce memory used by symbols */
85
- //#define MRB_USE_ETEXT_EDATA
88
+ /* if __ehdr_start is available, mruby can reduce memory used by symbols */
89
+ //#define MRB_USE_LINK_TIME_RO_DATA_P
86
90
 
87
- /* do not use __init_array_start to determine readonly data section;
88
- effective only when MRB_USE_ETEXT_EDATA is defined */
89
- //#define MRB_NO_INIT_ARRAY_START
91
+ /* if MRB_USE_LINK_TIME_RO_DATA_P does not work,
92
+ you can try mrb_ro_data_p() that you have implemented yourself in any file;
93
+ prototype is `mrb_bool mrb_ro_data_p(const char *ptr)` */
94
+ //#define MRB_USE_CUSTOM_RO_DATA_P
90
95
 
91
96
  /* turn off generational GC by default */
92
97
  //#define MRB_GC_TURN_OFF_GENERATIONAL
@@ -146,4 +151,62 @@
146
151
  # define TRUE 1
147
152
  #endif
148
153
 
154
+ /*
155
+ ** mruby tuning profiles
156
+ **/
157
+
158
+ /* A profile for micro controllers */
159
+ #if defined(MRB_CONSTRAINED_BASELINE_PROFILE)
160
+ # ifndef KHASH_DEFAULT_SIZE
161
+ # define KHASH_DEFAULT_SIZE 16
162
+ # endif
163
+
164
+ # ifndef MRB_STR_BUF_MIN_SIZE
165
+ # define MRB_STR_BUF_MIN_SIZE 32
166
+ # endif
167
+
168
+ # ifndef MRB_HEAP_PAGE_SIZE
169
+ # define MRB_HEAP_PAGE_SIZE 256
170
+ # endif
171
+
172
+ /* A profile for default mruby */
173
+ #elif defined(MRB_BASELINE_PROFILE)
174
+
175
+ /* A profile for desktop computers or workstations; rich memory! */
176
+ #elif defined(MRB_MAIN_PROFILE)
177
+ # ifndef MRB_METHOD_CACHE
178
+ # define MRB_METHOD_CACHE
179
+ # endif
180
+
181
+ # ifndef MRB_METHOD_CACHE_SIZE
182
+ # define MRB_METHOD_CACHE_SIZE (1<<10)
183
+ # endif
184
+
185
+ # ifndef MRB_IV_SEGMENT_SIZE
186
+ # define MRB_IV_SEGMENT_SIZE 32
187
+ # endif
188
+
189
+ # ifndef MRB_HEAP_PAGE_SIZE
190
+ # define MRB_HEAP_PAGE_SIZE 4096
191
+ # endif
192
+
193
+ /* A profile for server; mruby vm is long life */
194
+ #elif defined(MRB_HIGH_PROFILE)
195
+ # ifndef MRB_METHOD_CACHE
196
+ # define MRB_METHOD_CACHE
197
+ # endif
198
+
199
+ # ifndef MRB_METHOD_CACHE_SIZE
200
+ # define MRB_METHOD_CACHE_SIZE (1<<12)
201
+ # endif
202
+
203
+ # ifndef MRB_IV_SEGMENT_SIZE
204
+ # define MRB_IV_SEGMENT_SIZE 64
205
+ # endif
206
+
207
+ # ifndef MRB_HEAP_PAGE_SIZE
208
+ # define MRB_HEAP_PAGE_SIZE 4096
209
+ # endif
210
+ #endif
211
+
149
212
  #endif /* MRUBYCONF_H */