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,198 @@
|
|
|
1
|
+
# mruby-io
|
|
2
|
+
|
|
3
|
+
`IO` and `File` classes for mruby
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Add the line below to your build configuration.
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
conf.gem core: 'mruby-io'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Implemented methods
|
|
14
|
+
|
|
15
|
+
### IO
|
|
16
|
+
|
|
17
|
+
- <https://doc.ruby-lang.org/ja/1.9.3/class/IO.html>
|
|
18
|
+
|
|
19
|
+
| method | mruby-io | memo |
|
|
20
|
+
| -------------------------- | -------- | -------- |
|
|
21
|
+
| IO.binread | | |
|
|
22
|
+
| IO.binwrite | | |
|
|
23
|
+
| IO.copy_stream | | |
|
|
24
|
+
| IO.new, IO.for_fd, IO.open | o | |
|
|
25
|
+
| IO.foreach | | |
|
|
26
|
+
| IO.pipe | o | |
|
|
27
|
+
| IO.popen | o | |
|
|
28
|
+
| IO.read | o | |
|
|
29
|
+
| IO.readlines | | |
|
|
30
|
+
| IO.select | o | |
|
|
31
|
+
| IO.sysopen | o | |
|
|
32
|
+
| IO.try_convert | | |
|
|
33
|
+
| IO.write | | |
|
|
34
|
+
| IO#<< | | |
|
|
35
|
+
| IO#advise | | |
|
|
36
|
+
| IO#autoclose= | | |
|
|
37
|
+
| IO#autoclose? | | |
|
|
38
|
+
| IO#binmode | | |
|
|
39
|
+
| IO#binmode? | | |
|
|
40
|
+
| IO#bytes | | obsolete |
|
|
41
|
+
| IO#chars | | obsolete |
|
|
42
|
+
| IO#clone, IO#dup | o | |
|
|
43
|
+
| IO#close | o | |
|
|
44
|
+
| IO#close_on_exec= | o | |
|
|
45
|
+
| IO#close_on_exec? | o | |
|
|
46
|
+
| IO#close_read | | |
|
|
47
|
+
| IO#close_write | | |
|
|
48
|
+
| IO#closed? | o | |
|
|
49
|
+
| IO#codepoints | | obsolete |
|
|
50
|
+
| IO#each_byte | o | |
|
|
51
|
+
| IO#each_char | o | |
|
|
52
|
+
| IO#each_codepoint | | |
|
|
53
|
+
| IO#each_line | o | |
|
|
54
|
+
| IO#eof, IO#eof? | o | |
|
|
55
|
+
| IO#external_encoding | | |
|
|
56
|
+
| IO#fcntl | | |
|
|
57
|
+
| IO#fdatasync | | |
|
|
58
|
+
| IO#fileno, IO#to_i | o | |
|
|
59
|
+
| IO#flush | o | |
|
|
60
|
+
| IO#fsync | | |
|
|
61
|
+
| IO#getbyte | o | |
|
|
62
|
+
| IO#getc | o | |
|
|
63
|
+
| IO#gets | o | |
|
|
64
|
+
| IO#internal_encoding | | |
|
|
65
|
+
| IO#ioctl | | |
|
|
66
|
+
| IO#isatty, IO#tty? | o | |
|
|
67
|
+
| IO#lineno | | |
|
|
68
|
+
| IO#lineno= | | |
|
|
69
|
+
| IO#lines | | obsolete |
|
|
70
|
+
| IO#pid | o | |
|
|
71
|
+
| IO#pos, IO#tell | o | |
|
|
72
|
+
| IO#pos= | o | |
|
|
73
|
+
| IO#print | o | |
|
|
74
|
+
| IO#printf | o | |
|
|
75
|
+
| IO#putc | | |
|
|
76
|
+
| IO#puts | o | |
|
|
77
|
+
| IO#read | o | |
|
|
78
|
+
| IO#read_nonblock | | |
|
|
79
|
+
| IO#readbyte | o | |
|
|
80
|
+
| IO#readchar | o | |
|
|
81
|
+
| IO#readline | o | |
|
|
82
|
+
| IO#readlines | o | |
|
|
83
|
+
| IO#readpartial | | |
|
|
84
|
+
| IO#reopen | | |
|
|
85
|
+
| IO#rewind | | |
|
|
86
|
+
| IO#seek | o | |
|
|
87
|
+
| IO#set_encoding | | |
|
|
88
|
+
| IO#stat | | |
|
|
89
|
+
| IO#sync | o | |
|
|
90
|
+
| IO#sync= | o | |
|
|
91
|
+
| IO#sysread | o | |
|
|
92
|
+
| IO#sysseek | o | |
|
|
93
|
+
| IO#syswrite | o | |
|
|
94
|
+
| IO#to_io | | |
|
|
95
|
+
| IO#ungetbyte | o | |
|
|
96
|
+
| IO#ungetc | o | |
|
|
97
|
+
| IO#write | o | |
|
|
98
|
+
| IO#write_nonblock | | |
|
|
99
|
+
|
|
100
|
+
### File
|
|
101
|
+
|
|
102
|
+
- <https://doc.ruby-lang.org/ja/1.9.3/class/File.html>
|
|
103
|
+
|
|
104
|
+
| method | mruby-io | memo |
|
|
105
|
+
| --------------------------- | -------- | -------- |
|
|
106
|
+
| File.absolute_path | | |
|
|
107
|
+
| File.atime | | |
|
|
108
|
+
| File.basename | o | |
|
|
109
|
+
| File.blockdev? | | FileTest |
|
|
110
|
+
| File.chardev? | | FileTest |
|
|
111
|
+
| File.chmod | o | |
|
|
112
|
+
| File.chown | | |
|
|
113
|
+
| File.ctime | | |
|
|
114
|
+
| File.delete, File.unlink | o | |
|
|
115
|
+
| File.directory? | o | FileTest |
|
|
116
|
+
| File.dirname | o | |
|
|
117
|
+
| File.executable? | | FileTest |
|
|
118
|
+
| File.executable_real? | | FileTest |
|
|
119
|
+
| File.exist?, exists? | o | FileTest |
|
|
120
|
+
| File.expand_path | o | |
|
|
121
|
+
| File.extname | o | |
|
|
122
|
+
| File.file? | o | FileTest |
|
|
123
|
+
| File.fnmatch, File.fnmatch? | | |
|
|
124
|
+
| File.ftype | | |
|
|
125
|
+
| File.grpowned? | | FileTest |
|
|
126
|
+
| File.identical? | | FileTest |
|
|
127
|
+
| File.join | o | |
|
|
128
|
+
| File.lchmod | | |
|
|
129
|
+
| File.lchown | | |
|
|
130
|
+
| File.link | | |
|
|
131
|
+
| File.lstat | | |
|
|
132
|
+
| File.mtime | | |
|
|
133
|
+
| File.new, File.open | o | |
|
|
134
|
+
| File.owned? | | FileTest |
|
|
135
|
+
| File.path | | |
|
|
136
|
+
| File.pipe? | o | FileTest |
|
|
137
|
+
| File.readable? | | FileTest |
|
|
138
|
+
| File.readable_real? | | FileTest |
|
|
139
|
+
| File.readlink | o | |
|
|
140
|
+
| File.realdirpath | | |
|
|
141
|
+
| File.realpath | o | |
|
|
142
|
+
| File.rename | o | |
|
|
143
|
+
| File.setgid? | | FileTest |
|
|
144
|
+
| File.setuid? | | FileTest |
|
|
145
|
+
| File.size | o | |
|
|
146
|
+
| File.size? | o | FileTest |
|
|
147
|
+
| File.socket? | o | FileTest |
|
|
148
|
+
| File.split | | |
|
|
149
|
+
| File.stat | | |
|
|
150
|
+
| File.sticky? | | FileTest |
|
|
151
|
+
| File.symlink | | |
|
|
152
|
+
| File.symlink? | o | FileTest |
|
|
153
|
+
| File.truncate | | |
|
|
154
|
+
| File.umask | o | |
|
|
155
|
+
| File.utime | | |
|
|
156
|
+
| File.world_readable? | | |
|
|
157
|
+
| File.world_writable? | | |
|
|
158
|
+
| File.writable? | | FileTest |
|
|
159
|
+
| File.writable_real? | | FileTest |
|
|
160
|
+
| File.zero? | o | FileTest |
|
|
161
|
+
| File#atime | o | |
|
|
162
|
+
| File#chmod | | |
|
|
163
|
+
| File#chown | | |
|
|
164
|
+
| File#ctime | o | |
|
|
165
|
+
| File#flock | o | |
|
|
166
|
+
| File#lstat | | |
|
|
167
|
+
| File#mtime | o | |
|
|
168
|
+
| File#path | o | |
|
|
169
|
+
| File#size | | |
|
|
170
|
+
| File#truncate | | |
|
|
171
|
+
|
|
172
|
+
## Porting Note
|
|
173
|
+
|
|
174
|
+
If your (non Windows) platform does not support `getpwnam(3)` for some reason, define `MRB_IO_NO_PWNAM`.
|
|
175
|
+
See [mruby#5358](https://github.com/mruby/mruby/issues/5358).
|
|
176
|
+
|
|
177
|
+
## License
|
|
178
|
+
|
|
179
|
+
Copyright (c) 2013 Internet Initiative Japan Inc.
|
|
180
|
+
Copyright (c) 2017 mruby developers
|
|
181
|
+
|
|
182
|
+
Permission is hereby granted, free of charge, to any person obtaining a
|
|
183
|
+
copy of this software and associated documentation files (the "Software"),
|
|
184
|
+
to deal in the Software without restriction, including without limitation
|
|
185
|
+
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
|
186
|
+
and/or sell copies of the Software, and to permit persons to whom the
|
|
187
|
+
Software is furnished to do so, subject to the following conditions:
|
|
188
|
+
|
|
189
|
+
The above copyright notice and this permission notice shall be included in
|
|
190
|
+
all copies or substantial portions of the Software.
|
|
191
|
+
|
|
192
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
193
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
194
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
195
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
196
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
197
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
198
|
+
DEALINGS IN THE SOFTWARE.
|
|
@@ -0,0 +1,451 @@
|
|
|
1
|
+
/*
|
|
2
|
+
** io_hal.h - IO Hardware Abstraction Layer (HAL)
|
|
3
|
+
**
|
|
4
|
+
** See Copyright Notice in mruby.h
|
|
5
|
+
**
|
|
6
|
+
** This header defines the HAL interface for platform-specific I/O operations.
|
|
7
|
+
** Platform-specific implementations (hal-posix-io, hal-win-io, etc.) must
|
|
8
|
+
** provide all functions declared here.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
#ifndef MRUBY_IO_HAL_H
|
|
12
|
+
#define MRUBY_IO_HAL_H
|
|
13
|
+
|
|
14
|
+
#include <mruby.h>
|
|
15
|
+
#include <stdint.h>
|
|
16
|
+
|
|
17
|
+
/*
|
|
18
|
+
* Platform-independent type definitions
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/* File status structure - platform-independent representation */
|
|
22
|
+
typedef struct mrb_io_stat {
|
|
23
|
+
uint64_t st_dev; /* Device ID */
|
|
24
|
+
uint64_t st_ino; /* Inode number */
|
|
25
|
+
uint32_t st_mode; /* File mode/permissions */
|
|
26
|
+
uint32_t st_nlink; /* Number of hard links */
|
|
27
|
+
uint32_t st_uid; /* User ID */
|
|
28
|
+
uint32_t st_gid; /* Group ID */
|
|
29
|
+
uint64_t st_rdev; /* Device ID (if special file) */
|
|
30
|
+
int64_t st_size; /* File size in bytes */
|
|
31
|
+
int64_t st_atime; /* Last access time */
|
|
32
|
+
int64_t st_mtime; /* Last modification time */
|
|
33
|
+
int64_t st_ctime; /* Last status change time */
|
|
34
|
+
int64_t st_blksize; /* Block size for filesystem I/O */
|
|
35
|
+
int64_t st_blocks; /* Number of 512B blocks allocated */
|
|
36
|
+
} mrb_io_stat;
|
|
37
|
+
|
|
38
|
+
/* Timeval structure for select() */
|
|
39
|
+
typedef struct mrb_io_timeval {
|
|
40
|
+
int64_t tv_sec; /* Seconds */
|
|
41
|
+
int64_t tv_usec; /* Microseconds */
|
|
42
|
+
} mrb_io_timeval;
|
|
43
|
+
|
|
44
|
+
/* File descriptor set for select() */
|
|
45
|
+
typedef struct mrb_io_fdset mrb_io_fdset;
|
|
46
|
+
|
|
47
|
+
/*
|
|
48
|
+
* File mode constants (POSIX-style)
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
/* File type masks */
|
|
52
|
+
#define MRB_IO_S_IFMT 0170000 /* Type of file mask */
|
|
53
|
+
#define MRB_IO_S_IFSOCK 0140000 /* Socket */
|
|
54
|
+
#define MRB_IO_S_IFLNK 0120000 /* Symbolic link */
|
|
55
|
+
#define MRB_IO_S_IFREG 0100000 /* Regular file */
|
|
56
|
+
#define MRB_IO_S_IFBLK 0060000 /* Block device */
|
|
57
|
+
#define MRB_IO_S_IFDIR 0040000 /* Directory */
|
|
58
|
+
#define MRB_IO_S_IFCHR 0020000 /* Character device */
|
|
59
|
+
#define MRB_IO_S_IFIFO 0010000 /* FIFO */
|
|
60
|
+
|
|
61
|
+
/* File type test macros */
|
|
62
|
+
#define MRB_IO_S_ISREG(m) (((m) & MRB_IO_S_IFMT) == MRB_IO_S_IFREG)
|
|
63
|
+
#define MRB_IO_S_ISDIR(m) (((m) & MRB_IO_S_IFMT) == MRB_IO_S_IFDIR)
|
|
64
|
+
#define MRB_IO_S_ISCHR(m) (((m) & MRB_IO_S_IFMT) == MRB_IO_S_IFCHR)
|
|
65
|
+
#define MRB_IO_S_ISBLK(m) (((m) & MRB_IO_S_IFMT) == MRB_IO_S_IFBLK)
|
|
66
|
+
#define MRB_IO_S_ISFIFO(m) (((m) & MRB_IO_S_IFMT) == MRB_IO_S_IFIFO)
|
|
67
|
+
#define MRB_IO_S_ISLNK(m) (((m) & MRB_IO_S_IFMT) == MRB_IO_S_IFLNK)
|
|
68
|
+
#define MRB_IO_S_ISSOCK(m) (((m) & MRB_IO_S_IFMT) == MRB_IO_S_IFSOCK)
|
|
69
|
+
|
|
70
|
+
/* File lock constants */
|
|
71
|
+
#define MRB_IO_LOCK_SH 1 /* Shared lock */
|
|
72
|
+
#define MRB_IO_LOCK_EX 2 /* Exclusive lock */
|
|
73
|
+
#define MRB_IO_LOCK_NB 4 /* Non-blocking */
|
|
74
|
+
#define MRB_IO_LOCK_UN 8 /* Unlock */
|
|
75
|
+
|
|
76
|
+
/* Seek constants */
|
|
77
|
+
#define MRB_IO_SEEK_SET 0 /* Seek from beginning */
|
|
78
|
+
#define MRB_IO_SEEK_CUR 1 /* Seek from current position */
|
|
79
|
+
#define MRB_IO_SEEK_END 2 /* Seek from end */
|
|
80
|
+
|
|
81
|
+
/*
|
|
82
|
+
* HAL Interface - File Operations
|
|
83
|
+
*/
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Get file status by path
|
|
87
|
+
*
|
|
88
|
+
* @param mrb mruby state
|
|
89
|
+
* @param path File path (UTF-8)
|
|
90
|
+
* @param st Output stat structure
|
|
91
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
92
|
+
*/
|
|
93
|
+
int mrb_hal_io_stat(mrb_state *mrb, const char *path, mrb_io_stat *st);
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Get file status by descriptor
|
|
97
|
+
*
|
|
98
|
+
* @param mrb mruby state
|
|
99
|
+
* @param fd File descriptor
|
|
100
|
+
* @param st Output stat structure
|
|
101
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
102
|
+
*/
|
|
103
|
+
int mrb_hal_io_fstat(mrb_state *mrb, int fd, mrb_io_stat *st);
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Get link status (don't follow symlinks)
|
|
107
|
+
*
|
|
108
|
+
* @param mrb mruby state
|
|
109
|
+
* @param path File path (UTF-8)
|
|
110
|
+
* @param st Output stat structure
|
|
111
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
112
|
+
*/
|
|
113
|
+
int mrb_hal_io_lstat(mrb_state *mrb, const char *path, mrb_io_stat *st);
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Change file permissions
|
|
117
|
+
*
|
|
118
|
+
* @param mrb mruby state
|
|
119
|
+
* @param path File path (UTF-8)
|
|
120
|
+
* @param mode New permission mode
|
|
121
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
122
|
+
*/
|
|
123
|
+
int mrb_hal_io_chmod(mrb_state *mrb, const char *path, uint32_t mode);
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Set/get file creation mask
|
|
127
|
+
*
|
|
128
|
+
* @param mrb mruby state
|
|
129
|
+
* @param mask New umask value (if < 0, only returns current value)
|
|
130
|
+
* @return Previous umask value
|
|
131
|
+
*/
|
|
132
|
+
uint32_t mrb_hal_io_umask(mrb_state *mrb, int32_t mask);
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Truncate file to specified length
|
|
136
|
+
*
|
|
137
|
+
* @param mrb mruby state
|
|
138
|
+
* @param fd File descriptor
|
|
139
|
+
* @param length New file length
|
|
140
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
141
|
+
*/
|
|
142
|
+
int mrb_hal_io_ftruncate(mrb_state *mrb, int fd, int64_t length);
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Apply or remove advisory lock on file
|
|
146
|
+
*
|
|
147
|
+
* @param mrb mruby state
|
|
148
|
+
* @param fd File descriptor
|
|
149
|
+
* @param operation Lock operation (MRB_IO_LOCK_*)
|
|
150
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
151
|
+
*/
|
|
152
|
+
int mrb_hal_io_flock(mrb_state *mrb, int fd, int operation);
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Delete a file
|
|
156
|
+
*
|
|
157
|
+
* @param mrb mruby state
|
|
158
|
+
* @param path File path (UTF-8)
|
|
159
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
160
|
+
*/
|
|
161
|
+
int mrb_hal_io_unlink(mrb_state *mrb, const char *path);
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Rename a file
|
|
165
|
+
*
|
|
166
|
+
* @param mrb mruby state
|
|
167
|
+
* @param oldpath Old file path (UTF-8)
|
|
168
|
+
* @param newpath New file path (UTF-8)
|
|
169
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
170
|
+
*/
|
|
171
|
+
int mrb_hal_io_rename(mrb_state *mrb, const char *oldpath, const char *newpath);
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Create a symbolic link
|
|
175
|
+
*
|
|
176
|
+
* @param mrb mruby state
|
|
177
|
+
* @param target Target path (UTF-8)
|
|
178
|
+
* @param linkpath Link path (UTF-8)
|
|
179
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
180
|
+
*/
|
|
181
|
+
int mrb_hal_io_symlink(mrb_state *mrb, const char *target, const char *linkpath);
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Read value of a symbolic link
|
|
185
|
+
*
|
|
186
|
+
* @param mrb mruby state
|
|
187
|
+
* @param path Symlink path (UTF-8)
|
|
188
|
+
* @param buf Buffer to store result (UTF-8)
|
|
189
|
+
* @param bufsize Buffer size
|
|
190
|
+
* @return Number of bytes placed in buf, -1 on error (sets errno)
|
|
191
|
+
*/
|
|
192
|
+
int64_t mrb_hal_io_readlink(mrb_state *mrb, const char *path, char *buf, size_t bufsize);
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Resolve pathname to absolute path
|
|
196
|
+
*
|
|
197
|
+
* @param mrb mruby state
|
|
198
|
+
* @param path Pathname (UTF-8)
|
|
199
|
+
* @param resolved Buffer for resolved path (must be at least PATH_MAX size)
|
|
200
|
+
* @return Pointer to resolved on success, NULL on error (sets errno)
|
|
201
|
+
*/
|
|
202
|
+
char* mrb_hal_io_realpath(mrb_state *mrb, const char *path, char *resolved);
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Get current working directory
|
|
206
|
+
*
|
|
207
|
+
* @param mrb mruby state
|
|
208
|
+
* @param buf Buffer to store result (UTF-8)
|
|
209
|
+
* @param size Buffer size
|
|
210
|
+
* @return Pointer to buf on success, NULL on error (sets errno)
|
|
211
|
+
*/
|
|
212
|
+
char* mrb_hal_io_getcwd(mrb_state *mrb, char *buf, size_t size);
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Get environment variable
|
|
216
|
+
*
|
|
217
|
+
* @param mrb mruby state
|
|
218
|
+
* @param name Variable name
|
|
219
|
+
* @return Value string (UTF-8) or NULL if not found
|
|
220
|
+
*/
|
|
221
|
+
const char* mrb_hal_io_getenv(mrb_state *mrb, const char *name);
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Get user's home directory
|
|
225
|
+
*
|
|
226
|
+
* @param mrb mruby state
|
|
227
|
+
* @param username User name (NULL for current user)
|
|
228
|
+
* @return Home directory path (UTF-8) or NULL on error (sets errno)
|
|
229
|
+
*/
|
|
230
|
+
const char* mrb_hal_io_gethome(mrb_state *mrb, const char *username);
|
|
231
|
+
|
|
232
|
+
/*
|
|
233
|
+
* HAL Interface - Core I/O Operations
|
|
234
|
+
*/
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Open file
|
|
238
|
+
*
|
|
239
|
+
* @param mrb mruby state
|
|
240
|
+
* @param path File path (UTF-8)
|
|
241
|
+
* @param flags Open flags (O_RDONLY, O_WRONLY, O_RDWR, etc.)
|
|
242
|
+
* @param mode Creation mode (used if O_CREAT is set)
|
|
243
|
+
* @return File descriptor on success, -1 on error (sets errno)
|
|
244
|
+
*/
|
|
245
|
+
int mrb_hal_io_open(mrb_state *mrb, const char *path, int flags, uint32_t mode);
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Close file descriptor
|
|
249
|
+
*
|
|
250
|
+
* @param mrb mruby state
|
|
251
|
+
* @param fd File descriptor
|
|
252
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
253
|
+
*/
|
|
254
|
+
int mrb_hal_io_close(mrb_state *mrb, int fd);
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Read from file descriptor
|
|
258
|
+
*
|
|
259
|
+
* @param mrb mruby state
|
|
260
|
+
* @param fd File descriptor
|
|
261
|
+
* @param buf Buffer to store data
|
|
262
|
+
* @param count Maximum bytes to read
|
|
263
|
+
* @return Number of bytes read, 0 on EOF, -1 on error (sets errno)
|
|
264
|
+
*/
|
|
265
|
+
int64_t mrb_hal_io_read(mrb_state *mrb, int fd, void *buf, size_t count);
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Write to file descriptor
|
|
269
|
+
*
|
|
270
|
+
* @param mrb mruby state
|
|
271
|
+
* @param fd File descriptor
|
|
272
|
+
* @param buf Data to write
|
|
273
|
+
* @param count Number of bytes to write
|
|
274
|
+
* @return Number of bytes written, -1 on error (sets errno)
|
|
275
|
+
*/
|
|
276
|
+
int64_t mrb_hal_io_write(mrb_state *mrb, int fd, const void *buf, size_t count);
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Reposition file offset
|
|
280
|
+
*
|
|
281
|
+
* @param mrb mruby state
|
|
282
|
+
* @param fd File descriptor
|
|
283
|
+
* @param offset Offset value
|
|
284
|
+
* @param whence Reference point (MRB_IO_SEEK_SET/CUR/END)
|
|
285
|
+
* @return New offset from beginning of file, -1 on error (sets errno)
|
|
286
|
+
*/
|
|
287
|
+
int64_t mrb_hal_io_lseek(mrb_state *mrb, int fd, int64_t offset, int whence);
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Duplicate file descriptor
|
|
291
|
+
*
|
|
292
|
+
* @param mrb mruby state
|
|
293
|
+
* @param fd File descriptor to duplicate
|
|
294
|
+
* @return New descriptor on success, -1 on error (sets errno)
|
|
295
|
+
*/
|
|
296
|
+
int mrb_hal_io_dup(mrb_state *mrb, int fd);
|
|
297
|
+
|
|
298
|
+
/**
|
|
299
|
+
* Manipulate file descriptor
|
|
300
|
+
*
|
|
301
|
+
* @param mrb mruby state
|
|
302
|
+
* @param fd File descriptor
|
|
303
|
+
* @param cmd Command (F_GETFD, F_SETFD, etc.)
|
|
304
|
+
* @param arg Command argument
|
|
305
|
+
* @return Depends on command, -1 on error (sets errno)
|
|
306
|
+
*/
|
|
307
|
+
int mrb_hal_io_fcntl(mrb_state *mrb, int fd, int cmd, int arg);
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Check if descriptor refers to terminal
|
|
311
|
+
*
|
|
312
|
+
* @param mrb mruby state
|
|
313
|
+
* @param fd File descriptor
|
|
314
|
+
* @return 1 if TTY, 0 if not, -1 on error (sets errno)
|
|
315
|
+
*/
|
|
316
|
+
int mrb_hal_io_isatty(mrb_state *mrb, int fd);
|
|
317
|
+
|
|
318
|
+
/**
|
|
319
|
+
* Create pipe
|
|
320
|
+
*
|
|
321
|
+
* @param mrb mruby state
|
|
322
|
+
* @param fds Array to store two file descriptors [read_end, write_end]
|
|
323
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
324
|
+
*/
|
|
325
|
+
int mrb_hal_io_pipe(mrb_state *mrb, int fds[2]);
|
|
326
|
+
|
|
327
|
+
/*
|
|
328
|
+
* HAL Interface - Process Operations
|
|
329
|
+
*/
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Spawn a new process
|
|
333
|
+
*
|
|
334
|
+
* Creates a new process and executes the command. File descriptors can be
|
|
335
|
+
* redirected for stdin/stdout/stderr (-1 means don't redirect).
|
|
336
|
+
*
|
|
337
|
+
* POSIX: Uses fork() + dup2() + execl()
|
|
338
|
+
* Windows: Uses CreateProcess() with STARTUPINFO
|
|
339
|
+
*
|
|
340
|
+
* @param mrb mruby state
|
|
341
|
+
* @param cmd Command to execute (shell command)
|
|
342
|
+
* @param stdin_fd File descriptor to use for stdin (-1 = don't redirect)
|
|
343
|
+
* @param stdout_fd File descriptor to use for stdout (-1 = don't redirect)
|
|
344
|
+
* @param stderr_fd File descriptor to use for stderr (-1 = don't redirect)
|
|
345
|
+
* @param pid Output parameter for process ID
|
|
346
|
+
* @return 0 on success, -1 on error (sets errno)
|
|
347
|
+
*/
|
|
348
|
+
int mrb_hal_io_spawn_process(mrb_state *mrb, const char *cmd,
|
|
349
|
+
int stdin_fd, int stdout_fd, int stderr_fd,
|
|
350
|
+
int *pid);
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Wait for process to change state
|
|
354
|
+
*
|
|
355
|
+
* @param mrb mruby state
|
|
356
|
+
* @param pid Process ID to wait for
|
|
357
|
+
* @param status Output parameter for exit status
|
|
358
|
+
* @param options Wait options (0 for blocking wait)
|
|
359
|
+
* @return Process ID on success, -1 on error (sets errno)
|
|
360
|
+
*/
|
|
361
|
+
int mrb_hal_io_waitpid(mrb_state *mrb, int pid, int *status, int options);
|
|
362
|
+
|
|
363
|
+
/*
|
|
364
|
+
* HAL Interface - I/O Multiplexing
|
|
365
|
+
*/
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Allocate file descriptor set
|
|
369
|
+
*
|
|
370
|
+
* @param mrb mruby state
|
|
371
|
+
* @return Pointer to fdset or NULL on error
|
|
372
|
+
*/
|
|
373
|
+
mrb_io_fdset* mrb_hal_io_fdset_alloc(mrb_state *mrb);
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Free file descriptor set
|
|
377
|
+
*
|
|
378
|
+
* @param mrb mruby state
|
|
379
|
+
* @param fdset File descriptor set to free
|
|
380
|
+
*/
|
|
381
|
+
void mrb_hal_io_fdset_free(mrb_state *mrb, mrb_io_fdset *fdset);
|
|
382
|
+
|
|
383
|
+
/**
|
|
384
|
+
* Clear file descriptor set
|
|
385
|
+
*
|
|
386
|
+
* @param mrb mruby state
|
|
387
|
+
* @param fdset File descriptor set
|
|
388
|
+
*/
|
|
389
|
+
void mrb_hal_io_fdset_zero(mrb_state *mrb, mrb_io_fdset *fdset);
|
|
390
|
+
|
|
391
|
+
/**
|
|
392
|
+
* Add descriptor to set
|
|
393
|
+
*
|
|
394
|
+
* @param mrb mruby state
|
|
395
|
+
* @param fd File descriptor
|
|
396
|
+
* @param fdset File descriptor set
|
|
397
|
+
*/
|
|
398
|
+
void mrb_hal_io_fdset_set(mrb_state *mrb, int fd, mrb_io_fdset *fdset);
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* Check if descriptor is in set
|
|
402
|
+
*
|
|
403
|
+
* @param mrb mruby state
|
|
404
|
+
* @param fd File descriptor
|
|
405
|
+
* @param fdset File descriptor set
|
|
406
|
+
* @return Non-zero if fd is in set, 0 otherwise
|
|
407
|
+
*/
|
|
408
|
+
int mrb_hal_io_fdset_isset(mrb_state *mrb, int fd, mrb_io_fdset *fdset);
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* Monitor multiple file descriptors
|
|
412
|
+
*
|
|
413
|
+
* @param mrb mruby state
|
|
414
|
+
* @param nfds Highest file descriptor number + 1
|
|
415
|
+
* @param readfds Set of descriptors to check for reading (NULL = ignore)
|
|
416
|
+
* @param writefds Set of descriptors to check for writing (NULL = ignore)
|
|
417
|
+
* @param errorfds Set of descriptors to check for errors (NULL = ignore)
|
|
418
|
+
* @param timeout Timeout (NULL = block indefinitely)
|
|
419
|
+
* @return Number of ready descriptors, 0 on timeout, -1 on error (sets errno)
|
|
420
|
+
*/
|
|
421
|
+
int mrb_hal_io_select(mrb_state *mrb, int nfds,
|
|
422
|
+
mrb_io_fdset *readfds,
|
|
423
|
+
mrb_io_fdset *writefds,
|
|
424
|
+
mrb_io_fdset *errorfds,
|
|
425
|
+
mrb_io_timeval *timeout);
|
|
426
|
+
|
|
427
|
+
/*
|
|
428
|
+
* HAL Initialization/Finalization
|
|
429
|
+
*/
|
|
430
|
+
|
|
431
|
+
/**
|
|
432
|
+
* Initialize I/O HAL
|
|
433
|
+
*
|
|
434
|
+
* Called during gem initialization. Platform-specific HAL should perform
|
|
435
|
+
* any necessary setup here.
|
|
436
|
+
*
|
|
437
|
+
* @param mrb mruby state
|
|
438
|
+
*/
|
|
439
|
+
void mrb_hal_io_init(mrb_state *mrb);
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* Finalize I/O HAL
|
|
443
|
+
*
|
|
444
|
+
* Called during gem finalization. Platform-specific HAL should perform
|
|
445
|
+
* any necessary cleanup here.
|
|
446
|
+
*
|
|
447
|
+
* @param mrb mruby state
|
|
448
|
+
*/
|
|
449
|
+
void mrb_hal_io_final(mrb_state *mrb);
|
|
450
|
+
|
|
451
|
+
#endif /* MRUBY_IO_HAL_H */
|