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)
This commit is contained in:
Yukihiro "Matz" Matsumoto
2020-11-19 12:53:34 +09:00
parent 8258b7b5b3
commit eb52c29b2d
+124 -5
View File
@@ -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