| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2018-03-16 | Update `mrb_get_args` reference comment; ref #3963 | Yukihiro "Matz" Matsumoto | |
| 2018-03-04 | fix && to &! in mrb_get_args() | dearblue | |
| 2018-03-04 | add forced block arguments feature to mrb_get_args | dearblue | |
| 2018-01-17 | Typo fixed. | Yukihiro "Matz" Matsumoto | |
| 2017-12-20 | Should not overwrite `MRB_PROC_TARGET_CLASS(p)` if `p` has env; fix #3905 | Yukihiro "Matz" Matsumoto | |
| 2017-12-13 | Fixed wrong `MRB_WITHOUT_FLOAT` condition; ref #3827 | Yukihiro "Matz" Matsumoto | |
| 2017-12-12 | Modifying frozen objects will raise `FrozenError`. | Yukihiro "Matz" Matsumoto | |
| `FrozenError` is a subclass of `RuntimeError` which used to be raised. [Ruby2.5] | |||
| 2017-12-06 | `mrb_method_search_vm()` should gives the defined class. | Yukihiro "Matz" Matsumoto | |
| Otherwise `super` may call a wrong method. | |||
| 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-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-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-19 | Add `main.define_method` | Yukihiro "Matz" Matsumoto | |
| 2017-10-17 | Remove `mrb_vm_get_argc`; ref #3826 | Yukihiro "Matz" Matsumoto | |
| 2017-10-11 | Add MRB_WITHOUT_FLOAT | YAMAMOTO Masaya | |
| 2017-10-10 | correctly handle *splat arguments in mrb_get_argc, also add mrb_vm_get_argc ↵ | Tomasz Dąbrowski | |
| and mrb_get_argv Fixes #3825 | |||
| 2017-09-27 | fix: src\class.c(949): warning C4244: '=': conversion from 'mrb_int' to ↵ | Tomasz Dąbrowski | |
| 'int', possible loss of data | |||
| 2017-09-27 | fix: src\class.c(949): warning C4244: '=': conversion from 'mrb_int' to ↵ | Tomasz Dąbrowski | |
| 'int', possible loss of data | |||
| 2017-09-27 | fix: src\class.c(583): warning C4244: '=': conversion from 'mrb_int' to ↵ | Tomasz Dąbrowski | |
| 'int', possible loss of data | |||
| 2017-09-06 | Avoid calling `mrb_funcall` to invoke `#initialize` from `Class.new`. | Yukihiro "Matz" Matsumoto | |
| If `#initialize` is implemented in C, we don't need stack consuming `mrb_funcall`. | |||
| 2017-09-04 | Call `initialize` only when it's not empty. | Yukihiro "Matz" Matsumoto | |
| 2017-09-01 | Update method cache clearing. | Yukihiro "Matz" Matsumoto | |
| 2017-08-26 | Check for ability to skip optional argument parsing. | Yukihiro "Matz" Matsumoto | |
| 2017-08-22 | Added method cache. | Yukihiro "Matz" Matsumoto | |
| To enable method cache, define `MRB_METHOD_CACHE` or `MRB_METHOD_CACHE_SIZE`. The cache size must be power of 2. The default cache size is 128. The measurement: I measured simple benchmarks found in benchmark/ directory. With method cache enabled, we gained 6-8% performance improvement, with 97-99% cache hit rate. | |||
| 2017-08-22 | `mrb_obj_respond_to` to use `mrb_method_search_vm`. | Yukihiro "Matz" Matsumoto | |
| 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-01 | Better class name management. | Yukihiro "Matz" Matsumoto | |
| The change removes several internal instance variables used by class name management. The variables `__classid__` and `__classpath__` are no longer available. `__outer__` is used only for unnamed outer classes/modules (and will be removed after they are named). [Important note] Along with this change we removed several public functions. - mrb_class_outer_module() - mrb_class_sym() We believe no one have used those functions, but if you do, please ask us for the workaround. | |||
| 2017-08-01 | Cosmetic changes (removing spaces before `*` in return types). | Yukihiro "Matz" Matsumoto | |
| 2017-08-01 | Move naming unnamed classes/modules | Yukihiro "Matz" Matsumoto | |
| From `mrb_mod_const_set` to `mrb_const_set`. | |||
| 2017-08-01 | Implements `Module::nesting' (15.2.2.3.2); ref #600, #3200 | Yukihiro "Matz" Matsumoto | |
| 2017-07-28 | Extended Module#const_get to support class paths | Christopher Aue | |
| 2017-07-27 | Embed small size array elements in the heap. | Yukihiro "Matz" Matsumoto | |
| It reduces the memory consumption and sometimes improve the performance as well. For example, the consumed memory size of `bench/bm_ao_render.rb` is reduced from 1.2GB to 1GB, and its total execution time become 18.795 sec from 22.229 sec. | |||
| 2017-07-19 | Avoid constant-set duplication; ref #3747 | Yukihiro "Matz" Matsumoto | |
| 2017-07-18 | Fixed Module#to_s and #name for #const_set modules | Christopher Aue | |
| 2017-07-12 | Update `mrb_get_args()` document. | Yukihiro "Matz" Matsumoto | |
| 2017-07-12 | Add "*!" argument specifier to avoid stack copying. | Yukihiro "Matz" Matsumoto | |
| 2017-06-27 | Copy argv from VM stack to avoid use-after-free; fix #3722 | Yukihiro "Matz" Matsumoto | |
| 2017-05-30 | Avoid using C++ style comments (//). | Yukihiro "Matz" Matsumoto | |
| 2017-05-29 | Mark proc objects representing methods as internal objects; fix #3621 | Yukihiro "Matz" Matsumoto | |
| 2017-05-26 | Add new range check macro FIXABLE_FLOAT(); ref #3652 | Yukihiro "Matz" Matsumoto | |
| When MRB_INT64, valid value range of mrb_int is bigger than double, which only has 53 bits significant precision. | |||
| 2017-04-21 | Add missing `arg_i++` to fix bug of `s!` in mrb_get_args. | take_cheeze | |
| 2017-04-12 | Refactor check before `mrb_class_ptr()`; ref #3602 | Yukihiro "Matz" Matsumoto | |
| 2017-04-12 | The attached object may not be a class; fix #3602 | Yukihiro "Matz" Matsumoto | |
| 2017-04-06 | Get constant of parent class even if child class is defined in signleton ↵ | Kouichi Nakanishi | |
| class; fix #3575 | |||
| 2017-04-03 | Unify `else` clause style | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Remove spaces around parens | Yukihiro "Matz" Matsumoto | |
| 2017-03-19 | `super class error` formats the superclass by `inspect`; rerf #3515 | Yukihiro "Matz" Matsumoto | |
| 2017-03-18 | Need to setup singleton_class chain; fix #3509 | Yukihiro "Matz" Matsumoto | |
| 2017-03-16 | Singleton classes do not have outer class set; fix #3505 | Yukihiro "Matz" Matsumoto | |
