| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2015-04-18 | Suppress warnings generated by -Wwrite-strings | Kouhei Sutou | |
| 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 | |||
| 2015-03-22 | refactor write_pool_block() | cremno | |
| No need to write the same assertion in each case (except the default one). Instead we can assert after the switch statement. | |||
| 2015-03-21 | execute ensure clause only when skipping call frame; fix #2726 | Yukihiro "Matz" Matsumoto | |
| 2015-03-16 | I have added the #ifdef __CYGWIN32__ to modify the fmt_fp.c | Tarosa | |
| 2015-03-16 | I modified the undefined frexpl in cygwin of make | Tarosa | |
| 2015-03-05 | stack_extend in mrb_f_send | Go Saito | |
| mrb_f_send needs stack_extend like OP_SEND Signed-off-by: Go Saito <[email protected]> | |||
| 2015-02-28 | Use ptrdiff_t to suppress signedness warning | Kouhei Sutou | |
| 3df32161797aa9c6e9df259e8d8571b454cb2333 says so but there is no warning with GCC 4.9 on my Debian GNU/Linux environment. | |||
| 2015-02-27 | Merge pull request #2736 from cremno/delete-prototypes-of-undefined-functions | Yukihiro "Matz" Matsumoto | |
| delete prototypes of undefined functions | |||
| 2015-02-27 | fix MSVC initialization issue by a patch from @dyama; close #2734 | Yukihiro "Matz" Matsumoto | |
| 2015-02-27 | change size_t to ptrdiff_t to silence signedness warnings; #2732 | Yukihiro "Matz" Matsumoto | |
| 2015-02-26 | delete prototypes of undefined functions | cremno | |
| 2015-02-25 | Fix a crash bug on raising after realloc | Kouhei Sutou | |
| 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. | |||
| 2015-02-24 | Fix a bug that no expression case doesn't return valid value | Kouhei Sutou | |
| Here is a script that reproduces this problem: x = case when true; 1 end p x # => main # 1 is expected | |||
| 2015-02-24 | Merge pull request #2729 from kou/fix-if-and-no-value-returned-case | Yukihiro "Matz" Matsumoto | |
| Fix a bug that if and no return value case can't return true clause value | |||
| 2015-02-24 | Fix a bug that if and no return value case can't return true clause value | Kouhei Sutou | |
| Here is a script that reproduce this problem: x = if true 1 else case 2 when 3 end 4 end p x # => nil # 1 is expected | |||
| 2015-02-23 | fix pointer dereference after realloc | Go Saito | |
| In src/vm.c: mrb_funcall_with_block stack_extend may realloc mrb->c->stbase, if argv points on mruby's stack, then it points invalid address after stack_extend. e.g. src/class.c: mrb_instance_new This code: ```ruby class A def initialize(a0,a1,a2,a3,a4) a0.is_a? Array end end def f(a0,a1,a2,a3,a4) A.new(a0,a1,a2,a3,a4) f(a0,a1,a2,a3,a4) end f(0,1,2,3,4) ``` is expected to get exception ``` stack level too deep. (limit=(0x40000 - 128)) (SystemStackError) ``` but get segfault. Signed-off-by: Go Saito <[email protected]> | |||
| 2015-02-16 | silence warnings in fmt_fp.c | Yukihiro "Matz" Matsumoto | |
| 2015-02-16 | Merge pull request #2723 from cremno/use-musl-fmt_fp | Yukihiro "Matz" Matsumoto | |
| re-implement mrb_float_to_str() | |||
| 2015-02-13 | re-implement mrb_float_to_str() | cremno | |
| The new implementation is backwards incompatible, but I couldn't find any usage outside mruby and I also couldn't think of a different and good name. All ISO C99 printf conversion specifiers for floating point numbers and an optional precision are supported. It is largely based on code from the MIT licensed musl libc (http://www.musl-libc.org/) and its floating point printing is exact (unlike the current code behind Float#to_s). | |||
| 2015-02-12 | DISABLE_STDIO does not disable backtraces. | Simon Génier | |
| 2015-02-07 | Merge pull request #2717 from sgnr/missing-lastpc-on-funcall-cfunc | Yukihiro "Matz" Matsumoto | |
| Fix possible segfault when accessing backtrace with MRB_WORD_BOXING. | |||
| 2015-02-05 | Fix possible segfault when accessing backtrace with MRB_WORD_BOXING. | Simon Génier | |
| 2015-02-05 | Fix ensure with yield context on break and return | Kouhei Sutou | |
| How to reproduce: class A def x yield ensure y end def y end end # Work A.new.x do end # Not work # trace: # [2] /tmp/a.rb:5:in A.x # [0] /tmp/a.rb:15 # /tmp/a.rb:5: undefined method 'y' for main (NoMethodError) A.new.x do break end # trace: # [2] /tmp/a.rb:5:in A.call # [0] /tmp/a.rb:19 # /tmp/a.rb:5: undefined method 'y' for main (NoMethodError) lambda do A.new.x do return end end.call `self` in ensure is broken when yield and break/return are used. | |||
| 2015-02-02 | Replace int with mrb_bool in dump_bigendian_p func | Jun Hiroe | |
| 2015-02-02 | allow endian specification of mrb files by `mrbc -e/-E` | Yukihiro "Matz" Matsumoto | |
| `mruby -b` now accepts both big/little endian mrb (compiled binary) files. `mrbc` generates mrb files in big endian for .mrb files and in native endian for C files (with -B option specified) by default. If you are cross compiling, you need to specify target endian by -e/-E options if it is different from host endian. | |||
| 2015-01-31 | block_given? should work with nested block; fix #2695 close #2712 | Yukihiro "Matz" Matsumoto | |
| 2015-01-26 | Use setter macro instead of directly setting values | Xuejie "Rafael" Xiao | |
| 2015-01-03 | Use mrb_exc_new_str_lit(). | Tatsuhiko Kubo | |
| 2014-12-27 | Use suitable type. | Tatsuhiko Kubo | |
| 2014-12-23 | Fix splat and multiple assignments | Kouhei Sutou | |
| Case1: From variable Code: a = [1, 2, 3, 4, 5] b, c, *d = a p [a, b, c, d] Before: [[1, 2, 3, 4, 5], 1, 2, []] After: [[1, 2, 3, 4, 5], 1, 2, [3, 4, 5]] Ruby: [[1, 2, 3, 4, 5], 1, 2, [3, 4, 5]] Case2: From variables Code: a = [1, 2, 3] b = [4, 5, 6, 7] c, d, *e, f, g = *a, *b p [a, b, c, d, e, f, g] Before: [[1, 2, 3], [4, 5, 6, 7], 1, 2, [], 6, 7] After: [[1, 2, 3], [4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7] Ruby: [[1, 2, 3], [4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7] Case 3: "for" Code: a = [1, 2, 3, 4, 5, 6, 7] for b, c, *d, e, f in [a] do p [a, b, c, d, e, f] end Before: [[1, 2, 3, 4, 5, 6, 7], 1, 2, [], nil, nil] After: [[1, 2, 3, 4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7] Ruby: [[1, 2, 3, 4, 5, 6, 7], 1, 2, [3, 4, 5], 6, 7] | |||
| 2014-12-19 | block_given? should return correct value when called in blocks; close #2678 | Yukihiro "Matz" Matsumoto | |
| avoid a loop to find parent's callinfo using mrb->c->cibase[env->cioff] | |||
| 2014-12-19 | block_given? should return false on top-level; ref #2678 | Yukihiro "Matz" Matsumoto | |
| 2014-12-17 | String#[]: float handling merged to #2677 | Yukihiro "Matz" Matsumoto | |
| 2014-12-17 | try to convert not only nil but every objects to fixnums; ref #2677 | Yukihiro "Matz" Matsumoto | |
| 2014-12-17 | String#[] should reject nil index | h2so5 | |
| 2014-12-17 | mrb_str_new(mrb, "", len) creates an unmodifiable string object; ref #2674 | Yukihiro "Matz" Matsumoto | |
| 2014-12-12 | Fix crash if #inspect does not return a string value | sdottaka | |
| case 1 ~~~ class A; def inspect; 1; end; end A.new.a ~~~ case 2 ~~~ class A def self.inspect 1 end alias_method :a, :b end ~~~ | |||
| 2014-12-12 | mrb_p() should print mrb_obj_as_string() if #inspect does not return a ↵ | Yukihiro "Matz" Matsumoto | |
| string value | |||
| 2014-12-11 | block_given did not work with nested block invocation for some cases; fix #2665 | Yukihiro "Matz" Matsumoto | |
| 2014-12-11 | mrb_parser_dump() did not work with block arguments | Yukihiro "Matz" Matsumoto | |
| 2014-12-01 | should not pop register when value from multiple assignment required | Yukihiro "Matz" Matsumoto | |
| 2014-11-28 | preserve ICLASS in ci->target_class; fix #2657; ensuring #1467 #1470 #1493 ↵ | Yukihiro "Matz" Matsumoto | |
| still works | |||
| 2014-11-27 | wrong register adjustment | Yukihiro "Matz" Matsumoto | |
| 2014-11-26 | add "fall through" comment | Yukihiro "Matz" Matsumoto | |
| 2014-11-26 | fix(String) String#[] accepts float; close #2650 #2651 | Robert Mosolgo | |
| 2014-11-26 | wrong register number adjustment in multiple assignment; fix #2654 | Yukihiro "Matz" Matsumoto | |
| 2014-11-26 | OP_APOST local variable display was wrong | Yukihiro "Matz" Matsumoto | |
| 2014-11-25 | remove unnecessary _WIN32 preprocessor check | cremno | |
| SIZE_MAX < UINT32_MAX is false on Win32 / Win64. | |||
| 2014-11-23 | align indent of local variable names in codedump() | Yukihiro "Matz" Matsumoto | |
| 2014-11-22 | should support recursive mlhs decomposition, e.g. (a,b),c = [1,2],3 | Yukihiro "Matz" Matsumoto | |
