| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2017-12-04 | Remove temporary objects from GC arena in `mrb_vformat()'; #3863 | Yukihiro "Matz" Matsumoto | |
| 2017-12-04 | Check if `ci->proc` is not `NULL` and `MRB_PROC_CFUNC_P()`; fix #3867 | Yukihiro "Matz" Matsumoto | |
| 2017-12-04 | Pop exception objects from the bottom of GC arena; fix #3863 | Yukihiro "Matz" Matsumoto | |
| 2017-12-01 | The stack shift width should be determined by `p->upper`; fix #3864 | Yukihiro "Matz" Matsumoto | |
| And check required register number from `ci->proc` as well. The fixes for #3859 and #3862 were incomplete. | |||
| 2017-11-30 | Avoid calling `mrb_env_unshare()` when `env` is `NULL`. | Yukihiro "Matz" Matsumoto | |
| Small performance improvement by reducing function invocations. | |||
| 2017-11-30 | Avoid double free() of env stack; fix #3860 | Yukihiro "Matz" Matsumoto | |
| Should turn on `MRB_ENV_STACK_UNSHARED` flag only after env stack reallocation. `malloc()` may fail. | |||
| 2017-11-30 | Wrong stack adjustment in `ecall()` (f35f975 #3859); fix #3862 | Yukihiro "Matz" Matsumoto | |
| 2017-11-30 | Stop infinite recursion in `Class#to_s`; fix #3861 | Yukihiro "Matz" Matsumoto | |
| 2017-11-29 | Clear `c->prev` on fiber termination. | Yukihiro "Matz" Matsumoto | |
| 2017-11-29 | Need to free contexts when freeing fibers. | Yukihiro "Matz" Matsumoto | |
| Memory leak fixed; ref #3711 | |||
| 2017-11-29 | Set `MRB_FIBER_TERMINATED` flag on exception termination of a fiber. | Yukihiro "Matz" Matsumoto | |
| 2017-11-29 | Add `most recent call last` message to the backtrace. | Yukihiro "Matz" Matsumoto | |
| 2017-11-29 | Call all ensure clauses pushed at `OP_STOP`. | Yukihiro "Matz" Matsumoto | |
| 2017-11-29 | No need to use `ecall_adjust()`. | Yukihiro "Matz" Matsumoto | |
| 2017-11-29 | Fixed stack address adjustment in `ecall()`; fix #3859 | Yukihiro "Matz" Matsumoto | |
| 2017-11-29 | Need to evaluate ensure clauses at fiber termination. | Yukihiro "Matz" Matsumoto | |
| 2017-11-29 | Remove unnecessary code; ref #3711 | Yukihiro "Matz" Matsumoto | |
| 2017-11-22 | Provide shortcut comparison methods for numbers for performance. | Yukihiro "Matz" Matsumoto | |
| 2017-11-22 | Stack adjustment should be based on `p->upper`; fix #3857 | Yukihiro "Matz" Matsumoto | |
| It used to be based on `ci->proc` but the callinfo position may be wrong when `ecall()` is called during stack rewinding from `OP_RETURN`. | |||
| 2017-11-22 | Clear ensure stack after calling in `OP_EPOP`; #3855 3856 | Yukihiro "Matz" Matsumoto | |
| 2017-11-22 | No need to pop ensure stack if `eidx` is smaller than `epos`; #3855 #3856 | Yukihiro "Matz" Matsumoto | |
| 2017-11-22 | fixup! Remove fixed argument of `ecall()`; ref #3855 #3856 | Yukihiro "Matz" Matsumoto | |
| 2017-11-22 | Remove fixed argument of `ecall()`; ref #3855 #3856 | Yukihiro "Matz" Matsumoto | |
| 2017-11-22 | Should have marked all ensure stack entries; fix #3855 fix #3856 | Yukihiro "Matz" Matsumoto | |
| 2017-11-20 | Reduce the size of `struct RBreak` to reduce memory usage. | Yukihiro "Matz" Matsumoto | |
| The old size of `struct RBreak` was 56 bytes (`MRB_NO_BOXING`) and it's bigger than other object structures. That increase the size of `RVALUE` thus increase the total amount of memory consumption. | |||
| 2017-11-20 | Add `MRB_METHOD_TABLE_INLINE` option. | Yukihiro "Matz" Matsumoto | |
| Now the method tables (in classes/modules and caches) keeps C function pointers without wrapping in `struct RProc` objects. For the sake of portability, `mrb_method_t` is represented by the struct and union, but if the most significant bit of the pointer is not used by the platform, `mrb_method_t` should be packed in `uintptr_t` to reduce memory usage. `MRB_METHOD_TABLE_INLINE` is turned on by default for linux. | |||
| 2017-11-19 | Invoke `mrb_full_gc()` before `ObjectSpace.count_objects`. | Yukihiro "Matz" Matsumoto | |
| 2017-11-19 | Leave `hash->ht` to be `NULL` if initial capacity is zero. | Yukihiro "Matz" Matsumoto | |
| 2017-11-18 | Assign operands to local variables. | Yukihiro "Matz" Matsumoto | |
| 2017-11-17 | Removed useless condition | Ukrainskiy Sergey | |
| 2017-11-17 | Changed the assignment of a variable in variable.c | Ukrainskiy Sergey | |
| 2017-11-17 | Changed numbers to TRUE and FALSE for mrb_bool in variable.c | Ukrainskiy Sergey | |
| 2017-11-17 | Need to save stack space by number of registers from the current proc, | Yukihiro "Matz" Matsumoto | |
| Not from the execution ensure proc; fix #3849 | |||
| 2017-11-13 | The number of argument should be retrieved by `mrb_get_argc`; fix #3848 | Yukihiro "Matz" Matsumoto | |
| You should not access `mrb->c->ci->argc` directly. | |||
| 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-08 | Should allocate memory region before updating `len`; fix #3842 | Yukihiro "Matz" Matsumoto | |
| Otherwise half-baked string object will be allocated. | |||
| 2017-11-04 | Avoid compiling `fmt_fp.c` if `MRB_WITHOUT_FLOAT` is set; #3827 | Yukihiro "Matz" Matsumoto | |
| 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 | The `bidx` saved in `env` may be useless; fix #3841 | Yukihiro "Matz" Matsumoto | |
| When `block_given?` is called from a block given to `define_method` as a method body, the `bidx` may not be within `env` saved closure. In this case, it causes heap buffer overflow. | |||
| 2017-11-04 | Merge branch 'master' of github.com:mruby/mruby | YAMAMOTO Masaya | |
| 2017-11-04 | Avoid pointer arithmetic in backtrace.c; #3816 | Yukihiro "Matz" Matsumoto | |
| 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-11-03 | Should not use `FSHARED` state for string from `irep` pools; fix #3829 | Yukihiro "Matz" Matsumoto | |
| This strings in `irep` pools may be freed forcefully in `mrb_irep_free`. This commit probably fixes #3817 as well. | |||
| 2017-11-02 | don't overwrite backtrace info. | Tomoyuki Sahara | |
| 2017-10-31 | Fixed constant (and class variable) reference bug; fix #3839 | Yukihiro "Matz" Matsumoto | |
| Unlike method definition, constant reference should start from `MRB_PROC_TARGET_CLASS(ci->proc)`, not `ci->target_class`. In addition, `MRB_PROC_TARGET_CLASS(ci->proc)` is always set. | |||
| 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-31 | Need to mark fibers referenced from `env`; fix #3837 | Yukihiro "Matz" Matsumoto | |
| The issue #3837 is a regression of #3819. I was mistakenly removed a important code to mark fibers from `env`. | |||
