主要なヘッダファイルで定義されているマクロを以下に示します。
| Macros | Description | Header file | Note |
|---|---|---|---|
| MRB_64BIT | 32bitプロセッサ向け | mrbconf.h | |
| MRB_32BIT | 64bitプロセッサ向け | mrbconf.h | |
| MRB_USE_FLOAT | Floatクラスの実体にfloat型を使用する |
mrbconf.h | 指定されない場合はdouble型が使用される |
| MRB_WITHOUT_FLOAT | Floatクラスおよび浮動小数点演算機能を使用しない | mrbconf.h | |
| MRB_METHOD_CACHE | メソッドキャッシュ機能を有効化する | mrbconf.h | |
| MRB_METHOD_CACHE_SIZE | メソッドキャッシュのサイズを指定する | mrbconf.h | 2のべき乗値を指定する必要がある |
| MRB_METHOD_T_STRUCT | mrbconf.h | ||
| MRB_INT16 | mrb_int型に16bit整数値を使用する | mrbconf.h | 扱える整数値の範囲は15bit |
| MRB_INT32 | mrb_int型に32bit整数値を使用する | mrbconf.h | 扱える整数値の範囲は31bit |
| MRB_INT64 | mrb_int型に64bit整数値を使用する | mrbconf.h | 扱える整数値の範囲は63bit |
| MRB_COMPEX_NUMBERS | 複素数を使用する | mrbconf.h | |
| MRB_RATIONAL_NUMBERS | 有理数を使用する | mrbconf.h | |
| MRB_NAN_BOXING | NaN Boxingを使用してmrb_valueのメモリサイズを削減する |
mrbconf.h | MRB_USE_FLOAT, MRB_WITHOUT_FLOATと同時に使用できない |
| MRB_WORD_BOXING | mrb_valueのメモリサイズをプロセッサの処理単位に合わせる |
mrbconf.h | |
| MRB_UTF8_STRING | StringでUTF-8文字列をサポートする | mrbconf.h | |
| MRB_FUNCALL_ARGC_MAX | mrb_funcallでRubyのメソッドを呼び出す際の引数の最大数 |
mrbconf.h | |
| MRB_HEAP_PAGE_SIZE | ヒープページに格納できるオブジェクト数 | mrbconf.h | |
| MRB_USE_LINK_TIME_RO_DATA_P | __ehdr_startが有効な場合にSymbolが使用するメモリを削減する |
mrbconf.h | |
| MRB_USE_CUSTOM_RO_DATA_P | MRB_USE_LINK_TIME_RO_DATA_Pが機能しない場合にユーザ実装のmrb_ro_data_p()を使用してメモリ削減する |
mrbconf.h | |
| MRB_GC_TURN_OFF_GENERATIONAL | 世代別GCを無効化する | mrbconf.h | |
| KHASH_DEFAULT_SIZE | khashテーブルのデフォルトサイズ | mrbconf.h | |
| POOL_ALIGNMENT | プールメモリアドレスのアライメント | mrbconf.h | |
| POOL_PAGE_SIZE | プールメモリのページサイズ | mrbconf.h | |
| MRB_STR_BUF_MIN_SIZE | 文字列初期化時の最小バッファサイズ | mrbconf.h | |
| MRB_GC_ARENA_SIZE | GC arenaのサイズ | mrbconf.h | MRB_GC_FIXED_ARENA指定時のみ有効 |
| MRB_GC_FIXED_ARENA | GC arenaを固定サイズとする | mrbconf.h | |
| MRB_FIXED_STATE_ATEXIT_STACK_SIZE | mrb_stateのatexitスタックサイズ |
mrbconf.h | MRB_FIXED_STATE_ATEXIT_STACK指定時のみ有効 |
| MRB_FIXED_STATE_ATEXIT_STACK | mrb_stateのatexitスタックを固定サイズとする |
mrbconf.h | |
| MRB_DISABLE_STDIO | 標準入出力stdioを無効化する |
mrbconf.h | |
| MRB_ENABLE_DEBUG_HOOK | デバッガ用のフック処理を有効化する | mrbconf.h | |
| MRB_ENABLE_ALL_SYMBOLS | Symbol.all_symbolsを有効化する |
mrbconf.h | |
| MRB_CONSTRAINED_BASELINE_PROFILE | マイコン向けに使用メモリを制限するプロファイルを指定する | mrbconf.h | KHASH_DEFAULT_SIZE=16, MRB_STR_BUF_MIN_SIZE=32, MRB_HEAP_PAGE_SIZE=256に設定される |
| MRB_BASELINE_PROFILE | デフォルトプロファイルを指定する | mrbconf.h | |
| MRB_MAIN_PROFILE | デスクトップコンピュータ向けのプロファイルを指定する | mrbconf.h | MRB_METHOD_CACHE有効, MRB_METHOD_CACHE_SIZE=(1<<10), MRB_IV_SEGMENT_SIZE=32, MRB_HEAP_PAGE_SIZE=4096に設定される |
| MRB_HIGH_PROFILE | mruby VMを連続稼働させるサーバ向けのプロファイルを指定する | mrbconf.h | MRB_METHOD_CACHE有効, MRB_METHOD_CACHE_SIZE=(1<<12), MRB_IV_SEGMENT_SIZE=64, MRB_HEAP_PAGE_SIZE=4096に設定される |
| MRB_ARGS_REQ(n) | メソッドの必須引数の数を指定する | mruby.h | |
| MRB_ARGS_OPT(n) | メソッドのオプション引数の数を指定する | mruby.h | |
| MRB_ARGS_ARG(n1,n2) | メソッドの必須引数の数n1およびオプション引数の数n2を指定する |
mruby.h | |
| MRB_ARGS_REST() | メソッドが残り引数を受け取ることを指定する | mruby.h | |
| MRB_ARGS_POST(n) | 残り引数の後に受け取る引数の数を指定する | mruby.h | |
| MRB_ARGS_KEY(n1,n2) | メソッドがキーワード引数を受け取ることを指定する | mruby.h | |
| MRB_ARGS_BLOCK() | メソッドがブロックを受け取ることを指定する | mruby.h | |
| MRB_ARGS_ANY() | メソッドが不定数の引数を受け取ることを指定する | mruby.h | |
| MRB_ARGS_NONE() | メソッドが引数を取らないことを指定する | mruby.h | |
| mrb_strlen_lit(lit) | リテラル文字列の長さを取得する | mruby.h | APIに入れる? |
| mrb_intern_lit(mrb, lit) | リテラル文字列のシンボル値を求める | mruby.h | APIに入れる? |
| mrb_str_new_lit(mrb, lit) | リテラル文字列からStringオブジェクトを生成する | mruby.h | APIに入れる? |
| mrb_str_new_frozen(mrb,p,len) | 凍結されたStringオブジェクトを生成する | mruby.h | |
| mrb_str_new_cstr_frozen(mrb,p) | C文字列から凍結されたStringオブジェクトを生成する | mruby.h | |
| mrb_str_new_static_frozen(mrb,p,len) | static宣言されているC文字列から凍結されたStringオブジェクトを生成する | mruby.h | |
| mrb_str_new_lit_frozen(mrb,lit) | リテラル文字列から凍結されたStringオブジェクトを生成する | mruby.h | |
| E_RUNTIME_ERROR | RuntimeErrorオブジェクト | mruby.h | |
| E_TYPE_ERROR | TypeErrorオブジェクト | mruby.h | |
| E_ARGUMENT_ERROR | ArgumentErrorオブジェクト | mruby.h | |
| E_INDEX_ERROR | IndexErrorオブジェクト | mruby.h | |
| E_RANGE_ERROR | RangeErrorオブジェクト | mruby.h | |
| E_NAME_ERROR | NameErrorオブジェクト | mruby.h | |
| E_NOMETHOD_ERROR | NoMethodErrorオブジェクト | mruby.h | |
| E_SCRIPT_ERROR | ScriptErrorオブジェクト | mruby.h | |
| E_SYNTAX_ERROR | SyntaxErrorオブジェクト | mruby.h | |
| E_LOCALJUMP_ERROR | LocalJumpErrorオブジェクト | mruby.h | |
| E_REGEXP_ERROR | RegexpErrorオブジェクト | mruby.h | |
| E_FROZEN_ERROR | FrozenErrorオブジェクト | mruby.h | |
| E_NOTIMP_ERROR | NotImplementedErrorオブジェクト | mruby.h | |
| E_FLOATDOMAIN_ERROR | FloatDomainErrorオブジェクト | mruby.h | |
| E_KEY_ERROR | KeyErrorオブジェクト | mruby.h | |
| MRB_BEGIN_DECL | C言語の関数宣言を開始する | mruby/common.h | mruby.hで#includeされる |
| MRB_END_DECL | C言語の関数宣言を終了する | mruby/common.h | mruby.hで#includeされる |
| MRB_INLINE | インライン関数を定義する | mruby/common.h | mruby.hで#includeされる |
| MRB_API | mruby C APIとして公開する関数を定義する | mruby/common.h | mruby.hで#includeされる |