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)
parent 8258b7b5
MRuby::Build.new('no-boxing') do |conf| MRuby::Build.new('boxing-no-m64-i64') do |conf|
toolchain :gcc toolchain :gcc
conf.cc.flags << '-m64'
conf.linker.flags << '-m64'
conf.gembox 'default' conf.gembox 'default'
conf.compilers.each do |c| conf.compilers.each do |c|
c.defines += %w(MRB_NO_BOXING) c.defines += %w(MRB_NO_BOXING MRB_INT64)
end end
conf.enable_debug
conf.enable_test conf.enable_test
conf.enable_bintest conf.enable_bintest
end end
MRuby::Build.new('word_boxing') do |conf| MRuby::Build.new('boxing-no-m64-i32') do |conf|
toolchain :gcc toolchain :gcc
conf.cc.flags << '-m64'
conf.linker.flags << '-m64'
conf.gembox 'default' conf.gembox 'default'
conf.compilers.each do |c| conf.compilers.each do |c|
c.defines += %w(MRB_WORD_BOXING) c.defines += %w(MRB_NO_BOXING MRB_INT32)
end end
conf.enable_debug
conf.enable_test conf.enable_test
conf.enable_bintest conf.enable_bintest
end end
MRuby::Build.new('nan_boxing') do |conf| MRuby::Build.new('boxing-no-m32-i64') do |conf|
toolchain :gcc 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.gembox 'default'
conf.compilers.each do |c| conf.compilers.each do |c|
c.defines += %w(MRB_NAN_BOXING) c.defines += %w(MRB_NAN_BOXING)
end 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_test
conf.enable_bintest conf.enable_bintest
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment