diff options
| -rw-r--r-- | build_config/boxing.rb | 8 | ||||
| -rw-r--r-- | include/mruby/boxing_nan.h | 9 | ||||
| -rw-r--r-- | lib/mruby/build/command.rb | 6 | ||||
| -rw-r--r-- | lib/mruby/core_ext.rb | 2 | ||||
| -rw-r--r-- | src/load.c | 8 |
5 files changed, 16 insertions, 17 deletions
diff --git a/build_config/boxing.rb b/build_config/boxing.rb index bc35f1600..4b07c22e1 100644 --- a/build_config/boxing.rb +++ b/build_config/boxing.rb @@ -1,8 +1,8 @@ -BOXINGS = %w[no word nan] -BITS = [64, 32] -INTS = [64, 32] +boxings = %w[no word nan] +bits = [64, 32] +ints = [64, 32] -BOXINGS.product(BITS, INTS) do |boxing, bit, int| +boxings.product(bits, ints) do |boxing, bit, int| next if boxing == "nan" && int == 64 MRuby::Build.new("boxing-#{boxing}-m#{bit}-i#{int}") do |conf| diff --git a/include/mruby/boxing_nan.h b/include/mruby/boxing_nan.h index 5f99ced6d..05f1d953c 100644 --- a/include/mruby/boxing_nan.h +++ b/include/mruby/boxing_nan.h @@ -41,15 +41,14 @@ union mrb_value_ { uint64_t u; #ifdef MRB_64BIT void *p; +# define BOXNAN_IMMEDIATE_VALUE uint32_t i +#else +# define BOXNAN_IMMEDIATE_VALUE union { uint32_t i; void *p; } #endif struct { MRB_ENDIAN_LOHI( uint32_t ttt; -#ifdef MRB_64BIT - ,uint32_t i; -#else - ,union { uint32_t i; void *p; }; -#endif + ,BOXNAN_IMMEDIATE_VALUE; ) }; mrb_value value; diff --git a/lib/mruby/build/command.rb b/lib/mruby/build/command.rb index e6becd3f6..6b8aca04a 100644 --- a/lib/mruby/build/command.rb +++ b/lib/mruby/build/command.rb @@ -317,9 +317,9 @@ module MRuby out.puts io.read end # if mrbc execution fail, drop the file - if $?.exitstatus != 0 - File.delete(out.path) - exit(-1) + unless $?.success? + rm_f out.path + fail "Command failed with status (#{$?.exitstatus}): [#{cmd[0,42]}...]" end end end diff --git a/lib/mruby/core_ext.rb b/lib/mruby/core_ext.rb index 3b2406c36..c404bfec9 100644 --- a/lib/mruby/core_ext.rb +++ b/lib/mruby/core_ext.rb @@ -27,7 +27,7 @@ def install_D(src, dst) end def _pp(cmd, src, tgt=nil, indent: nil) - return if Rake.verbose + return if Rake.application.options.silent width = 5 template = indent ? "%#{width * indent}s %s %s" : "%-#{width}s %s %s" diff --git a/src/load.c b/src/load.c index 20b85c71c..2489f8e04 100644 --- a/src/load.c +++ b/src/load.c @@ -153,12 +153,12 @@ read_irep_record_1(mrb_state *mrb, const uint8_t *bin, size_t *len, uint8_t flag case IREP_TT_INT64: #ifdef MRB_64BIT { - uint64_t i = bin_to_uint32(src); + uint64_t i64 = bin_to_uint32(src); src += sizeof(uint32_t); - i <<= 32; - i |= bin_to_uint32(src); + i64 <<= 32; + i64 |= bin_to_uint32(src); src += sizeof(uint32_t); - pool[i].u.i64 = (int64_t)i; + pool[i].u.i64 = (int64_t)i64; } break; #else |
