script_core 0.2.7 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/Gemfile +2 -2
- data/ext/enterprise_script_service/Rakefile +1 -1
- data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +117 -74
- data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +41 -37
- data/ext/enterprise_script_service/mruby/.github/workflows/lint.yml +23 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/oss-fuzz.yml +27 -0
- data/ext/enterprise_script_service/mruby/.github/workflows/spell-checker.yml +17 -0
- data/ext/enterprise_script_service/mruby/.gitlab-ci.yml +3 -3
- data/ext/enterprise_script_service/mruby/.markdownlint.yml +16 -0
- data/ext/enterprise_script_service/mruby/.travis.yml +2 -2
- data/ext/enterprise_script_service/mruby/.yamllint +8 -0
- data/ext/enterprise_script_service/mruby/AUTHORS +3 -0
- data/ext/enterprise_script_service/mruby/CODEOWNERS +1 -0
- data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +6 -13
- data/ext/enterprise_script_service/mruby/Doxyfile +4 -4
- data/ext/enterprise_script_service/mruby/LICENSE +1 -1
- data/ext/enterprise_script_service/mruby/Makefile +1 -1
- data/ext/enterprise_script_service/mruby/README.md +4 -14
- data/ext/enterprise_script_service/mruby/Rakefile +18 -108
- data/ext/enterprise_script_service/mruby/TODO.md +17 -0
- data/ext/enterprise_script_service/mruby/appveyor.yml +31 -25
- data/ext/enterprise_script_service/mruby/benchmark/bm_ao_render.rb +1 -1
- data/ext/enterprise_script_service/mruby/build_config.rb +9 -152
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_ArduinoDue.rb → build_config/ArduinoDue.rb} +2 -19
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelEdison.rb → build_config/IntelEdison.rb} +2 -2
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_IntelGalileo.rb → build_config/IntelGalileo.rb} +1 -18
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_RX630.rb → build_config/RX630.rb} +2 -19
- data/ext/enterprise_script_service/mruby/build_config/android_arm64-v8a.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/android_armeabi.rb +11 -0
- 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
- data/ext/enterprise_script_service/mruby/build_config/bench.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/boxing.rb +21 -0
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_chipKITMax32.rb → build_config/chipKITMax32.rb} +2 -19
- data/ext/enterprise_script_service/mruby/{travis_config.rb → build_config/ci/gcc-clang.rb} +10 -10
- data/ext/enterprise_script_service/mruby/build_config/ci/msvc.rb +20 -0
- data/ext/enterprise_script_service/mruby/build_config/clang-asan.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/cross-32bit.rb +14 -0
- data/ext/enterprise_script_service/mruby/build_config/default.rb +80 -0
- data/ext/enterprise_script_service/mruby/{examples/targets/build_config_dreamcast_shelf.rb → build_config/dreamcast_shelf.rb} +5 -19
- data/ext/enterprise_script_service/mruby/build_config/gameboyadvance.rb +73 -0
- data/ext/enterprise_script_service/mruby/build_config/host-cxx.rb +12 -0
- data/ext/enterprise_script_service/mruby/build_config/host-debug.rb +20 -0
- data/ext/enterprise_script_service/mruby/build_config/host-gprof.rb +14 -0
- data/ext/enterprise_script_service/mruby/build_config/host-m32.rb +15 -0
- data/ext/enterprise_script_service/mruby/build_config/host-shared.rb +36 -0
- data/ext/enterprise_script_service/mruby/build_config/mrbc.rb +11 -0
- data/ext/enterprise_script_service/mruby/build_config/no-float.rb +17 -0
- data/ext/enterprise_script_service/mruby/doc/guides/compile.md +138 -49
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +5 -4
- data/ext/enterprise_script_service/mruby/doc/guides/gc-arena-howto.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +49 -22
- data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +31 -14
- data/ext/enterprise_script_service/mruby/doc/guides/symbol.md +83 -0
- data/ext/enterprise_script_service/mruby/doc/limitations.md +35 -36
- data/ext/enterprise_script_service/mruby/doc/mruby3.md +163 -0
- data/ext/enterprise_script_service/mruby/doc/opcode.md +93 -107
- data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +1 -1
- data/ext/enterprise_script_service/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +5 -1
- data/ext/enterprise_script_service/mruby/examples/mrbgems/c_extension_example/src/example.c +5 -1
- data/ext/enterprise_script_service/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +1 -1
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +81 -62
- data/ext/enterprise_script_service/mruby/include/mruby.h +137 -96
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +23 -6
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +73 -48
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +8 -8
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +79 -48
- data/ext/enterprise_script_service/mruby/include/mruby/class.h +10 -8
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +4 -1
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +13 -7
- data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +17 -35
- data/ext/enterprise_script_service/mruby/include/mruby/endian.h +44 -0
- data/ext/enterprise_script_service/mruby/include/mruby/error.h +39 -5
- data/ext/enterprise_script_service/mruby/include/mruby/gc.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/hash.h +33 -13
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +64 -14
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +6 -14
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +36 -63
- data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +1 -27
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +27 -23
- data/ext/enterprise_script_service/mruby/include/mruby/presym.h +40 -0
- data/ext/enterprise_script_service/mruby/include/mruby/presym/disable.h +70 -0
- data/ext/enterprise_script_service/mruby/include/mruby/presym/enable.h +37 -0
- data/ext/enterprise_script_service/mruby/include/mruby/presym/scanning.h +73 -0
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +80 -13
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +10 -15
- data/ext/enterprise_script_service/mruby/include/mruby/throw.h +14 -3
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +29 -19
- data/ext/enterprise_script_service/mruby/include/mruby/variable.h +1 -0
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +26 -7
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +198 -44
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +55 -37
- data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +12 -10
- data/ext/enterprise_script_service/mruby/lib/{mruby-core-ext.rb → mruby/core_ext.rb} +10 -3
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +75 -32
- data/ext/enterprise_script_service/mruby/lib/mruby/lockfile.rb +1 -1
- data/ext/enterprise_script_service/mruby/lib/mruby/presym.rb +132 -0
- data/ext/enterprise_script_service/mruby/mrbgems/default-no-fpu.gembox +3 -0
- data/ext/enterprise_script_service/mruby/mrbgems/default-no-stdio.gembox +4 -0
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +9 -88
- data/ext/enterprise_script_service/mruby/mrbgems/full-core.gembox +1 -4
- data/ext/enterprise_script_service/mruby/mrbgems/math.gembox +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/metaprog.gembox +15 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +28 -19
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mruby-config +18 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +3 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +10 -10
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +14 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +4 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +2 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +23 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +11 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +41 -34
- data/ext/enterprise_script_service/mruby/mrbgems/{mruby-compiler → mruby-bin-mrbc}/bintest/mrbc.rb +0 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +3 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +19 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +25 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +22 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/bintest/mruby-strip.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrbgem.rake +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-catch/mrblib/catch.rb +27 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +2 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +430 -399
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/keywords +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/lex.def +49 -44
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +559 -217
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +4774 -4193
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +18 -19
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +8 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/test/complex.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +1 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/mrbgem.rake +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +17 -25
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +18 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +30 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +7 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +18 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +9 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +55 -52
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +4 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +99 -87
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +2 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +2 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +7 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +13 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/test/math.rb +5 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +43 -58
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/README.md +4 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +77 -74
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +14 -13
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +5 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +18 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/mrbgem.rake +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/src/memsize.c +231 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-os-memsize/test/memsize.rb +63 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/README.md +15 -18
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +38 -88
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +1 -30
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +62 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +32 -19
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.c +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +98 -43
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +39 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +20 -40
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/test/range.rb +27 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +11 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +216 -38
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/test/rational.rb +6 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/README.md +6 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +3 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +47 -45
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +102 -71
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +4 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +23 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +13 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +18 -25
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +6 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/README.md +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +5 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +16 -44
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +4 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +27 -27
- data/ext/enterprise_script_service/mruby/mrbgems/stdlib-ext.gembox +18 -0
- data/ext/enterprise_script_service/mruby/mrbgems/stdlib-io.gembox +12 -0
- data/ext/enterprise_script_service/mruby/mrbgems/stdlib.gembox +54 -0
- data/ext/enterprise_script_service/mruby/mrblib/10error.rb +4 -0
- data/ext/enterprise_script_service/mruby/mrblib/array.rb +17 -9
- data/ext/enterprise_script_service/mruby/mrblib/enum.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +0 -20
- data/ext/enterprise_script_service/mruby/mrblib/init_mrblib.c +0 -11
- data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +36 -11
- data/ext/enterprise_script_service/mruby/mrblib/range.rb +25 -3
- data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_proto_fuzzer.cpp +2 -2
- data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.h +1 -1
- data/ext/enterprise_script_service/mruby/src/array.c +43 -80
- data/ext/enterprise_script_service/mruby/src/backtrace.c +16 -17
- data/ext/enterprise_script_service/mruby/src/class.c +774 -182
- data/ext/enterprise_script_service/mruby/src/codedump.c +223 -198
- data/ext/enterprise_script_service/mruby/src/debug.c +6 -6
- data/ext/enterprise_script_service/mruby/src/dump.c +466 -141
- data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
- data/ext/enterprise_script_service/mruby/src/error.c +36 -13
- data/ext/enterprise_script_service/mruby/src/etc.c +43 -34
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +5 -6
- data/ext/enterprise_script_service/mruby/src/gc.c +73 -71
- data/ext/enterprise_script_service/mruby/src/hash.c +1050 -707
- data/ext/enterprise_script_service/mruby/src/kernel.c +75 -220
- data/ext/enterprise_script_service/mruby/src/load.c +196 -166
- data/ext/enterprise_script_service/mruby/src/numeric.c +352 -314
- data/ext/enterprise_script_service/mruby/src/object.c +97 -90
- data/ext/enterprise_script_service/mruby/src/print.c +4 -3
- data/ext/enterprise_script_service/mruby/src/proc.c +48 -56
- data/ext/enterprise_script_service/mruby/src/range.c +45 -21
- data/ext/enterprise_script_service/mruby/src/state.c +25 -32
- data/ext/enterprise_script_service/mruby/src/string.c +59 -101
- data/ext/enterprise_script_service/mruby/src/symbol.c +121 -56
- data/ext/enterprise_script_service/mruby/src/value_array.h +1 -0
- data/ext/enterprise_script_service/mruby/src/variable.c +158 -158
- data/ext/enterprise_script_service/mruby/src/vm.c +617 -602
- data/ext/enterprise_script_service/mruby/tasks/benchmark.rake +6 -6
- data/ext/enterprise_script_service/mruby/tasks/bin.rake +23 -0
- data/ext/enterprise_script_service/mruby/tasks/core.rake +12 -0
- data/ext/enterprise_script_service/mruby/tasks/doc.rake +50 -38
- data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +83 -77
- data/ext/enterprise_script_service/mruby/tasks/libmruby.rake +10 -1
- data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +13 -1
- data/ext/enterprise_script_service/mruby/tasks/mrblib.rake +40 -0
- data/ext/enterprise_script_service/mruby/tasks/presym.rake +44 -0
- data/ext/enterprise_script_service/mruby/tasks/test.rake +68 -0
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +6 -5
- data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +10 -14
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +17 -21
- data/ext/enterprise_script_service/mruby/test/bintest.rb +5 -5
- data/ext/enterprise_script_service/mruby/test/t/argumenterror.rb +16 -0
- data/ext/enterprise_script_service/mruby/test/t/array.rb +7 -3
- data/ext/enterprise_script_service/mruby/test/t/bs_literal.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/float.rb +18 -8
- data/ext/enterprise_script_service/mruby/test/t/hash.rb +903 -281
- data/ext/enterprise_script_service/mruby/test/t/integer.rb +10 -38
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/literals.rb +50 -0
- data/ext/enterprise_script_service/mruby/test/t/module.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/numeric.rb +1 -1
- data/ext/enterprise_script_service/mruby/test/t/range.rb +83 -1
- data/ext/enterprise_script_service/mruby/test/t/string.rb +4 -0
- data/ext/enterprise_script_service/mruby/test/t/superclass.rb +10 -10
- data/ext/enterprise_script_service/mruby/test/t/syntax.rb +24 -0
- data/ext/enterprise_script_service/mruby/test/t/vformat.rb +3 -3
- data/ext/enterprise_script_service/mruby_config.rb +2 -5
- data/ext/enterprise_script_service/mruby_engine.cpp +1 -1
- data/lib/script_core/version.rb +1 -1
- data/spec/script_core_spec.rb +13 -0
- metadata +61 -23
- data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +0 -24
- data/ext/enterprise_script_service/mruby/TODO +0 -8
- data/ext/enterprise_script_service/mruby/appveyor_config.rb +0 -46
- data/ext/enterprise_script_service/mruby/benchmark/build_config_boxing.rb +0 -28
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_arm64-v8a.rb +0 -26
- data/ext/enterprise_script_service/mruby/examples/targets/build_config_android_armeabi.rb +0 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/kernel.c +0 -30
- data/ext/enterprise_script_service/mruby/mrblib/mrblib.rake +0 -18
- data/ext/enterprise_script_service/mruby/src/crc.c +0 -39
- data/ext/enterprise_script_service/mruby/src/mruby_core.rake +0 -19
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Cross Compiling configuration for the Nintendo GameBoyAdvance.
|
|
2
|
+
# This configuration requires devkitARM
|
|
3
|
+
# https://devkitpro.org/wiki/Getting_Started/devkitARM
|
|
4
|
+
#
|
|
5
|
+
# Tested only on GNU/Linux
|
|
6
|
+
#
|
|
7
|
+
MRuby::CrossBuild.new("gameboyadvance") do |conf|
|
|
8
|
+
toolchain :gcc
|
|
9
|
+
|
|
10
|
+
DEVKITPRO_PATH = "/opt/devkitpro"
|
|
11
|
+
BIN_PATH = "#{DEVKITPRO_PATH}/devkitARM/bin"
|
|
12
|
+
|
|
13
|
+
# C compiler
|
|
14
|
+
conf.cc do |cc|
|
|
15
|
+
cc.command = "#{BIN_PATH}/arm-none-eabi-gcc"
|
|
16
|
+
cc.flags << ["-mthumb-interwork", "-mthumb", "-O2"]
|
|
17
|
+
cc.compile_options = %(%{flags} -o "%{outfile}" -c "%{infile}")
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# C++ compiler
|
|
21
|
+
conf.cxx do |cxx|
|
|
22
|
+
cxx.command = "#{BIN_PATH}/arm-none-eabi-g++"
|
|
23
|
+
cxx.include_paths = conf.cc.include_paths.dup
|
|
24
|
+
cxx.flags = conf.cc.flags.dup
|
|
25
|
+
cxx.flags << %w[-fno-rtti -fno-exceptions]
|
|
26
|
+
cxx.defines = conf.cc.defines.dup
|
|
27
|
+
cxx.compile_options = conf.cc.compile_options.dup
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Linker
|
|
31
|
+
conf.linker do |linker|
|
|
32
|
+
linker.command = "#{BIN_PATH}/arm-none-eabi-gcc"
|
|
33
|
+
linker.flags << ["-mthumb-interwork", "-mthumb", "-specs=gba.specs"]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# No executables
|
|
37
|
+
conf.bins = []
|
|
38
|
+
|
|
39
|
+
# Do not build executable test
|
|
40
|
+
conf.build_mrbtest_lib_only
|
|
41
|
+
|
|
42
|
+
# Disable C++ exception
|
|
43
|
+
conf.disable_cxx_exception
|
|
44
|
+
|
|
45
|
+
# Gems from core
|
|
46
|
+
# removing mruby-io
|
|
47
|
+
conf.gem core: "mruby-metaprog"
|
|
48
|
+
conf.gem core: "mruby-pack"
|
|
49
|
+
conf.gem core: "mruby-sprintf"
|
|
50
|
+
conf.gem core: "mruby-print"
|
|
51
|
+
conf.gem core: "mruby-math"
|
|
52
|
+
conf.gem core: "mruby-time"
|
|
53
|
+
conf.gem core: "mruby-struct"
|
|
54
|
+
conf.gem core: "mruby-compar-ext"
|
|
55
|
+
conf.gem core: "mruby-enum-ext"
|
|
56
|
+
conf.gem core: "mruby-string-ext"
|
|
57
|
+
conf.gem core: "mruby-numeric-ext"
|
|
58
|
+
conf.gem core: "mruby-array-ext"
|
|
59
|
+
conf.gem core: "mruby-hash-ext"
|
|
60
|
+
conf.gem core: "mruby-range-ext"
|
|
61
|
+
conf.gem core: "mruby-proc-ext"
|
|
62
|
+
conf.gem core: "mruby-symbol-ext"
|
|
63
|
+
conf.gem core: "mruby-random"
|
|
64
|
+
conf.gem core: "mruby-object-ext"
|
|
65
|
+
conf.gem core: "mruby-objectspace"
|
|
66
|
+
conf.gem core: "mruby-fiber"
|
|
67
|
+
conf.gem core: "mruby-enumerator"
|
|
68
|
+
conf.gem core: "mruby-enum-lazy"
|
|
69
|
+
conf.gem core: "mruby-toplevel-ext"
|
|
70
|
+
conf.gem core: "mruby-kernel-ext"
|
|
71
|
+
conf.gem core: "mruby-class-ext"
|
|
72
|
+
conf.gem core: "mruby-compiler"
|
|
73
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
MRuby::Build.new('host') do |conf|
|
|
2
|
+
# load specific toolchain settings
|
|
3
|
+
conf.toolchain
|
|
4
|
+
|
|
5
|
+
conf.enable_debug
|
|
6
|
+
|
|
7
|
+
# include the default GEMs
|
|
8
|
+
conf.gembox 'full-core'
|
|
9
|
+
|
|
10
|
+
# C compiler settings
|
|
11
|
+
conf.cc.defines = %w(MRB_USE_DEBUG_HOOK MRB_NO_BOXING)
|
|
12
|
+
|
|
13
|
+
# Generate mruby debugger command (require mruby-eval)
|
|
14
|
+
conf.gem :core => "mruby-bin-debugger"
|
|
15
|
+
|
|
16
|
+
# test
|
|
17
|
+
conf.enable_test
|
|
18
|
+
# bintest
|
|
19
|
+
conf.enable_bintest
|
|
20
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
MRuby::Build.new do |conf|
|
|
2
|
+
# load specific toolchain settings
|
|
3
|
+
toolchain :gcc
|
|
4
|
+
|
|
5
|
+
# include the GEM box
|
|
6
|
+
conf.gembox 'default'
|
|
7
|
+
|
|
8
|
+
conf.cc.flags << '-pg'
|
|
9
|
+
conf.linker.flags << '-pg'
|
|
10
|
+
|
|
11
|
+
# Turn on `enable_debug` for better debugging
|
|
12
|
+
conf.enable_debug
|
|
13
|
+
conf.enable_test
|
|
14
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
MRuby::Build.new do |conf|
|
|
2
|
+
# load specific toolchain settings
|
|
3
|
+
toolchain :gcc
|
|
4
|
+
|
|
5
|
+
# include the GEM box
|
|
6
|
+
conf.gembox 'default'
|
|
7
|
+
|
|
8
|
+
conf.cc.flags << '-m32'
|
|
9
|
+
conf.linker.flags << '-m32'
|
|
10
|
+
|
|
11
|
+
# Turn on `enable_debug` for better debugging
|
|
12
|
+
conf.enable_debug
|
|
13
|
+
conf.enable_test
|
|
14
|
+
conf.enable_bintest
|
|
15
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
MRuby::Build.new do |conf|
|
|
2
|
+
# load specific toolchain settings
|
|
3
|
+
|
|
4
|
+
# Gets set by the VS command prompts.
|
|
5
|
+
if ENV['VisualStudioVersion'] || ENV['VSINSTALLDIR']
|
|
6
|
+
toolchain :visualcpp
|
|
7
|
+
else
|
|
8
|
+
toolchain :gcc
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# include the GEM box
|
|
12
|
+
conf.gembox 'default'
|
|
13
|
+
|
|
14
|
+
# C compiler settings
|
|
15
|
+
conf.cc do |cc|
|
|
16
|
+
cc.flags = '-fPIC'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
conf.archiver do |archiver|
|
|
20
|
+
archiver.command = 'gcc'
|
|
21
|
+
archiver.archive_options = '-shared -o %{outfile} %{objs}'
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# file extensions
|
|
25
|
+
conf.exts do |exts|
|
|
26
|
+
exts.library = '.so'
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# file separator
|
|
30
|
+
# conf.file_separator = '/'
|
|
31
|
+
|
|
32
|
+
# Turn on `enable_debug` for better debugging
|
|
33
|
+
conf.enable_debug
|
|
34
|
+
conf.enable_bintest
|
|
35
|
+
conf.enable_test
|
|
36
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Define cross build settings
|
|
2
|
+
MRuby::CrossBuild.new('no-float') do |conf|
|
|
3
|
+
conf.toolchain
|
|
4
|
+
|
|
5
|
+
# Add configuration
|
|
6
|
+
conf.compilers.each do |c|
|
|
7
|
+
c.defines << "MRB_NO_FLOAT"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
conf.gem :core => "mruby-bin-mruby"
|
|
11
|
+
|
|
12
|
+
conf.test_runner.command = 'env'
|
|
13
|
+
|
|
14
|
+
conf.enable_debug
|
|
15
|
+
# conf.enable_bintest
|
|
16
|
+
conf.enable_test
|
|
17
|
+
end
|
|
@@ -6,45 +6,53 @@ binaries.
|
|
|
6
6
|
## Prerequisites
|
|
7
7
|
|
|
8
8
|
To compile mruby out of the source code you need the following tools:
|
|
9
|
+
|
|
9
10
|
* C Compiler (e.g. `gcc` or `clang`)
|
|
10
11
|
* Linker (e.g. `gcc` or `clang`)
|
|
11
12
|
* Archive utility (e.g. `ar`)
|
|
12
|
-
* Parser generator (
|
|
13
|
+
* Parser generator (`bison`)
|
|
13
14
|
* Ruby 2.0 or later (e.g. `ruby` or `jruby`)
|
|
14
15
|
|
|
15
16
|
Note that `bison` bundled with MacOS is too old to compile `mruby`.
|
|
16
|
-
Try `brew install bison` and follow the
|
|
17
|
-
the `$PATH` to compile `mruby`.
|
|
17
|
+
Try `brew install bison` and follow the instruction shown to update
|
|
18
|
+
the `$PATH` to compile `mruby`. We also encourage to upgrade `ruby`
|
|
19
|
+
on MacOS in similar manner.
|
|
18
20
|
|
|
19
21
|
Optional:
|
|
20
|
-
|
|
22
|
+
|
|
23
|
+
* git (to update mruby source and integrate mrbgems easier)
|
|
21
24
|
* C++ compiler (to use GEMs which include \*.cpp, \*.cxx, \*.cc)
|
|
22
|
-
* Assembler (to use GEMs which include \*.asm)
|
|
23
25
|
|
|
24
|
-
##
|
|
26
|
+
## Build
|
|
27
|
+
|
|
28
|
+
To compile `mruby` with the default build configuration, just invoke `rake`
|
|
29
|
+
inside of the mruby source root. To generate and execute the test tools call
|
|
30
|
+
`rake test`. To clean all build files call `rake clean`. To see full command
|
|
31
|
+
line on build, call `rake -v`.
|
|
32
|
+
|
|
33
|
+
You can specify your own configuration file by the `MRUBY_CONFIG` environment
|
|
34
|
+
variable (you can use `CONFIG` for shorthand for `MRUBY_CONFIG`). If the path
|
|
35
|
+
doesn't exist, *build_config/${MRUBY_CONFIG}.rb* is used. The default
|
|
36
|
+
configuration is defined in the `build_config/default.rb` file.
|
|
37
|
+
|
|
38
|
+
Those build configuration files contain the build configuration of mruby, for
|
|
39
|
+
example:
|
|
25
40
|
|
|
26
|
-
Inside of the root directory of the mruby source a file exists
|
|
27
|
-
called *build_config.rb*. This file contains the build configuration
|
|
28
|
-
of mruby and looks like this for example:
|
|
29
41
|
```ruby
|
|
30
42
|
MRuby::Build.new do |conf|
|
|
31
|
-
toolchain :gcc
|
|
43
|
+
conf.toolchain :gcc
|
|
32
44
|
end
|
|
33
45
|
```
|
|
34
46
|
|
|
35
|
-
All tools necessary to compile mruby can be set or modified here.
|
|
36
|
-
you want to maintain an additional *build_config.rb* you can define a
|
|
37
|
-
customized path using the *$MRUBY_CONFIG* environment variable.
|
|
38
|
-
|
|
39
|
-
To compile just call `rake` inside of the mruby source root. To
|
|
40
|
-
generate and execute the test tools call `rake test`. To clean
|
|
41
|
-
all build files call `rake clean`. To see full command line on
|
|
42
|
-
build, call `rake -v`.
|
|
47
|
+
All tools necessary to compile mruby can be set or modified here.
|
|
43
48
|
|
|
44
49
|
## Build Configuration
|
|
45
50
|
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
We wish you submit a pull-request to *build_config/**PLATFORM**.rb*, once you
|
|
52
|
+
created a new configuration for a new platform.
|
|
53
|
+
|
|
54
|
+
Inside of the configuration file, the following options can be
|
|
55
|
+
configured based on your environment.
|
|
48
56
|
|
|
49
57
|
### Toolchains
|
|
50
58
|
|
|
@@ -54,32 +62,36 @@ configure the build environment for specific compiler infrastructures.
|
|
|
54
62
|
#### GCC
|
|
55
63
|
|
|
56
64
|
Toolchain configuration for the GNU C Compiler.
|
|
65
|
+
|
|
57
66
|
```ruby
|
|
58
|
-
toolchain :gcc
|
|
67
|
+
conf.toolchain :gcc
|
|
59
68
|
```
|
|
60
69
|
|
|
61
70
|
#### clang
|
|
62
71
|
|
|
63
72
|
Toolchain configuration for the LLVM C Compiler clang. Mainly equal to the
|
|
64
73
|
GCC toolchain.
|
|
74
|
+
|
|
65
75
|
```ruby
|
|
66
|
-
toolchain :clang
|
|
76
|
+
conf.toolchain :clang
|
|
67
77
|
```
|
|
68
78
|
|
|
69
79
|
#### Visual Studio 2010, 2012 and 2013
|
|
70
80
|
|
|
71
81
|
Toolchain configuration for Visual Studio on Windows. If you use the
|
|
72
|
-
[Visual Studio Command Prompt](
|
|
82
|
+
[Visual Studio Command Prompt](https://msdn.microsoft.com/en-us/library/ms229859\(v=vs.110\).aspx),
|
|
73
83
|
you normally do not have to specify this manually, since it gets automatically detected by our build process.
|
|
84
|
+
|
|
74
85
|
```ruby
|
|
75
|
-
toolchain :visualcpp
|
|
86
|
+
conf.toolchain :visualcpp
|
|
76
87
|
```
|
|
77
88
|
|
|
78
89
|
#### Android
|
|
79
90
|
|
|
80
91
|
Toolchain configuration for Android.
|
|
92
|
+
|
|
81
93
|
```ruby
|
|
82
|
-
toolchain :android
|
|
94
|
+
conf.toolchain :android
|
|
83
95
|
```
|
|
84
96
|
|
|
85
97
|
Requires the custom standalone Android NDK and the toolchain path
|
|
@@ -88,20 +100,18 @@ in `ANDROID_STANDALONE_TOOLCHAIN`.
|
|
|
88
100
|
### Binaries
|
|
89
101
|
|
|
90
102
|
It is possible to select which tools should be compiled during the compilation
|
|
91
|
-
process.
|
|
92
|
-
* mruby (mruby interpreter)
|
|
93
|
-
* mirb (mruby interactive shell)
|
|
103
|
+
process. For example,
|
|
94
104
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
```
|
|
105
|
+
* `mruby`
|
|
106
|
+
* `mirb`
|
|
107
|
+
|
|
108
|
+
The configuration are done via `mrbgems`. See `Mrbgems` section.
|
|
100
109
|
|
|
101
110
|
### File Separator
|
|
102
111
|
|
|
103
112
|
Some environments require a different file separator character. It is possible to
|
|
104
113
|
set the character via `conf.file_separator`.
|
|
114
|
+
|
|
105
115
|
```ruby
|
|
106
116
|
conf.file_separator = '/'
|
|
107
117
|
```
|
|
@@ -109,6 +119,7 @@ conf.file_separator = '/'
|
|
|
109
119
|
### C Compiler
|
|
110
120
|
|
|
111
121
|
Configuration of the C compiler binary, flags and include paths.
|
|
122
|
+
|
|
112
123
|
```ruby
|
|
113
124
|
conf.cc do |cc|
|
|
114
125
|
cc.command = ...
|
|
@@ -124,6 +135,7 @@ end
|
|
|
124
135
|
C Compiler has header searcher to detect installed library.
|
|
125
136
|
|
|
126
137
|
If you need a include path of header file use `search_header_path`:
|
|
138
|
+
|
|
127
139
|
```ruby
|
|
128
140
|
# Searches ```iconv.h```.
|
|
129
141
|
# If found it will return include path of the header file.
|
|
@@ -132,6 +144,7 @@ fail 'iconv.h not found' unless conf.cc.search_header_path 'iconv.h'
|
|
|
132
144
|
```
|
|
133
145
|
|
|
134
146
|
If you need a full file name of header file use `search_header`:
|
|
147
|
+
|
|
135
148
|
```ruby
|
|
136
149
|
# Searches ```iconv.h```.
|
|
137
150
|
# If found it will return full path of the header file.
|
|
@@ -145,6 +158,7 @@ When you are using GCC toolchain (including clang toolchain since its base is gc
|
|
|
145
158
|
it will use compiler specific include paths too. (For example `/usr/local/include`, `/usr/include`)
|
|
146
159
|
|
|
147
160
|
If you need a special header search paths define a singleton method `header_search_paths` to C compiler:
|
|
161
|
+
|
|
148
162
|
```ruby
|
|
149
163
|
def conf.cc.header_search_paths
|
|
150
164
|
['/opt/local/include'] + include_paths
|
|
@@ -154,6 +168,7 @@ end
|
|
|
154
168
|
### Linker
|
|
155
169
|
|
|
156
170
|
Configuration of the Linker binary, flags and library paths.
|
|
171
|
+
|
|
157
172
|
```ruby
|
|
158
173
|
conf.linker do |linker|
|
|
159
174
|
linker.command = ...
|
|
@@ -171,6 +186,7 @@ end
|
|
|
171
186
|
### Archiver
|
|
172
187
|
|
|
173
188
|
Configuration of the Archiver binary and flags.
|
|
189
|
+
|
|
174
190
|
```ruby
|
|
175
191
|
conf.archiver do |archiver|
|
|
176
192
|
archiver.command = ...
|
|
@@ -181,6 +197,7 @@ end
|
|
|
181
197
|
### Parser Generator
|
|
182
198
|
|
|
183
199
|
Configuration of the Parser Generator binary and flags.
|
|
200
|
+
|
|
184
201
|
```ruby
|
|
185
202
|
conf.yacc do |yacc|
|
|
186
203
|
yacc.command = ...
|
|
@@ -191,6 +208,7 @@ end
|
|
|
191
208
|
### GPerf
|
|
192
209
|
|
|
193
210
|
Configuration of the GPerf binary and flags.
|
|
211
|
+
|
|
194
212
|
```ruby
|
|
195
213
|
conf.gperf do |gperf|
|
|
196
214
|
gperf.command = ...
|
|
@@ -199,6 +217,7 @@ end
|
|
|
199
217
|
```
|
|
200
218
|
|
|
201
219
|
### File Extensions
|
|
220
|
+
|
|
202
221
|
```ruby
|
|
203
222
|
conf.exts do |exts|
|
|
204
223
|
exts.object = ...
|
|
@@ -207,19 +226,44 @@ conf.exts do |exts|
|
|
|
207
226
|
end
|
|
208
227
|
```
|
|
209
228
|
|
|
229
|
+
### Preallocated Symbols
|
|
230
|
+
|
|
231
|
+
By far, preallocate symbols are highly compatible with the previous versions, so
|
|
232
|
+
we expect you won't see any problem with them. But just in case you face any
|
|
233
|
+
issue, you can disable preallocated symbols by specifying `conf.disable_presym`.
|
|
234
|
+
|
|
235
|
+
In the build process, `mrbc` under cross compiling environment will be compiled
|
|
236
|
+
with this configuration.
|
|
237
|
+
|
|
210
238
|
### Mrbgems
|
|
211
239
|
|
|
212
|
-
|
|
240
|
+
`mruby` comes with the (sort of) packaging system named `mrbgems`. To
|
|
241
|
+
specify `gem`, you can use `conf.gem` in the configuration file.
|
|
242
|
+
|
|
213
243
|
```ruby
|
|
214
|
-
# Integrate
|
|
215
|
-
conf.gem '
|
|
216
|
-
|
|
217
|
-
|
|
244
|
+
# Integrate a bundled Gem you see in `mrbgems` directory
|
|
245
|
+
conf.gem :core => 'mruby-something'
|
|
246
|
+
|
|
247
|
+
# Integrate a Gem from GitHub
|
|
248
|
+
conf.gem :github => 'someone/mruby-another'
|
|
218
249
|
|
|
219
|
-
# Integrate
|
|
220
|
-
conf.gem '
|
|
250
|
+
# Integrate a mruby binary Gem
|
|
251
|
+
conf.gem :core => 'mruby-bin-mruby'
|
|
252
|
+
|
|
253
|
+
# Integrate a interactive mruby binary Gem
|
|
254
|
+
conf.gem :core => 'mruby-bin-mirb'
|
|
255
|
+
|
|
256
|
+
# Integrate GemBox (set of Gems)
|
|
257
|
+
conf.gembox "default"
|
|
221
258
|
```
|
|
222
259
|
|
|
260
|
+
A GemBox is a set of Gems defined in `mrbgems/default.gembox` for example.
|
|
261
|
+
It's just a set of `mrbgem` configurations.
|
|
262
|
+
|
|
263
|
+
There is a `RubyGem` (gem for CRuby) named `mgem` that help you to
|
|
264
|
+
manage `mrbgems`. Try `gem install mgem`. `mgem` can show you the list
|
|
265
|
+
of registered `mrbgems`.
|
|
266
|
+
|
|
223
267
|
See doc/mrbgems/README.md for more option about mrbgems.
|
|
224
268
|
|
|
225
269
|
### Mrbtest
|
|
@@ -227,6 +271,7 @@ See doc/mrbgems/README.md for more option about mrbgems.
|
|
|
227
271
|
Configuration Mrbtest build process.
|
|
228
272
|
|
|
229
273
|
If you want mrbtest.a only, You should set `conf.build_mrbtest_lib_only`
|
|
274
|
+
|
|
230
275
|
```ruby
|
|
231
276
|
conf.build_mrbtest_lib_only
|
|
232
277
|
```
|
|
@@ -239,6 +284,7 @@ See `mruby-bin-*/bintest/*.rb` if you need examples.
|
|
|
239
284
|
If you want a temporary files use `tempfile` module of CRuby instead of `/tmp/`.
|
|
240
285
|
|
|
241
286
|
You can enable it with following:
|
|
287
|
+
|
|
242
288
|
```ruby
|
|
243
289
|
conf.enable_bintest
|
|
244
290
|
```
|
|
@@ -257,6 +303,7 @@ files are compiled by C++ compiler.
|
|
|
257
303
|
|
|
258
304
|
When you mix C++ code, C++ exception would be enabled automatically.
|
|
259
305
|
If you need to enable C++ exception explicitly add the following:
|
|
306
|
+
|
|
260
307
|
```ruby
|
|
261
308
|
conf.enable_cxx_exception
|
|
262
309
|
```
|
|
@@ -266,20 +313,24 @@ conf.enable_cxx_exception
|
|
|
266
313
|
If your compiler does not support C++ and you want to ensure
|
|
267
314
|
you don't use mrbgem written in C++, you can explicitly disable
|
|
268
315
|
C++ exception, add following:
|
|
316
|
+
|
|
269
317
|
```ruby
|
|
270
318
|
conf.disable_cxx_exception
|
|
271
319
|
```
|
|
320
|
+
|
|
272
321
|
and you will get an error when you try to use C++ gem.
|
|
273
322
|
Note that it must be called before `enable_cxx_exception` or `gem` method.
|
|
274
323
|
|
|
275
324
|
### Debugging mode
|
|
276
325
|
|
|
277
326
|
To enable debugging mode add the following:
|
|
327
|
+
|
|
278
328
|
```ruby
|
|
279
329
|
conf.enable_debug
|
|
280
330
|
```
|
|
281
331
|
|
|
282
332
|
When debugging mode is enabled
|
|
333
|
+
|
|
283
334
|
* Macro `MRB_DEBUG` would be defined.
|
|
284
335
|
* Which means `mrb_assert()` macro is enabled.
|
|
285
336
|
* Debug information of irep would be generated by `mrbc`.
|
|
@@ -288,27 +339,29 @@ When debugging mode is enabled
|
|
|
288
339
|
|
|
289
340
|
## Cross-Compilation
|
|
290
341
|
|
|
291
|
-
mruby can also be cross-compiled from one platform to another. To
|
|
292
|
-
|
|
293
|
-
`MRuby::CrossBuild`. This instance defines the compilation
|
|
294
|
-
|
|
295
|
-
|
|
342
|
+
mruby can also be cross-compiled from one platform to another. To achieve
|
|
343
|
+
cross-compilation, the build configuration needs to contain an instance of
|
|
344
|
+
`MRuby::CrossBuild`. This instance defines the compilation tools and flags
|
|
345
|
+
for the target platform. An example could look like this:
|
|
346
|
+
|
|
296
347
|
```ruby
|
|
297
348
|
MRuby::CrossBuild.new('32bit') do |conf|
|
|
298
|
-
toolchain :gcc
|
|
349
|
+
conf.toolchain :gcc
|
|
299
350
|
|
|
300
351
|
conf.cc.flags << "-m32"
|
|
301
352
|
conf.linker.flags << "-m32"
|
|
302
353
|
end
|
|
303
354
|
```
|
|
304
355
|
|
|
305
|
-
All configuration options of `MRuby::Build` can also be used
|
|
306
|
-
|
|
356
|
+
All configuration options of `MRuby::Build` can also be used in
|
|
357
|
+
`MRuby::CrossBuild`. You can find examples under the *build_config*
|
|
358
|
+
directory.
|
|
307
359
|
|
|
308
360
|
### Mrbtest in Cross-Compilation
|
|
309
361
|
|
|
310
362
|
In cross compilation, you can run `mrbtest` on emulator if
|
|
311
363
|
you have it by changing configuration of test runner.
|
|
364
|
+
|
|
312
365
|
```ruby
|
|
313
366
|
conf.test_runner do |t|
|
|
314
367
|
t.command = ... # set emulator. this value must be non nil or false
|
|
@@ -348,6 +401,7 @@ root directory. The structure of this directory will look like this:
|
|
|
348
401
|
+- mruby
|
|
349
402
|
|
|
350
403
|
The compilation workflow will look like this:
|
|
404
|
+
|
|
351
405
|
* compile all files under *src* (object files will be stored
|
|
352
406
|
in *build/host/src*)
|
|
353
407
|
* generate parser grammar out of *src/parse.y* (generated
|
|
@@ -425,6 +479,7 @@ build directory.
|
|
|
425
479
|
The cross compilation workflow starts in the same way as the normal
|
|
426
480
|
compilation by compiling all *native* libraries and binaries.
|
|
427
481
|
Afterwards the cross compilation process proceeds like this:
|
|
482
|
+
|
|
428
483
|
* cross-compile all files under *src* (object files will be stored
|
|
429
484
|
in *build/i386/src*)
|
|
430
485
|
* generate parser grammar out of *src/parse.y* (generated
|
|
@@ -474,7 +529,7 @@ can't be disabled for the main build.
|
|
|
474
529
|
MRuby::CrossBuild.new('Minimal') do |conf|
|
|
475
530
|
toolchain :gcc
|
|
476
531
|
|
|
477
|
-
conf.cc.defines = %w(
|
|
532
|
+
conf.cc.defines = %w(MRB_NO_STDIO)
|
|
478
533
|
conf.bins = []
|
|
479
534
|
end
|
|
480
535
|
```
|
|
@@ -490,3 +545,37 @@ of mruby, a native binary called `mrbtest` will be generated and executed.
|
|
|
490
545
|
This binary contains all test cases which are defined under *test/t*. In case
|
|
491
546
|
of a cross-compilation an additional cross-compiled *mrbtest* binary is
|
|
492
547
|
generated. You can copy this binary and run on your target system.
|
|
548
|
+
|
|
549
|
+
## Embedding `mruby` in Your Application
|
|
550
|
+
|
|
551
|
+
After the build, you will get `libmruby.a`. You can link it to your application.
|
|
552
|
+
|
|
553
|
+
For compiler options and library path, you can use `mruby-config` command for
|
|
554
|
+
convenience. `mruby-config` command prints the configuration used for `libmruby.a`.
|
|
555
|
+
|
|
556
|
+
```
|
|
557
|
+
$ mruby-config --help
|
|
558
|
+
Usage: mruby-config [switches]
|
|
559
|
+
switches:
|
|
560
|
+
--cflags print flags passed to compiler
|
|
561
|
+
--ldflags print flags passed to linker
|
|
562
|
+
--ldflags-before-libs print flags passed to linker before linked libraries
|
|
563
|
+
--libs print linked libraries
|
|
564
|
+
--libmruby-path print libmruby path
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
For example, when you have a C source file (`c.c`) and try to
|
|
568
|
+
compile and link it with `libmruby.a`, you can run the following command,
|
|
569
|
+
|
|
570
|
+
```
|
|
571
|
+
gcc `mruby-config --cflags` c.c `mruby-config --ldflags` `mruby-config --libs`
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
When you use `make`, add following lines in `Makefile`
|
|
575
|
+
|
|
576
|
+
```
|
|
577
|
+
MRB_CONFIG = <path-to-mruby-config>
|
|
578
|
+
CFLAGS = `$(MRB_CONFIG) --cflags`
|
|
579
|
+
LDFLAGS = `$(MRB_CONFIG) --ldflags`
|
|
580
|
+
LIBS = `$(MRB_CONFIG) --libs`
|
|
581
|
+
```
|