Skip to content

Latest commit

 

History

History
77 lines (75 loc) · 13.7 KB

File metadata and controls

77 lines (75 loc) · 13.7 KB

2.2. 定義されているマクロ

主要なヘッダファイルで定義されているマクロを以下に示します。

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_stateatexitスタックサイズ mrbconf.h MRB_FIXED_STATE_ATEXIT_STACK指定時のみ有効
MRB_FIXED_STATE_ATEXIT_STACK mrb_stateatexitスタックを固定サイズとする 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される