| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2015-11-17 | DISABLE_STDIO/ENABLE_DEBUG macros to rename; close #3014 | Yukihiro "Matz" Matsumoto | |
| changes: * rename DISABLE_STDIO -> MRB_DISABLE_STDIO * rename ENABLE_DEBUG -> MRB_ENABLE_DEBUG_HOOK * no more opposite macro definitions (e.g. ENABLE_STDIO, DISABLE_DEBUG). * rewrite above macro references throughout the code. * update documents | |||
| 2015-11-07 | PR #2521 did not work for singleton classes for non-class objects; fix #3003 | Yukihiro "Matz" Matsumoto | |
| 2015-10-27 | mrb_str_concat() may call VM resursively thus may reallocate VM stack; close ↵ | Yukihiro "Matz" Matsumoto | |
| #3000 | |||
| 2015-10-19 | Clean up GC code | furunkel | |
| 2015-09-02 | ensure must not be called before rescue; fix #2933 | Yukihiro "Matz" Matsumoto | |
| 2015-08-10 | prevent out-of-bounds ensure clause access; fix #2910 | Yukihiro "Matz" Matsumoto | |
| 2015-07-30 | vm: execute ensure without exception at the top of the fiber; fix #2904 | Yukihiro "Matz" Matsumoto | |
| 2015-07-30 | vm: execute ensure at the top of the fiber; fix #2903 | Yukihiro "Matz" Matsumoto | |
| 2015-07-13 | refactor mrb_bob_missing to share raising NoMethodError code; fix #2878 | Yukihiro "Matz" Matsumoto | |
| Note: arguments of mrb_no_method_error() has changed. You need to replace 3rd and 4th argument (say n, argv) to mrb_ary_new_from_values(mrb, n, argv). | |||
| 2015-07-07 | method_missing definition may be undefined; fix #2878 | Yukihiro "Matz" Matsumoto | |
| 2015-05-31 | fix OP_APOST bug for no pre arg cases; fix #2810 | Yukihiro "Matz" Matsumoto | |
| 2015-05-25 | Move "src/mrb_throw.h" to "include/mruby/throw.h". | take_cheeze | |
| Related to #2760. | |||
| 2015-05-15 | remove mrb_define_method_vm() function | cremno | |
| It isn't needed as it's very similar to mrb_define_method_raw() and also there's only one place where mrb_proc_ptr() actually has to be called. Inspired by @furunkel's method cache patch (#2764). | |||
| 2015-04-27 | C++ compilation failed due to skipping iniitalization by goto out_super | Yukihiro "Matz" Matsumoto | |
| 2015-04-27 | super should not be called outside of a method; fix #2770 | Yukihiro "Matz" Matsumoto | |
| 2015-03-21 | execute ensure clause only when skipping call frame; fix #2726 | Yukihiro "Matz" Matsumoto | |
| 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 | 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-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-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-01-26 | Use setter macro instead of directly setting values | Xuejie "Rafael" Xiao | |
| 2014-11-28 | preserve ICLASS in ci->target_class; fix #2657; ensuring #1467 #1470 #1493 ↵ | Yukihiro "Matz" Matsumoto | |
| still works | |||
| 2014-11-19 | Fix an error when calling a method implemented in C by super() with ↵ | sdottaka | |
| arguments. This fix makes the following code workable: Expected: class MRBTime < Time; def self.new; super(2012, 4, 21); end; end MRBTime.new # => Sat Apr 21 00:00:00 2012 Actual: class MRBTime < Time; def self.new; super(2012, 4, 21); end; end MRBTime.new # => can't convert nil into Integer (TypeError) | |||
| 2014-10-15 | fix typo (i->idx) | Jan Berdajs | |
| 2014-09-03 | get rid of shadowing variables | cremno | |
| Mostly by renaming the shadowing variable. If a shadowing variable was deleted, the shadowed one can be used instead. | |||
| 2014-09-01 | remove ci->nreg initialization from cipush() | Yukihiro "Matz" Matsumoto | |
| 2014-08-28 | add write barrier to env on pop call info poped. #2525 | dycoon | |
| 2014-08-26 | use MRB_STRINGIZE | cremno | |
| It's defined in mruby/version.h which gets included in mruby.h, so it's safe to use. | |||
| 2014-08-09 | Fix a bug that class variable can't be referenced from class method | Kouhei Sutou | |
| Class method defined in singleton class should be evaluated in class context not singleton class context. fix #2515 | |||
| 2014-08-07 | removed non-need space | go kikuta | |
| 2014-08-04 | add MRB_API modifiers to mruby API functions | Yukihiro "Matz" Matsumoto | |
| 2014-07-23 | check if block is given in eval_under(); fix #2486 | Yukihiro "Matz" Matsumoto | |
| 2014-07-12 | use SystemStackError instead of RuntimeError | Yukihiro "Matz" Matsumoto | |
| 2014-07-09 | rename SET_FIXNUM_VALUE to SET_INT_VALUE since it sets mrb_int value | Yukihiro "Matz" Matsumoto | |
| 2014-07-09 | Clean up value.h and mrb_value boxing | David Turnbull | |
| 2014-06-26 | Sacrifice some micro-optimization to remove duplicate code | Patrick Pokatilo | |
| 2014-06-25 | OP_ENTER: Rewrite split aspec use macros | ksss | |
| 2014-06-10 | should not add extra stack space to callinfo->nregs; maybe related to #2375 | Yukihiro "Matz" Matsumoto | |
| 2014-06-03 | Remove space. | yui-knk | |
| 2014-05-30 | add internal function mrb_toplevel_run_keep() to keep stack contents; close ↵ | Yukihiro "Matz" Matsumoto | |
| #2326 | |||
| 2014-05-21 | direct invocation of instance_eval | Yukihiro "Matz" Matsumoto | |
| 2014-05-21 | direct invocation of module_eval; ref #2298 | Yukihiro "Matz" Matsumoto | |
| 2014-05-21 | break in blocks cannot cross C function boundaries; fix #2298 | Yukihiro "Matz" Matsumoto | |
| 2014-05-16 | include/mruby/opcode.h fix operation doc | ksss | |
| src/vm.c fix operation doc [ci skip] | |||
| 2014-05-14 | mv opcode.h -> include/mruby/opcode.h and remove duplication from mruby-eval gem | Yukihiro "Matz" Matsumoto | |
| 2014-05-13 | Consolidate muliptlication into one place | Carson McDonald | |
