script_core 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/.rubocop.yml +8 -6
- data/.ruby-version +1 -1
- data/Gemfile +2 -1
- data/bin/sandbox +1 -1
- data/ext/enterprise_script_service/Rakefile +1 -1
- data/ext/enterprise_script_service/flags.rb +5 -0
- data/ext/enterprise_script_service/libseccomp/CHANGELOG +15 -0
- data/ext/enterprise_script_service/libseccomp/CREDITS +3 -0
- data/ext/enterprise_script_service/libseccomp/Makefile.am +1 -1
- data/ext/enterprise_script_service/libseccomp/README.md +1 -1
- data/ext/enterprise_script_service/libseccomp/SECURITY.md +45 -0
- data/ext/enterprise_script_service/libseccomp/configure.ac +3 -3
- data/ext/enterprise_script_service/libseccomp/doc/admin/MAINTAINER_PROCESS.md +95 -0
- data/ext/enterprise_script_service/libseccomp/{RELEASE_PROCESS.md → doc/admin/RELEASE_PROCESS.md} +9 -1
- data/ext/enterprise_script_service/libseccomp/include/Makefile.am +1 -1
- data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +2292 -0
- data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +3 -1065
- data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +35 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +35 -3
- data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +43 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +33 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +33 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +34 -2
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +43 -11
- data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +44 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +46 -14
- data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +142 -18
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +47 -15
- data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +143 -17
- data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +33 -1
- data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +94 -12
- data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +142 -19
- data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +33 -1
- data/ext/enterprise_script_service/libseccomp/src/db.c +1 -0
- data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +10 -3
- data/ext/enterprise_script_service/libseccomp/src/python/Makefile.am +4 -4
- data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +2 -0
- data/ext/enterprise_script_service/libseccomp/tests/.gitignore +1 -0
- data/ext/enterprise_script_service/libseccomp/tests/50-sim-hash_collision.c +98 -0
- data/ext/enterprise_script_service/libseccomp/tests/50-sim-hash_collision.py +61 -0
- data/ext/enterprise_script_service/libseccomp/tests/50-sim-hash_collision.tests +18 -0
- data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +6 -3
- data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -2
- data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -0
- data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +2 -0
- data/ext/enterprise_script_service/mruby-mpdecimal/src/ext.c +1 -1
- data/ext/enterprise_script_service/mruby/.gitignore +2 -2
- data/ext/enterprise_script_service/mruby/CONTRIBUTING.md +10 -3
- data/ext/enterprise_script_service/mruby/Doxyfile +2408 -0
- data/ext/enterprise_script_service/mruby/README.md +21 -8
- data/ext/enterprise_script_service/mruby/Rakefile +4 -13
- data/ext/enterprise_script_service/mruby/appveyor_config.rb +1 -1
- data/ext/enterprise_script_service/mruby/build_config.rb +3 -3
- data/ext/enterprise_script_service/mruby/doc/guides/compile.md +42 -42
- data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
- data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +45 -6
- data/ext/enterprise_script_service/mruby/doc/guides/mrbgems.md +5 -0
- data/ext/enterprise_script_service/mruby/doc/limitations.md +88 -38
- data/ext/enterprise_script_service/mruby/doc/mruby_logo_red_icon.png +0 -0
- data/ext/enterprise_script_service/mruby/doc/opcode.md +94 -94
- data/ext/enterprise_script_service/mruby/include/mrbconf.h +74 -11
- data/ext/enterprise_script_service/mruby/include/mruby.h +242 -146
- data/ext/enterprise_script_service/mruby/include/mruby/array.h +7 -7
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +2 -9
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_no.h +11 -10
- data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +104 -69
- data/ext/enterprise_script_service/mruby/include/mruby/class.h +7 -5
- data/ext/enterprise_script_service/mruby/include/mruby/common.h +9 -7
- data/ext/enterprise_script_service/mruby/include/mruby/compile.h +6 -6
- data/ext/enterprise_script_service/mruby/include/mruby/data.h +5 -5
- data/ext/enterprise_script_service/mruby/include/mruby/debug.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/dump.h +3 -7
- data/ext/enterprise_script_service/mruby/include/mruby/error.h +34 -6
- data/ext/enterprise_script_service/mruby/include/mruby/gc.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/hash.h +4 -11
- data/ext/enterprise_script_service/mruby/include/mruby/irep.h +16 -4
- data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -4
- data/ext/enterprise_script_service/mruby/include/mruby/khash.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +41 -7
- data/ext/enterprise_script_service/mruby/include/mruby/object.h +8 -9
- data/ext/enterprise_script_service/mruby/include/mruby/opcode.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/ops.h +6 -6
- data/ext/enterprise_script_service/mruby/include/mruby/proc.h +19 -13
- data/ext/enterprise_script_service/mruby/include/mruby/range.h +10 -4
- data/ext/enterprise_script_service/mruby/include/mruby/re.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/string.h +130 -107
- data/ext/enterprise_script_service/mruby/include/mruby/throw.h +2 -2
- data/ext/enterprise_script_service/mruby/include/mruby/value.h +137 -49
- data/ext/enterprise_script_service/mruby/include/mruby/variable.h +3 -5
- data/ext/enterprise_script_service/mruby/include/mruby/version.h +24 -10
- data/ext/enterprise_script_service/mruby/lib/mruby-core-ext.rb +2 -39
- data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +32 -15
- data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +63 -17
- data/ext/enterprise_script_service/mruby/lib/mruby/build/load_gems.rb +24 -10
- data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +11 -7
- data/ext/enterprise_script_service/mruby/lib/mruby/lockfile.rb +81 -0
- data/ext/enterprise_script_service/mruby/minirake +27 -11
- data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +3 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +47 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +50 -29
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +3 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +4 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +28 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +1 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +75 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +134 -90
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +7 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +69 -46
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/keywords +0 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/lex.def +51 -59
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +430 -241
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrbgem.rake +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +122 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +249 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/test/complex.rb +153 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/mrblib/chain.rb +19 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-chain/test/enum_chain.rb +41 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +30 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enum-ext/test/enum.rb +8 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +46 -14
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +51 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +10 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +47 -44
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-exit/src/mruby-exit.c +9 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +16 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/test/fiber.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +0 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +3 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/test/hash.rb +3 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/README.md +1 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file.rb +0 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +24 -38
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/kernel.rb +16 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +19 -18
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +5 -16
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +54 -42
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +24 -20
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file_test.rb +4 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +41 -35
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +9 -36
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +9 -27
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +2 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-math/src/math.c +5 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +39 -24
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +48 -17
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/method.rb +0 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +134 -101
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/test/method.rb +9 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +1 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +17 -37
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +0 -8
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/mrbgem.rake +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +15 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +35 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/test/nil.rb +4 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +1 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +28 -23
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/test/pack.rb +43 -49
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/mrblib/print.rb +3 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +6 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/test/proc.rb +21 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.c +157 -124
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/test/random.rb +72 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +38 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +26 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/test/range.rb +111 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrbgem.rake +5 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +117 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +209 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/test/rational.rb +308 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/README.md +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/src/socket.c +10 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/kernel.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +22 -24
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrbgem.rake +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +8 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +116 -117
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/numeric.rb +29 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/range.rb +26 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/test/string.rb +32 -50
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/mrblib/struct.rb +5 -7
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +43 -57
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/test/struct.rb +16 -11
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +2 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/driver.c +152 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +4 -3
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/vformat.c +200 -0
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/include/mruby/time.h +2 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +199 -68
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/test/time.rb +81 -46
- data/ext/enterprise_script_service/mruby/mrblib/array.rb +14 -16
- data/ext/enterprise_script_service/mruby/mrblib/enum.rb +13 -9
- data/ext/enterprise_script_service/mruby/mrblib/hash.rb +5 -7
- data/ext/enterprise_script_service/mruby/mrblib/kernel.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrblib/numeric.rb +4 -4
- data/ext/enterprise_script_service/mruby/mrblib/range.rb +1 -1
- data/ext/enterprise_script_service/mruby/mrblib/string.rb +55 -112
- data/ext/enterprise_script_service/mruby/mruby-source.gemspec +1 -1
- data/ext/enterprise_script_service/mruby/oss-fuzz/config/mruby.dict +105 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/config/mruby_fuzzer.options +5 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/config/mruby_proto_fuzzer.options +4 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_fuzzer.c +18 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/mruby_proto_fuzzer.cpp +44 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.cpp +455 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/proto_to_ruby.h +55 -0
- data/ext/enterprise_script_service/mruby/oss-fuzz/ruby.proto +201 -0
- data/ext/enterprise_script_service/mruby/src/array.c +95 -46
- data/ext/enterprise_script_service/mruby/src/backtrace.c +6 -8
- data/ext/enterprise_script_service/mruby/src/class.c +370 -278
- data/ext/enterprise_script_service/mruby/src/codedump.c +34 -34
- data/ext/enterprise_script_service/mruby/src/debug.c +2 -2
- data/ext/enterprise_script_service/mruby/src/dump.c +8 -6
- data/ext/enterprise_script_service/mruby/src/enum.c +1 -1
- data/ext/enterprise_script_service/mruby/src/error.c +157 -55
- data/ext/enterprise_script_service/mruby/src/etc.c +13 -46
- data/ext/enterprise_script_service/mruby/src/fmt_fp.c +2 -2
- data/ext/enterprise_script_service/mruby/src/gc.c +30 -11
- data/ext/enterprise_script_service/mruby/src/hash.c +23 -14
- data/ext/enterprise_script_service/mruby/src/kernel.c +16 -54
- data/ext/enterprise_script_service/mruby/src/load.c +40 -76
- data/ext/enterprise_script_service/mruby/src/numeric.c +164 -94
- data/ext/enterprise_script_service/mruby/src/object.c +16 -39
- data/ext/enterprise_script_service/mruby/src/pool.c +0 -2
- data/ext/enterprise_script_service/mruby/src/proc.c +47 -48
- data/ext/enterprise_script_service/mruby/src/range.c +22 -35
- data/ext/enterprise_script_service/mruby/src/state.c +5 -94
- data/ext/enterprise_script_service/mruby/src/string.c +874 -710
- data/ext/enterprise_script_service/mruby/src/symbol.c +73 -48
- data/ext/enterprise_script_service/mruby/src/variable.c +58 -38
- data/ext/enterprise_script_service/mruby/src/vm.c +133 -304
- data/ext/enterprise_script_service/mruby/tasks/doc.rake +48 -0
- data/ext/enterprise_script_service/mruby/tasks/toolchains/clang.rake +3 -4
- data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +20 -19
- data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +0 -12
- data/ext/enterprise_script_service/mruby/test/assert.rb +186 -25
- data/ext/enterprise_script_service/mruby/test/t/array.rb +34 -6
- data/ext/enterprise_script_service/mruby/test/t/class.rb +26 -0
- data/ext/enterprise_script_service/mruby/test/t/enumerable.rb +2 -2
- data/ext/enterprise_script_service/mruby/test/t/float.rb +17 -17
- data/ext/enterprise_script_service/mruby/test/t/hash.rb +2 -0
- data/ext/enterprise_script_service/mruby/test/t/integer.rb +14 -6
- data/ext/enterprise_script_service/mruby/test/t/kernel.rb +38 -19
- data/ext/enterprise_script_service/mruby/test/t/module.rb +87 -14
- data/ext/enterprise_script_service/mruby/test/t/numeric.rb +65 -23
- data/ext/enterprise_script_service/mruby/test/t/range.rb +4 -4
- data/ext/enterprise_script_service/mruby/test/t/string.rb +211 -49
- data/ext/enterprise_script_service/mruby/test/t/syntax.rb +19 -2
- data/ext/enterprise_script_service/mruby/test/t/vformat.rb +92 -0
- data/ext/enterprise_script_service/mruby/travis_config.rb +2 -2
- data/ext/enterprise_script_service/mruby_config.rb +10 -0
- data/ext/enterprise_script_service/mruby_engine.cpp +2 -2
- data/ext/enterprise_script_service/mruby_engine.gembox +1 -0
- data/ext/enterprise_script_service/msgpack/CHANGELOG.md +14 -0
- data/ext/enterprise_script_service/msgpack/Files.cmake +4 -0
- data/ext/enterprise_script_service/msgpack/README.md +1 -1
- data/ext/enterprise_script_service/msgpack/appveyor.yml +1 -1
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_msgpack_tuple.hpp.erb +1 -1
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_msgpack_tuple_decl.hpp.erb +1 -1
- data/ext/enterprise_script_service/msgpack/erb/v1/cpp03_zone.hpp.erb +3 -3
- data/ext/enterprise_script_service/msgpack/example/boost/asio_send_recv.cpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/cpp11/timespec.hpp +16 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/adaptor/wstring.hpp +15 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/object.h +2 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/pack_template.h +17 -9
- data/ext/enterprise_script_service/msgpack/include/msgpack/sysdep.h +27 -16
- data/ext/enterprise_script_service/msgpack/include/msgpack/type.hpp +2 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/unpack_template.h +5 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +0 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/check_container_size.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/chrono.hpp +5 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp11/timespec.hpp +140 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple.hpp +32 -32
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp03_msgpack_tuple_decl.hpp +32 -32
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/detail/cpp11_msgpack_tuple_decl.hpp +10 -10
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/ext.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/fixint.hpp +5 -4
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/int.hpp +40 -13
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/int_decl.hpp +3 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +121 -0
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp03_zone.hpp +3 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/detail/cpp11_zone.hpp +3 -3
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object.hpp +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/object_fwd.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/pack.hpp +40 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/unpack.hpp +11 -11
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/vrefbuffer.hpp +7 -7
- data/ext/enterprise_script_service/msgpack/include/msgpack/v1/zbuffer.hpp +5 -5
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/adaptor/int_decl.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/create_object_visitor.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/parse.hpp +13 -13
- data/ext/enterprise_script_service/msgpack/include/msgpack/v2/x3_parse.hpp +28 -26
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/adaptor/int_decl.hpp +1 -1
- data/ext/enterprise_script_service/msgpack/include/msgpack/v3/parse.hpp +13 -13
- data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
- data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +6 -6
- data/ext/enterprise_script_service/msgpack/include/msgpack/zone.h +1 -1
- data/ext/enterprise_script_service/msgpack/src/objectc.c +83 -148
- data/ext/enterprise_script_service/msgpack/src/unpack.c +73 -47
- data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +1 -1
- data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +15 -9
- data/ext/enterprise_script_service/msgpack/test/buffer.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/carray.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/cases.cpp +7 -1
- data/ext/enterprise_script_service/msgpack/test/convert.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/fixint.cpp +7 -1
- data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +6 -1
- data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +8 -2
- data/ext/enterprise_script_service/msgpack/test/json.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/limit.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +128 -6
- data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +7 -2
- data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +20 -3
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +159 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +8 -3
- data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +23 -18
- data/ext/enterprise_script_service/msgpack/test/object.cpp +77 -45
- data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +28 -10
- data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +25 -18
- data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/raw.cpp +17 -12
- data/ext/enterprise_script_service/msgpack/test/reference.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +6 -2
- data/ext/enterprise_script_service/msgpack/test/streaming.cpp +10 -3
- data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/user_class.cpp +5 -0
- data/ext/enterprise_script_service/msgpack/test/version.cpp +6 -0
- data/ext/enterprise_script_service/msgpack/test/visitor.cpp +7 -0
- data/ext/enterprise_script_service/msgpack/test/zone.cpp +6 -0
- data/lib/script_core/version.rb +1 -1
- data/lib/tasks/mruby/engine.gembox.example +1 -0
- data/lib/tasks/script_core.rake +21 -3
- data/spec/dummy/app/helpers/fields_helper.rb +2 -2
- data/spec/dummy/mruby/engine.gembox +1 -0
- data/spec/script_core_spec.rb +1 -1
- metadata +38 -22
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/.gitignore +0 -1
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/.travis.yml +0 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/run_test.rb +0 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/mrblib/kernel.rb +0 -15
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/mrblib/unbound_method.rb +0 -9
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/.gitignore +0 -5
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/.travis.yml +0 -2
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/packtest.rb +0 -157
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/run_test.rb +0 -26
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/mt19937ar.c +0 -224
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/mt19937ar.h +0 -80
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-random/src/random.h +0 -12
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.gitignore +0 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis.yml +0 -29
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/.travis_build_config.rb +0 -6
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/Rakefile +0 -29
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/.travis.yml +0 -4
- data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/run_test.rb +0 -28
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
assert('Integer#chr') do
|
4
|
+
assert_equal("A", 65.chr)
|
5
|
+
assert_equal("B", 0x42.chr)
|
6
|
+
assert_equal("\xab", 171.chr)
|
7
|
+
assert_raise(RangeError) { -1.chr }
|
8
|
+
assert_raise(RangeError) { 256.chr }
|
9
|
+
|
10
|
+
assert_equal("A", 65.chr("ASCII-8BIT"))
|
11
|
+
assert_equal("B", 0x42.chr("BINARY"))
|
12
|
+
assert_equal("\xab", 171.chr("ascii-8bit"))
|
13
|
+
assert_raise(RangeError) { -1.chr("binary") }
|
14
|
+
assert_raise(RangeError) { 256.chr("Ascii-8bit") }
|
15
|
+
assert_raise(ArgumentError) { 65.chr("ASCII") }
|
16
|
+
assert_raise(ArgumentError) { 65.chr("ASCII-8BIT", 2) }
|
17
|
+
assert_raise(TypeError) { 65.chr(:BINARY) }
|
18
|
+
|
19
|
+
if __ENCODING__ == "ASCII-8BIT"
|
20
|
+
assert_raise(ArgumentError) { 65.chr("UTF-8") }
|
21
|
+
else
|
22
|
+
assert_equal("A", 65.chr("UTF-8"))
|
23
|
+
assert_equal("B", 0x42.chr("UTF-8"))
|
24
|
+
assert_equal("«", 171.chr("utf-8"))
|
25
|
+
assert_equal("あ", 12354.chr("Utf-8"))
|
26
|
+
assert_raise(RangeError) { -1.chr("utf-8") }
|
27
|
+
assert_raise(RangeError) { 0x110000.chr.chr("UTF-8") }
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
assert('Range#max') do
|
2
|
+
# returns the maximum value in the range when called with no arguments
|
3
|
+
assert_equal 'l', ('f'..'l').max
|
4
|
+
assert_equal 'e', ('a'...'f').max
|
5
|
+
|
6
|
+
# returns nil when the endpoint is less than the start point
|
7
|
+
assert_equal nil, ('z'..'l').max
|
8
|
+
end
|
9
|
+
|
10
|
+
assert('Range#max given a block') do
|
11
|
+
# returns nil when the endpoint is less than the start point
|
12
|
+
assert_equal nil, (('z'..'l').max { |x, y| x <=> y })
|
13
|
+
end
|
14
|
+
|
15
|
+
assert('Range#min') do
|
16
|
+
# returns the minimum value in the range when called with no arguments
|
17
|
+
assert_equal 'f', ('f'..'l').min
|
18
|
+
|
19
|
+
# returns nil when the start point is greater than the endpoint
|
20
|
+
assert_equal nil, ('z'..'l').min
|
21
|
+
end
|
22
|
+
|
23
|
+
assert('Range#min given a block') do
|
24
|
+
# returns nil when the start point is greater than the endpoint
|
25
|
+
assert_equal nil, (('z'..'l').min { |x, y| x <=> y })
|
26
|
+
end
|
@@ -2,39 +2,18 @@
|
|
2
2
|
##
|
3
3
|
# String(Ext) Test
|
4
4
|
|
5
|
-
UTF8STRING =
|
5
|
+
UTF8STRING = __ENCODING__ == "UTF-8"
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
assert_equal
|
11
|
-
assert_equal bytes1[-1], str1.getbyte(-1)
|
12
|
-
assert_equal bytes1[6], str1.getbyte(6)
|
13
|
-
|
14
|
-
str2 = "\xFF"
|
15
|
-
bytes2 = [0xFF]
|
16
|
-
assert_equal bytes2[0], str2.getbyte(0)
|
17
|
-
end
|
18
|
-
|
19
|
-
assert('String#setbyte') do
|
20
|
-
str1 = "hello"
|
21
|
-
h = "H".getbyte(0)
|
22
|
-
str1.setbyte(0, h)
|
23
|
-
assert_equal(h, str1.getbyte(0))
|
24
|
-
assert_equal("Hello", str1)
|
25
|
-
end
|
26
|
-
|
27
|
-
assert('String#byteslice') do
|
28
|
-
str1 = "hello"
|
29
|
-
assert_equal("e", str1.byteslice(1))
|
30
|
-
assert_equal("o", str1.byteslice(-1))
|
31
|
-
assert_equal("ell", str1.byteslice(1..3))
|
32
|
-
assert_equal("el", str1.byteslice(1...3))
|
7
|
+
def assert_upto(exp, receiver, *args)
|
8
|
+
act = []
|
9
|
+
receiver.upto(*args) { |v| act << v }
|
10
|
+
assert_equal exp, act
|
33
11
|
end
|
34
12
|
|
35
13
|
assert('String#dump') do
|
36
14
|
assert_equal("\"\\x00\"", "\0".dump)
|
37
15
|
assert_equal("\"foo\"", "foo".dump)
|
16
|
+
assert_equal('"\xe3\x82\x8b"', "る".dump)
|
38
17
|
assert_nothing_raised { ("\1" * 100).dump } # regress #1210
|
39
18
|
end
|
40
19
|
|
@@ -116,8 +95,15 @@
|
|
116
95
|
assert('String#concat') do
|
117
96
|
assert_equal "Hello World!", "Hello " << "World" << 33
|
118
97
|
assert_equal "Hello World!", "Hello ".concat("World").concat(33)
|
119
|
-
|
120
98
|
assert_raise(TypeError) { "".concat(Object.new) }
|
99
|
+
|
100
|
+
if UTF8STRING
|
101
|
+
assert_equal "H«", "H" << 0xab
|
102
|
+
assert_equal "Hは", "H" << 12399
|
103
|
+
else
|
104
|
+
assert_equal "H\xab", "H" << 0xab
|
105
|
+
assert_raise(RangeError) { "H" << 12399 }
|
106
|
+
end
|
121
107
|
end
|
122
108
|
|
123
109
|
assert('String#casecmp') do
|
@@ -247,12 +233,6 @@
|
|
247
233
|
assert_equal (-8), "-10".oct
|
248
234
|
end
|
249
235
|
|
250
|
-
assert('String#chr') do
|
251
|
-
assert_equal "a", "abcde".chr
|
252
|
-
# test Fixnum#chr as well
|
253
|
-
assert_equal "a", 97.chr
|
254
|
-
end
|
255
|
-
|
256
236
|
assert('String#lines') do
|
257
237
|
assert_equal ["Hel\n", "lo\n", "World!"], "Hel\nlo\nWorld!".lines
|
258
238
|
assert_equal ["Hel\n", "lo\n", "World!\n"], "Hel\nlo\nWorld!\n".lines
|
@@ -539,16 +519,15 @@
|
|
539
519
|
end
|
540
520
|
|
541
521
|
assert('String#upto') do
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
assert_equal ["9", ":", ";", "<", "=", ">", "?", "@", "A"], "9".upto("A").to_a
|
522
|
+
assert_upto %w(a8 a9 b0 b1 b2 b3 b4 b5 b6), "a8", "b6"
|
523
|
+
assert_upto ["9", "10", "11"], "9", "11"
|
524
|
+
assert_upto [], "25", "5"
|
525
|
+
assert_upto ["07", "08", "09", "10", "11"], "07", "11"
|
526
|
+
assert_upto ["9", ":", ";", "<", "=", ">", "?", "@", "A"], "9", "A"
|
527
|
+
|
528
|
+
if UTF8STRING
|
529
|
+
assert_upto %w(あ ぃ い ぅ う ぇ え ぉ お), "あ", "お"
|
530
|
+
end
|
552
531
|
|
553
532
|
a = "aa"
|
554
533
|
start = "aa"
|
@@ -630,8 +609,11 @@
|
|
630
609
|
end if UTF8STRING
|
631
610
|
|
632
611
|
assert('String#chr') do
|
612
|
+
assert_equal "a", "abcde".chr
|
633
613
|
assert_equal "h", "hello!".chr
|
614
|
+
assert_equal "", "".chr
|
634
615
|
end
|
616
|
+
|
635
617
|
assert('String#chr(UTF-8)') do
|
636
618
|
assert_equal "こ", "こんにちは世界!".chr
|
637
619
|
end if UTF8STRING
|
@@ -657,19 +639,19 @@
|
|
657
639
|
end if UTF8STRING
|
658
640
|
|
659
641
|
assert('String#each_char') do
|
660
|
-
|
642
|
+
chars = []
|
661
643
|
"hello!".each_char do |x|
|
662
|
-
|
644
|
+
chars << x
|
663
645
|
end
|
664
|
-
assert_equal "
|
646
|
+
assert_equal ["h", "e", "l", "l", "o", "!"], chars
|
665
647
|
end
|
666
648
|
|
667
649
|
assert('String#each_char(UTF-8)') do
|
668
|
-
|
650
|
+
chars = []
|
669
651
|
"こんにちは世界!".each_char do |x|
|
670
|
-
|
652
|
+
chars << x
|
671
653
|
end
|
672
|
-
assert_equal "
|
654
|
+
assert_equal ["こ", "ん", "に", "ち", "は", "世", "界", "!"], chars
|
673
655
|
end if UTF8STRING
|
674
656
|
|
675
657
|
assert('String#codepoints') do
|
@@ -46,7 +46,9 @@ def select(&block)
|
|
46
46
|
ary
|
47
47
|
end
|
48
48
|
|
49
|
-
def _inspect
|
49
|
+
def _inspect(recur_list)
|
50
|
+
return "#<struct #{self.class}:...>" if recur_list[self.object_id]
|
51
|
+
recur_list[self.object_id] = true
|
50
52
|
name = self.class.to_s
|
51
53
|
if name[0] == "#"
|
52
54
|
str = "#<struct "
|
@@ -55,7 +57,7 @@ def _inspect
|
|
55
57
|
end
|
56
58
|
buf = []
|
57
59
|
self.each_pair do |k,v|
|
58
|
-
buf.push
|
60
|
+
buf.push k.to_s + "=" + v._inspect(recur_list)
|
59
61
|
end
|
60
62
|
str + buf.join(", ") + ">"
|
61
63
|
end
|
@@ -70,11 +72,7 @@ def _inspect
|
|
70
72
|
# 15.2.18.4.10(x)
|
71
73
|
#
|
72
74
|
def inspect
|
73
|
-
|
74
|
-
self._inspect
|
75
|
-
rescue SystemStackError
|
76
|
-
"#<struct #{self.class.to_s}:...>"
|
77
|
-
end
|
75
|
+
self._inspect({})
|
78
76
|
end
|
79
77
|
|
80
78
|
##
|
@@ -66,8 +66,8 @@ struct_members(mrb_state *mrb, mrb_value s)
|
|
66
66
|
}
|
67
67
|
else {
|
68
68
|
mrb_raisef(mrb, E_TYPE_ERROR,
|
69
|
-
"struct size differs (%
|
70
|
-
|
69
|
+
"struct size differs (%i required %i given)",
|
70
|
+
RARRAY_LEN(members), RSTRUCT_LEN(s));
|
71
71
|
}
|
72
72
|
}
|
73
73
|
return members;
|
@@ -87,10 +87,7 @@ mrb_struct_s_members_m(mrb_state *mrb, mrb_value klass)
|
|
87
87
|
static void
|
88
88
|
mrb_struct_modify(mrb_state *mrb, mrb_value strct)
|
89
89
|
{
|
90
|
-
|
91
|
-
mrb_raise(mrb, E_FROZEN_ERROR, "can't modify frozen struct");
|
92
|
-
}
|
93
|
-
|
90
|
+
mrb_check_frozen(mrb, mrb_basic_ptr(strct));
|
94
91
|
mrb_write_barrier(mrb, mrb_basic_ptr(strct));
|
95
92
|
}
|
96
93
|
|
@@ -126,19 +123,29 @@ mrb_struct_ref(mrb_state *mrb, mrb_value obj)
|
|
126
123
|
static mrb_sym
|
127
124
|
mrb_id_attrset(mrb_state *mrb, mrb_sym id)
|
128
125
|
{
|
126
|
+
#define ONSTACK_ALLOC_MAX 32
|
127
|
+
#define ONSTACK_STRLEN_MAX (ONSTACK_ALLOC_MAX - 1) /* '=' character */
|
128
|
+
|
129
129
|
const char *name;
|
130
130
|
char *buf;
|
131
131
|
mrb_int len;
|
132
132
|
mrb_sym mid;
|
133
|
+
char onstack[ONSTACK_ALLOC_MAX];
|
133
134
|
|
134
|
-
name =
|
135
|
-
|
135
|
+
name = mrb_sym_name_len(mrb, id, &len);
|
136
|
+
if (len > ONSTACK_STRLEN_MAX) {
|
137
|
+
buf = (char *)mrb_malloc(mrb, (size_t)len+1);
|
138
|
+
}
|
139
|
+
else {
|
140
|
+
buf = onstack;
|
141
|
+
}
|
136
142
|
memcpy(buf, name, (size_t)len);
|
137
143
|
buf[len] = '=';
|
138
|
-
buf[len+1] = '\0';
|
139
144
|
|
140
145
|
mid = mrb_intern(mrb, buf, len+1);
|
141
|
-
|
146
|
+
if (buf != onstack) {
|
147
|
+
mrb_free(mrb, buf);
|
148
|
+
}
|
142
149
|
return mid;
|
143
150
|
}
|
144
151
|
|
@@ -161,20 +168,6 @@ mrb_struct_set_m(mrb_state *mrb, mrb_value obj)
|
|
161
168
|
return val;
|
162
169
|
}
|
163
170
|
|
164
|
-
static mrb_bool
|
165
|
-
is_local_id(mrb_state *mrb, const char *name)
|
166
|
-
{
|
167
|
-
if (!name) return FALSE;
|
168
|
-
return !ISUPPER(name[0]);
|
169
|
-
}
|
170
|
-
|
171
|
-
static mrb_bool
|
172
|
-
is_const_id(mrb_state *mrb, const char *name)
|
173
|
-
{
|
174
|
-
if (!name) return FALSE;
|
175
|
-
return ISUPPER(name[0]);
|
176
|
-
}
|
177
|
-
|
178
171
|
static void
|
179
172
|
make_struct_define_accessors(mrb_state *mrb, mrb_value members, struct RClass *c)
|
180
173
|
{
|
@@ -185,19 +178,15 @@ make_struct_define_accessors(mrb_state *mrb, mrb_value members, struct RClass *c
|
|
185
178
|
|
186
179
|
for (i=0; i<len; i++) {
|
187
180
|
mrb_sym id = mrb_symbol(ptr_members[i]);
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
MRB_METHOD_FROM_PROC(m, aset);
|
198
|
-
mrb_define_method_raw(mrb, c, mrb_id_attrset(mrb, id), m);
|
199
|
-
mrb_gc_arena_restore(mrb, ai);
|
200
|
-
}
|
181
|
+
mrb_method_t m;
|
182
|
+
mrb_value at = mrb_fixnum_value(i);
|
183
|
+
struct RProc *aref = mrb_proc_new_cfunc_with_env(mrb, mrb_struct_ref, 1, &at);
|
184
|
+
struct RProc *aset = mrb_proc_new_cfunc_with_env(mrb, mrb_struct_set_m, 1, &at);
|
185
|
+
MRB_METHOD_FROM_PROC(m, aref);
|
186
|
+
mrb_define_method_raw(mrb, c, id, m);
|
187
|
+
MRB_METHOD_FROM_PROC(m, aset);
|
188
|
+
mrb_define_method_raw(mrb, c, mrb_id_attrset(mrb, id), m);
|
189
|
+
mrb_gc_arena_restore(mrb, ai);
|
201
190
|
}
|
202
191
|
}
|
203
192
|
|
@@ -215,11 +204,11 @@ make_struct(mrb_state *mrb, mrb_value name, mrb_value members, struct RClass *kl
|
|
215
204
|
/* old style: should we warn? */
|
216
205
|
mrb_to_str(mrb, name);
|
217
206
|
id = mrb_obj_to_sym(mrb, name);
|
218
|
-
if (!
|
219
|
-
mrb_name_error(mrb, id, "identifier %
|
207
|
+
if (!mrb_const_name_p(mrb, RSTRING_PTR(name), RSTRING_LEN(name))) {
|
208
|
+
mrb_name_error(mrb, id, "identifier %v needs to be constant", name);
|
220
209
|
}
|
221
210
|
if (mrb_const_defined_at(mrb, mrb_obj_value(klass), id)) {
|
222
|
-
mrb_warn(mrb, "redefining constant Struct::%
|
211
|
+
mrb_warn(mrb, "redefining constant Struct::%v", name);
|
223
212
|
mrb_const_remove(mrb, mrb_obj_value(klass), id);
|
224
213
|
}
|
225
214
|
c = mrb_define_class_under(mrb, klass, RSTRING_PTR(name), klass);
|
@@ -399,23 +388,22 @@ struct_aref_sym(mrb_state *mrb, mrb_value obj, mrb_sym id)
|
|
399
388
|
return ptr[i];
|
400
389
|
}
|
401
390
|
}
|
402
|
-
mrb_name_error(mrb, id, "no member '%
|
391
|
+
mrb_name_error(mrb, id, "no member '%n' in struct", id);
|
403
392
|
return mrb_nil_value(); /* not reached */
|
404
393
|
}
|
405
394
|
|
406
395
|
static mrb_value
|
407
396
|
struct_aref_int(mrb_state *mrb, mrb_value s, mrb_int i)
|
408
397
|
{
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
if (RSTRUCT_LEN(s) <=
|
398
|
+
mrb_int idx = i < 0 ? RSTRUCT_LEN(s) + i : i;
|
399
|
+
|
400
|
+
if (idx < 0)
|
401
|
+
mrb_raisef(mrb, E_INDEX_ERROR,
|
402
|
+
"offset %i too small for struct(size:%i)", i, RSTRUCT_LEN(s));
|
403
|
+
if (RSTRUCT_LEN(s) <= idx)
|
415
404
|
mrb_raisef(mrb, E_INDEX_ERROR,
|
416
|
-
"offset %
|
417
|
-
|
418
|
-
return RSTRUCT_PTR(s)[i];
|
405
|
+
"offset %i too large for struct(size:%i)", i, RSTRUCT_LEN(s));
|
406
|
+
return RSTRUCT_PTR(s)[idx];
|
419
407
|
}
|
420
408
|
|
421
409
|
/* 15.2.18.4.2 */
|
@@ -447,7 +435,7 @@ mrb_struct_aref(mrb_state *mrb, mrb_value s)
|
|
447
435
|
mrb_value sym = mrb_check_intern_str(mrb, idx);
|
448
436
|
|
449
437
|
if (mrb_nil_p(sym)) {
|
450
|
-
mrb_name_error(mrb, mrb_intern_str(mrb, idx), "no member '%
|
438
|
+
mrb_name_error(mrb, mrb_intern_str(mrb, idx), "no member '%v' in struct", idx);
|
451
439
|
}
|
452
440
|
idx = sym;
|
453
441
|
}
|
@@ -475,7 +463,7 @@ mrb_struct_aset_sym(mrb_state *mrb, mrb_value s, mrb_sym id, mrb_value val)
|
|
475
463
|
return val;
|
476
464
|
}
|
477
465
|
}
|
478
|
-
mrb_name_error(mrb, id, "no member '%
|
466
|
+
mrb_name_error(mrb, id, "no member '%n' in struct", id);
|
479
467
|
return val; /* not reach */
|
480
468
|
}
|
481
469
|
|
@@ -514,7 +502,7 @@ mrb_struct_aset(mrb_state *mrb, mrb_value s)
|
|
514
502
|
mrb_value sym = mrb_check_intern_str(mrb, idx);
|
515
503
|
|
516
504
|
if (mrb_nil_p(sym)) {
|
517
|
-
mrb_name_error(mrb, mrb_intern_str(mrb, idx), "no member '%
|
505
|
+
mrb_name_error(mrb, mrb_intern_str(mrb, idx), "no member '%v' in struct", idx);
|
518
506
|
}
|
519
507
|
idx = sym;
|
520
508
|
}
|
@@ -526,13 +514,11 @@ mrb_struct_aset(mrb_state *mrb, mrb_value s)
|
|
526
514
|
if (i < 0) i = RSTRUCT_LEN(s) + i;
|
527
515
|
if (i < 0) {
|
528
516
|
mrb_raisef(mrb, E_INDEX_ERROR,
|
529
|
-
"offset %
|
530
|
-
mrb_fixnum_value(i), mrb_fixnum_value(RSTRUCT_LEN(s)));
|
517
|
+
"offset %i too small for struct(size:%i)", i, RSTRUCT_LEN(s));
|
531
518
|
}
|
532
519
|
if (RSTRUCT_LEN(s) <= i) {
|
533
520
|
mrb_raisef(mrb, E_INDEX_ERROR,
|
534
|
-
"offset %
|
535
|
-
mrb_fixnum_value(i), mrb_fixnum_value(RSTRUCT_LEN(s)));
|
521
|
+
"offset %i too large for struct(size:%i)", i, RSTRUCT_LEN(s));
|
536
522
|
}
|
537
523
|
mrb_struct_modify(mrb, s);
|
538
524
|
return RSTRUCT_PTR(s)[i] = val;
|
@@ -116,9 +116,10 @@
|
|
116
116
|
end
|
117
117
|
|
118
118
|
assert('struct inspect') do
|
119
|
-
c = Struct.new(:m1, :m2, :m3, :m4, :m5)
|
120
|
-
cc = c.new(1,2,3,4,5)
|
121
|
-
|
119
|
+
c = Struct.new(:m1, :m2, :m3, :m4, :m5, :recur)
|
120
|
+
cc = c.new(1,2,3,4,5,nil)
|
121
|
+
cc.recur = cc
|
122
|
+
assert_equal "#<struct m1=1, m2=2, m3=3, m4=4, m5=5, recur=#<struct #{cc.class}:...>>", cc.inspect
|
122
123
|
end
|
123
124
|
|
124
125
|
assert('Struct#length, Struct#size') do
|
@@ -152,14 +153,14 @@
|
|
152
153
|
assert_equal 1, a.dig(1, 0)
|
153
154
|
end
|
154
155
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
end
|
156
|
+
# TODO: suppress redefining Struct warning during test
|
157
|
+
# assert("Struct.new removes existing constant") do
|
158
|
+
# begin
|
159
|
+
# assert_not_equal Struct.new("Test", :a), Struct.new("Test", :a, :b)
|
160
|
+
# ensure
|
161
|
+
# Struct.remove_const :Test
|
162
|
+
# end
|
163
|
+
# end
|
163
164
|
|
164
165
|
assert("Struct#initialize_copy requires struct to be the same type") do
|
165
166
|
begin
|
@@ -181,6 +182,10 @@
|
|
181
182
|
end
|
182
183
|
end
|
183
184
|
|
185
|
+
assert("Struct.new does not allow invalid class name") do
|
186
|
+
assert_raise(NameError) { Struct.new("Test-", :a) }
|
187
|
+
end
|
188
|
+
|
184
189
|
assert("Struct.new generates subclass of Struct") do
|
185
190
|
begin
|
186
191
|
original_struct = Struct
|