summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2020-11-19 12:53:34 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2020-11-21 14:38:14 +0900
commiteb52c29b2d85e2eaac7896c70245f8da5bbaf5e2 (patch)
tree2718c3e846dac6a352f3b4bb33a86ec27d49a006
parent8258b7b5b3d5d27541e3ae537f49790e543b58ed (diff)
downloadmruby-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)
-rw-r--r--build_config/boxing.rb129
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