summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--build_config/boxing.rb8
-rw-r--r--include/mruby/boxing_nan.h9
-rw-r--r--lib/mruby/build/command.rb6
-rw-r--r--lib/mruby/core_ext.rb2
-rw-r--r--src/load.c8
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