mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #2407 from take-cheeze/mrbconf_update
Update mrbconf document.
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user