1. 23 Apr, 2015 1 commit
  2. 18 Apr, 2015 4 commits
    • Yukihiro "Matz" Matsumoto's avatar
      Merge pull request #2766 from furunkel/builtin_overflow · 6246483f
      Yukihiro "Matz" Matsumoto authored
      Use builtins for overflow math if possible
      6246483f
    • Yukihiro "Matz" Matsumoto's avatar
      Merge pull request #2768 from kou/suppress-write-strings-warnings · 0f31f160
      Yukihiro "Matz" Matsumoto authored
      Suppress warnings generated by -Wwrite-strings
      0f31f160
    • Kouhei Sutou's avatar
      Suppress warnings generated by -Wwrite-strings · 09419874
      Kouhei Sutou authored
      Here are suppressed warnings:
      
          src/fmt_fp.c: In function 'fmt_fp':
          src/fmt_fp.c:124:16: warning: initialization discards 'const' qualifier from pointer target type
               char *ss = (t&32)?"inf":"INF";
                          ^
          src/fmt_fp.c:125:17: warning: assignment discards 'const' qualifier from pointer target type
               if (y!=y) ss=(t&32)?"nan":"NAN";
                           ^
          mrbgems/mruby-string-ext/src/string.c: In function 'mrb_str_succ_bang':
          mrbgems/mruby-string-ext/src/string.c:302:27: warning: assignment discards 'const' qualifier from pointer target type
                 if (e == b) prepend = "1";
                                     ^
          mrbgems/mruby-string-ext/src/string.c:305:27: warning: assignment discards 'const' qualifier from pointer target type
                 if (e == b) prepend = "a";
                                     ^
          mrbgems/mruby-string-ext/src/string.c:308:27: warning: assignment discards 'const' qualifier from pointer target type
                 if (e == b) prepend = "A";
                                     ^
          mrbgems/mruby-bin-mruby/tools/mruby/mruby.c: In function 'main':
          mrbgems/mruby-bin-mruby/tools/mruby/mruby.c:213:13: warning: assignment discards 'const' qualifier from pointer target type
               cmdline = args.cmdline ? args.cmdline : "-";
                       ^
          mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c: In function 'print_breakpoint':
          mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:159:3: warning: initialization discards 'const' qualifier from pointer target type
             char* enable_letter[] = {BREAK_INFO_MSG_DISABLE, BREAK_INFO_MSG_ENABLE};
             ^
          mrbgems/mruby-bin-debugger/tools/mrdb/cmdbreak.c:159:3: warning: initialization discards 'const' qualifier from pointer target type
      09419874
    • Kouhei Sutou's avatar
      Enable -Wwrite-strings by default for GCC · 058dc7bd
      Kouhei Sutou authored
      058dc7bd
  3. 17 Apr, 2015 5 commits
  4. 02 Apr, 2015 3 commits
  5. 31 Mar, 2015 1 commit
  6. 30 Mar, 2015 2 commits
    • cremno's avatar
      remove unnecessary <inttypes.h> inclusion · 18fdf7e0
      cremno authored
      The format specifier macros were needed to portably print a mrb_int,
      because mrb_raisef() originally called vsnprintf(). It doesn't anymore
      since 18b2683b and the mrb_int format
      specifier macros are already gone.
      18fdf7e0
    • cremno's avatar
      MSVC 2015 implements inline keyword · 6424569a
      cremno authored
      Apparently the C compiler of Visual Studio 2015 CTP6 finally implements
      inline as inline and not only as _inline and __inline.
      6424569a
  7. 23 Mar, 2015 2 commits
  8. 22 Mar, 2015 2 commits
    • cremno's avatar
      refactor write_pool_block() · 7985f75d
      cremno authored
      No need to write the same assertion in each case (except the default
      one). Instead we can assert after the switch statement.
      7985f75d
    • cremno's avatar
      call C11's timespec_get() · c47cc0c3
      cremno authored
      gettimeofday() is an obsolescent POSIX function which may be removed in
      a future version. POSIX recommends using clock_gettime() (also POSIX)
      instead, but it isn't available on OS X or Windows (at least with MSVC
      and older MinGW versions).
      
      Whereas timespec_get() is part of ISO C11 and mruby uses some small
      other C11 features too. It isn't universally available yet either, but
      it might be in the future. And Visual C++ 2015 implements it! Since
      mruby strives for ISO C and not POSIX compatibility, I think it's a
      reasonable choice.
      
      TIME_UTC is used instead of __STDC_VERSION__, because if TIME_UTC is
      defined, then most likely timespec_get() is too. This isn't true in case
      of  __STDC_VERSION__ (see MSVC).
      c47cc0c3
  9. 21 Mar, 2015 2 commits
  10. 19 Mar, 2015 2 commits
  11. 16 Mar, 2015 3 commits
  12. 05 Mar, 2015 2 commits
  13. 28 Feb, 2015 2 commits
  14. 27 Feb, 2015 3 commits
  15. 26 Feb, 2015 2 commits
  16. 24 Feb, 2015 4 commits
    • Kouhei Sutou's avatar
      Fix a crash bug on raising after realloc · 3fefe52f
      Kouhei Sutou authored
      The following program reproduces this problem:
      
          #include <mruby.h>
      
          static mrb_value
          recursive(mrb_state *mrb, mrb_value self)
          {
            mrb_int n;
      
            mrb_get_args(mrb, "i", &n);
      
            if (n == 0) {
              mrb_raise(mrb, E_RUNTIME_ERROR, "XXX");
            } else {
              mrb_funcall(mrb, self, "recursive", 1, mrb_fixnum_value(n - 1));
            }
      
            return self;
          }
      
          int
          main(void)
          {
            mrb_state *mrb;
      
            mrb = mrb_open();
      
            mrb_define_method(mrb, mrb->kernel_module, "recursive", recursive,
                              MRB_ARGS_REQ(1));
            mrb_funcall(mrb, mrb_top_self(mrb), "recursive", 1, mrb_fixnum_value(30));
      
            mrb_close(mrb);
          }
      
      Recursive method call isn't required. It's just for expanding call info
      stack.
      
      If mrb_realloc() is called in cipush(), cibase address is changed. So,
      we shouldn't compare ci before mrb_realloc() and cibase after
      mrb_realloc(). It accesses unknown address and causes crash.
      3fefe52f
    • Yukihiro "Matz" Matsumoto's avatar
      Merge pull request #2730 from kou/fix-no-expression-case · a2a272ca
      Yukihiro "Matz" Matsumoto authored
      Fix a bug that no expression case doesn't return valid value
      a2a272ca
    • Kouhei Sutou's avatar
      Fix a bug that no expression case doesn't return valid value · 4b4ddd5a
      Kouhei Sutou authored
      Here is a script that reproduces this problem:
      
           x = case
               when true; 1
               end
           p x # => main # 1 is expected
      4b4ddd5a
    • Yukihiro "Matz" Matsumoto's avatar
      Merge pull request #2729 from kou/fix-if-and-no-value-returned-case · 68f60714
      Yukihiro "Matz" Matsumoto authored
      Fix a bug that if and no return value case can't return true clause value
      68f60714