script_core 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (224) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -1
  3. data/ext/enterprise_script_service/libseccomp/.travis.yml +3 -5
  4. data/ext/enterprise_script_service/libseccomp/CHANGELOG +10 -0
  5. data/ext/enterprise_script_service/libseccomp/CREDITS +3 -0
  6. data/ext/enterprise_script_service/libseccomp/README.md +18 -0
  7. data/ext/enterprise_script_service/libseccomp/configure.ac +1 -1
  8. data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +7 -0
  9. data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +16 -0
  10. data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +16 -0
  11. data/ext/enterprise_script_service/libseccomp/tests/.gitignore +1 -0
  12. data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +3 -3
  13. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
  14. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
  15. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
  16. data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +6 -3
  17. data/ext/enterprise_script_service/libseccomp/tests/regression +4 -0
  18. data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
  19. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +2 -0
  20. data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +106 -0
  21. data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +24 -0
  22. data/ext/enterprise_script_service/mruby/.gitignore +3 -0
  23. data/ext/enterprise_script_service/mruby/.travis.yml +6 -9
  24. data/ext/enterprise_script_service/mruby/AUTHORS +1 -0
  25. data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
  26. data/ext/enterprise_script_service/mruby/LICENSE +1 -1
  27. data/ext/enterprise_script_service/mruby/README.md +6 -2
  28. data/ext/enterprise_script_service/mruby/appveyor.yml +9 -12
  29. data/ext/enterprise_script_service/mruby/appveyor_config.rb +9 -0
  30. data/ext/enterprise_script_service/mruby/build_config.rb +6 -6
  31. data/ext/enterprise_script_service/mruby/doc/guides/compile.md +6 -2
  32. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
  33. data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +4 -8
  34. data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
  35. data/ext/enterprise_script_service/mruby/doc/opcode.md +108 -95
  36. data/ext/enterprise_script_service/mruby/examples/targets/build_config_ArduinoDue.rb +2 -2
  37. data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelEdison.rb +2 -2
  38. data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelGalileo.rb +2 -2
  39. data/ext/enterprise_script_service/mruby/examples/targets/build_config_RX630.rb +2 -2
  40. data/ext/enterprise_script_service/mruby/examples/targets/build_config_chipKITMax32.rb +2 -2
  41. data/ext/enterprise_script_service/mruby/examples/targets/build_config_dreamcast_shelf.rb +108 -0
  42. data/ext/enterprise_script_service/mruby/include/mrbconf.h +10 -7
  43. data/ext/enterprise_script_service/mruby/include/mruby.h +11 -9
  44. data/ext/enterprise_script_service/mruby/include/mruby/array.h +4 -0
  45. data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +11 -2
  46. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -9
  47. data/ext/enterprise_script_service/mruby/include/mruby/common.h +10 -0
  48. data/ext/enterprise_script_service/mruby/include/mruby/compile.h +11 -3
  49. data/ext/enterprise_script_service/mruby/include/mruby/dump.h +1 -17
  50. data/ext/enterprise_script_service/mruby/include/mruby/irep.h +10 -0
  51. data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
  52. data/ext/enterprise_script_service/mruby/include/mruby/khash.h +23 -5
  53. data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +1 -0
  54. data/ext/enterprise_script_service/mruby/include/mruby/ops.h +3 -2
  55. data/ext/enterprise_script_service/mruby/include/mruby/string.h +2 -1
  56. data/ext/enterprise_script_service/mruby/include/mruby/value.h +7 -12
  57. data/ext/enterprise_script_service/mruby/include/mruby/version.h +4 -4
  58. data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +2 -30
  59. data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +21 -46
  60. data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +9 -0
  61. data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
  62. data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +7 -0
  63. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +0 -31
  64. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
  65. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +5 -2
  66. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +0 -1
  67. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +5 -1
  68. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +5 -1
  69. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +7 -11
  70. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +0 -1
  71. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +6 -2
  72. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
  73. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +6 -1
  74. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +76 -48
  75. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +107 -32
  76. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13153 -0
  77. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +13 -15
  78. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
  79. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +2 -213
  80. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
  81. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +1 -3
  82. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +39 -7
  83. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
  84. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
  85. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +7 -12
  86. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +76 -30
  87. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +9 -10
  88. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +323 -120
  89. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +18 -12
  90. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +32 -0
  91. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +57 -49
  92. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +15 -17
  93. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +9 -0
  94. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +1 -1
  95. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +3 -12
  96. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +113 -10
  97. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +5 -1
  98. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +2 -2
  99. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +9 -9
  100. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +1 -1
  101. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
  102. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
  103. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +61 -24
  104. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +5 -23
  105. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +3 -3
  106. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +1 -1
  107. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +1 -0
  108. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +6 -5
  109. data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -3
  110. data/ext/enterprise_script_service/mruby/src/array.c +11 -0
  111. data/ext/enterprise_script_service/mruby/src/backtrace.c +2 -2
  112. data/ext/enterprise_script_service/mruby/src/class.c +26 -11
  113. data/ext/enterprise_script_service/mruby/src/codedump.c +4 -0
  114. data/ext/enterprise_script_service/mruby/src/debug.c +8 -5
  115. data/ext/enterprise_script_service/mruby/src/dump.c +3 -65
  116. data/ext/enterprise_script_service/mruby/src/error.c +57 -5
  117. data/ext/enterprise_script_service/mruby/src/etc.c +13 -4
  118. data/ext/enterprise_script_service/mruby/src/fmt_fp.c +98 -21
  119. data/ext/enterprise_script_service/mruby/src/gc.c +10 -275
  120. data/ext/enterprise_script_service/mruby/src/hash.c +5 -6
  121. data/ext/enterprise_script_service/mruby/src/kernel.c +2 -2
  122. data/ext/enterprise_script_service/mruby/src/load.c +56 -30
  123. data/ext/enterprise_script_service/mruby/src/numeric.c +22 -10
  124. data/ext/enterprise_script_service/mruby/src/object.c +12 -4
  125. data/ext/enterprise_script_service/mruby/src/print.c +27 -3
  126. data/ext/enterprise_script_service/mruby/src/proc.c +21 -1
  127. data/ext/enterprise_script_service/mruby/src/state.c +34 -11
  128. data/ext/enterprise_script_service/mruby/src/string.c +69 -35
  129. data/ext/enterprise_script_service/mruby/src/symbol.c +12 -10
  130. data/ext/enterprise_script_service/mruby/src/vm.c +21 -30
  131. data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +19 -22
  132. data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +1 -1
  133. data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
  134. data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +3 -3
  135. data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +6 -6
  136. data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +8 -8
  137. data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
  138. data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
  139. data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
  140. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +8 -24
  141. data/ext/enterprise_script_service/mruby/travis_config.rb +0 -14
  142. data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
  143. data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
  144. data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
  145. data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
  146. data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
  147. data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
  148. data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
  149. data/ext/enterprise_script_service/msgpack/README.md +3 -2
  150. data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
  151. data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
  152. data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
  153. data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
  154. data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
  155. data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
  156. data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
  157. data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
  158. data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
  159. data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
  160. data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
  161. data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
  162. data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
  163. data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
  164. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
  165. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
  166. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
  167. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
  168. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
  169. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
  170. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
  171. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
  172. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
  173. data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
  174. data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
  175. data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
  176. data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
  177. data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
  178. data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
  179. data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
  180. data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
  181. data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
  182. data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
  183. data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
  184. data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
  185. data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
  186. data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
  187. data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
  188. data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
  189. data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
  190. data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
  191. data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
  192. data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
  193. data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
  194. data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
  195. data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
  196. data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
  197. data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
  198. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
  199. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
  200. data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
  201. data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
  202. data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
  203. data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
  204. data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
  205. data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
  206. data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
  207. data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
  208. data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
  209. data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
  210. data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
  211. data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
  212. data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
  213. data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
  214. data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
  215. data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
  216. data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
  217. data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
  218. data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
  219. data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
  220. data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
  221. data/lib/script_core/version.rb +1 -1
  222. data/script_core.gemspec +1 -1
  223. metadata +23 -9
  224. data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
@@ -3,35 +3,33 @@
3
3
  spec.author = 'mruby developers'
4
4
  spec.summary = 'mruby compiler library'
5
5
 
6
- current_dir = spec.dir
7
- current_build_dir = spec.build_dir
8
-
9
- lex_def = "#{current_dir}/core/lex.def"
10
- core_objs = Dir.glob("#{current_dir}/core/*.c").map { |f|
6
+ lex_def = "#{dir}/core/lex.def"
7
+ core_objs = Dir.glob("#{dir}/core/*.c").map { |f|
11
8
  next nil if build.cxx_exception_enabled? and f =~ /(codegen).c$/
12
- objfile(f.pathmap("#{current_build_dir}/core/%n"))
9
+ objfile(f.pathmap("#{build_dir}/core/%n"))
13
10
  }.compact
14
11
 
15
12
  if build.cxx_exception_enabled?
16
13
  core_objs <<
17
- build.compile_as_cxx("#{current_build_dir}/core/y.tab.c", "#{current_build_dir}/core/y.tab.cxx",
18
- objfile("#{current_build_dir}/y.tab"), ["#{current_dir}/core"]) <<
19
- build.compile_as_cxx("#{current_dir}/core/codegen.c", "#{current_build_dir}/core/codegen.cxx")
14
+ build.compile_as_cxx("#{dir}/core/y.tab.c", "#{build_dir}/core/y.tab.cxx",
15
+ objfile("#{build_dir}/y.tab"), ["#{dir}/core"]) <<
16
+ build.compile_as_cxx("#{dir}/core/codegen.c", "#{build_dir}/core/codegen.cxx")
20
17
  else
21
- core_objs << objfile("#{current_build_dir}/core/y.tab")
22
- file objfile("#{current_build_dir}/core/y.tab") => "#{current_build_dir}/core/y.tab.c" do |t|
23
- cc.run t.name, t.prerequisites.first, [], ["#{current_dir}/core"]
18
+ core_objs << objfile("#{build_dir}/core/y.tab")
19
+ file objfile("#{build_dir}/core/y.tab") => "#{dir}/core/y.tab.c" do |t|
20
+ cc.run t.name, t.prerequisites.first, [], ["#{dir}/core"]
24
21
  end
25
22
  end
26
23
 
27
24
  # Parser
28
- file "#{current_build_dir}/core/y.tab.c" => ["#{current_dir}/core/parse.y", lex_def] do |t|
29
- mkdir_p File.dirname t.name
25
+ file "#{dir}/core/y.tab.c" => ["#{dir}/core/parse.y", lex_def] do |t|
30
26
  yacc.run t.name, t.prerequisites.first
27
+ content = File.read(t.name).gsub(/^#line +\d+ +"\K.*$/){$&.relative_path}
28
+ File.write(t.name, content)
31
29
  end
32
30
 
33
31
  # Lexical analyzer
34
- file lex_def => "#{current_dir}/core/keywords" do |t|
32
+ file lex_def => "#{dir}/core/keywords" do |t|
35
33
  gperf.run t.name, t.prerequisites.first
36
34
  end
37
35
 
@@ -8,7 +8,7 @@ mrb_protect(mrb_state *mrb, mrb_func_t body, mrb_value data, mrb_bool *state)
8
8
  struct mrb_jmpbuf *prev_jmp = mrb->jmp;
9
9
  struct mrb_jmpbuf c_jmp;
10
10
  mrb_value result = mrb_nil_value();
11
- mrb_int ai = mrb_gc_arena_save(mrb);
11
+ int ai = mrb_gc_arena_save(mrb);
12
12
 
13
13
  if (state) { *state = FALSE; }
14
14
 
@@ -34,7 +34,7 @@ mrb_ensure(mrb_state *mrb, mrb_func_t body, mrb_value b_data, mrb_func_t ensure,
34
34
  struct mrb_jmpbuf *prev_jmp = mrb->jmp;
35
35
  struct mrb_jmpbuf c_jmp;
36
36
  mrb_value result;
37
- mrb_int ai = mrb_gc_arena_save(mrb);
37
+ int ai = mrb_gc_arena_save(mrb);
38
38
 
39
39
  MRB_TRY(&c_jmp) {
40
40
  mrb->jmp = &c_jmp;
@@ -71,7 +71,7 @@ mrb_rescue_exceptions(mrb_state *mrb, mrb_func_t body, mrb_value b_data, mrb_fun
71
71
  mrb_value result;
72
72
  mrb_bool error_matched = FALSE;
73
73
  mrb_int i;
74
- mrb_int ai = mrb_gc_arena_save(mrb);
74
+ int ai = mrb_gc_arena_save(mrb);
75
75
 
76
76
  MRB_TRY(&c_jmp) {
77
77
  mrb->jmp = &c_jmp;
@@ -9,217 +9,6 @@
9
9
  mrb_value mrb_exec_irep(mrb_state *mrb, mrb_value self, struct RProc *p);
10
10
  mrb_value mrb_obj_instance_eval(mrb_state *mrb, mrb_value self);
11
11
 
12
- static struct mrb_irep *
13
- get_closure_irep(mrb_state *mrb, int level)
14
- {
15
- struct RProc *proc = mrb->c->ci[-1].proc;
16
-
17
- while (level--) {
18
- if (!proc) return NULL;
19
- proc = proc->upper;
20
- }
21
- if (!proc) return NULL;
22
- if (MRB_PROC_CFUNC_P(proc)) {
23
- return NULL;
24
- }
25
- return proc->body.irep;
26
- }
27
-
28
- /* search for irep lev above the bottom */
29
- static mrb_irep*
30
- search_irep(mrb_irep *top, int bnest, int lev, mrb_irep *bottom)
31
- {
32
- int i;
33
-
34
- for (i=0; i<top->rlen; i++) {
35
- mrb_irep* tmp = top->reps[i];
36
-
37
- if (tmp == bottom) return top;
38
- tmp = search_irep(tmp, bnest-1, lev, bottom);
39
- if (tmp) {
40
- if (bnest == lev) return top;
41
- return tmp;
42
- }
43
- }
44
- return NULL;
45
- }
46
-
47
- static uint16_t
48
- search_variable(mrb_state *mrb, mrb_sym vsym, int bnest)
49
- {
50
- mrb_irep *virep;
51
- int level;
52
- int pos;
53
-
54
- for (level = 0; (virep = get_closure_irep(mrb, level)); level++) {
55
- if (virep->lv == NULL) {
56
- continue;
57
- }
58
- for (pos = 0; pos < virep->nlocals - 1; pos++) {
59
- if (vsym == virep->lv[pos].name) {
60
- return (pos+1)<<8 | (level+bnest);
61
- }
62
- }
63
- }
64
-
65
- return 0;
66
- }
67
-
68
- static int
69
- irep_argc(mrb_irep *irep)
70
- {
71
- mrb_code c;
72
-
73
- c = irep->iseq[0];
74
- if (c == OP_ENTER) {
75
- mrb_aspec ax = PEEK_W(irep->iseq+1);
76
- /* extra 1 means a slot for block */
77
- return MRB_ASPEC_REQ(ax)+MRB_ASPEC_OPT(ax)+MRB_ASPEC_REST(ax)+MRB_ASPEC_POST(ax)+1;
78
- }
79
- return 0;
80
- }
81
-
82
- static mrb_bool
83
- potential_upvar_p(struct mrb_locals *lv, uint16_t v, int argc, uint16_t nlocals)
84
- {
85
- if (v >= nlocals) return FALSE;
86
- /* skip arguments */
87
- if (v < argc+1) return FALSE;
88
- return TRUE;
89
- }
90
-
91
- extern uint8_t mrb_insn_size[];
92
- extern uint8_t mrb_insn_size1[];
93
- extern uint8_t mrb_insn_size2[];
94
- extern uint8_t mrb_insn_size3[];
95
-
96
- static void
97
- patch_irep(mrb_state *mrb, mrb_irep *irep, int bnest, mrb_irep *top)
98
- {
99
- int i;
100
- uint32_t a;
101
- uint16_t b;
102
- uint8_t c;
103
- mrb_code insn;
104
- int argc = irep_argc(irep);
105
- mrb_code *iseq = (mrb_code *)irep->iseq;
106
-
107
- mrb_assert((irep->flags & MRB_ISEQ_NO_FREE) == 0);
108
-
109
- for (i = 0; i < irep->ilen; ) {
110
- insn = iseq[i];
111
- switch(insn){
112
- case OP_EPUSH:
113
- a = PEEK_B(iseq+i+1);
114
- patch_irep(mrb, irep->reps[a], bnest + 1, top);
115
- break;
116
-
117
- case OP_LAMBDA:
118
- case OP_BLOCK:
119
- a = PEEK_B(iseq+i+1);
120
- b = PEEK_B(iseq+i+2);
121
- patch_irep(mrb, irep->reps[b], bnest + 1, top);
122
- break;
123
-
124
- case OP_SEND:
125
- b = PEEK_B(iseq+i+2);
126
- c = PEEK_B(iseq+i+3);
127
- if (c != 0) {
128
- break;
129
- }
130
- else {
131
- uint16_t arg = search_variable(mrb, irep->syms[b], bnest);
132
- if (arg != 0) {
133
- /* must replace */
134
- iseq[i] = OP_GETUPVAR;
135
- iseq[i+2] = arg >> 8;
136
- iseq[i+3] = arg & 0xff;
137
- }
138
- }
139
- break;
140
-
141
- case OP_MOVE:
142
- a = PEEK_B(iseq+i+1);
143
- b = PEEK_B(iseq+i+2);
144
- /* src part */
145
- if (potential_upvar_p(irep->lv, b, argc, irep->nlocals)) {
146
- uint16_t arg = search_variable(mrb, irep->lv[b - 1].name, bnest);
147
- if (arg != 0) {
148
- /* must replace */
149
- iseq[i] = insn = OP_GETUPVAR;
150
- iseq[i+2] = arg >> 8;
151
- iseq[i+3] = arg & 0xff;
152
- }
153
- }
154
- /* dst part */
155
- if (potential_upvar_p(irep->lv, a, argc, irep->nlocals)) {
156
- uint16_t arg = search_variable(mrb, irep->lv[a - 1].name, bnest);
157
- if (arg != 0) {
158
- /* must replace */
159
- iseq[i] = insn = OP_SETUPVAR;
160
- iseq[i+1] = (mrb_code)b;
161
- iseq[i+2] = arg >> 8;
162
- iseq[i+3] = arg & 0xff;
163
- }
164
- }
165
- break;
166
-
167
- case OP_GETUPVAR:
168
- a = PEEK_B(iseq+i+1);
169
- b = PEEK_B(iseq+i+2);
170
- c = PEEK_B(iseq+i+3);
171
- {
172
- int lev = c+1;
173
- mrb_irep *tmp = search_irep(top, bnest, lev, irep);
174
- if (potential_upvar_p(tmp->lv, b, irep_argc(tmp), tmp->nlocals)) {
175
- uint16_t arg = search_variable(mrb, tmp->lv[b-1].name, bnest);
176
- if (arg != 0) {
177
- /* must replace */
178
- iseq[i] = OP_GETUPVAR;
179
- iseq[i+2] = arg >> 8;
180
- iseq[i+3] = arg & 0xff;
181
- }
182
- }
183
- }
184
- break;
185
-
186
- case OP_SETUPVAR:
187
- a = PEEK_B(iseq+i+1);
188
- b = PEEK_B(iseq+i+2);
189
- c = PEEK_B(iseq+i+3);
190
- {
191
- int lev = c+1;
192
- mrb_irep *tmp = search_irep(top, bnest, lev, irep);
193
- if (potential_upvar_p(tmp->lv, b, irep_argc(tmp), tmp->nlocals)) {
194
- uint16_t arg = search_variable(mrb, tmp->lv[b-1].name, bnest);
195
- if (arg != 0) {
196
- /* must replace */
197
- iseq[i] = OP_SETUPVAR;
198
- iseq[i+1] = a;
199
- iseq[i+2] = arg >> 8;
200
- iseq[i+3] = arg & 0xff;
201
- }
202
- }
203
- }
204
- break;
205
-
206
- case OP_EXT1:
207
- insn = PEEK_B(iseq+i+1);
208
- i += mrb_insn_size1[insn]+1;
209
- continue;
210
- case OP_EXT2:
211
- insn = PEEK_B(iseq+i+1);
212
- i += mrb_insn_size2[insn]+1;
213
- continue;
214
- case OP_EXT3:
215
- insn = PEEK_B(iseq+i+1);
216
- i += mrb_insn_size3[insn]+1;
217
- continue;
218
- }
219
- i+=mrb_insn_size[insn];
220
- }
221
- }
222
-
223
12
  void mrb_codedump_all(mrb_state*, struct RProc*);
224
13
 
225
14
  static struct RProc*
@@ -243,7 +32,8 @@ create_proc_from_string(mrb_state *mrb, char *s, mrb_int len, mrb_value binding,
243
32
  mrbc_filename(mrb, cxt, file ? file : "(eval)");
244
33
  cxt->capture_errors = TRUE;
245
34
  cxt->no_optimize = TRUE;
246
- cxt->on_eval = TRUE;
35
+ ci = (mrb->c->ci > mrb->c->cibase) ? mrb->c->ci - 1 : mrb->c->cibase;
36
+ cxt->upper = ci->proc && MRB_PROC_CFUNC_P(ci->proc) ? NULL : ci->proc;
247
37
 
248
38
  p = mrb_parse_nstring(mrb, s, len, cxt);
249
39
 
@@ -311,7 +101,6 @@ create_proc_from_string(mrb_state *mrb, char *s, mrb_int len, mrb_value binding,
311
101
  }
312
102
  proc->upper = ci->proc;
313
103
  mrb->c->ci->target_class = target_class;
314
- patch_irep(mrb, proc->body.irep, 0, proc->body.irep);
315
104
  /* mrb_codedump_all(mrb, proc); */
316
105
 
317
106
  mrb_parser_free(p);
@@ -130,3 +130,24 @@ def do_eval(code)
130
130
  EOS
131
131
  }
132
132
  end
133
+
134
+ assert('Calling the same method as the variable name') do
135
+ hoge = Object.new
136
+ def hoge.fuga
137
+ "Hit!"
138
+ end
139
+ assert_equal("Hit!") { fuga = "Miss!"; eval "hoge.fuga" }
140
+ assert_equal("Hit!") { fuga = "Miss!"; -> { eval "hoge.fuga" }.call }
141
+ assert_equal("Hit!") { -> { fuga = "Miss!"; eval "hoge.fuga" }.call }
142
+ assert_equal("Hit!") { fuga = "Miss!"; eval("-> { hoge.fuga }").call }
143
+ end
144
+
145
+ assert('Access numbered parameter from eval') do
146
+ hoge = Object.new
147
+ def hoge.fuga(a, &b)
148
+ b.call(a)
149
+ end
150
+ assert_equal(6) {
151
+ hoge.fuga(3) { _1 + eval("_1") }
152
+ }
153
+ end
@@ -53,10 +53,8 @@ hash_slice(mrb_state *mrb, mrb_value hash)
53
53
  mrb_int argc, i;
54
54
 
55
55
  mrb_get_args(mrb, "*", &argv, &argc);
56
- if (argc == 0) {
57
- return mrb_hash_new_capa(mrb, argc);
58
- }
59
56
  result = mrb_hash_new_capa(mrb, argc);
57
+ if (argc == 0) return result; /* empty hash */
60
58
  for (i = 0; i < argc; i++) {
61
59
  mrb_value key = argv[i];
62
60
  mrb_value val;
@@ -5,10 +5,24 @@
5
5
  #ifndef MRUBY_IO_H
6
6
  #define MRUBY_IO_H
7
7
 
8
+ #include <mruby.h>
9
+
10
+ #ifdef MRB_DISABLE_STDIO
11
+ # error IO and File conflicts 'MRB_DISABLE_STDIO' configuration in your 'build_config.rb'
12
+ #endif
13
+
8
14
  #if defined(__cplusplus)
9
15
  extern "C" {
10
16
  #endif
11
17
 
18
+ #if defined(MRB_WITHOUT_IO_PREAD_PWRITE)
19
+ # undef MRB_WITH_IO_PREAD_PWRITE
20
+ #elif !defined(MRB_WITH_IO_PREAD_PWRITE)
21
+ # if defined(__unix__) || defined(__MACH__)
22
+ # define MRB_WITH_IO_PREAD_PWRITE
23
+ # endif
24
+ #endif
25
+
12
26
  struct mrb_io {
13
27
  int fd; /* file descriptor, or -1 */
14
28
  int fd2; /* file descriptor to write if it's different from fd, or -1 */
@@ -19,13 +33,31 @@ struct mrb_io {
19
33
  is_socket:1;
20
34
  };
21
35
 
22
- #define FMODE_READABLE 0x00000001
23
- #define FMODE_WRITABLE 0x00000002
24
- #define FMODE_READWRITE (FMODE_READABLE|FMODE_WRITABLE)
25
- #define FMODE_BINMODE 0x00000004
26
- #define FMODE_APPEND 0x00000040
27
- #define FMODE_CREATE 0x00000080
28
- #define FMODE_TRUNC 0x00000800
36
+ #define MRB_O_RDONLY 0x0000
37
+ #define MRB_O_WRONLY 0x0001
38
+ #define MRB_O_RDWR 0x0002
39
+ #define MRB_O_ACCMODE (MRB_O_RDONLY | MRB_O_WRONLY | MRB_O_RDWR)
40
+ #define MRB_O_NONBLOCK 0x0004
41
+ #define MRB_O_APPEND 0x0008
42
+ #define MRB_O_SYNC 0x0010
43
+ #define MRB_O_NOFOLLOW 0x0020
44
+ #define MRB_O_CREAT 0x0040
45
+ #define MRB_O_TRUNC 0x0080
46
+ #define MRB_O_EXCL 0x0100
47
+ #define MRB_O_NOCTTY 0x0200
48
+ #define MRB_O_DIRECT 0x0400
49
+ #define MRB_O_BINARY 0x0800
50
+ #define MRB_O_SHARE_DELETE 0x1000
51
+ #define MRB_O_TMPFILE 0x2000
52
+ #define MRB_O_NOATIME 0x4000
53
+ #define MRB_O_DSYNC 0x00008000
54
+ #define MRB_O_RSYNC 0x00010000
55
+
56
+ #define MRB_O_RDONLY_P(f) ((mrb_bool)(((f) & MRB_O_ACCMODE) == MRB_O_RDONLY))
57
+ #define MRB_O_WRONLY_P(f) ((mrb_bool)(((f) & MRB_O_ACCMODE) == MRB_O_WRONLY))
58
+ #define MRB_O_RDWR_P(f) ((mrb_bool)(((f) & MRB_O_ACCMODE) == MRB_O_RDWR))
59
+ #define MRB_O_READABLE_P(f) ((mrb_bool)((((f) & MRB_O_ACCMODE) | 2) == 2))
60
+ #define MRB_O_WRITABLE_P(f) ((mrb_bool)(((((f) & MRB_O_ACCMODE) + 1) & 2) == 2))
29
61
 
30
62
  #define E_IO_ERROR (mrb_class_get(mrb, "IOError"))
31
63
  #define E_EOF_ERROR (mrb_class_get(mrb, "EOFError"))
@@ -5,14 +5,8 @@
5
5
 
6
6
  spec.cc.include_paths << "#{build.root}/src"
7
7
 
8
- case RUBY_PLATFORM
9
- when /mingw|mswin|msys/
10
- spec.linker.libraries += ['Ws2_32']
11
- #spec.cc.include_paths += ["C:/Windows/system/include"]
12
- spec.linker.library_paths += ["C:/Windows/system"]
13
- end
14
- if build.kind_of?(MRuby::CrossBuild) && %w(x86_64-w64-mingw32 i686-w64-mingw32).include?(build.host_target)
15
- spec.linker.libraries += ['ws2_32']
8
+ if for_windows?
9
+ spec.linker.libraries << "ws2_32"
16
10
  end
17
11
  spec.add_test_dependency 'mruby-time', core: 'mruby-time'
18
12
  end
@@ -1,21 +1,5 @@
1
1
  class File
2
2
  module Constants
3
- RDONLY = 0
4
- WRONLY = 1
5
- RDWR = 2
6
- NONBLOCK = 4
7
- APPEND = 8
8
-
9
- BINARY = 0
10
- SYNC = 128
11
- NOFOLLOW = 256
12
- CREAT = 512
13
- TRUNC = 1024
14
- EXCL = 2048
15
-
16
- NOCTTY = 131072
17
- DSYNC = 4194304
18
-
19
3
  FNM_SYSCASE = 0
20
4
  FNM_NOESCAPE = 1
21
5
  FNM_PATHNAME = 2