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
|
@@ -24,7 +24,7 @@ vf_s_format_c(mrb_state *mrb, mrb_value klass)
|
|
|
24
24
|
mrb_value fmt_str, arg_str;
|
|
25
25
|
const char *fmt;
|
|
26
26
|
char c;
|
|
27
|
-
|
|
27
|
+
|
|
28
28
|
mrb_get_args(mrb, "SS", &fmt_str, &arg_str);
|
|
29
29
|
fmt = RSTRING_CSTR(mrb, fmt_str);
|
|
30
30
|
c = RSTRING_CSTR(mrb, arg_str)[0];
|
|
@@ -48,7 +48,7 @@ vf_s_format_d(mrb_state *mrb, mrb_value klass)
|
|
|
48
48
|
return mrb_format(mrb, fmt, d);
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
#ifndef
|
|
51
|
+
#ifndef MRB_NO_FLOAT
|
|
52
52
|
/* f float */
|
|
53
53
|
static mrb_value
|
|
54
54
|
vf_s_format_f(mrb_state *mrb, mrb_value klass)
|
|
@@ -164,10 +164,10 @@ mrb_init_test_vformat(mrb_state *mrb)
|
|
|
164
164
|
|
|
165
165
|
#define VF_DEFINE_FORMAT_METHOD(t) VF_DEFINE_FORMAT_METHOD_n(t,2)
|
|
166
166
|
#define VF_DEFINE_FORMAT_METHOD_n(t,n) mrb_define_class_method(mrb, vf, #t, vf_s_format_##t, MRB_ARGS_REQ(n));
|
|
167
|
-
|
|
167
|
+
|
|
168
168
|
VF_DEFINE_FORMAT_METHOD(c);
|
|
169
169
|
VF_DEFINE_FORMAT_METHOD(d);
|
|
170
|
-
#ifndef
|
|
170
|
+
#ifndef MRB_NO_FLOAT
|
|
171
171
|
VF_DEFINE_FORMAT_METHOD(f);
|
|
172
172
|
#endif
|
|
173
173
|
VF_DEFINE_FORMAT_METHOD(i);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
** See Copyright Notice in mruby.h
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
#ifndef
|
|
7
|
+
#ifndef MRB_NO_FLOAT
|
|
8
8
|
#include <math.h>
|
|
9
9
|
#endif
|
|
10
10
|
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
#include <mruby/numeric.h>
|
|
15
15
|
#include <mruby/time.h>
|
|
16
16
|
#include <mruby/string.h>
|
|
17
|
+
#include <mruby/presym.h>
|
|
17
18
|
|
|
18
|
-
#ifdef
|
|
19
|
+
#ifdef MRB_NO_STDIO
|
|
19
20
|
#include <string.h>
|
|
20
21
|
#endif
|
|
21
22
|
|
|
@@ -30,7 +31,7 @@ double round(double x) {
|
|
|
30
31
|
}
|
|
31
32
|
#endif
|
|
32
33
|
|
|
33
|
-
#ifndef
|
|
34
|
+
#ifndef MRB_NO_FLOAT
|
|
34
35
|
# if !defined(__MINGW64__) && defined(_WIN32)
|
|
35
36
|
# define llround(x) round(x)
|
|
36
37
|
# endif
|
|
@@ -65,7 +66,7 @@ double round(double x) {
|
|
|
65
66
|
|
|
66
67
|
/* asctime(3) */
|
|
67
68
|
/* mruby usually use its own implementation of struct tm to string conversion */
|
|
68
|
-
/* except when
|
|
69
|
+
/* except when MRB_NO_STDIO is set. In that case, it uses asctime() or asctime_r(). */
|
|
69
70
|
/* By default mruby tries to use asctime_r() which is reentrant. */
|
|
70
71
|
/* Undef following macro on platforms that does not have asctime_r(). */
|
|
71
72
|
/* #define NO_ASCTIME_R */
|
|
@@ -180,7 +181,7 @@ static const mrb_timezone_name timezone_names[] = {
|
|
|
180
181
|
{ "LOCAL", sizeof("LOCAL") - 1 },
|
|
181
182
|
};
|
|
182
183
|
|
|
183
|
-
#ifndef
|
|
184
|
+
#ifndef MRB_NO_STDIO
|
|
184
185
|
static const char mon_names[12][4] = {
|
|
185
186
|
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
|
|
186
187
|
};
|
|
@@ -199,13 +200,13 @@ struct mrb_time {
|
|
|
199
200
|
|
|
200
201
|
static const struct mrb_data_type mrb_time_type = { "Time", mrb_free };
|
|
201
202
|
|
|
202
|
-
#ifndef
|
|
203
|
+
#ifndef MRB_NO_FLOAT
|
|
203
204
|
void mrb_check_num_exact(mrb_state *mrb, mrb_float num);
|
|
204
205
|
typedef mrb_float mrb_sec;
|
|
205
206
|
#define mrb_sec_value(mrb, sec) mrb_float_value(mrb, sec)
|
|
206
207
|
#else
|
|
207
208
|
typedef mrb_int mrb_sec;
|
|
208
|
-
#define mrb_sec_value(mrb, sec)
|
|
209
|
+
#define mrb_sec_value(mrb, sec) mrb_int_value(mrb, sec)
|
|
209
210
|
#endif
|
|
210
211
|
|
|
211
212
|
#define MRB_TIME_T_UINT (~(time_t)0 > 0)
|
|
@@ -218,11 +219,15 @@ typedef mrb_int mrb_sec;
|
|
|
218
219
|
(sizeof(time_t) <= 4 ? INT32_MAX : INT64_MAX) \
|
|
219
220
|
)
|
|
220
221
|
|
|
222
|
+
/* return true if time_t is fit in mrb_int */
|
|
221
223
|
static mrb_bool
|
|
222
224
|
fixable_time_t_p(time_t v)
|
|
223
225
|
{
|
|
224
226
|
if (MRB_INT_MIN <= MRB_TIME_MIN && MRB_TIME_MAX <= MRB_INT_MAX) return TRUE;
|
|
225
|
-
|
|
227
|
+
if (v > (time_t)MRB_INT_MAX) return FALSE;
|
|
228
|
+
if (MRB_TIME_T_UINT) return TRUE;
|
|
229
|
+
if (MRB_INT_MIN > (mrb_int)v) return FALSE;
|
|
230
|
+
return TRUE;
|
|
226
231
|
}
|
|
227
232
|
|
|
228
233
|
static time_t
|
|
@@ -231,7 +236,7 @@ mrb_to_time_t(mrb_state *mrb, mrb_value obj, time_t *usec)
|
|
|
231
236
|
time_t t;
|
|
232
237
|
|
|
233
238
|
switch (mrb_type(obj)) {
|
|
234
|
-
#ifndef
|
|
239
|
+
#ifndef MRB_NO_FLOAT
|
|
235
240
|
case MRB_TT_FLOAT:
|
|
236
241
|
{
|
|
237
242
|
mrb_float f = mrb_float(obj);
|
|
@@ -250,14 +255,14 @@ mrb_to_time_t(mrb_state *mrb, mrb_value obj, time_t *usec)
|
|
|
250
255
|
}
|
|
251
256
|
}
|
|
252
257
|
break;
|
|
253
|
-
#endif /*
|
|
258
|
+
#endif /* MRB_NO_FLOAT */
|
|
254
259
|
default:
|
|
255
|
-
case
|
|
260
|
+
case MRB_TT_INTEGER:
|
|
256
261
|
{
|
|
257
|
-
mrb_int i =
|
|
262
|
+
mrb_int i = mrb_integer(obj);
|
|
258
263
|
|
|
259
|
-
if ((MRB_INT_MAX > MRB_TIME_MAX && i > 0 && i >
|
|
260
|
-
(MRB_TIME_MIN > MRB_INT_MIN && MRB_TIME_MIN > i)) {
|
|
264
|
+
if ((MRB_INT_MAX > MRB_TIME_MAX && i > 0 && (time_t)i > MRB_TIME_MAX) ||
|
|
265
|
+
(0 > MRB_TIME_MIN && MRB_TIME_MIN > MRB_INT_MIN && MRB_TIME_MIN > i)) {
|
|
261
266
|
goto out_of_range;
|
|
262
267
|
}
|
|
263
268
|
|
|
@@ -420,7 +425,7 @@ mrb_time_now(mrb_state *mrb, mrb_value self)
|
|
|
420
425
|
MRB_API mrb_value
|
|
421
426
|
mrb_time_at(mrb_state *mrb, time_t sec, time_t usec, enum mrb_timezone zone)
|
|
422
427
|
{
|
|
423
|
-
return mrb_time_make_time(mrb,
|
|
428
|
+
return mrb_time_make_time(mrb, mrb_class_get_id(mrb, MRB_SYM(Time)), sec, usec, zone);
|
|
424
429
|
}
|
|
425
430
|
|
|
426
431
|
/* 15.2.19.6.1 */
|
|
@@ -572,7 +577,7 @@ mrb_time_minus(mrb_state *mrb, mrb_value self)
|
|
|
572
577
|
tm = time_get_ptr(mrb, self);
|
|
573
578
|
tm2 = DATA_CHECK_GET_PTR(mrb, other, &mrb_time_type, struct mrb_time);
|
|
574
579
|
if (tm2) {
|
|
575
|
-
#ifndef
|
|
580
|
+
#ifndef MRB_NO_FLOAT
|
|
576
581
|
mrb_float f;
|
|
577
582
|
f = (mrb_sec)(tm->sec - tm2->sec)
|
|
578
583
|
+ (mrb_sec)(tm->usec - tm2->usec) / 1.0e6;
|
|
@@ -581,7 +586,7 @@ mrb_time_minus(mrb_state *mrb, mrb_value self)
|
|
|
581
586
|
mrb_int f;
|
|
582
587
|
f = tm->sec - tm2->sec;
|
|
583
588
|
if (tm->usec < tm2->usec) f--;
|
|
584
|
-
return
|
|
589
|
+
return mrb_int_value(mrb, f);
|
|
585
590
|
#endif
|
|
586
591
|
}
|
|
587
592
|
else {
|
|
@@ -648,7 +653,7 @@ mrb_time_asctime(mrb_state *mrb, mrb_value self)
|
|
|
648
653
|
struct tm *d = &tm->datetime;
|
|
649
654
|
int len;
|
|
650
655
|
|
|
651
|
-
#if defined(
|
|
656
|
+
#if defined(MRB_NO_STDIO)
|
|
652
657
|
char *s;
|
|
653
658
|
# ifdef NO_ASCTIME_R
|
|
654
659
|
s = asctime(d);
|
|
@@ -843,7 +848,7 @@ mrb_time_sec(mrb_state *mrb, mrb_value self)
|
|
|
843
848
|
return mrb_fixnum_value(tm->datetime.tm_sec);
|
|
844
849
|
}
|
|
845
850
|
|
|
846
|
-
#ifndef
|
|
851
|
+
#ifndef MRB_NO_FLOAT
|
|
847
852
|
/* 15.2.19.7.24 */
|
|
848
853
|
/* Returns a Float with the time since the epoch in seconds. */
|
|
849
854
|
static mrb_value
|
|
@@ -864,12 +869,12 @@ mrb_time_to_i(mrb_state *mrb, mrb_value self)
|
|
|
864
869
|
struct mrb_time *tm;
|
|
865
870
|
|
|
866
871
|
tm = time_get_ptr(mrb, self);
|
|
867
|
-
#ifndef
|
|
872
|
+
#ifndef MRB_NO_FLOAT
|
|
868
873
|
if (!fixable_time_t_p(tm->sec)) {
|
|
869
874
|
return mrb_float_value(mrb, (mrb_float)tm->sec);
|
|
870
875
|
}
|
|
871
876
|
#endif
|
|
872
|
-
return
|
|
877
|
+
return mrb_int_value(mrb, (mrb_int)tm->sec);
|
|
873
878
|
}
|
|
874
879
|
|
|
875
880
|
/* 15.2.19.7.26 */
|
|
@@ -880,11 +885,6 @@ mrb_time_usec(mrb_state *mrb, mrb_value self)
|
|
|
880
885
|
struct mrb_time *tm;
|
|
881
886
|
|
|
882
887
|
tm = time_get_ptr(mrb, self);
|
|
883
|
-
#ifndef MRB_WITHOUT_FLOAT
|
|
884
|
-
if (!fixable_time_t_p(tm->usec)) {
|
|
885
|
-
return mrb_float_value(mrb, (mrb_float)tm->usec);
|
|
886
|
-
}
|
|
887
|
-
#endif
|
|
888
888
|
return mrb_fixnum_value((mrb_int)tm->usec);
|
|
889
889
|
}
|
|
890
890
|
|
|
@@ -995,7 +995,7 @@ mrb_mruby_time_gem_init(mrb_state* mrb)
|
|
|
995
995
|
|
|
996
996
|
mrb_define_method(mrb, tc, "sec" , mrb_time_sec, MRB_ARGS_NONE()); /* 15.2.19.7.23 */
|
|
997
997
|
mrb_define_method(mrb, tc, "to_i", mrb_time_to_i, MRB_ARGS_NONE()); /* 15.2.19.7.25 */
|
|
998
|
-
#ifndef
|
|
998
|
+
#ifndef MRB_NO_FLOAT
|
|
999
999
|
mrb_define_method(mrb, tc, "to_f", mrb_time_to_f, MRB_ARGS_NONE()); /* 15.2.19.7.24 */
|
|
1000
1000
|
#endif
|
|
1001
1001
|
mrb_define_method(mrb, tc, "usec", mrb_time_usec, MRB_ARGS_NONE()); /* 15.2.19.7.26 */
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# It also works with MRB_NO_STDIO and MRB_NO_FLOAT.
|
|
2
|
+
|
|
3
|
+
MRuby::GemBox.new do |conf|
|
|
4
|
+
# Use standard Array#pack, String#unpack methods
|
|
5
|
+
conf.gem :core => "mruby-pack"
|
|
6
|
+
|
|
7
|
+
# Use standard Kernel#sprintf method
|
|
8
|
+
conf.gem :core => "mruby-sprintf"
|
|
9
|
+
|
|
10
|
+
# Use standard Time class
|
|
11
|
+
conf.gem :core => "mruby-time"
|
|
12
|
+
|
|
13
|
+
# Use standard Struct class
|
|
14
|
+
conf.gem :core => "mruby-struct"
|
|
15
|
+
|
|
16
|
+
# Use Random class
|
|
17
|
+
conf.gem :core => "mruby-random"
|
|
18
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# It also works with MRB_NO_FLOAT.
|
|
2
|
+
|
|
3
|
+
MRuby::GemBox.new do |conf|
|
|
4
|
+
# Use standard IO/File class
|
|
5
|
+
conf.gem :core => "mruby-io"
|
|
6
|
+
|
|
7
|
+
# Use standard IO/File class
|
|
8
|
+
conf.gem :core => "mruby-socket"
|
|
9
|
+
|
|
10
|
+
# Use standard print/puts/p
|
|
11
|
+
conf.gem :core => "mruby-print"
|
|
12
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# It also works with MRB_NO_STDIO and MRB_NO_FLOAT.
|
|
2
|
+
|
|
3
|
+
MRuby::GemBox.new do |conf|
|
|
4
|
+
# Use Comparable module extension
|
|
5
|
+
conf.gem :core => "mruby-compar-ext"
|
|
6
|
+
|
|
7
|
+
# Use Enumerable module extension
|
|
8
|
+
conf.gem :core => "mruby-enum-ext"
|
|
9
|
+
|
|
10
|
+
# Use String class extension
|
|
11
|
+
conf.gem :core => "mruby-string-ext"
|
|
12
|
+
|
|
13
|
+
# Use Numeric class extension
|
|
14
|
+
conf.gem :core => "mruby-numeric-ext"
|
|
15
|
+
|
|
16
|
+
# Use Array class extension
|
|
17
|
+
conf.gem :core => "mruby-array-ext"
|
|
18
|
+
|
|
19
|
+
# Use Hash class extension
|
|
20
|
+
conf.gem :core => "mruby-hash-ext"
|
|
21
|
+
|
|
22
|
+
# Use Range class extension
|
|
23
|
+
conf.gem :core => "mruby-range-ext"
|
|
24
|
+
|
|
25
|
+
# Use Proc class extension
|
|
26
|
+
conf.gem :core => "mruby-proc-ext"
|
|
27
|
+
|
|
28
|
+
# Use Symbol class extension
|
|
29
|
+
conf.gem :core => "mruby-symbol-ext"
|
|
30
|
+
|
|
31
|
+
# Use Object class extension
|
|
32
|
+
conf.gem :core => "mruby-object-ext"
|
|
33
|
+
|
|
34
|
+
# Use ObjectSpace class
|
|
35
|
+
conf.gem :core => "mruby-objectspace"
|
|
36
|
+
|
|
37
|
+
# Use Fiber class
|
|
38
|
+
conf.gem :core => "mruby-fiber"
|
|
39
|
+
|
|
40
|
+
# Use Enumerator class (require mruby-fiber)
|
|
41
|
+
conf.gem :core => "mruby-enumerator"
|
|
42
|
+
|
|
43
|
+
# Use Enumerator::Lazy class (require mruby-enumerator)
|
|
44
|
+
conf.gem :core => "mruby-enum-lazy"
|
|
45
|
+
|
|
46
|
+
# Use toplevel object (main) methods extension
|
|
47
|
+
conf.gem :core => "mruby-toplevel-ext"
|
|
48
|
+
|
|
49
|
+
# Use Kernel module extension
|
|
50
|
+
conf.gem :core => "mruby-kernel-ext"
|
|
51
|
+
|
|
52
|
+
# Use class/module extension
|
|
53
|
+
conf.gem :core => "mruby-class-ext"
|
|
54
|
+
end
|
|
@@ -10,16 +10,16 @@ class Array
|
|
|
10
10
|
# and pass the respective element.
|
|
11
11
|
#
|
|
12
12
|
# ISO 15.2.12.5.10
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
def each(&block)
|
|
14
|
+
return to_enum :each unless block
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
16
|
+
idx = 0
|
|
17
|
+
while idx < length
|
|
18
|
+
block.call(self[idx])
|
|
19
|
+
idx += 1
|
|
20
|
+
end
|
|
21
|
+
self
|
|
22
|
+
end
|
|
23
23
|
|
|
24
24
|
##
|
|
25
25
|
# Calls the given block for each element of +self+
|
|
@@ -66,6 +66,10 @@ def collect!(&block)
|
|
|
66
66
|
#
|
|
67
67
|
# ISO 15.2.12.5.15
|
|
68
68
|
def initialize(size=0, obj=nil, &block)
|
|
69
|
+
if size.is_a?(Array) && obj==nil && block == nil
|
|
70
|
+
self.replace(size)
|
|
71
|
+
return self
|
|
72
|
+
end
|
|
69
73
|
size = size.__to_int
|
|
70
74
|
raise ArgumentError, "negative array size" if size < 0
|
|
71
75
|
|
|
@@ -268,4 +272,8 @@ def sort!(&block)
|
|
|
268
272
|
def sort(&block)
|
|
269
273
|
self.dup.sort!(&block)
|
|
270
274
|
end
|
|
275
|
+
|
|
276
|
+
def to_a
|
|
277
|
+
self
|
|
278
|
+
end
|
|
271
279
|
end
|
|
@@ -144,26 +144,6 @@ def each_value(&block)
|
|
|
144
144
|
self
|
|
145
145
|
end
|
|
146
146
|
|
|
147
|
-
##
|
|
148
|
-
# Replaces the contents of <i>hsh</i> with the contents of other hash
|
|
149
|
-
#
|
|
150
|
-
# ISO 15.2.13.4.23
|
|
151
|
-
def replace(hash)
|
|
152
|
-
raise TypeError, "Hash required (#{hash.class} given)" unless Hash === hash
|
|
153
|
-
self.clear
|
|
154
|
-
hash.each_key{|k|
|
|
155
|
-
self[k] = hash[k]
|
|
156
|
-
}
|
|
157
|
-
if hash.default_proc
|
|
158
|
-
self.default_proc = hash.default_proc
|
|
159
|
-
else
|
|
160
|
-
self.default = hash.default
|
|
161
|
-
end
|
|
162
|
-
self
|
|
163
|
-
end
|
|
164
|
-
# ISO 15.2.13.4.17
|
|
165
|
-
alias initialize_copy replace
|
|
166
|
-
|
|
167
147
|
##
|
|
168
148
|
# Return a hash which contains the content of
|
|
169
149
|
# +self+ and +other+. If a block is given
|
|
@@ -34,11 +34,11 @@ def abs
|
|
|
34
34
|
end
|
|
35
35
|
|
|
36
36
|
##
|
|
37
|
-
#
|
|
37
|
+
# Integer
|
|
38
38
|
#
|
|
39
|
-
#
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
# ISO 15.2.8
|
|
40
|
+
##
|
|
41
|
+
class Integer
|
|
42
42
|
##
|
|
43
43
|
# Calls the given block once for each Integer
|
|
44
44
|
# from +self+ downto +num+.
|
|
@@ -125,14 +125,7 @@ def step(num=nil, step=1, &block)
|
|
|
125
125
|
end
|
|
126
126
|
self
|
|
127
127
|
end
|
|
128
|
-
end
|
|
129
128
|
|
|
130
|
-
##
|
|
131
|
-
# Integer
|
|
132
|
-
#
|
|
133
|
-
# ISO 15.2.8
|
|
134
|
-
class Integer
|
|
135
|
-
include Integral
|
|
136
129
|
##
|
|
137
130
|
# Returns the receiver simply.
|
|
138
131
|
#
|
|
@@ -161,3 +154,35 @@ def floor
|
|
|
161
154
|
# ISO 15.2.8.3.26
|
|
162
155
|
alias truncate floor
|
|
163
156
|
end
|
|
157
|
+
|
|
158
|
+
class Float
|
|
159
|
+
##
|
|
160
|
+
# Calls the given block from +self+ to +num+
|
|
161
|
+
# incremented by +step+ (default 1).
|
|
162
|
+
#
|
|
163
|
+
def step(num=nil, step=1, &block)
|
|
164
|
+
raise ArgumentError, "step can't be 0" if step == 0
|
|
165
|
+
return to_enum(:step, num, step) unless block
|
|
166
|
+
|
|
167
|
+
i = self
|
|
168
|
+
if num == self || step.infinite?
|
|
169
|
+
block.call(i) if step > 0 && i <= (num||i) || step < 0 && i >= (num||-i)
|
|
170
|
+
elsif num == nil
|
|
171
|
+
while true
|
|
172
|
+
block.call(i)
|
|
173
|
+
i += step
|
|
174
|
+
end
|
|
175
|
+
elsif step > 0
|
|
176
|
+
while i <= num
|
|
177
|
+
block.call(i)
|
|
178
|
+
i += step
|
|
179
|
+
end
|
|
180
|
+
else
|
|
181
|
+
while i >= num
|
|
182
|
+
block.call(i)
|
|
183
|
+
i += step
|
|
184
|
+
end
|
|
185
|
+
end
|
|
186
|
+
self
|
|
187
|
+
end
|
|
188
|
+
end if Object.const_defined?(:Float)
|