diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-06-20 09:03:56 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-06-20 09:03:56 +0900 |
| commit | 9f25e3f3beac4b5fd3d01ea1adaad00e5d4e43f5 (patch) | |
| tree | 839a8d1002cf35700735b83f47d88a2d543e4200 | |
| parent | 49ecd44c7be9dccca40172bc6a3d3fb2d97689e3 (diff) | |
| parent | dd37c520683c6fe149cc8f976776ee94e1065cc2 (diff) | |
| download | mruby-9f25e3f3beac4b5fd3d01ea1adaad00e5d4e43f5.tar.gz mruby-9f25e3f3beac4b5fd3d01ea1adaad00e5d4e43f5.zip | |
Merge pull request #2407 from take-cheeze/mrbconf_update
Update mrbconf document.
| -rw-r--r-- | doc/mrbconf/README.md | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/doc/mrbconf/README.md b/doc/mrbconf/README.md index 930e185da..9532681eb 100644 --- a/doc/mrbconf/README.md +++ b/doc/mrbconf/README.md @@ -1,5 +1,15 @@ # mruby configuration macros. +## How to use these macros. +You can use mrbconfs with following ways: +* Write them in `mrbconf.h`. + * Using compiler flags is prefered when building a cross binaries or multiple mruby binaries + since it's easier to use different mrbconf per each `MRuby::Build`. + * Most flags can be enabled by just commenting in. +* Pass them as compiler flags. + * Make sure you pass the same flags to all compilers since some mrbconf(e.g., `MRB_GC_FIXED_ARENA`) + changes `struct` layout and cause memory access error when C and other language(e.g., C++) is mixed. + ## stdio setting. `ENABLE_STDIO` * Will be defined automatically if `DISABLE_STDIO` isn't defined. @@ -36,3 +46,38 @@ `MRB_STACK_MAX` * Default value is `0x40000 - MRB_STACK_GROWTH`. * Raises `RuntimeError` when stack size exceeds this value. + +## Primitive type configuration. + +`MRB_USE_FLOAT` +* When defined single precision floating point type(C type `float`) is used as `mrb_float`. +* Else double precision floating point type(C type `double`) is used as `mrb_float`. + +`MRB_INT16` +* When defined `int16_t` will be defined as `mrb_int`. +* Conflicts with `MRB_INT64`. + +`MRB_INT64` +* When defined `int64_t` will be defined as `mrb_int`. +* Conflicts with `MRB_INT16`. +* When `MRB_INT16` or `MRB_INT64` isn't defined `int`(most of the times 32-bit integer) +will be defined as `mrb_int`. + +## Garbage collector configuration. + +`MRB_GC_STRESS` +* When defined full GC is emitted per each `RBasic` allocation. +* Mainly used in memory manager debugging. + +`MRB_GC_TURN_OFF_GENERATIONAL` +* When defined turns generational GC by default. + +`MRB_GC_FIXED_ARENA` +* When defined used fixed size GC arena. +* Raises `RuntimeError` when this is defined and GC arena size exceeds `MRB_GC_ARENA_SIZE`. +* Useful tracking unnecessary mruby object allocation. + +`MRB_GC_ARENA_SIZE` +* Default value 100. +* Ignored when `MRB_GC_FIXED_ARENA` isn't defined. +* Defines fixed GC arena size. |
