summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-test/mrbgem.rake
diff options
context:
space:
mode:
authorKOBAYASHI Shuji <[email protected]>2019-08-01 13:13:32 +0900
committerKOBAYASHI Shuji <[email protected]>2019-08-01 13:24:52 +0900
commiteea42e06af745f0a7ae68d0d364a8f71d72823fe (patch)
treecce84526455a3d70a79d919b318e0dcf36222e7f /mrbgems/mruby-test/mrbgem.rake
parent3d3a6da2ca89a9f3bab01fdd79fed32c18b02005 (diff)
downloadmruby-eea42e06af745f0a7ae68d0d364a8f71d72823fe.tar.gz
mruby-eea42e06af745f0a7ae68d0d364a8f71d72823fe.zip
Add new specifiers/modifiers to format string of `mrb_vfromat()`
Format sequence syntax: %[modifier]specifier Modifiers: ----------+------------------------------------------------------------ Modifier | Meaning ----------+------------------------------------------------------------ ! | Convert to string by corresponding `inspect` instead of | corresponding `to_s`. ----------+------------------------------------------------------------ Specifiers: ----------+----------------+-------------------------------------------- Specifier | Argument Type | Note ----------+----------------+-------------------------------------------- c | char | d,i | mrb_int | f | mrb_float | l | char*, mrb_int | Arguments are string and length. n | mrb_sym | s | char* | Argument is NUL terminated string. t | mrb_value | Convert to type (class) of object. v,S | mrb_value | C | struct RClass* | T | mrb_value | Convert to real type (class) of object. Y | mrb_value | Same as `!v` if argument is `true`, `false` | | or `nil`, otherwise same as `T`. % | - | Convert to percent sign itself (no argument | | taken). ----------+----------------+-------------------------------------------- This change will increase the binary size, but replacing all format strings with new specifiers/modifiers will decrease the size because it reduces inline expansion of `mrb_obj_value()`, etc. at the caller.
Diffstat (limited to 'mrbgems/mruby-test/mrbgem.rake')
-rw-r--r--mrbgems/mruby-test/mrbgem.rake7
1 files changed, 4 insertions, 3 deletions
diff --git a/mrbgems/mruby-test/mrbgem.rake b/mrbgems/mruby-test/mrbgem.rake
index dcb7bb719..bf90e0791 100644
--- a/mrbgems/mruby-test/mrbgem.rake
+++ b/mrbgems/mruby-test/mrbgem.rake
@@ -15,8 +15,9 @@ MRuby::Gem::Specification.new('mruby-test') do |spec|
mrbtest_lib = libfile("#{build_dir}/mrbtest")
mrbtest_objs = []
- driver_obj = objfile("#{build_dir}/driver")
- # driver = "#{spec.dir}/driver.c"
+ driver_objs = Dir.glob("#{dir}/*.{c,cpp,cxx,cc,m,asm,s,S}").map do |f|
+ objfile(f.relative_path_from(dir).to_s.pathmap("#{build_dir}/%X"))
+ end
assert_c = "#{build_dir}/assert.c"
assert_rb = "#{MRUBY_ROOT}/test/assert.rb"
@@ -133,7 +134,7 @@ MRuby::Gem::Specification.new('mruby-test') do |spec|
end
unless build.build_mrbtest_lib_only?
- file exec => [driver_obj, mlib, mrbtest_lib, build.libmruby_static] do |t|
+ file exec => [*driver_objs, mlib, mrbtest_lib, build.libmruby_static] do |t|
gem_flags = build.gems.map { |g| g.linker.flags }
gem_flags_before_libraries = build.gems.map { |g| g.linker.flags_before_libraries }
gem_flags_after_libraries = build.gems.map { |g| g.linker.flags_after_libraries }