| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2017-12-23 | Do not include object string representation in `NoMethodError` message. | Yukihiro "Matz" Matsumoto | |
| This information is not mandatory but causes a lot of problems in the past due to infinite recursion by redefining `to_str`, `inspect` etc. | |||
| 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 | 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-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-11 | Add MRB_WITHOUT_FLOAT | YAMAMOTO Masaya | |
| 2017-09-27 | fix: src\kernel.c(861): warning C4244: '=': conversion from 'mrb_int' to ↵ | Tomasz Dąbrowski | |
| 'int', possible loss of data | |||
| 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-02 | Now `local_variables` works when for closures; fix #3710 | Yukihiro "Matz" Matsumoto | |
| 2017-07-12 | Use "$!" specifier of `mrb_get_args`. | Yukihiro "Matz" Matsumoto | |
| 2017-06-27 | No longer need to copy `argv` from `mrb_get_args`; ref #3722 | Yukihiro "Matz" Matsumoto | |
| 2017-06-22 | Add write barrier to protect singleton class from GC; fix #3717 | Yukihiro "Matz" Matsumoto | |
| 2017-06-02 | Fixed a bug that make a loop in singleton_class clone; fix #3687 | Yukihiro "Matz" Matsumoto | |
| 2017-05-23 | Simplify backtrace mechanism; fix #3633 #3634 #3644 | Yukihiro "Matz" Matsumoto | |
| Instead of preserving a backtrace in `mrb_state`, `mrb_exc_set` keeps packed backtrace in an exception object. `#backtrace` unpacks it to an array of strings. | |||
| 2017-04-22 | Keep reference to mrb_context from env; fix #3619 | Yukihiro "Matz" Matsumoto | |
| 2017-04-18 | Check if sc->mt is initialized before copying it. | Clayton Smith | |
| 2017-04-06 | Fixed possible SEGV in `Kernel#block_given?`; ref #3593 | Yukihiro "Matz" Matsumoto | |
| 2017-04-05 | Save block argument position in e->cioff; fix #3593 | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Restrict recursion levels in method_missing(); fix #3556 | Yukihiro "Matz" Matsumoto | |
| Note this is a temporary fix. Error message generation (including `inspect`) should be deferred until its use. | |||
| 2017-03-18 | Avoid mrb_check_string_type() in raising exception; fix #3506 | Yukihiro "Matz" Matsumoto | |
| The change may reduce flexibility, but I believe no one wants that level of flexibility here. | |||
| 2017-03-02 | The method_missing removal condition in a76dc04a was wrong. | Yukihiro "Matz" Matsumoto | |
| 2017-02-27 | Remove default Kernel#method_missing. | Yukihiro "Matz" Matsumoto | |
| Internal method_missing works without problems. | |||
| 2017-02-15 | Move #__id__ to BasicObject; ref #3417 | Yukihiro "Matz" Matsumoto | |
| 2017-02-15 | Move #instance_eval to BasicObject; ref #3417 | Yukihiro "Matz" Matsumoto | |
| 2017-02-15 | Move #__send__ to BasicObject; ref #3417 | Yukihiro "Matz" Matsumoto | |
| 2017-02-15 | Move #== and #!= to BasicObject; ref #3417 | Yukihiro "Matz" Matsumoto | |
| 2017-02-15 | Move BasicObject#method_missing to Kernel#method_missing; ref #3417 | Yukihiro "Matz" Matsumoto | |
| More compatibility to CRuby. Updated tests that assume old mruby behavior. | |||
| 2017-02-14 | Do not use mrb_funcall() if Hash#default is not overridden; ref #3421 | Yukihiro "Matz" Matsumoto | |
| This change reduces the recursion level, but does not solve the stack overflow issue entirely. | |||
| 2017-02-06 | Kernel#local_variables: Make result array unique | ksss | |
| 2017-02-04 | `argv` may be modified when `mrb_funcall()` is called; fix #3419 | Yukihiro "Matz" Matsumoto | |
| Calling `mrb_funcall()` and `mrb_yield()` (and their related functions) are discouraged unless absolutely necessary, because it can cause this kind of issues very easily. | |||
| 2017-01-06 | Merge pull request #3377 from ksss/respond_to | Yukihiro "Matz" Matsumoto | |
| Check intern object returned by mrb_check_string_type | |||
| 2017-01-06 | Check intern object returned by mrb_check_string_type | ksss | |
| 2017-01-05 | Add new method Kernel#frozen?; ref #3370 | Yukihiro "Matz" Matsumoto | |
| 2016-12-25 | Fix segv when primitive value | ksss | |
| Fix #3352 | |||
| 2016-12-12 | rename prefix RBASIC_ to MRB_; ref #3340 | Yukihiro "Matz" Matsumoto | |
| 2016-12-11 | Implement Object#freeze | Takashi Kokubun | |
| 2016-11-24 | Copy over INSTANCE_TT when duping class | Bouke van der Bijl | |
| 2016-11-23 | local_variables() should not touch unshared env | Yukihiro "Matz" Matsumoto | |
| 2016-11-17 | renamed "inline" to "istruct" to represent inline struct; ref #3251 | Yukihiro "Matz" Matsumoto | |
| 2016-11-17 | inline structures data type for mruby (MRB_TT_INLINE) (fix #3237) | Tomasz Dąbrowski | |
| Inline structures have no instance variables, no finalizer, and offer as much space as possible in RBASIC object. This means 24 bytes on 64-bit platforms and 12 bytes on 32-bit platforms. mruby-inline-struct gem is only provided for testing. | |||
| 2016-10-24 | macro mrb_bool() may evaluate arg multiple times; ref #3228 | Yukihiro "Matz" Matsumoto | |
| 2016-10-23 | Kernel#respond_to? should return true|false only | ksss | |
| 2016-06-18 | fix public_methods(false) | Yasuhiro Matsumoto | |
| 2015-11-27 | include changed from by quotes ("") to by brackets (<>); close #3032 | Yukihiro "Matz" Matsumoto | |
| 2015-10-20 | Increasing docs coverage | Seba Gamboa | |
| 2015-09-23 | should initialize local variable prepended to false | Yukihiro "Matz" Matsumoto | |
| 2015-09-18 | Replace 1 with TURE macro | Jun Hiroe | |
| 2015-09-05 | remove `origin` member to implement prepend from struct RClass; ref #2885 | Yukihiro "Matz" Matsumoto | |
| instead origin is saved in ICLASS with MRB_FLAG_IS_ORIGIN set. | |||
