| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2019-04-01 | Avoid keeping pointers from `mrb_sym2name_len()`; fix #4342 | Yukihiro "Matz" Matsumoto | |
| The addresses for packed inline symbols reference `mrb->symbuf` that could be overridden by the later call of `mrb_sym2name_len`. Since file names in call stack information are kept as symbols, keeping the address in the C structures could cause problems like #4342. This changes small incompatible changes in function prototypes: * `mrb_parser_get_filename`: return value changed to `mrb_sym`. * `mrb_debug_get_filename`: add `mrb_state*` as a first argument. * `mrb_debug_get_line`: ditto. I believe above functions are almost internal, and no third-party mrbgem use them. | |||
| 2019-02-18 | Use key argument register for `OP_KEY_P` to reduce register use. | Yukihiro "Matz" Matsumoto | |
| 2019-02-11 | Small refactoring in `codegen.c` | KOBAYASHI Shuji | |
| 2019-02-07 | Add `OP_ENTER` to blocks without parameters; fix #4175 | Yukihiro "Matz" Matsumoto | |
| So that `lambda{}.call(1)` raises `ArgumentError` as CRuby does. Also, fixed junk assignment for `lambda{|;a|p a}.call{}`. | |||
| 2019-01-28 | `class`/`module` expression with empty body should return `nil` | KOBAYASHI Shuji | |
| Before: p(class A end) #=> A p(class << self; end) #=> #<Class:#<Object:0x7fdc3880e420>> p(module B end) #=> B After/Ruby: p(class A end) #=> nil p(class << self; end) #=> nil p(module B end) #=> nil | |||
| 2019-01-06 | Fix 0.0 and -0.0 handling. | KOBAYASHI Shuji | |
| Fix the following issue: Good: $ bin/mruby -e 'p(-0.0)' #=> "-0" Bad: $ bin/mruby -e 'a=0.0; p(-0.0)' #=> "0" | |||
| 2018-11-25 | Allow destructuring in formal arguments. | Yukihiro "Matz" Matsumoto | |
| e.g. ``` def m(a,(b,c),d); p [a,b,c,d]; end m(1,[2,3],4) # => [1,2,3,4] ``` mruby limitation: Destructured arguments (`b` and `c` in above example) cannot be accessed from the default expression of optional arguments and keyword arguments, since actual assignment is done after the evaluation of those default expressions. Thus: ``` def f(a,(b,c),d=b) p [a,b,c,d] end f(1,[2,3]) ``` raises `NoMethodError` for `b` in mruby. | |||
| 2018-11-15 | Fixed a bug in continuous read of target files; ref #4138 | Yukihiro "Matz" Matsumoto | |
| Line number information in a compiled file was wrong. | |||
| 2018-11-15 | Remove `filename`&`lines` from `mrb_irep` struct. | Yukihiro "Matz" Matsumoto | |
| This patch slightly reduce memory consumption (2% for my test). | |||
| 2018-11-02 | Remove reserved symbols for now. | Yukihiro "Matz" Matsumoto | |
| It should be done by planned embedded symbols. | |||
| 2018-10-29 | Reduce unnecessary symbol table entry | take-cheeze | |
| 2018-10-29 | Reduce instruction size | take-cheeze | |
| 2018-10-13 | Fixed a bug caused by too much optimization; fix #4137 | Yukihiro "Matz" Matsumoto | |
| 2018-10-12 | Fixed broken stack consistency; fix #4135 | Yukihiro "Matz" Matsumoto | |
| 2018-09-07 | Clear terminated space | dearblue | |
| 2018-09-06 | Need to support multiple `**` splats in argument list; fix #4106 | Yukihiro "Matz" Matsumoto | |
| 2018-09-01 | Avoid warning in MSVC compilation. | Yukihiro "Matz" Matsumoto | |
| 2018-09-01 | Too much peephole optimization in `gen_call`; fix #4091 | Yukihiro "Matz" Matsumoto | |
| It causes trouble for safe navigation operator. | |||
| 2018-08-30 | Remove consequent `OP_RETURN` by peephole optimization. | Yukihiro "Matz" Matsumoto | |
| 2018-08-29 | Merge branch 'node_negate_fix' of https://github.com/ukrainskiysergey/mruby ↵ | Yukihiro "Matz" Matsumoto | |
| into ukrainskiysergey-node_negate_fix | |||
| 2018-08-29 | Check iseq buffer size before code emission; fix #4090 | Yukihiro "Matz" Matsumoto | |
| The type of `s->pc` is now `uint16_t` that can be overflowed easily. Need more checks. | |||
| 2018-08-25 | Reduce integer casting warnings. | Yukihiro "Matz" Matsumoto | |
| 2018-08-25 | fixup! New bytecode implementation of mruby VM. | Yukihiro "Matz" Matsumoto | |
| 2018-08-25 | Hash splat `**` should not be ignored. | Yukihiro "Matz" Matsumoto | |
| Implemented by adding `OP_HASHCAT` that merges hashes. | |||
| 2018-08-25 | New bytecode implementation of mruby VM. | Yukihiro "Matz" Matsumoto | |
| 2018-08-10 | Added push() after OP_SEND | Ukrainskiy Sergey | |
| 2018-08-09 | Small fix | Ukrainskiy Sergey | |
| 2018-08-09 | Fix weird behavior of the NODE_NEGATE | Ukrainskiy Sergey | |
| 2018-07-31 | Bytecode support for `mrdb`. | Yukihiro "Matz" Matsumoto | |
| 2018-07-30 | Keyword argument implemented. | Yukihiro "Matz" Matsumoto | |
| 2018-07-30 | New bytecode implementation of mruby VM. | Yukihiro "Matz" Matsumoto | |
| 2018-07-10 | move mrb_irep_remove_lv to codegen.c in mruby-compiler | yuri | |
| 2018-05-01 | Update `MRB_FLO_TO_STR_FMT` to "%.16g"; fix #4016 | Yukihiro "Matz" Matsumoto | |
| 2018-05-01 | Fix stack position in multiple assignment; fix #4008 | Yukihiro "Matz" Matsumoto | |
| This was caused by a patch from #2684. | |||
| 2018-01-16 | Limit size of iseq buffer; fix #3927 | Yukihiro "Matz" Matsumoto | |
| 2017-12-15 | Check if destinations are too distant; fix #3900 fix #3901 | Yukihiro "Matz" Matsumoto | |
| 2017-11-08 | Simplify `MRB_WITHOUT_FLOAT` condtion | Yukihiro "Matz" Matsumoto | |
| 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-28 | Add some peephole optimizations | Yukihiro "Matz" Matsumoto | |
| 2017-10-11 | Add MRB_WITHOUT_FLOAT | YAMAMOTO Masaya | |
| 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-05 | Restrict `OP_EPOP` operand to `1`; ref #3789 | Yukihiro "Matz" Matsumoto | |
| 2017-08-23 | Fixed register windows of OP_SENDs generated by NODE_{DREGX,REGX}; ref #3783 | Christopher Aue | |
| 2017-08-23 | Fixed register windows of OP_SENDs generated by NODE_OP_ASGN; ref #3783 | Christopher Aue | |
| 2017-08-23 | Refactored code around generation of OP_SEND in NODE_OP_ASGN | Christopher Aue | |
| 2017-08-23 | Fixed register windows of OP_SENDs generated by NODE_{FOR,SYMBOLS}; ref #3783 | Christopher Aue | |
| 2017-08-23 | Tested register windows of OP_SENDs generated by NODE_{RESCUE,HASH,ALIAS}; ↵ | Christopher Aue | |
| ref #3783 | |||
| 2017-08-23 | Fixed register windows of OP_SENDs generated by ↵ | Christopher Aue | |
| NODE_{SCALL,CASE,YIELD,UNDEF}; ref #3783 | |||
| 2017-08-19 | Replace stack `pop()` by `push_n(2); pop_n(3)`; fix #3783 | Yukihiro "Matz" Matsumoto | |
| To calculate correct register windows size. The fix was suggested by Christopher Aue. | |||
