diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-19 12:53:34 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-11-21 14:38:14 +0900 |
| commit | eb52c29b2d85e2eaac7896c70245f8da5bbaf5e2 (patch) | |
| tree | 2718c3e846dac6a352f3b4bb33a86ec27d49a006 /build_config | |
| parent | 8258b7b5b3d5d27541e3ae537f49790e543b58ed (diff) | |
| download | mruby-eb52c29b2d85e2eaac7896c70245f8da5bbaf5e2.tar.gz mruby-eb52c29b2d85e2eaac7896c70245f8da5bbaf5e2.zip | |
Test each combination of boxing, `mrb_int` size, and archtecture.
Boxing:
* `MRB_NO_BOXING` (`mrb_value` packed in `struct`)
* `MRB_WORD_BOXING` (`mrb_value` packed in `struct`) default
* `MRB_NAN_BOXING` (`mrb_value` packed in `double`)
`mrb_int` size
* `MRB_INT32` (`int32_t` as `mrb_int`)
* `MRB_INT64` (`int64` as `mrb_int`) conflict with `MRB_NAN_BOXING'
Architecture
* `MRB_64BIT` (`sizeof(void*)` is 64 bits)
* `MRB_32BIT` (`sizeof(void*)` is 32 bits)
Diffstat (limited to 'build_config')
| -rw-r--r-- | build_config/boxing.rb | 129 |
1 files changed, 124 insertions, 5 deletions
diff --git a/build_config/boxing.rb b/build_config/boxing.rb index 242e0fe0a..75046e371 100644 --- a/build_config/boxing.rb +++ b/build_config/boxing.rb @@ -1,32 +1,151 @@ -MRuby::Build.new('no-boxing') do |conf| +MRuby::Build.new('boxing-no-m64-i64') do |conf| toolchain :gcc + conf.cc.flags << '-m64' + conf.linker.flags << '-m64' + conf.gembox 'default' conf.compilers.each do |c| - c.defines += %w(MRB_NO_BOXING) + c.defines += %w(MRB_NO_BOXING MRB_INT64) end + conf.enable_debug conf.enable_test conf.enable_bintest end -MRuby::Build.new('word_boxing') do |conf| +MRuby::Build.new('boxing-no-m64-i32') do |conf| toolchain :gcc + conf.cc.flags << '-m64' + conf.linker.flags << '-m64' + conf.gembox 'default' conf.compilers.each do |c| - c.defines += %w(MRB_WORD_BOXING) + c.defines += %w(MRB_NO_BOXING MRB_INT32) end + conf.enable_debug conf.enable_test conf.enable_bintest end -MRuby::Build.new('nan_boxing') do |conf| +MRuby::Build.new('boxing-no-m32-i64') do |conf| toolchain :gcc + conf.cc.flags << '-m32' + conf.linker.flags << '-m32' + + # Turn on `enable_debug` for better debugging + conf.gembox 'default' + conf.compilers.each do |c| + c.defines += %w(MRB_NO_BOXING MRB_INT64) + end + conf.enable_debug + conf.enable_test + conf.enable_bintest +end + +MRuby::Build.new('boxing-no-m32-i32') do |conf| + toolchain :gcc + + conf.cc.flags << '-m32' + conf.linker.flags << '-m32' + + # Turn on `enable_debug` for better debugging + conf.gembox 'default' + conf.compilers.each do |c| + c.defines += %w(MRB_NO_BOXING MRB_INT32) + end + conf.enable_debug + conf.enable_test + conf.enable_bintest +end + +MRuby::Build.new('boxing-word-m64-i64') do |conf| + toolchain :gcc + + conf.cc.flags << '-m64' + conf.linker.flags << '-m64' + + conf.gembox 'default' + conf.compilers.each do |c| + c.defines += %w(MRB_WORD_BOXING MRB_INT64) + end + conf.enable_debug + conf.enable_test + conf.enable_bintest +end + +MRuby::Build.new('boxing-word-m64-i32') do |conf| + toolchain :gcc + + conf.cc.flags << '-m64' + conf.linker.flags << '-m64' + + conf.gembox 'default' + conf.compilers.each do |c| + c.defines += %w(MRB_WORD_BOXING MRB_INT32) + end + conf.enable_debug + conf.enable_test + conf.enable_bintest +end + +MRuby::Build.new('boxing-word-m32-i64') do |conf| + toolchain :gcc + + conf.cc.flags << '-m32' + conf.linker.flags << '-m32' + + conf.gembox 'default' + conf.compilers.each do |c| + c.defines += %w(MRB_WORD_BOXING MRB_INT64) + end + conf.enable_debug + conf.enable_test + conf.enable_bintest +end + +MRuby::Build.new('boxing-word-m32-i32') do |conf| + toolchain :gcc + + conf.cc.flags << '-m32' + conf.linker.flags << '-m32' + + conf.gembox 'default' + conf.compilers.each do |c| + c.defines += %w(MRB_WORD_BOXING MRB_INT32) + end + conf.enable_debug + conf.enable_test + conf.enable_bintest +end + +MRuby::Build.new('boxing-nan-m64') do |conf| + toolchain :gcc + + conf.cc.flags << '-m64' + conf.linker.flags << '-m64' + conf.gembox 'default' conf.compilers.each do |c| c.defines += %w(MRB_NAN_BOXING) end + conf.enable_debug + conf.enable_test + conf.enable_bintest +end + +MRuby::Build.new('boxing-nan-m64') do |conf| + toolchain :gcc + + conf.cc.flags << '-m32' + conf.linker.flags << '-m32' + + conf.gembox 'default' + conf.compilers.each do |c| + c.defines += %w(MRB_NAN_BOXING MRB_INT32) + end + conf.enable_debug conf.enable_test conf.enable_bintest end |
