enclave 0.1.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 +7 -0
- data/README.md +182 -0
- data/Rakefile +30 -0
- data/ext/enclave/enclave.c +390 -0
- data/ext/enclave/extconf.rb +33 -0
- data/ext/enclave/mruby/Makefile +63 -0
- data/ext/enclave/mruby/Rakefile +102 -0
- data/ext/enclave/mruby/benchmark/bm_ao_render.rb +309 -0
- data/ext/enclave/mruby/benchmark/bm_app_lc_fizzbuzz.rb +51 -0
- data/ext/enclave/mruby/benchmark/bm_fib.rb +6 -0
- data/ext/enclave/mruby/benchmark/bm_mandel_term.rb +34 -0
- data/ext/enclave/mruby/benchmark/bm_so_lists.rb +49 -0
- data/ext/enclave/mruby/benchmark/bm_so_mandelbrot.rb +65 -0
- data/ext/enclave/mruby/benchmark/vm_dispatch_bench.c +197 -0
- data/ext/enclave/mruby/benchmark/vm_optimization_bench.rb +513 -0
- data/ext/enclave/mruby/build/host/include/mrbconf.h +230 -0
- data/ext/enclave/mruby/build/host/include/mruby/array.h +303 -0
- data/ext/enclave/mruby/build/host/include/mruby/boxing_nan.h +169 -0
- data/ext/enclave/mruby/build/host/include/mruby/boxing_no.h +59 -0
- data/ext/enclave/mruby/build/host/include/mruby/boxing_word.h +248 -0
- data/ext/enclave/mruby/build/host/include/mruby/class.h +157 -0
- data/ext/enclave/mruby/build/host/include/mruby/common.h +127 -0
- data/ext/enclave/mruby/build/host/include/mruby/compile.h +187 -0
- data/ext/enclave/mruby/build/host/include/mruby/data.h +76 -0
- data/ext/enclave/mruby/build/host/include/mruby/debug.h +75 -0
- data/ext/enclave/mruby/build/host/include/mruby/dump.h +159 -0
- data/ext/enclave/mruby/build/host/include/mruby/endian.h +44 -0
- data/ext/enclave/mruby/build/host/include/mruby/error.h +168 -0
- data/ext/enclave/mruby/build/host/include/mruby/gc.h +77 -0
- data/ext/enclave/mruby/build/host/include/mruby/hash.h +234 -0
- data/ext/enclave/mruby/build/host/include/mruby/internal.h +278 -0
- data/ext/enclave/mruby/build/host/include/mruby/irep.h +142 -0
- data/ext/enclave/mruby/build/host/include/mruby/istruct.h +50 -0
- data/ext/enclave/mruby/build/host/include/mruby/khash.h +455 -0
- data/ext/enclave/mruby/build/host/include/mruby/mempool.h +19 -0
- data/ext/enclave/mruby/build/host/include/mruby/numeric.h +174 -0
- data/ext/enclave/mruby/build/host/include/mruby/object.h +44 -0
- data/ext/enclave/mruby/build/host/include/mruby/opcode.h +73 -0
- data/ext/enclave/mruby/build/host/include/mruby/ops.h +133 -0
- data/ext/enclave/mruby/build/host/include/mruby/presym/id.h +895 -0
- data/ext/enclave/mruby/build/host/include/mruby/presym/scanning.h +82 -0
- data/ext/enclave/mruby/build/host/include/mruby/presym/table.h +1787 -0
- data/ext/enclave/mruby/build/host/include/mruby/presym.h +65 -0
- data/ext/enclave/mruby/build/host/include/mruby/proc.h +184 -0
- data/ext/enclave/mruby/build/host/include/mruby/range.h +77 -0
- data/ext/enclave/mruby/build/host/include/mruby/re.h +16 -0
- data/ext/enclave/mruby/build/host/include/mruby/string.h +428 -0
- data/ext/enclave/mruby/build/host/include/mruby/throw.h +81 -0
- data/ext/enclave/mruby/build/host/include/mruby/value.h +471 -0
- data/ext/enclave/mruby/build/host/include/mruby/variable.h +108 -0
- data/ext/enclave/mruby/build/host/include/mruby/version.h +143 -0
- data/ext/enclave/mruby/build/host/include/mruby.h +1632 -0
- data/ext/enclave/mruby/build/host/mrbc/include/mruby/presym/id.h +281 -0
- data/ext/enclave/mruby/build/host/mrbc/include/mruby/presym/table.h +559 -0
- data/ext/enclave/mruby/build/host/mrbgems/gem_init.c +164 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-array-ext/gem_init.c +650 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-binding/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-catch/gem_init.c +86 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-class-ext/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-compar-ext/gem_init.c +99 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-complex/gem_init.c +362 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-data/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-enum-chain/gem_init.c +229 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-enum-ext/gem_init.c +1420 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-enum-lazy/gem_init.c +602 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-enumerator/gem_init.c +822 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-eval/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-fiber/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-hash-ext/gem_init.c +591 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-kernel-ext/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-math/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-metaprog/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-method/gem_init.c +153 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-numeric-ext/gem_init.c +211 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-object-ext/gem_init.c +94 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-objectspace/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-pack/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-proc-binding/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-proc-ext/gem_init.c +237 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-random/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-range-ext/gem_init.c +205 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-rational/gem_init.c +147 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-set/gem_init.c +487 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-sprintf/gem_init.c +83 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-string-ext/gem_init.c +220 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-struct/gem_init.c +175 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-symbol-ext/gem_init.c +153 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-time/gem_init.c +21 -0
- data/ext/enclave/mruby/build/host/mrbgems/mruby-toplevel-ext/gem_init.c +78 -0
- data/ext/enclave/mruby/build/host/mrblib/mrblib.c +1758 -0
- data/ext/enclave/mruby/build_config/ArduinoDue.rb +72 -0
- data/ext/enclave/mruby/build_config/IntelEdison.rb +69 -0
- data/ext/enclave/mruby/build_config/IntelGalileo.rb +88 -0
- data/ext/enclave/mruby/build_config/RX630.rb +63 -0
- data/ext/enclave/mruby/build_config/android_arm64_v8a.rb +11 -0
- data/ext/enclave/mruby/build_config/android_armeabi_v7a_neon_hard.rb +13 -0
- data/ext/enclave/mruby/build_config/bench.rb +11 -0
- data/ext/enclave/mruby/build_config/boxing.rb +19 -0
- data/ext/enclave/mruby/build_config/chipKITMax32.rb +68 -0
- data/ext/enclave/mruby/build_config/ci/gcc-clang.rb +40 -0
- data/ext/enclave/mruby/build_config/ci/msvc.rb +20 -0
- data/ext/enclave/mruby/build_config/clang-asan.rb +11 -0
- data/ext/enclave/mruby/build_config/cosmopolitan.rb +86 -0
- data/ext/enclave/mruby/build_config/cross-32bit.rb +14 -0
- data/ext/enclave/mruby/build_config/cross-mingw-winetest.rb +90 -0
- data/ext/enclave/mruby/build_config/cross-mingw.rb +14 -0
- data/ext/enclave/mruby/build_config/default.rb +83 -0
- data/ext/enclave/mruby/build_config/dreamcast_shelf.rb +81 -0
- data/ext/enclave/mruby/build_config/emscripten-cxx.rb +12 -0
- data/ext/enclave/mruby/build_config/emscripten.rb +10 -0
- data/ext/enclave/mruby/build_config/gameboyadvance.rb +72 -0
- data/ext/enclave/mruby/build_config/helpers/wine_runner.rb +71 -0
- data/ext/enclave/mruby/build_config/host-cxx.rb +12 -0
- data/ext/enclave/mruby/build_config/host-debug.rb +20 -0
- data/ext/enclave/mruby/build_config/host-f32.rb +14 -0
- data/ext/enclave/mruby/build_config/host-gprof.rb +14 -0
- data/ext/enclave/mruby/build_config/host-m32.rb +15 -0
- data/ext/enclave/mruby/build_config/host-nofloat.rb +22 -0
- data/ext/enclave/mruby/build_config/host-shared.rb +36 -0
- data/ext/enclave/mruby/build_config/i586-pc-msdosdjgpp.rb +76 -0
- data/ext/enclave/mruby/build_config/luckfox_pico.rb +106 -0
- data/ext/enclave/mruby/build_config/milkv_duo.rb +106 -0
- data/ext/enclave/mruby/build_config/minimal.rb +4 -0
- data/ext/enclave/mruby/build_config/mrbc.rb +10 -0
- data/ext/enclave/mruby/build_config/nintendo_switch.rb +73 -0
- data/ext/enclave/mruby/build_config/nintendo_wii.rb +95 -0
- data/ext/enclave/mruby/build_config/no-float.rb +17 -0
- data/ext/enclave/mruby/build_config/playstationportable.rb +78 -0
- data/ext/enclave/mruby/build_config/serenity.rb +26 -0
- data/ext/enclave/mruby/build_config.rb +9 -0
- data/ext/enclave/mruby/examples/mrbgems/c_and_ruby_extension_example/mrblib/example.rb +5 -0
- data/ext/enclave/mruby/examples/mrbgems/c_and_ruby_extension_example/src/example.c +23 -0
- data/ext/enclave/mruby/examples/mrbgems/c_and_ruby_extension_example/test/example.rb +7 -0
- data/ext/enclave/mruby/examples/mrbgems/c_extension_example/src/example.c +23 -0
- data/ext/enclave/mruby/examples/mrbgems/c_extension_example/test/example.c +7 -0
- data/ext/enclave/mruby/examples/mrbgems/c_extension_example/test/example.rb +3 -0
- data/ext/enclave/mruby/examples/mrbgems/cdata_extension_example/src/example.c +77 -0
- data/ext/enclave/mruby/examples/mrbgems/cdata_extension_example/test/example.c +7 -0
- data/ext/enclave/mruby/examples/mrbgems/mruby-YOUR-bigint/core/bigint.c +70 -0
- data/ext/enclave/mruby/examples/mrbgems/ruby_extension_example/mrblib/example.rb +5 -0
- data/ext/enclave/mruby/examples/mrbgems/ruby_extension_example/test/example.rb +3 -0
- data/ext/enclave/mruby/include/mrbconf.h +230 -0
- data/ext/enclave/mruby/include/mruby/array.h +303 -0
- data/ext/enclave/mruby/include/mruby/boxing_nan.h +169 -0
- data/ext/enclave/mruby/include/mruby/boxing_no.h +59 -0
- data/ext/enclave/mruby/include/mruby/boxing_word.h +248 -0
- data/ext/enclave/mruby/include/mruby/class.h +157 -0
- data/ext/enclave/mruby/include/mruby/common.h +127 -0
- data/ext/enclave/mruby/include/mruby/compile.h +187 -0
- data/ext/enclave/mruby/include/mruby/data.h +76 -0
- data/ext/enclave/mruby/include/mruby/debug.h +75 -0
- data/ext/enclave/mruby/include/mruby/dump.h +159 -0
- data/ext/enclave/mruby/include/mruby/endian.h +44 -0
- data/ext/enclave/mruby/include/mruby/error.h +168 -0
- data/ext/enclave/mruby/include/mruby/gc.h +77 -0
- data/ext/enclave/mruby/include/mruby/hash.h +234 -0
- data/ext/enclave/mruby/include/mruby/internal.h +278 -0
- data/ext/enclave/mruby/include/mruby/irep.h +142 -0
- data/ext/enclave/mruby/include/mruby/istruct.h +50 -0
- data/ext/enclave/mruby/include/mruby/khash.h +455 -0
- data/ext/enclave/mruby/include/mruby/mempool.h +19 -0
- data/ext/enclave/mruby/include/mruby/numeric.h +174 -0
- data/ext/enclave/mruby/include/mruby/object.h +44 -0
- data/ext/enclave/mruby/include/mruby/opcode.h +73 -0
- data/ext/enclave/mruby/include/mruby/ops.h +133 -0
- data/ext/enclave/mruby/include/mruby/presym/scanning.h +82 -0
- data/ext/enclave/mruby/include/mruby/presym.h +65 -0
- data/ext/enclave/mruby/include/mruby/proc.h +184 -0
- data/ext/enclave/mruby/include/mruby/range.h +77 -0
- data/ext/enclave/mruby/include/mruby/re.h +16 -0
- data/ext/enclave/mruby/include/mruby/string.h +428 -0
- data/ext/enclave/mruby/include/mruby/throw.h +81 -0
- data/ext/enclave/mruby/include/mruby/value.h +471 -0
- data/ext/enclave/mruby/include/mruby/variable.h +108 -0
- data/ext/enclave/mruby/include/mruby/version.h +143 -0
- data/ext/enclave/mruby/include/mruby.h +1632 -0
- data/ext/enclave/mruby/lib/mruby/amalgam.rb +568 -0
- data/ext/enclave/mruby/lib/mruby/build/command.rb +383 -0
- data/ext/enclave/mruby/lib/mruby/build/load_gems.rb +383 -0
- data/ext/enclave/mruby/lib/mruby/build.rb +616 -0
- data/ext/enclave/mruby/lib/mruby/core_ext.rb +61 -0
- data/ext/enclave/mruby/lib/mruby/doc.rb +51 -0
- data/ext/enclave/mruby/lib/mruby/gem.rb +585 -0
- data/ext/enclave/mruby/lib/mruby/lockfile.rb +81 -0
- data/ext/enclave/mruby/lib/mruby/presym.rb +167 -0
- data/ext/enclave/mruby/lib/mruby/source.rb +32 -0
- data/ext/enclave/mruby/mrbgems/default-no-fpu.gembox +3 -0
- data/ext/enclave/mruby/mrbgems/default-no-stdio.gembox +4 -0
- data/ext/enclave/mruby/mrbgems/default.gembox +25 -0
- data/ext/enclave/mruby/mrbgems/full-core.gembox +6 -0
- data/ext/enclave/mruby/mrbgems/hal-posix-dir/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/hal-posix-dir/src/dir_hal.c +193 -0
- data/ext/enclave/mruby/mrbgems/hal-posix-io/mrbgem.rake +8 -0
- data/ext/enclave/mruby/mrbgems/hal-posix-io/src/io_hal.c +602 -0
- data/ext/enclave/mruby/mrbgems/hal-posix-socket/mrbgem.rake +8 -0
- data/ext/enclave/mruby/mrbgems/hal-posix-socket/src/socket_hal.c +158 -0
- data/ext/enclave/mruby/mrbgems/hal-posix-task/README.md +102 -0
- data/ext/enclave/mruby/mrbgems/hal-posix-task/mrbgem.rake +8 -0
- data/ext/enclave/mruby/mrbgems/hal-posix-task/src/task_hal.c +252 -0
- data/ext/enclave/mruby/mrbgems/hal-win-dir/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/hal-win-dir/src/dir_hal.c +249 -0
- data/ext/enclave/mruby/mrbgems/hal-win-io/mrbgem.rake +11 -0
- data/ext/enclave/mruby/mrbgems/hal-win-io/src/io_hal.c +646 -0
- data/ext/enclave/mruby/mrbgems/hal-win-socket/mrbgem.rake +12 -0
- data/ext/enclave/mruby/mrbgems/hal-win-socket/src/socket_hal.c +177 -0
- data/ext/enclave/mruby/mrbgems/hal-win-task/README.md +109 -0
- data/ext/enclave/mruby/mrbgems/hal-win-task/mrbgem.rake +11 -0
- data/ext/enclave/mruby/mrbgems/hal-win-task/src/task_hal.c +187 -0
- data/ext/enclave/mruby/mrbgems/math.gembox +12 -0
- data/ext/enclave/mruby/mrbgems/metaprog.gembox +21 -0
- data/ext/enclave/mruby/mrbgems/mruby-array-ext/README.md +87 -0
- data/ext/enclave/mruby/mrbgems/mruby-array-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +784 -0
- data/ext/enclave/mruby/mrbgems/mruby-array-ext/src/array.c +1583 -0
- data/ext/enclave/mruby/mrbgems/mruby-array-ext/test/array.rb +849 -0
- data/ext/enclave/mruby/mrbgems/mruby-benchmark/README.md +257 -0
- data/ext/enclave/mruby/mrbgems/mruby-benchmark/mrbgem.rake +10 -0
- data/ext/enclave/mruby/mrbgems/mruby-benchmark/mrblib/benchmark.rb +131 -0
- data/ext/enclave/mruby/mrbgems/mruby-benchmark/test/benchmark.rb +244 -0
- data/ext/enclave/mruby/mrbgems/mruby-bigint/README-fgmp.md +154 -0
- data/ext/enclave/mruby/mrbgems/mruby-bigint/README.md +44 -0
- data/ext/enclave/mruby/mrbgems/mruby-bigint/core/bigint.c +6335 -0
- data/ext/enclave/mruby/mrbgems/mruby-bigint/core/bigint.h +117 -0
- data/ext/enclave/mruby/mrbgems/mruby-bigint/mrbgem.rake +10 -0
- data/ext/enclave/mruby/mrbgems/mruby-bigint/test/bigint.rb +157 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-config/README.md +46 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-config/mrbgem.rake +49 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-config/mruby-config +46 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-config/mruby-config.bat +92 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/README.md +63 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/bintest/mrdb.rb +283 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/bintest/print.rb +703 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/mrbgem.rake +10 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.c +523 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apibreak.h +26 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.c +238 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apilist.h +14 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.c +88 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apiprint.h +13 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.c +34 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/apistring.h +14 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c +436 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdmisc.c +509 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdprint.c +71 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/cmdrun.c +64 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +768 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.h +159 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +24 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdberror.h +19 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/README.md +94 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/bintest/mirb.rb +58 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +808 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_buffer.c +1035 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_buffer.h +185 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_completion.c +797 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_completion.h +132 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_editor.c +1118 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_editor.h +153 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_highlight.c +516 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_highlight.h +95 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_history.c +185 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_history.h +76 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_term.c +491 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb_term.h +137 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/README.md +58 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/bintest/mrbc.rb +30 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/mrbgem.rake +15 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +362 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/stub.c +104 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mruby/README.md +47 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mruby/bintest/mruby.rb +178 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +380 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-strip/README.md +38 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-strip/bintest/mruby_strip.rb +73 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-strip/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby_strip.c +139 -0
- data/ext/enclave/mruby/mrbgems/mruby-binding/README.md +256 -0
- data/ext/enclave/mruby/mrbgems/mruby-binding/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-binding/src/binding.c +518 -0
- data/ext/enclave/mruby/mrbgems/mruby-binding/test/binding.c +14 -0
- data/ext/enclave/mruby/mrbgems/mruby-binding/test/binding.rb +64 -0
- data/ext/enclave/mruby/mrbgems/mruby-catch/README.md +94 -0
- data/ext/enclave/mruby/mrbgems/mruby-catch/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-catch/mrblib/catch.rb +29 -0
- data/ext/enclave/mruby/mrbgems/mruby-catch/src/catch.c +149 -0
- data/ext/enclave/mruby/mrbgems/mruby-catch/test/catch.rb +86 -0
- data/ext/enclave/mruby/mrbgems/mruby-class-ext/README.md +81 -0
- data/ext/enclave/mruby/mrbgems/mruby-class-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-class-ext/src/class.c +377 -0
- data/ext/enclave/mruby/mrbgems/mruby-class-ext/test/class.rb +46 -0
- data/ext/enclave/mruby/mrbgems/mruby-class-ext/test/module.rb +109 -0
- data/ext/enclave/mruby/mrbgems/mruby-cmath/README.md +45 -0
- data/ext/enclave/mruby/mrbgems/mruby-cmath/mrbgem.rake +8 -0
- data/ext/enclave/mruby/mrbgems/mruby-cmath/src/cmath.c +426 -0
- data/ext/enclave/mruby/mrbgems/mruby-cmath/test/cmath.rb +41 -0
- data/ext/enclave/mruby/mrbgems/mruby-compar-ext/README.md +65 -0
- data/ext/enclave/mruby/mrbgems/mruby-compar-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-compar-ext/mrblib/compar.rb +75 -0
- data/ext/enclave/mruby/mrbgems/mruby-compar-ext/test/compar.rb +21 -0
- data/ext/enclave/mruby/mrbgems/mruby-compiler/README.md +28 -0
- data/ext/enclave/mruby/mrbgems/mruby-compiler/core/codegen.c +7316 -0
- data/ext/enclave/mruby/mrbgems/mruby-compiler/core/keywords +52 -0
- data/ext/enclave/mruby/mrbgems/mruby-compiler/core/lex.def +207 -0
- data/ext/enclave/mruby/mrbgems/mruby-compiler/core/node.h +784 -0
- data/ext/enclave/mruby/mrbgems/mruby-compiler/core/parse.y +8977 -0
- data/ext/enclave/mruby/mrbgems/mruby-compiler/core/y.tab.c +16136 -0
- data/ext/enclave/mruby/mrbgems/mruby-compiler/mrbgem.rake +42 -0
- data/ext/enclave/mruby/mrbgems/mruby-complex/README.md +55 -0
- data/ext/enclave/mruby/mrbgems/mruby-complex/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-complex/mrblib/complex.rb +259 -0
- data/ext/enclave/mruby/mrbgems/mruby-complex/src/complex.c +597 -0
- data/ext/enclave/mruby/mrbgems/mruby-complex/test/complex.rb +174 -0
- data/ext/enclave/mruby/mrbgems/mruby-data/README.md +126 -0
- data/ext/enclave/mruby/mrbgems/mruby-data/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-data/src/data.c +550 -0
- data/ext/enclave/mruby/mrbgems/mruby-data/test/data.rb +76 -0
- data/ext/enclave/mruby/mrbgems/mruby-dir/README.md +53 -0
- data/ext/enclave/mruby/mrbgems/mruby-dir/include/dir_hal.h +79 -0
- data/ext/enclave/mruby/mrbgems/mruby-dir/mrbgem.rake +35 -0
- data/ext/enclave/mruby/mrbgems/mruby-dir/mrblib/dir.rb +124 -0
- data/ext/enclave/mruby/mrbgems/mruby-dir/src/dir.c +493 -0
- data/ext/enclave/mruby/mrbgems/mruby-dir/test/dir.rb +138 -0
- data/ext/enclave/mruby/mrbgems/mruby-dir/test/dirtest.c +125 -0
- data/ext/enclave/mruby/mrbgems/mruby-encoding/README.md +96 -0
- data/ext/enclave/mruby/mrbgems/mruby-encoding/mrbgem.rake +8 -0
- data/ext/enclave/mruby/mrbgems/mruby-encoding/src/encoding.c +128 -0
- data/ext/enclave/mruby/mrbgems/mruby-encoding/test/numeric.rb +27 -0
- data/ext/enclave/mruby/mrbgems/mruby-encoding/test/string.rb +30 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-chain/README.md +80 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-chain/mrbgem.rake +6 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-chain/mrblib/chain.rb +149 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-chain/test/enum_chain.rb +108 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-ext/README.md +487 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-ext/mrblib/enum.rb +938 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-ext/test/enum.rb +223 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-lazy/README.md +91 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-lazy/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-lazy/mrblib/lazy.rb +363 -0
- data/ext/enclave/mruby/mrbgems/mruby-enum-lazy/test/lazy.rb +59 -0
- data/ext/enclave/mruby/mrbgems/mruby-enumerator/README.md +89 -0
- data/ext/enclave/mruby/mrbgems/mruby-enumerator/mrbgem.rake +6 -0
- data/ext/enclave/mruby/mrbgems/mruby-enumerator/mrblib/enumerator.rb +861 -0
- data/ext/enclave/mruby/mrbgems/mruby-enumerator/test/enumerator.rb +664 -0
- data/ext/enclave/mruby/mrbgems/mruby-errno/README.md +83 -0
- data/ext/enclave/mruby/mrbgems/mruby-errno/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-errno/mrblib/errno.rb +50 -0
- data/ext/enclave/mruby/mrbgems/mruby-errno/src/errno.c +335 -0
- data/ext/enclave/mruby/mrbgems/mruby-errno/src/gen.rb +18 -0
- data/ext/enclave/mruby/mrbgems/mruby-errno/src/known_errors.def +156 -0
- data/ext/enclave/mruby/mrbgems/mruby-errno/src/known_errors_def.cstub +780 -0
- data/ext/enclave/mruby/mrbgems/mruby-errno/test/errno.rb +57 -0
- data/ext/enclave/mruby/mrbgems/mruby-error/README.md +103 -0
- data/ext/enclave/mruby/mrbgems/mruby-error/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-error/src/exception.c +143 -0
- data/ext/enclave/mruby/mrbgems/mruby-error/test/exception.c +60 -0
- data/ext/enclave/mruby/mrbgems/mruby-error/test/exception.rb +55 -0
- data/ext/enclave/mruby/mrbgems/mruby-eval/README.md +26 -0
- data/ext/enclave/mruby/mrbgems/mruby-eval/mrbgem.rake +10 -0
- data/ext/enclave/mruby/mrbgems/mruby-eval/src/eval.c +437 -0
- data/ext/enclave/mruby/mrbgems/mruby-eval/test/binding.rb +81 -0
- data/ext/enclave/mruby/mrbgems/mruby-eval/test/eval.rb +185 -0
- data/ext/enclave/mruby/mrbgems/mruby-exit/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-exit/src/mruby_exit.c +83 -0
- data/ext/enclave/mruby/mrbgems/mruby-fiber/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-fiber/src/fiber.c +575 -0
- data/ext/enclave/mruby/mrbgems/mruby-fiber/test/fiber.rb +210 -0
- data/ext/enclave/mruby/mrbgems/mruby-fiber/test/fiber2.rb +155 -0
- data/ext/enclave/mruby/mrbgems/mruby-fiber/test/fibertest.c +87 -0
- data/ext/enclave/mruby/mrbgems/mruby-hash-ext/README.md +392 -0
- data/ext/enclave/mruby/mrbgems/mruby-hash-ext/mrbgem.rake +6 -0
- data/ext/enclave/mruby/mrbgems/mruby-hash-ext/mrblib/hash.rb +408 -0
- data/ext/enclave/mruby/mrbgems/mruby-hash-ext/src/hash_ext.c +392 -0
- data/ext/enclave/mruby/mrbgems/mruby-hash-ext/test/hash.rb +317 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/README.md +198 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/include/io_hal.h +451 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/include/mruby/io.h +76 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/mrbgem.rake +34 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/mrblib/file.rb +109 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +24 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/mrblib/io.rb +303 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/mrblib/kernel.rb +175 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/src/file.c +1192 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/src/file_test.c +403 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/src/io.c +2260 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/src/mruby_io_gem.c +21 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/test/file.rb +415 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/test/file_test.rb +112 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/test/io.rb +668 -0
- data/ext/enclave/mruby/mrbgems/mruby-io/test/mruby_io_test.c +293 -0
- data/ext/enclave/mruby/mrbgems/mruby-kernel-ext/README.md +165 -0
- data/ext/enclave/mruby/mrbgems/mruby-kernel-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +316 -0
- data/ext/enclave/mruby/mrbgems/mruby-kernel-ext/test/kernel.rb +134 -0
- data/ext/enclave/mruby/mrbgems/mruby-math/README.md +77 -0
- data/ext/enclave/mruby/mrbgems/mruby-math/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-math/src/math.c +753 -0
- data/ext/enclave/mruby/mrbgems/mruby-math/test/math.rb +201 -0
- data/ext/enclave/mruby/mrbgems/mruby-metaprog/README.md +123 -0
- data/ext/enclave/mruby/mrbgems/mruby-metaprog/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-metaprog/src/metaprog.c +739 -0
- data/ext/enclave/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +465 -0
- data/ext/enclave/mruby/mrbgems/mruby-method/README.md +66 -0
- data/ext/enclave/mruby/mrbgems/mruby-method/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-method/mrblib/method.rb +73 -0
- data/ext/enclave/mruby/mrbgems/mruby-method/src/method.c +890 -0
- data/ext/enclave/mruby/mrbgems/mruby-method/test/method.rb +514 -0
- data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/README.md +78 -0
- data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/mrblib/numeric_ext.rb +125 -0
- data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/src/numeric_ext.c +527 -0
- data/ext/enclave/mruby/mrbgems/mruby-numeric-ext/test/numeric.rb +137 -0
- data/ext/enclave/mruby/mrbgems/mruby-object-ext/README.md +144 -0
- data/ext/enclave/mruby/mrbgems/mruby-object-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-object-ext/mrblib/object.rb +33 -0
- data/ext/enclave/mruby/mrbgems/mruby-object-ext/src/object.c +128 -0
- data/ext/enclave/mruby/mrbgems/mruby-object-ext/test/nil.rb +16 -0
- data/ext/enclave/mruby/mrbgems/mruby-object-ext/test/object.rb +67 -0
- data/ext/enclave/mruby/mrbgems/mruby-object-ext/test/object_ext.c +17 -0
- data/ext/enclave/mruby/mrbgems/mruby-objectspace/README.md +59 -0
- data/ext/enclave/mruby/mrbgems/mruby-objectspace/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +188 -0
- data/ext/enclave/mruby/mrbgems/mruby-objectspace/test/objectspace.rb +60 -0
- data/ext/enclave/mruby/mrbgems/mruby-os-memsize/README.md +75 -0
- data/ext/enclave/mruby/mrbgems/mruby-os-memsize/mrbgem.rake +10 -0
- data/ext/enclave/mruby/mrbgems/mruby-os-memsize/src/memsize.c +271 -0
- data/ext/enclave/mruby/mrbgems/mruby-os-memsize/test/memsize.rb +63 -0
- data/ext/enclave/mruby/mrbgems/mruby-pack/README.md +140 -0
- data/ext/enclave/mruby/mrbgems/mruby-pack/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-pack/src/pack.c +2129 -0
- data/ext/enclave/mruby/mrbgems/mruby-pack/test/pack.rb +202 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-binding/README.md +140 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-binding/mrbgem.rake +10 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-binding/src/proc_binding.c +76 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-binding/test/proc_binding.c +14 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-binding/test/proc_binding.rb +22 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-ext/README.md +107 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-ext/mrblib/proc.rb +130 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-ext/src/proc.c +267 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-ext/test/proc.c +62 -0
- data/ext/enclave/mruby/mrbgems/mruby-proc-ext/test/proc.rb +130 -0
- data/ext/enclave/mruby/mrbgems/mruby-random/README.md +272 -0
- data/ext/enclave/mruby/mrbgems/mruby-random/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-random/src/random.c +608 -0
- data/ext/enclave/mruby/mrbgems/mruby-random/test/random.rb +151 -0
- data/ext/enclave/mruby/mrbgems/mruby-range-ext/README.md +93 -0
- data/ext/enclave/mruby/mrbgems/mruby-range-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-range-ext/mrblib/range.rb +155 -0
- data/ext/enclave/mruby/mrbgems/mruby-range-ext/src/range.c +236 -0
- data/ext/enclave/mruby/mrbgems/mruby-range-ext/test/range.rb +211 -0
- data/ext/enclave/mruby/mrbgems/mruby-rational/README.md +61 -0
- data/ext/enclave/mruby/mrbgems/mruby-rational/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-rational/mrblib/rational.rb +66 -0
- data/ext/enclave/mruby/mrbgems/mruby-rational/src/rational.c +1269 -0
- data/ext/enclave/mruby/mrbgems/mruby-rational/test/rational.rb +316 -0
- data/ext/enclave/mruby/mrbgems/mruby-set/LICENSE +24 -0
- data/ext/enclave/mruby/mrbgems/mruby-set/README.md +260 -0
- data/ext/enclave/mruby/mrbgems/mruby-set/mrbgem.rake +9 -0
- data/ext/enclave/mruby/mrbgems/mruby-set/mrblib/set.rb +325 -0
- data/ext/enclave/mruby/mrbgems/mruby-set/mruby-set.gem +6 -0
- data/ext/enclave/mruby/mrbgems/mruby-set/src/set.c +1535 -0
- data/ext/enclave/mruby/mrbgems/mruby-set/test/set.rb +764 -0
- data/ext/enclave/mruby/mrbgems/mruby-sleep/README.md +29 -0
- data/ext/enclave/mruby/mrbgems/mruby-sleep/example/sleep.rb +2 -0
- data/ext/enclave/mruby/mrbgems/mruby-sleep/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-sleep/src/sleep.c +187 -0
- data/ext/enclave/mruby/mrbgems/mruby-sleep/test/sleep_test.rb +29 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/README.md +56 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/include/socket_hal.h +83 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/mrbgem.rake +37 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/mrblib/socket.rb +1131 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/src/const.cstub +480 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/src/const.def +172 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/src/gen.rb +17 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/src/socket.c +1374 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/test/addrinfo.rb +91 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/test/basicsocket.rb +17 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/test/ipsocket.rb +44 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/test/socket.rb +38 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/test/sockettest.c +84 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/test/tcpsocket.rb +4 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/test/udpsocket.rb +16 -0
- data/ext/enclave/mruby/mrbgems/mruby-socket/test/unix.rb +130 -0
- data/ext/enclave/mruby/mrbgems/mruby-sprintf/README.md +235 -0
- data/ext/enclave/mruby/mrbgems/mruby-sprintf/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-sprintf/mrblib/string.rb +24 -0
- data/ext/enclave/mruby/mrbgems/mruby-sprintf/src/sprintf.c +1195 -0
- data/ext/enclave/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +92 -0
- data/ext/enclave/mruby/mrbgems/mruby-strftime/README.md +140 -0
- data/ext/enclave/mruby/mrbgems/mruby-strftime/mrbgem.rake +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-strftime/src/strftime.c +119 -0
- data/ext/enclave/mruby/mrbgems/mruby-strftime/test/strftime.rb +152 -0
- data/ext/enclave/mruby/mrbgems/mruby-string-ext/README.md +886 -0
- data/ext/enclave/mruby/mrbgems/mruby-string-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-string-ext/mrblib/string.rb +166 -0
- data/ext/enclave/mruby/mrbgems/mruby-string-ext/src/string.c +2290 -0
- data/ext/enclave/mruby/mrbgems/mruby-string-ext/test/numeric.rb +27 -0
- data/ext/enclave/mruby/mrbgems/mruby-string-ext/test/range.rb +26 -0
- data/ext/enclave/mruby/mrbgems/mruby-string-ext/test/string.rb +765 -0
- data/ext/enclave/mruby/mrbgems/mruby-struct/README.md +105 -0
- data/ext/enclave/mruby/mrbgems/mruby-struct/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-struct/mrblib/struct.rb +69 -0
- data/ext/enclave/mruby/mrbgems/mruby-struct/src/struct.c +812 -0
- data/ext/enclave/mruby/mrbgems/mruby-struct/test/struct.rb +303 -0
- data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/README.md +50 -0
- data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/mrblib/symbol.rb +72 -0
- data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +79 -0
- data/ext/enclave/mruby/mrbgems/mruby-symbol-ext/test/symbol.rb +55 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/README.md +770 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/examples/inspection.rb +65 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/examples/priority.rb +41 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/examples/producer_consumer.rb +58 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/examples/simple.rb +27 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/examples/statistics.rb +59 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/examples/suspend_resume.rb +47 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/examples/task_pass.rb +21 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/include/task.h +143 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/include/task_hal.h +162 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/mrbgem.rake +36 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/src/task.c +1573 -0
- data/ext/enclave/mruby/mrbgems/mruby-task/test/task.rb +185 -0
- data/ext/enclave/mruby/mrbgems/mruby-test/README.md +7 -0
- data/ext/enclave/mruby/mrbgems/mruby-test/driver.c +315 -0
- data/ext/enclave/mruby/mrbgems/mruby-test/mrbgem.rake +173 -0
- data/ext/enclave/mruby/mrbgems/mruby-test/vformat.c +151 -0
- data/ext/enclave/mruby/mrbgems/mruby-test-inline-struct/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-test-inline-struct/test/inline.c +92 -0
- data/ext/enclave/mruby/mrbgems/mruby-test-inline-struct/test/inline.rb +118 -0
- data/ext/enclave/mruby/mrbgems/mruby-time/README.md +102 -0
- data/ext/enclave/mruby/mrbgems/mruby-time/include/mruby/time.h +27 -0
- data/ext/enclave/mruby/mrbgems/mruby-time/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-time/src/time.c +1739 -0
- data/ext/enclave/mruby/mrbgems/mruby-time/test/time.rb +313 -0
- data/ext/enclave/mruby/mrbgems/mruby-toplevel-ext/README.md +32 -0
- data/ext/enclave/mruby/mrbgems/mruby-toplevel-ext/mrbgem.rake +5 -0
- data/ext/enclave/mruby/mrbgems/mruby-toplevel-ext/mrblib/toplevel.rb +24 -0
- data/ext/enclave/mruby/mrbgems/mruby-toplevel-ext/test/toplevel.rb +23 -0
- data/ext/enclave/mruby/mrbgems/stdlib-ext.gembox +21 -0
- data/ext/enclave/mruby/mrbgems/stdlib-io.gembox +15 -0
- data/ext/enclave/mruby/mrbgems/stdlib.gembox +63 -0
- data/ext/enclave/mruby/mrblib/10error.rb +23 -0
- data/ext/enclave/mruby/mrblib/array.rb +102 -0
- data/ext/enclave/mruby/mrblib/compar.rb +102 -0
- data/ext/enclave/mruby/mrblib/enum.rb +358 -0
- data/ext/enclave/mruby/mrblib/hash.rb +276 -0
- data/ext/enclave/mruby/mrblib/kernel.rb +45 -0
- data/ext/enclave/mruby/mrblib/numeric.rb +160 -0
- data/ext/enclave/mruby/mrblib/range.rb +98 -0
- data/ext/enclave/mruby/mrblib/string.rb +173 -0
- data/ext/enclave/mruby/mrblib/symbol.rb +8 -0
- data/ext/enclave/mruby/oss-fuzz/mruby_fuzzer.c +18 -0
- data/ext/enclave/mruby/oss-fuzz/proto_to_ruby.h +55 -0
- data/ext/enclave/mruby/src/allocf.c +37 -0
- data/ext/enclave/mruby/src/array.c +2302 -0
- data/ext/enclave/mruby/src/backtrace.c +294 -0
- data/ext/enclave/mruby/src/cdump.c +498 -0
- data/ext/enclave/mruby/src/class.c +4394 -0
- data/ext/enclave/mruby/src/codedump.c +693 -0
- data/ext/enclave/mruby/src/debug.c +290 -0
- data/ext/enclave/mruby/src/dump.c +998 -0
- data/ext/enclave/mruby/src/enum.c +30 -0
- data/ext/enclave/mruby/src/error.c +937 -0
- data/ext/enclave/mruby/src/etc.c +421 -0
- data/ext/enclave/mruby/src/fmt_fp.c +372 -0
- data/ext/enclave/mruby/src/gc.c +1610 -0
- data/ext/enclave/mruby/src/hash.c +2355 -0
- data/ext/enclave/mruby/src/init.c +50 -0
- data/ext/enclave/mruby/src/kernel.c +718 -0
- data/ext/enclave/mruby/src/load.c +760 -0
- data/ext/enclave/mruby/src/mempool.c +225 -0
- data/ext/enclave/mruby/src/numeric.c +2420 -0
- data/ext/enclave/mruby/src/numops.c +112 -0
- data/ext/enclave/mruby/src/object.c +883 -0
- data/ext/enclave/mruby/src/print.c +136 -0
- data/ext/enclave/mruby/src/proc.c +572 -0
- data/ext/enclave/mruby/src/range.c +597 -0
- data/ext/enclave/mruby/src/readfloat.c +228 -0
- data/ext/enclave/mruby/src/readint.c +27 -0
- data/ext/enclave/mruby/src/readnum.c +43 -0
- data/ext/enclave/mruby/src/state.c +247 -0
- data/ext/enclave/mruby/src/string.c +3577 -0
- data/ext/enclave/mruby/src/symbol.c +1023 -0
- data/ext/enclave/mruby/src/value_array.h +28 -0
- data/ext/enclave/mruby/src/variable.c +1475 -0
- data/ext/enclave/mruby/src/version.c +17 -0
- data/ext/enclave/mruby/src/vm.c +3696 -0
- data/ext/enclave/mruby/tasks/amalgam.rake +34 -0
- data/ext/enclave/mruby/tasks/benchmark.rake +93 -0
- data/ext/enclave/mruby/tasks/bin.rake +23 -0
- data/ext/enclave/mruby/tasks/core.rake +12 -0
- data/ext/enclave/mruby/tasks/doc.rake +118 -0
- data/ext/enclave/mruby/tasks/install.rake +40 -0
- data/ext/enclave/mruby/tasks/libmruby.rake +90 -0
- data/ext/enclave/mruby/tasks/mrbgems.rake +152 -0
- data/ext/enclave/mruby/tasks/mrblib.rake +29 -0
- data/ext/enclave/mruby/tasks/presym.rake +57 -0
- data/ext/enclave/mruby/tasks/test.rake +84 -0
- data/ext/enclave/mruby/tasks/toolchains/android.rake +228 -0
- data/ext/enclave/mruby/tasks/toolchains/clang.rake +8 -0
- data/ext/enclave/mruby/tasks/toolchains/emscripten.rake +57 -0
- data/ext/enclave/mruby/tasks/toolchains/gcc.rake +74 -0
- data/ext/enclave/mruby/tasks/toolchains/openwrt.rake +32 -0
- data/ext/enclave/mruby/tasks/toolchains/visualcpp.rake +48 -0
- data/ext/enclave/mruby/test/assert.rb +404 -0
- data/ext/enclave/mruby/test/bintest.rb +55 -0
- data/ext/enclave/mruby/test/t/argumenterror.rb +37 -0
- data/ext/enclave/mruby/test/t/array.rb +478 -0
- data/ext/enclave/mruby/test/t/basicobject.rb +10 -0
- data/ext/enclave/mruby/test/t/bs_block.rb +621 -0
- data/ext/enclave/mruby/test/t/bs_literal.rb +38 -0
- data/ext/enclave/mruby/test/t/class.rb +505 -0
- data/ext/enclave/mruby/test/t/codegen.rb +196 -0
- data/ext/enclave/mruby/test/t/comparable.rb +79 -0
- data/ext/enclave/mruby/test/t/ensure.rb +36 -0
- data/ext/enclave/mruby/test/t/enumerable.rb +134 -0
- data/ext/enclave/mruby/test/t/exception.rb +425 -0
- data/ext/enclave/mruby/test/t/false.rb +31 -0
- data/ext/enclave/mruby/test/t/float.rb +296 -0
- data/ext/enclave/mruby/test/t/gc.rb +45 -0
- data/ext/enclave/mruby/test/t/hash.rb +976 -0
- data/ext/enclave/mruby/test/t/indexerror.rb +6 -0
- data/ext/enclave/mruby/test/t/integer.rb +247 -0
- data/ext/enclave/mruby/test/t/iterations.rb +61 -0
- data/ext/enclave/mruby/test/t/kernel.rb +462 -0
- data/ext/enclave/mruby/test/t/lang.rb +74 -0
- data/ext/enclave/mruby/test/t/literals.rb +386 -0
- data/ext/enclave/mruby/test/t/localjumperror.rb +13 -0
- data/ext/enclave/mruby/test/t/methods.rb +138 -0
- data/ext/enclave/mruby/test/t/module.rb +931 -0
- data/ext/enclave/mruby/test/t/nameerror.rb +28 -0
- data/ext/enclave/mruby/test/t/nil.rb +39 -0
- data/ext/enclave/mruby/test/t/nomethoderror.rb +22 -0
- data/ext/enclave/mruby/test/t/numeric.rb +114 -0
- data/ext/enclave/mruby/test/t/object.rb +10 -0
- data/ext/enclave/mruby/test/t/proc.rb +198 -0
- data/ext/enclave/mruby/test/t/range.rb +194 -0
- data/ext/enclave/mruby/test/t/rangeerror.rb +6 -0
- data/ext/enclave/mruby/test/t/regexperror.rb +4 -0
- data/ext/enclave/mruby/test/t/runtimeerror.rb +6 -0
- data/ext/enclave/mruby/test/t/standarderror.rb +6 -0
- data/ext/enclave/mruby/test/t/string.rb +981 -0
- data/ext/enclave/mruby/test/t/superclass.rb +46 -0
- data/ext/enclave/mruby/test/t/symbol.rb +30 -0
- data/ext/enclave/mruby/test/t/syntax.rb +1296 -0
- data/ext/enclave/mruby/test/t/true.rb +31 -0
- data/ext/enclave/mruby/test/t/typeerror.rb +6 -0
- data/ext/enclave/mruby/test/t/unicode.rb +39 -0
- data/ext/enclave/mruby/test/t/vformat.rb +57 -0
- data/ext/enclave/mruby/tools/lrama/LEGAL.md +12 -0
- data/ext/enclave/mruby/tools/lrama/MIT +21 -0
- data/ext/enclave/mruby/tools/lrama/NEWS.md +696 -0
- data/ext/enclave/mruby/tools/lrama/exe/lrama +7 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/bitmap.rb +34 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/command.rb +68 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/context.rb +499 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/derivation.rb +66 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/example.rb +129 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/path.rb +29 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/production_path.rb +19 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/start_path.rb +23 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/state_item.rb +8 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/transition_path.rb +19 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples/triple.rb +23 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/counterexamples.rb +298 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/diagnostics.rb +36 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/digraph.rb +83 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/auxiliary.rb +9 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/binding.rb +67 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/destructor_code.rb +42 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/initial_action_code.rb +36 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/no_reference_code.rb +30 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/printer_code.rb +42 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code/rule_action.rb +92 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/code.rb +53 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/counter.rb +17 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/destructor.rb +11 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/error_token.rb +11 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/parameterizing_rule/resolver.rb +62 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/parameterizing_rule/rhs.rb +40 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/parameterizing_rule/rule.rb +24 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/parameterizing_rule.rb +5 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/percent_code.rb +14 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/precedence.rb +13 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/printer.rb +11 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/reference.rb +16 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/rule.rb +75 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/rule_builder.rb +255 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/stdlib.y +122 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/symbol.rb +105 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/symbols/resolver.rb +301 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/symbols.rb +3 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/type.rb +20 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar/union.rb +12 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar.rb +407 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/grammar_validator.rb +37 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/grammar_file.rb +40 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/location.rb +115 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/char.rb +11 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/ident.rb +11 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/instantiate_rule.rb +30 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/tag.rb +16 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token/user_code.rb +83 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer/token.rb +70 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/lexer.rb +191 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/logger.rb +21 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/option_parser.rb +169 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/options.rb +28 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/output.rb +459 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/parser.rb +2144 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/report/duration.rb +27 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/report/profile.rb +16 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/report.rb +4 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/state/reduce.rb +37 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/state/reduce_reduce_conflict.rb +11 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/state/resolved_conflict.rb +31 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/state/shift.rb +15 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/state/shift_reduce_conflict.rb +11 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/state.rb +433 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/states/item.rb +91 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/states.rb +595 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/states_reporter.rb +362 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/trace_reporter.rb +45 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama/version.rb +5 -0
- data/ext/enclave/mruby/tools/lrama/lib/lrama.rb +22 -0
- data/ext/enclave/mruby/tools/lrama/template/bison/_yacc.h +71 -0
- data/ext/enclave/mruby/tools/lrama/template/bison/yacc.c +2068 -0
- data/ext/enclave/mruby/tools/lrama/template/bison/yacc.h +40 -0
- data/ext/enclave/sandbox_build_config.rb +15 -0
- data/ext/enclave/sandbox_core.c +722 -0
- data/ext/enclave/sandbox_core.h +87 -0
- data/lib/enclave/result.rb +29 -0
- data/lib/enclave/tool.rb +38 -0
- data/lib/enclave/version.rb +3 -0
- data/lib/enclave.rb +73 -0
- metadata +819 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
** @file common.h - mruby common platform definition"
|
|
3
|
+
**
|
|
4
|
+
** See Copyright Notice in mruby.h
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef MRUBY_COMMON_H
|
|
8
|
+
#define MRUBY_COMMON_H
|
|
9
|
+
|
|
10
|
+
#ifdef __APPLE__
|
|
11
|
+
#ifndef __TARGETCONDITIONALS__
|
|
12
|
+
#include "TargetConditionals.h"
|
|
13
|
+
#endif
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
#ifdef __cplusplus
|
|
17
|
+
#ifdef MRB_USE_CXX_ABI
|
|
18
|
+
#define MRB_BEGIN_DECL
|
|
19
|
+
#define MRB_END_DECL
|
|
20
|
+
#else
|
|
21
|
+
# define MRB_BEGIN_DECL extern "C" {
|
|
22
|
+
# define MRB_END_DECL }
|
|
23
|
+
#endif
|
|
24
|
+
#else
|
|
25
|
+
/** Start declarations in C mode */
|
|
26
|
+
# define MRB_BEGIN_DECL
|
|
27
|
+
/** End declarations in C mode */
|
|
28
|
+
# define MRB_END_DECL
|
|
29
|
+
#endif
|
|
30
|
+
|
|
31
|
+
#include <sys/types.h>
|
|
32
|
+
#if defined _MSC_VER
|
|
33
|
+
#include <BaseTsd.h>
|
|
34
|
+
typedef SSIZE_T ssize_t;
|
|
35
|
+
#endif
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Shared compiler macros
|
|
39
|
+
*/
|
|
40
|
+
MRB_BEGIN_DECL
|
|
41
|
+
|
|
42
|
+
/** Declare a function that never returns. */
|
|
43
|
+
#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 201112L
|
|
44
|
+
# define mrb_noreturn _Noreturn
|
|
45
|
+
#elif defined __GNUC__ && !defined __STRICT_ANSI__
|
|
46
|
+
# define mrb_noreturn __attribute__((noreturn))
|
|
47
|
+
#elif defined _MSC_VER
|
|
48
|
+
# define mrb_noreturn __declspec(noreturn)
|
|
49
|
+
#else
|
|
50
|
+
# define mrb_noreturn
|
|
51
|
+
#endif
|
|
52
|
+
|
|
53
|
+
/** Mark a function as deprecated. */
|
|
54
|
+
#if defined __GNUC__ && !defined __STRICT_ANSI__
|
|
55
|
+
# define mrb_deprecated __attribute__((deprecated))
|
|
56
|
+
#elif defined _MSC_VER
|
|
57
|
+
# define mrb_deprecated __declspec(deprecated)
|
|
58
|
+
#else
|
|
59
|
+
# define mrb_deprecated
|
|
60
|
+
#endif
|
|
61
|
+
|
|
62
|
+
/** Branch prediction hints for optimization. */
|
|
63
|
+
#if defined(__GNUC__) || defined(__clang__)
|
|
64
|
+
# define mrb_likely(x) __builtin_expect(!!(x), 1)
|
|
65
|
+
# define mrb_unlikely(x) __builtin_expect(!!(x), 0)
|
|
66
|
+
#else
|
|
67
|
+
# define mrb_likely(x) (x)
|
|
68
|
+
# define mrb_unlikely(x) (x)
|
|
69
|
+
#endif
|
|
70
|
+
|
|
71
|
+
/** Declare a type or object as an alignment requirement. */
|
|
72
|
+
#ifndef mrb_alignas
|
|
73
|
+
# if defined(__cplusplus) && __cplusplus >= 201103L
|
|
74
|
+
# // https://en.cppreference.com/w/cpp/language/alignas
|
|
75
|
+
# define mrb_alignas(n) alignas(n)
|
|
76
|
+
# elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
|
|
77
|
+
# // https://en.cppreference.com/w/c/language/_Alignas
|
|
78
|
+
# define mrb_alignas(n) _Alignas(n)
|
|
79
|
+
# elif defined(_MSC_VER) || defined(__INTEL_COMPILER)
|
|
80
|
+
# // https://learn.microsoft.com/en-us/cpp/cpp/align-cpp?view=msvc-170
|
|
81
|
+
# define mrb_alignas(n) __declspec(align(n))
|
|
82
|
+
# elif defined(__GNUC__) || defined(__clang__)
|
|
83
|
+
# // https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html#index-aligned-type-attribute
|
|
84
|
+
# define mrb_alignas(n) __attribute__((aligned(n)))
|
|
85
|
+
# else
|
|
86
|
+
# // `mrb_alignas` defined as dummy. If necessary, send issues to https://github.com/mruby/mruby .
|
|
87
|
+
# define mrb_alignas(n)
|
|
88
|
+
# endif
|
|
89
|
+
#endif
|
|
90
|
+
|
|
91
|
+
/** Declare a function as always inlined. */
|
|
92
|
+
#if defined _MSC_VER && _MSC_VER < 1900
|
|
93
|
+
# ifndef __cplusplus
|
|
94
|
+
# define inline __inline
|
|
95
|
+
# endif
|
|
96
|
+
#endif
|
|
97
|
+
#define MRB_INLINE static inline
|
|
98
|
+
|
|
99
|
+
/** Declare a public mruby API function. */
|
|
100
|
+
#ifndef MRB_API
|
|
101
|
+
#if defined(MRB_BUILD_AS_DLL)
|
|
102
|
+
#if defined(MRB_CORE) || defined(MRB_LIB)
|
|
103
|
+
# define MRB_API __declspec(dllexport)
|
|
104
|
+
#else
|
|
105
|
+
# define MRB_API __declspec(dllimport)
|
|
106
|
+
#endif
|
|
107
|
+
#else
|
|
108
|
+
# define MRB_API extern
|
|
109
|
+
#endif
|
|
110
|
+
#endif
|
|
111
|
+
|
|
112
|
+
/** Declare mingw versions */
|
|
113
|
+
#if defined(__MINGW32__) || defined(__MINGW64__)
|
|
114
|
+
# include <_mingw.h>
|
|
115
|
+
# if defined(__MINGW64_VERSION_MAJOR)
|
|
116
|
+
# define MRB_MINGW64_VERSION (__MINGW64_VERSION_MAJOR * 1000 + __MINGW64_VERSION_MINOR)
|
|
117
|
+
# elif defined(__MINGW32_MAJOR_VERSION)
|
|
118
|
+
# define MRB_MINGW32_VERSION (__MINGW32_MAJOR_VERSION * 1000 + __MINGW32_MINOR_VERSION)
|
|
119
|
+
# endif
|
|
120
|
+
# if defined(__MINGW32__) && !defined(__MINGW64__)
|
|
121
|
+
# define MRB_MINGW32_LEGACY
|
|
122
|
+
# endif
|
|
123
|
+
#endif
|
|
124
|
+
|
|
125
|
+
MRB_END_DECL
|
|
126
|
+
|
|
127
|
+
#endif /* MRUBY_COMMON_H */
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
** @file mruby/compile.h - mruby parser
|
|
3
|
+
**
|
|
4
|
+
** See Copyright Notice in mruby.h
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef MRUBY_COMPILE_H
|
|
8
|
+
#define MRUBY_COMPILE_H
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
#include "mruby/mempool.h"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* mruby Compiler
|
|
15
|
+
*/
|
|
16
|
+
MRB_BEGIN_DECL
|
|
17
|
+
|
|
18
|
+
#include <mruby.h>
|
|
19
|
+
|
|
20
|
+
struct mrb_parser_state;
|
|
21
|
+
/* load context */
|
|
22
|
+
typedef struct mrb_ccontext {
|
|
23
|
+
mrb_sym *syms;
|
|
24
|
+
int slen;
|
|
25
|
+
char *filename;
|
|
26
|
+
uint16_t lineno;
|
|
27
|
+
int (*partial_hook)(struct mrb_parser_state*);
|
|
28
|
+
void *partial_data;
|
|
29
|
+
struct RClass *target_class;
|
|
30
|
+
mrb_bool capture_errors:1;
|
|
31
|
+
mrb_bool dump_result:1;
|
|
32
|
+
mrb_bool no_exec:1;
|
|
33
|
+
mrb_bool keep_lv:1;
|
|
34
|
+
mrb_bool no_optimize:1;
|
|
35
|
+
mrb_bool no_ext_ops:1;
|
|
36
|
+
mrb_bool no_return_value:1;
|
|
37
|
+
const struct RProc *upper;
|
|
38
|
+
|
|
39
|
+
size_t parser_nerr;
|
|
40
|
+
} mrb_ccontext; /* compiler context */
|
|
41
|
+
|
|
42
|
+
MRB_API mrb_ccontext* mrb_ccontext_new(mrb_state *mrb);
|
|
43
|
+
MRB_API void mrb_ccontext_free(mrb_state *mrb, mrb_ccontext *cxt);
|
|
44
|
+
MRB_API const char *mrb_ccontext_filename(mrb_state *mrb, mrb_ccontext *c, const char *s);
|
|
45
|
+
MRB_API void mrb_ccontext_partial_hook(mrb_ccontext *c, int (*partial_hook)(struct mrb_parser_state*), void*data);
|
|
46
|
+
MRB_API void mrb_ccontext_cleanup_local_variables(mrb_ccontext *c);
|
|
47
|
+
|
|
48
|
+
/* compatibility macros */
|
|
49
|
+
#define mrbc_context mrb_ccontext
|
|
50
|
+
#define mrbc_context_new mrb_ccontext_new
|
|
51
|
+
#define mrbc_context_free mrb_ccontext_free
|
|
52
|
+
#define mrbc_filename mrb_ccontext_filename
|
|
53
|
+
#define mrbc_partial_hook mrb_ccontext_partial_hook
|
|
54
|
+
#define mrbc_cleanup_local_variables mrb_ccontext_cleanup_local_variables
|
|
55
|
+
|
|
56
|
+
/* AST node structure */
|
|
57
|
+
typedef struct mrb_ast_node mrb_ast_node;
|
|
58
|
+
|
|
59
|
+
/* lexer states */
|
|
60
|
+
enum mrb_lex_state_enum {
|
|
61
|
+
EXPR_BEG, /* ignore newline, +/- is a sign. */
|
|
62
|
+
EXPR_END, /* newline significant, +/- is an operator. */
|
|
63
|
+
EXPR_ENDARG, /* ditto, and unbound braces. */
|
|
64
|
+
EXPR_ENDFN, /* ditto, and unbound braces. */
|
|
65
|
+
EXPR_ARG, /* newline significant, +/- is an operator. */
|
|
66
|
+
EXPR_CMDARG, /* newline significant, +/- is an operator. */
|
|
67
|
+
EXPR_MID, /* newline significant, +/- is a sign. */
|
|
68
|
+
EXPR_FNAME, /* ignore newline, no reserved words. */
|
|
69
|
+
EXPR_DOT, /* right after '.' or '::', no reserved words. */
|
|
70
|
+
EXPR_CLASS, /* immediate after 'class', no here document. */
|
|
71
|
+
EXPR_VALUE, /* alike EXPR_BEG but label is disallowed. */
|
|
72
|
+
EXPR_MAX_STATE
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
/* saved error message */
|
|
76
|
+
struct mrb_parser_message {
|
|
77
|
+
uint16_t lineno;
|
|
78
|
+
int column;
|
|
79
|
+
char* message;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
#define MRB_PARSER_TOKBUF_MAX (UINT16_MAX-1)
|
|
83
|
+
#define MRB_PARSER_TOKBUF_SIZE 256
|
|
84
|
+
|
|
85
|
+
/* parser structure */
|
|
86
|
+
struct mrb_parser_state {
|
|
87
|
+
mrb_state *mrb;
|
|
88
|
+
mempool *pool;
|
|
89
|
+
mrb_ast_node *cells;
|
|
90
|
+
const char *s, *send;
|
|
91
|
+
#ifndef MRB_NO_STDIO
|
|
92
|
+
/* If both f and s are non-null, it will be taken preferentially from s until s < send. */
|
|
93
|
+
FILE *f;
|
|
94
|
+
#endif
|
|
95
|
+
mrb_ccontext *cxt;
|
|
96
|
+
mrb_sym filename_sym;
|
|
97
|
+
uint16_t lineno;
|
|
98
|
+
int column;
|
|
99
|
+
|
|
100
|
+
enum mrb_lex_state_enum lstate;
|
|
101
|
+
struct parser_lex_strterm *lex_strterm;
|
|
102
|
+
|
|
103
|
+
unsigned int cond_stack;
|
|
104
|
+
unsigned int cmdarg_stack;
|
|
105
|
+
int paren_nest;
|
|
106
|
+
int lpar_beg;
|
|
107
|
+
int in_def, in_single, in_kwarg;
|
|
108
|
+
mrb_bool cmd_start:1;
|
|
109
|
+
mrb_ast_node *locals;
|
|
110
|
+
|
|
111
|
+
mrb_ast_node *pb;
|
|
112
|
+
char *tokbuf;
|
|
113
|
+
char buf[MRB_PARSER_TOKBUF_SIZE];
|
|
114
|
+
int tidx;
|
|
115
|
+
int tsiz;
|
|
116
|
+
|
|
117
|
+
mrb_ast_node *heredocs_from_nextline;
|
|
118
|
+
mrb_ast_node *parsing_heredoc;
|
|
119
|
+
|
|
120
|
+
void *ylval;
|
|
121
|
+
|
|
122
|
+
size_t nerr;
|
|
123
|
+
size_t nwarn;
|
|
124
|
+
mrb_ast_node *tree;
|
|
125
|
+
|
|
126
|
+
mrb_bool no_optimize:1;
|
|
127
|
+
mrb_bool capture_errors:1;
|
|
128
|
+
mrb_bool no_ext_ops:1;
|
|
129
|
+
mrb_bool no_return_value:1;
|
|
130
|
+
const struct RProc *upper;
|
|
131
|
+
struct mrb_parser_message error_buffer[10];
|
|
132
|
+
struct mrb_parser_message warn_buffer[10];
|
|
133
|
+
|
|
134
|
+
mrb_sym* filename_table;
|
|
135
|
+
uint16_t filename_table_length;
|
|
136
|
+
uint16_t current_filename_index;
|
|
137
|
+
|
|
138
|
+
/* Variable-sized node management */
|
|
139
|
+
mrb_ast_node *nvars;
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
MRB_API struct mrb_parser_state* mrb_parser_new(mrb_state*);
|
|
143
|
+
MRB_API void mrb_parser_free(struct mrb_parser_state*);
|
|
144
|
+
MRB_API void mrb_parser_parse(struct mrb_parser_state*,mrb_ccontext*);
|
|
145
|
+
|
|
146
|
+
MRB_API void mrb_parser_set_filename(struct mrb_parser_state*, char const*);
|
|
147
|
+
MRB_API mrb_sym mrb_parser_get_filename(struct mrb_parser_state*, uint16_t idx);
|
|
148
|
+
|
|
149
|
+
/* utility functions */
|
|
150
|
+
#ifndef MRB_NO_STDIO
|
|
151
|
+
MRB_API struct mrb_parser_state* mrb_parse_file(mrb_state*,FILE*,mrb_ccontext*);
|
|
152
|
+
#endif
|
|
153
|
+
MRB_API struct mrb_parser_state* mrb_parse_string(mrb_state*,const char*,mrb_ccontext*);
|
|
154
|
+
MRB_API struct mrb_parser_state* mrb_parse_nstring(mrb_state*,const char*,size_t,mrb_ccontext*);
|
|
155
|
+
MRB_API struct RProc* mrb_generate_code(mrb_state*, struct mrb_parser_state*);
|
|
156
|
+
MRB_API mrb_value mrb_load_exec(mrb_state *mrb, struct mrb_parser_state *p, mrb_ccontext *c);
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* program load functions
|
|
160
|
+
*
|
|
161
|
+
* Please note! Currently due to interactions with the GC calling these functions will
|
|
162
|
+
* leak one RProc object per function call.
|
|
163
|
+
* To prevent this save the current memory arena before calling and restore the arena
|
|
164
|
+
* right after, like so
|
|
165
|
+
*
|
|
166
|
+
* int ai = mrb_gc_arena_save(mrb);
|
|
167
|
+
* mrb_value status = mrb_load_string(mrb, buffer);
|
|
168
|
+
* mrb_gc_arena_restore(mrb, ai);
|
|
169
|
+
*
|
|
170
|
+
* Also, when called from a C function defined as a method, the current stack is destroyed.
|
|
171
|
+
* If processing continues after this function, the objects obtained from the arguments
|
|
172
|
+
* must be protected as needed before this function.
|
|
173
|
+
*/
|
|
174
|
+
#ifndef MRB_NO_STDIO
|
|
175
|
+
MRB_API mrb_value mrb_load_file(mrb_state*,FILE*);
|
|
176
|
+
MRB_API mrb_value mrb_load_file_cxt(mrb_state*,FILE*, mrb_ccontext *cxt);
|
|
177
|
+
MRB_API mrb_value mrb_load_detect_file_cxt(mrb_state *mrb, FILE *fp, mrb_ccontext *c);
|
|
178
|
+
#endif
|
|
179
|
+
MRB_API mrb_value mrb_load_string(mrb_state *mrb, const char *s);
|
|
180
|
+
MRB_API mrb_value mrb_load_nstring(mrb_state *mrb, const char *s, size_t len);
|
|
181
|
+
MRB_API mrb_value mrb_load_string_cxt(mrb_state *mrb, const char *s, mrb_ccontext *cxt);
|
|
182
|
+
MRB_API mrb_value mrb_load_nstring_cxt(mrb_state *mrb, const char *s, size_t len, mrb_ccontext *cxt);
|
|
183
|
+
|
|
184
|
+
/** @} */
|
|
185
|
+
MRB_END_DECL
|
|
186
|
+
|
|
187
|
+
#endif /* MRUBY_COMPILE_H */
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
** @file mruby/data.h - Data class
|
|
3
|
+
**
|
|
4
|
+
** See Copyright Notice in mruby.h
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef MRUBY_DATA_H
|
|
8
|
+
#define MRUBY_DATA_H
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Custom C wrapped data.
|
|
14
|
+
*
|
|
15
|
+
* Defining Ruby wrappers around native objects.
|
|
16
|
+
*/
|
|
17
|
+
MRB_BEGIN_DECL
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Custom data type description.
|
|
21
|
+
*/
|
|
22
|
+
typedef struct mrb_data_type {
|
|
23
|
+
/** data type name */
|
|
24
|
+
const char *struct_name;
|
|
25
|
+
|
|
26
|
+
/** data type release function pointer */
|
|
27
|
+
void (*dfree)(mrb_state *mrb, void*);
|
|
28
|
+
} mrb_data_type;
|
|
29
|
+
|
|
30
|
+
struct RData {
|
|
31
|
+
MRB_OBJECT_HEADER;
|
|
32
|
+
struct iv_tbl *iv;
|
|
33
|
+
const mrb_data_type *type;
|
|
34
|
+
void *data;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
MRB_API struct RData *mrb_data_object_alloc(mrb_state *mrb, struct RClass* klass, void *datap, const mrb_data_type *type);
|
|
38
|
+
|
|
39
|
+
#define Data_Wrap_Struct(mrb,klass,type,ptr)\
|
|
40
|
+
mrb_data_object_alloc(mrb,klass,ptr,type)
|
|
41
|
+
|
|
42
|
+
#define Data_Make_Struct(mrb,klass,strct,type,sval,data_obj) do { \
|
|
43
|
+
(data_obj) = Data_Wrap_Struct(mrb,klass,type,NULL);\
|
|
44
|
+
(sval) = (strct*)mrb_malloc(mrb, sizeof(strct)); \
|
|
45
|
+
{ static const strct zero = { 0 }; *(sval) = zero; };\
|
|
46
|
+
(data_obj)->data = (sval);\
|
|
47
|
+
} while (0)
|
|
48
|
+
|
|
49
|
+
#define RDATA(obj) ((struct RData*)(mrb_ptr(obj)))
|
|
50
|
+
#define DATA_PTR(d) (RDATA(d)->data)
|
|
51
|
+
#define DATA_TYPE(d) (RDATA(d)->type)
|
|
52
|
+
MRB_API void mrb_data_check_type(mrb_state *mrb, mrb_value, const mrb_data_type*);
|
|
53
|
+
MRB_API void *mrb_data_get_ptr(mrb_state *mrb, mrb_value, const mrb_data_type*);
|
|
54
|
+
#define DATA_GET_PTR(mrb,obj,dtype,type) (type*)mrb_data_get_ptr(mrb,obj,dtype)
|
|
55
|
+
MRB_API void *mrb_data_check_get_ptr(mrb_state *mrb, mrb_value, const mrb_data_type*);
|
|
56
|
+
#define DATA_CHECK_GET_PTR(mrb,obj,dtype,type) (type*)mrb_data_check_get_ptr(mrb,obj,dtype)
|
|
57
|
+
|
|
58
|
+
/* obsolete functions and macros */
|
|
59
|
+
#define mrb_data_check_and_get(mrb,obj,dtype) mrb_data_get_ptr(mrb,obj,dtype)
|
|
60
|
+
#define mrb_get_datatype(mrb,val,type) mrb_data_get_ptr(mrb, val, type)
|
|
61
|
+
#define mrb_check_datatype(mrb,val,type) mrb_data_get_ptr(mrb, val, type)
|
|
62
|
+
#define Data_Get_Struct(mrb,obj,type,sval) do {\
|
|
63
|
+
*(void**)&sval = mrb_data_get_ptr(mrb, obj, type); \
|
|
64
|
+
} while (0)
|
|
65
|
+
|
|
66
|
+
MRB_INLINE void
|
|
67
|
+
mrb_data_init(mrb_value v, void *ptr, const mrb_data_type *type)
|
|
68
|
+
{
|
|
69
|
+
mrb_assert(mrb_data_p(v));
|
|
70
|
+
DATA_PTR(v) = ptr;
|
|
71
|
+
DATA_TYPE(v) = type;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
MRB_END_DECL
|
|
75
|
+
|
|
76
|
+
#endif /* MRUBY_DATA_H */
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
** @file mruby/debug.h - mruby debug info
|
|
3
|
+
**
|
|
4
|
+
** See Copyright Notice in mruby.h
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef MRUBY_DEBUG_H
|
|
8
|
+
#define MRUBY_DEBUG_H
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* mruby Debugging.
|
|
14
|
+
*/
|
|
15
|
+
MRB_BEGIN_DECL
|
|
16
|
+
|
|
17
|
+
typedef enum mrb_debug_line_type {
|
|
18
|
+
mrb_debug_line_ary = 0,
|
|
19
|
+
mrb_debug_line_flat_map,
|
|
20
|
+
mrb_debug_line_packed_map
|
|
21
|
+
} mrb_debug_line_type;
|
|
22
|
+
|
|
23
|
+
typedef struct mrb_irep_debug_info_line {
|
|
24
|
+
uint32_t start_pos;
|
|
25
|
+
uint16_t line;
|
|
26
|
+
} mrb_irep_debug_info_line;
|
|
27
|
+
|
|
28
|
+
typedef struct mrb_irep_debug_info_file {
|
|
29
|
+
uint32_t start_pos;
|
|
30
|
+
mrb_sym filename_sym;
|
|
31
|
+
uint32_t line_entry_count;
|
|
32
|
+
mrb_debug_line_type line_type;
|
|
33
|
+
union {
|
|
34
|
+
const char *s;
|
|
35
|
+
void *ptr;
|
|
36
|
+
const uint16_t *ary;
|
|
37
|
+
const mrb_irep_debug_info_line *flat_map;
|
|
38
|
+
const uint8_t *packed_map;
|
|
39
|
+
} lines;
|
|
40
|
+
} mrb_irep_debug_info_file;
|
|
41
|
+
|
|
42
|
+
typedef struct mrb_irep_debug_info {
|
|
43
|
+
uint32_t pc_count;
|
|
44
|
+
uint16_t flen;
|
|
45
|
+
mrb_irep_debug_info_file **files;
|
|
46
|
+
} mrb_irep_debug_info;
|
|
47
|
+
|
|
48
|
+
/*
|
|
49
|
+
* get filename from irep's debug info and program counter
|
|
50
|
+
* @return returns NULL if not found
|
|
51
|
+
*/
|
|
52
|
+
MRB_API const char *mrb_debug_get_filename(mrb_state *mrb, const mrb_irep *irep, uint32_t pc);
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* get line from irep's debug info and program counter
|
|
56
|
+
* @return returns -1 if not found
|
|
57
|
+
*/
|
|
58
|
+
MRB_API int32_t mrb_debug_get_line(mrb_state *mrb, const mrb_irep *irep, uint32_t pc);
|
|
59
|
+
|
|
60
|
+
/*
|
|
61
|
+
* get line and filename from irep's debug info and program counter
|
|
62
|
+
* @return returns FALSE if not found
|
|
63
|
+
*/
|
|
64
|
+
MRB_API mrb_bool mrb_debug_get_position(mrb_state *mrb, const mrb_irep *irep, uint32_t pc, int32_t *lp, const char **fp);
|
|
65
|
+
|
|
66
|
+
MRB_API mrb_irep_debug_info *mrb_debug_info_alloc(mrb_state *mrb, mrb_irep *irep);
|
|
67
|
+
MRB_API mrb_irep_debug_info_file *mrb_debug_info_append_file(
|
|
68
|
+
mrb_state *mrb, mrb_irep_debug_info *info,
|
|
69
|
+
const char *filename, uint16_t *lines,
|
|
70
|
+
uint32_t start_pos, uint32_t end_pos);
|
|
71
|
+
MRB_API void mrb_debug_info_free(mrb_state *mrb, mrb_irep_debug_info *d);
|
|
72
|
+
|
|
73
|
+
MRB_END_DECL
|
|
74
|
+
|
|
75
|
+
#endif /* MRUBY_DEBUG_H */
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
** @file mruby/dump.h - mruby binary dumper (mrbc binary format)
|
|
3
|
+
**
|
|
4
|
+
** See Copyright Notice in mruby.h
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef MRUBY_DUMP_H
|
|
8
|
+
#define MRUBY_DUMP_H
|
|
9
|
+
|
|
10
|
+
#include <mruby.h>
|
|
11
|
+
#include <mruby/irep.h>
|
|
12
|
+
#include "common.h"
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Dumping compiled mruby script.
|
|
16
|
+
*/
|
|
17
|
+
MRB_BEGIN_DECL
|
|
18
|
+
|
|
19
|
+
/* flags for mrb_dump_irep{,_binary,_cfunc,_cstruct} */
|
|
20
|
+
#define MRB_DUMP_DEBUG_INFO 1
|
|
21
|
+
#define MRB_DUMP_STATIC 2
|
|
22
|
+
#define MRB_DUMP_NO_LVAR 4
|
|
23
|
+
|
|
24
|
+
#ifndef MRB_NO_STDIO
|
|
25
|
+
MRB_API mrb_value mrb_load_irep_file(mrb_state*,FILE*);
|
|
26
|
+
MRB_API mrb_value mrb_load_irep_file_cxt(mrb_state*, FILE*, mrb_ccontext*);
|
|
27
|
+
mrb_irep *mrb_read_irep_file(mrb_state*, FILE*);
|
|
28
|
+
int mrb_dump_irep_binary(mrb_state*, const mrb_irep*, uint8_t, FILE*);
|
|
29
|
+
#endif
|
|
30
|
+
/* avoid mrb_read_irep(); use mrb_read_irep_buf() instead (may cause buffer overflow) */
|
|
31
|
+
MRB_API mrb_irep *mrb_read_irep(mrb_state*, const uint8_t*);
|
|
32
|
+
MRB_API mrb_irep *mrb_read_irep_buf(mrb_state*, const void*, size_t);
|
|
33
|
+
|
|
34
|
+
/* dump/load error code
|
|
35
|
+
*
|
|
36
|
+
* NOTE: MRB_DUMP_GENERAL_FAILURE is caused by
|
|
37
|
+
* unspecified issues like malloc failed.
|
|
38
|
+
*/
|
|
39
|
+
#define MRB_DUMP_OK 0
|
|
40
|
+
#define MRB_DUMP_GENERAL_FAILURE (-1)
|
|
41
|
+
#define MRB_DUMP_WRITE_FAULT (-2)
|
|
42
|
+
#define MRB_DUMP_READ_FAULT (-3)
|
|
43
|
+
#define MRB_DUMP_INVALID_FILE_HEADER (-4)
|
|
44
|
+
#define MRB_DUMP_INVALID_IREP (-5)
|
|
45
|
+
#define MRB_DUMP_INVALID_ARGUMENT (-6)
|
|
46
|
+
|
|
47
|
+
/* null symbol length */
|
|
48
|
+
#define MRB_DUMP_NULL_SYM_LEN 0xFFFF
|
|
49
|
+
|
|
50
|
+
/* Rite Binary File header */
|
|
51
|
+
#define RITE_BINARY_IDENT "RITE"
|
|
52
|
+
/* Binary Format Version Major:Minor */
|
|
53
|
+
/* Major: Incompatible to prior versions */
|
|
54
|
+
/* Minor: Upper-compatible to prior versions */
|
|
55
|
+
#define RITE_BINARY_MAJOR_VER "04"
|
|
56
|
+
#define RITE_BINARY_MINOR_VER "00"
|
|
57
|
+
#define RITE_BINARY_FORMAT_VER RITE_BINARY_MAJOR_VER RITE_BINARY_MINOR_VER
|
|
58
|
+
#define RITE_COMPILER_NAME "MATZ"
|
|
59
|
+
#define RITE_COMPILER_VERSION "0000"
|
|
60
|
+
|
|
61
|
+
#define RITE_VM_VER "0400"
|
|
62
|
+
|
|
63
|
+
#define RITE_BINARY_EOF "END\0"
|
|
64
|
+
#define RITE_SECTION_IREP_IDENT "IREP"
|
|
65
|
+
#define RITE_SECTION_DEBUG_IDENT "DBG\0"
|
|
66
|
+
#define RITE_SECTION_LV_IDENT "LVAR"
|
|
67
|
+
|
|
68
|
+
#define MRB_DUMP_DEFAULT_STR_LEN 128
|
|
69
|
+
#define MRB_DUMP_ALIGNMENT sizeof(uint32_t)
|
|
70
|
+
|
|
71
|
+
/* binary header */
|
|
72
|
+
struct rite_binary_header {
|
|
73
|
+
uint8_t binary_ident[4]; /* Binary Identifier */
|
|
74
|
+
uint8_t major_version[2]; /* Binary Format Major Version */
|
|
75
|
+
uint8_t minor_version[2]; /* Binary Format Minor Version */
|
|
76
|
+
uint8_t binary_size[4]; /* Binary Size */
|
|
77
|
+
uint8_t compiler_name[4]; /* Compiler name */
|
|
78
|
+
uint8_t compiler_version[4];
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
/* section header */
|
|
82
|
+
#define RITE_SECTION_HEADER \
|
|
83
|
+
uint8_t section_ident[4]; \
|
|
84
|
+
uint8_t section_size[4]
|
|
85
|
+
|
|
86
|
+
struct rite_section_header {
|
|
87
|
+
RITE_SECTION_HEADER;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
struct rite_section_irep_header {
|
|
91
|
+
RITE_SECTION_HEADER;
|
|
92
|
+
|
|
93
|
+
uint8_t rite_version[4]; /* Rite Instruction Specification Version */
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
struct rite_section_debug_header {
|
|
97
|
+
RITE_SECTION_HEADER;
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
struct rite_section_lv_header {
|
|
101
|
+
RITE_SECTION_HEADER;
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
#define RITE_LV_NULL_MARK UINT16_MAX
|
|
105
|
+
|
|
106
|
+
struct rite_binary_footer {
|
|
107
|
+
RITE_SECTION_HEADER;
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
static inline size_t
|
|
111
|
+
uint8_to_bin(uint8_t s, uint8_t *bin)
|
|
112
|
+
{
|
|
113
|
+
*bin = s;
|
|
114
|
+
return sizeof(uint8_t);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
static inline size_t
|
|
118
|
+
uint16_to_bin(uint16_t s, uint8_t *bin)
|
|
119
|
+
{
|
|
120
|
+
*bin++ = (s >> 8) & 0xff;
|
|
121
|
+
*bin = s & 0xff;
|
|
122
|
+
return sizeof(uint16_t);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
static inline size_t
|
|
126
|
+
uint32_to_bin(uint32_t l, uint8_t *bin)
|
|
127
|
+
{
|
|
128
|
+
*bin++ = (l >> 24) & 0xff;
|
|
129
|
+
*bin++ = (l >> 16) & 0xff;
|
|
130
|
+
*bin++ = (l >> 8) & 0xff;
|
|
131
|
+
*bin = l & 0xff;
|
|
132
|
+
return sizeof(uint32_t);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
static inline uint32_t
|
|
136
|
+
bin_to_uint32(const uint8_t *bin)
|
|
137
|
+
{
|
|
138
|
+
return (uint32_t)bin[0] << 24 |
|
|
139
|
+
(uint32_t)bin[1] << 16 |
|
|
140
|
+
(uint32_t)bin[2] << 8 |
|
|
141
|
+
(uint32_t)bin[3];
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
static inline uint16_t
|
|
145
|
+
bin_to_uint16(const uint8_t *bin)
|
|
146
|
+
{
|
|
147
|
+
return (uint16_t)bin[0] << 8 |
|
|
148
|
+
(uint16_t)bin[1];
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
static inline uint8_t
|
|
152
|
+
bin_to_uint8(const uint8_t *bin)
|
|
153
|
+
{
|
|
154
|
+
return (uint8_t)bin[0];
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
MRB_END_DECL
|
|
158
|
+
|
|
159
|
+
#endif /* MRUBY_DUMP_H */
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
** @file mruby/endian.h - detect endian-ness
|
|
3
|
+
**
|
|
4
|
+
** See Copyright Notice in mruby.h
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
#ifndef MRUBY_ENDIAN_H
|
|
8
|
+
#define MRUBY_ENDIAN_H
|
|
9
|
+
|
|
10
|
+
#include <limits.h>
|
|
11
|
+
|
|
12
|
+
MRB_BEGIN_DECL
|
|
13
|
+
|
|
14
|
+
#if !defined(BYTE_ORDER) && defined(__BYTE_ORDER__)
|
|
15
|
+
# define BYTE_ORDER __BYTE_ORDER__
|
|
16
|
+
#endif
|
|
17
|
+
#if !defined(BIG_ENDIAN) && defined(__ORDER_BIG_ENDIAN__)
|
|
18
|
+
# define BIG_ENDIAN __ORDER_BIG_ENDIAN__
|
|
19
|
+
#endif
|
|
20
|
+
#if !defined(LITTLE_ENDIAN) && defined(__ORDER_LITTLE_ENDIAN__)
|
|
21
|
+
# define LITTLE_ENDIAN __ORDER_LITTLE_ENDIAN__
|
|
22
|
+
#endif
|
|
23
|
+
|
|
24
|
+
#ifdef BYTE_ORDER
|
|
25
|
+
# if BYTE_ORDER == BIG_ENDIAN
|
|
26
|
+
# define littleendian 0
|
|
27
|
+
# elif BYTE_ORDER == LITTLE_ENDIAN
|
|
28
|
+
# define littleendian 1
|
|
29
|
+
# endif
|
|
30
|
+
#endif
|
|
31
|
+
#ifndef littleendian
|
|
32
|
+
/* can't distinguish endian in compile time */
|
|
33
|
+
static inline int
|
|
34
|
+
check_little_endian(void)
|
|
35
|
+
{
|
|
36
|
+
unsigned int n = 1;
|
|
37
|
+
return (*(unsigned char*)&n == 1);
|
|
38
|
+
}
|
|
39
|
+
# define littleendian check_little_endian()
|
|
40
|
+
#endif
|
|
41
|
+
|
|
42
|
+
MRB_END_DECL
|
|
43
|
+
|
|
44
|
+
#endif /* MRUBY_ENDIAN_H */
|