| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2017-11-11 | Fixed wrong stack extend size; fix #3847 | Yukihiro "Matz" Matsumoto | |
| 2017-11-10 | Need to clear stack region for local variables in eval; fix #3844 | Yukihiro "Matz" Matsumoto | |
| 2017-11-09 | Use proper target_class to define class/module; fix #3843 | Yukihiro "Matz" Matsumoto | |
| The outer class of the class/module definition should be taken from `MRB_TARGET_CLASS(mrb->c->ci->proc)` not `mrb->c->ci->target_class` which is the target of constant lookups. | |||
| 2017-11-04 | Merge branch 'mrb_without_float' of https://github.com/pandax381/mruby into ↵ | Yukihiro "Matz" Matsumoto | |
| pandax381-mrb_without_float | |||
| 2017-11-04 | Reimplement `block_given?`; ref #3841 | Yukihiro "Matz" Matsumoto | |
| Make `block_given?` to search for the top of the scope first. The top of the scope means either: * the top method body * the enclosing class body * the top-level The special case is the method defined by `define_method` with a block as in #3841. In cases like this, the method body (given by a block) is not considered as the top of the scope. You need to use `&block` in the block parameter if you want to know if a block is given to the method. This commit also changes the behavior of `MRB_PROC_SCOPE` flag. Now it is only set if the `proc` is either a class body or a method body defined in Ruby. It is no longer set for a block that given to `define_method`. | |||
| 2017-11-04 | Merge branch 'master' of github.com:mruby/mruby | YAMAMOTO Masaya | |
| 2017-11-03 | Always check division-by-zero to avoid undefined behavior; fix #3816 | Yukihiro "Matz" Matsumoto | |
| Also removed the code to normalize NaN value for `MRB_NAN_BOXING`. Tha code was added to fix #1712 but no longer required after 249f05e7d. | |||
| 2017-10-31 | Call stack may not reference the destination `proc`; fix #3838 | Yukihiro "Matz" Matsumoto | |
| The destination `proc` may be an orphan. | |||
| 2017-10-28 | Removed a debug printf; fix #3834 | Yukihiro "Matz" Matsumoto | |
| 2017-10-28 | Remove one of the lines that did the same thing; fix #3836 | Yukihiro "Matz" Matsumoto | |
| The change is suggested by `ukrainskiysergey` in #3836. I deleted the other line for clarity. I also updated comment lines. | |||
| 2017-10-28 | Should clear ensure stack at `OP_RETURN break`; #3715 | Yukihiro "Matz" Matsumoto | |
| This is a resurrection of d0a7e01, which is accidentally removed by 93f5f22; Fix #3715 | |||
| 2017-10-28 | Should check if `callinfo` stack is popped before updating the stack. | Yukihiro "Matz" Matsumoto | |
| This is a resurrection of 75c374c, which is accidentally removed by 93f5f22; Fix #3507 #3512 #3518 #3521 | |||
| 2017-10-28 | Fixed UPVAR gotchas; fix #3835 | Yukihiro "Matz" Matsumoto | |
| Both `uvenv` function and `env` generation in `create_proc_from_string` function have bugs to handling enclosed environment objects. | |||
| 2017-10-28 | Remove a debug variable | Yukihiro "Matz" Matsumoto | |
| 2017-10-28 | Heavily refactored how lexical scope links are implemented; fix #3821 | Yukihiro "Matz" Matsumoto | |
| Instead of `irep` links, we added a `upper` link to `struct RProc`. To make a space for the `upper` link, we moved `target_class` reference. If a `Proc` does not have `env`, `target_class` is saved in an `union` shared with `env` (if a `Proc` has env, you can tell it by `MRB_PROC_ENV_P()). Otherwise `target_class` is referenced from `env->c`. We removed links in `env` as well. This change removes 2 members from `mrb_irep` struct, thus saving 2 words per method/proc/block. This also fixes potential memory leaks due to the circular references caused by a link from `mrb_irep`. | |||
| 2017-10-28 | Remove MRB_API from `mrb_env_unshare()` | Yukihiro "Matz" Matsumoto | |
| 2017-10-11 | Add MRB_WITHOUT_FLOAT | YAMAMOTO Masaya | |
| 2017-09-27 | fix: src\vm.c(2631): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵ | Tomasz Dąbrowski | |
| possible loss of data | |||
| 2017-09-27 | fix: src\vm.c(1757): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵ | Tomasz Dąbrowski | |
| possible loss of data | |||
| 2017-09-27 | fix: src\vm.c(1744): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵ | Tomasz Dąbrowski | |
| possible loss of data | |||
| 2017-09-27 | fix: src\vm.c(1702): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵ | Tomasz Dąbrowski | |
| possible loss of data | |||
| 2017-09-27 | fix: src\vm.c(708): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵ | Tomasz Dąbrowski | |
| possible loss of data | |||
| 2017-09-27 | fix: src\vm.c(704): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵ | Tomasz Dąbrowski | |
| possible loss of data | |||
| 2017-09-27 | fix: src\vm.c(457): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵ | Tomasz Dąbrowski | |
| possible loss of data | |||
| 2017-09-27 | fix: src\vm.c(445): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵ | Tomasz Dąbrowski | |
| possible loss of data | |||
| 2017-09-27 | fix: src\vm.c(438): warning C4244: '=': conversion from 'mrb_int' to 'int', ↵ | Tomasz Dąbrowski | |
| possible loss of data | |||
| 2017-09-23 | The first instruction was skipped mistakenly in ensure clause; fix #3811 | Yukihiro "Matz" Matsumoto | |
| 2017-09-22 | `OP_EPOP` operand may be bigger than `mrb->c->eidx`; fix #3810 | Yukihiro "Matz" Matsumoto | |
| 2017-09-12 | Remove temporary limitation of `OP_EPOP`. | Yukihiro "Matz" Matsumoto | |
| After f68f5f6, the operand of `OP_EPOP` should have been `1`. Now we have removed the limitation. | |||
| 2017-09-11 | The callinfo stack may be reallocated in `cipush`; fix rest of #3809 | Yukihiro "Matz" Matsumoto | |
| fix #3809 | |||
| 2017-09-11 | The ensure stack may be empty at `OP_EPOP`; fix 1st part of #3809 | Yukihiro "Matz" Matsumoto | |
| 2017-09-05 | Avoid crossing C function boundary from `OP_EPOP`; ref #3789 | Yukihiro "Matz" Matsumoto | |
| 2017-09-04 | Restructure `irep->outer` chain; fix #3804 | Yukihiro "Matz" Matsumoto | |
| Instead of `irep -> proc` chain, we use `irep -> irep` chain to avoid GC bugs like #3804. We added `target_class` reference to `mrb_irep` struct. That means one more word consumption per `irep`. | |||
| 2017-08-30 | Fixed a critical typo; ref #3798 | Yukihiro "Matz" Matsumoto | |
| 2017-08-29 | Need to update `ci` after `callinfo` stack reallocation; fix #3796 | Yukihiro "Matz" Matsumoto | |
| 2017-08-26 | Silence compiler warning regarding float condition; fix #3790 | Yukihiro "Matz" Matsumoto | |
| 2017-08-23 | Asserted bidx < ci->nregs for OP_SEND and OP_SUPER | Christopher Aue | |
| 2017-08-18 | Separate `mrb_str_buf_new` and `mrb_str_new_capa`. | Yukihiro "Matz" Matsumoto | |
| `mrb_str_buf_new` is an old function that ensures capacity size of `MRB_STR_BUF_MIN_SIZE` minimum. Usually one need to use `mrb_str_new_capa` instead. | |||
| 2017-08-18 | Reset ci in OP_SUPER after potential realloc | Christopher Aue | |
| 2017-08-12 | Reintroduced not storing converted proc directly in the stack | Christopher Aue | |
| 2017-08-12 | Removed unneeded ci->nregs checks in OP_SEND and OP_SUPER | Christopher Aue | |
| Because of #3504 `ci->nregs = bidx+1` was introduced in b64f08784cc50861dec80c26fce715982c02c9e9. This led to the follow up error #3551 whose fix introduced the `if (bidx >= ci->nregs)` check in 071164b7999d0932fd60fb3c580a6c374ab1cf4f and the `stack_extend(mrb, ci->nregs)` in 93d802987e722444d0520a8d3f28002841c4f825. Then, the code causing #3504 reappeared again in #3590. The fix for it moved the code dealing with the block in OP_SUPER from below the `cipush` to above the `cipush` in d9fb8b69b0621e8cd2c7c43fd8511a83718d7e45. The `if (bidx >= ci->nregs) { ... }` from then on works with the original callinfo and not the pushed one. `ci->nregs` needed to be modified for the pushed one because it is initialized to 0. But for the original ci it is propertly set and a check is not needed. | |||
| 2017-08-12 | Extended stack always based on ci->nregs | Christopher Aue | |
| 2017-08-12 | Refactored variable usage in OP_SEND and OP_SUPER | Christopher Aue | |
| 2017-08-11 | Remove some empty lines; ref #3778 | Yukihiro "Matz" Matsumoto | |
| 2017-08-11 | Refactored OP_SEND and OP_SUPER and calculate argc right at the top | Christopher Aue | |
| 2017-08-11 | Defer `mid` update after `unshift`; ref #3776 | Yukihiro "Matz" Matsumoto | |
| 2017-08-11 | Merge branch 'super_method_missing_fix' of ↵ | Yukihiro "Matz" Matsumoto | |
| https://github.com/christopheraue/mruby into christopheraue-super_method_missing_fix | |||
| 2017-08-11 | Silence integer type conversion warnings. | Yukihiro "Matz" Matsumoto | |
| 2017-08-10 | Fixed calling missing method through super with 126 args | Christopher Aue | |
| 2017-08-09 | Replaced tabs with spaces | Christopher Aue | |
