diff options
| -rw-r--r-- | doc/guides/mrbconf.md | 12 | ||||
| -rw-r--r-- | include/mrbconf.h | 9 | ||||
| -rw-r--r-- | include/mruby/boxing_word.h | 4 | ||||
| -rw-r--r-- | include/mruby/value.h | 12 | ||||
| -rw-r--r-- | tasks/gitlab.rake | 41 |
5 files changed, 26 insertions, 52 deletions
diff --git a/doc/guides/mrbconf.md b/doc/guides/mrbconf.md index 2f81776df..1e1a5afcf 100644 --- a/doc/guides/mrbconf.md +++ b/doc/guides/mrbconf.md @@ -54,17 +54,13 @@ You can use mrbconfs with following ways: * When defined removes floating point numbers from mruby. * It makes mruby easier to handle in "Microcontroller without FPU" and "Kernel Space". -`MRB_INT16` -* When defined `int16_t` will be defined as `mrb_int`. -* Conflicts with `MRB_INT32` and `MRB_INT64`. - `MRB_INT32` -* When defined, or both `MRB_INT16` and `MRB_INT64` are not defined on 32-bit CPU mode, `int32_t` will be defined as `mrb_int`. -* Conflicts with `MRB_INT16` and `MRB_INT64`. +* When defined, or `MRB_INT64` are not defined on 32-bit CPU mode, `mrb_int` will be defined as `int32_t`. +* Conflicts with `MRB_INT64`. `MRB_INT64` -* When defined, or both `MRB_INT16` and `MRB_INT32` are not defined on 64-bit CPU mode, `int64_t` will be defined as `mrb_int`. -* Conflicts with `MRB_INT16` and `MRB_INT32`. +* When defined, or `MRB_INT32` are not defined on 64-bit CPU mode, `mrb_int` will be defined as `int64_t`. +* Conflicts with `MRB_INT32`. ## Garbage collector configuration. diff --git a/include/mrbconf.h b/include/mrbconf.h index 0509f4ff9..3a574c7d2 100644 --- a/include/mrbconf.h +++ b/include/mrbconf.h @@ -40,19 +40,16 @@ /* no MRB_METHOD_T_STRUCT requires highest 2 bits of function pointers to be zero */ //#define MRB_METHOD_T_STRUCT -/* add -DMRB_INT16 to use 16bit integer for mrb_int; conflict with MRB_INT32 and MRB_INT64 */ -//#define MRB_INT16 - -/* add -DMRB_INT32 to use 32bit integer for mrb_int; conflict with MRB_INT16 and MRB_INT64; +/* add -DMRB_INT32 to use 32bit integer for mrb_int; conflict with MRB_INT64; Default for 32-bit CPU mode. */ //#define MRB_INT32 -/* add -DMRB_INT64 to use 64bit integer for mrb_int; conflict with MRB_INT16 and MRB_INT32; +/* add -DMRB_INT64 to use 64bit integer for mrb_int; conflict with MRB_INT32; Default for 64-bit CPU mode. */ //#define MRB_INT64 /* if no specific integer type is chosen */ -#if !defined(MRB_INT16) && !defined(MRB_INT32) && !defined(MRB_INT64) +#if !defined(MRB_INT32) && !defined(MRB_INT64) # if defined(MRB_64BIT) && !defined(MRB_NAN_BOXING) /* Use 64bit integers on 64bit architecture (without MRB_NAN_BOXING) */ # define MRB_INT64 diff --git a/include/mruby/boxing_word.h b/include/mruby/boxing_word.h index 5249b565a..1388bb9f6 100644 --- a/include/mruby/boxing_word.h +++ b/include/mruby/boxing_word.h @@ -7,10 +7,6 @@ #ifndef MRUBY_BOXING_WORD_H #define MRUBY_BOXING_WORD_H -#if defined(MRB_INT16) -# error MRB_INT16 is too small for MRB_WORD_BOXING. -#endif - #if defined(MRB_INT64) && !defined(MRB_64BIT) #error MRB_INT64 cannot be used with MRB_WORD_BOXING in 32-bit mode. #endif diff --git a/include/mruby/value.h b/include/mruby/value.h index f403c11ac..232beb1dc 100644 --- a/include/mruby/value.h +++ b/include/mruby/value.h @@ -34,10 +34,6 @@ typedef uint32_t mrb_sym; typedef uint8_t mrb_bool; struct mrb_state; -#if defined(MRB_INT16) && defined(MRB_INT64) -# error "You can't define MRB_INT16 and MRB_INT64 at the same time." -#endif - #if defined _MSC_VER && _MSC_VER < 1800 # define PRIo64 "llo" # define PRId64 "lld" @@ -63,14 +59,6 @@ struct mrb_state; # define MRB_PRIo PRIo64 # define MRB_PRId PRId64 # define MRB_PRIx PRIx64 -#elif defined(MRB_INT16) - typedef int16_t mrb_int; -# define MRB_INT_BIT 16 -# define MRB_INT_MIN (INT16_MIN>>MRB_FIXNUM_SHIFT) -# define MRB_INT_MAX (INT16_MAX>>MRB_FIXNUM_SHIFT) -# define MRB_PRIo PRIo16 -# define MRB_PRId PRId16 -# define MRB_PRIx PRIx16 #else typedef int32_t mrb_int; # define MRB_INT_BIT 32 diff --git a/tasks/gitlab.rake b/tasks/gitlab.rake index 31c8c044a..377b1cc9d 100644 --- a/tasks/gitlab.rake +++ b/tasks/gitlab.rake @@ -63,28 +63,25 @@ task :gitlab_config do configs = [] [true, false].each do |mode_32| ['', 'MRB_USE_FLOAT'].each do |float_conf| - ['', 'MRB_INT16', 'MRB_INT64'].each do |int_conf| - ['', 'MRB_NAN_BOXING', 'MRB_WORD_BOXING'].each do |boxing_conf| - ['', 'MRB_UTF8_STRING'].each do |utf8_conf| - next if (float_conf == 'MRB_USE_FLOAT') && (boxing_conf == 'MRB_NAN_BOXING') - next if (int_conf == 'MRB_INT64') && (boxing_conf == 'MRB_NAN_BOXING') - next if (int_conf == 'MRB_INT16') && (boxing_conf == 'MRB_WORD_BOXING') - next if (int_conf == 'MRB_INT64') && (boxing_conf == 'MRB_WORD_BOXING') && mode_32 - env = [float_conf, int_conf, boxing_conf, utf8_conf].map do |conf| - conf == '' ? nil : "-D#{conf}=1" - end.compact.join(' ') - bit = mode_32 ? '-m32 ' : '' - _info = '' - _info += mode_32 ? '32bit ' : '64bit ' - _info += float_conf['USE'] ? 'float ' : '' - _info += int_conf['16'] ? 'int16 ' : '' - _info += int_conf['64'] ? 'int64 ' : '' - _info += boxing_conf['NAN'] ? 'nan ' : '' - _info += boxing_conf['WORD'] ? 'word ' : '' - _info += utf8_conf['UTF8'] ? 'utf8 ' : '' - _info = _info.gsub(/ +/, ' ').strip.tr(' ', '_') - configs << { '_info' => _info, 'CFLAGS' => "#{bit}#{env}", 'LDFLAGS' => bit.strip.to_s } - end + ['', 'MRB_NAN_BOXING', 'MRB_WORD_BOXING'].each do |boxing_conf| + ['', 'MRB_UTF8_STRING'].each do |utf8_conf| + next if (float_conf == 'MRB_USE_FLOAT') && (boxing_conf == 'MRB_NAN_BOXING') + next if (int_conf == 'MRB_INT64') && (boxing_conf == 'MRB_NAN_BOXING') + next if (int_conf == 'MRB_INT64') && (boxing_conf == 'MRB_WORD_BOXING') && mode_32 + env = [float_conf, int_conf, boxing_conf, utf8_conf].map do |conf| + conf == '' ? nil : "-D#{conf}=1" + end.compact.join(' ') + bit = mode_32 ? '-m32 ' : '' + _info = '' + _info += mode_32 ? '32bit ' : '64bit ' + _info += float_conf['USE'] ? 'float ' : '' + _info += int_conf['16'] ? 'int16 ' : '' + _info += int_conf['64'] ? 'int64 ' : '' + _info += boxing_conf['NAN'] ? 'nan ' : '' + _info += boxing_conf['WORD'] ? 'word ' : '' + _info += utf8_conf['UTF8'] ? 'utf8 ' : '' + _info = _info.gsub(/ +/, ' ').strip.tr(' ', '_') + configs << { '_info' => _info, 'CFLAGS' => "#{bit}#{env}", 'LDFLAGS' => bit.strip.to_s } end end end |
