| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2017-03-12 | Generate new OP_RESCUE; fix #3487 | Yukihiro "Matz" Matsumoto | |
| The old OP_RESCUE took one operand A, which specifies a class to match with the exception. The new OP_RESCUE takes tree operands: A: the register to hold exception B: the matching exception; the match result will be stored here. C: the continuation; if C is zero, the exception will be stored to R(A) otherwise, the value from R(A) is used as a exception. Thus, ```ruby begin raise "a" rescue TypeError p 1 rescue RuntimeError p 2 end ``` will be compiled as ``` irep 0x557a06667aa0 nregs=4 nlocals=1 pools=1 syms=4 reps=0 file: /tmp/e.rb 2 000 OP_ONERR 005 2 001 OP_LOADSELF R1 2 002 OP_STRING R2 L(0) ; "a" 2 003 OP_SEND R1 :raise 1 2 004 OP_JMP 022 3 005 OP_GETCONST R2 :TypeError 3 006 OP_RESCUE R1 R2 3 007 OP_JMPIF R2 009 3 008 OP_JMP 013 4 009 OP_LOADSELF R1 4 010 OP_LOADI R2 1 4 011 OP_SEND R1 :p 1 4 012 OP_JMP 023 5 013 OP_GETCONST R2 :RuntimeError 5 014 OP_RESCUE R1 R2 cont 5 015 OP_JMPIF R2 017 5 016 OP_JMP 021 6 017 OP_LOADSELF R1 6 018 OP_LOADI R2 2 6 019 OP_SEND R1 :p 1 6 020 OP_JMP 023 6 021 OP_RAISE R1 6 022 OP_POPERR 1 6 023 OP_STOP ``` The new VM can accept old OP_RESCUE. The mruby compatible VM (namely mruby/c) should be updated to support the new OP_RESCUE behavior. | |||
| 2017-03-12 | Enhance OP_RESCUE to take B operand fas matching exception; ref #3487 | Yukihiro "Matz" Matsumoto | |
| 2017-03-11 | OP_RETRUN to take B as matching exception; ref #3487 | Yukihiro "Matz" Matsumoto | |
| 2017-03-02 | Fixed a bug in register size calculation; fix #3479 | Yukihiro "Matz" Matsumoto | |
| 2017-03-01 | Keep space for safe navigation operator; fix #3475 | Yukihiro "Matz" Matsumoto | |
| 2017-02-28 | Ignore empty ensure clause. | Yukihiro "Matz" Matsumoto | |
| 2017-02-28 | `return` (and `break`) should handle splat correctly; fix #3472 | Yukihiro "Matz" Matsumoto | |
| 2017-02-28 | Fixed a bug in dregex option generation; fix #3471 | Yukihiro "Matz" Matsumoto | |
| 2017-02-13 | Fixed codegen error of redo in rescue; fix #3422 | Yukihiro "Matz" Matsumoto | |
| The issue (and the fix) was reported by https://hackerone.com/dgaletic | |||
| 2017-02-06 | Check maximum number of formal arguments. | Yukihiro "Matz" Matsumoto | |
| http://hkdnet.hatenablog.com/entry/2017/02/06/080000 (Japanese) | |||
| 2017-02-04 | Jump address should fit in 16 bits range; fix #3426 | Yukihiro "Matz" Matsumoto | |
| 2017-01-23 | Fix a double free problem in codegen.c; fix #3378 | Yukihiro "Matz" Matsumoto | |
| This issue was first reported by https://hackerone.com/geeknik The fix was proposed by @titanous | |||
| 2017-01-23 | Fix memory leak; ref #3378 | Yukihiro "Matz" Matsumoto | |
| The fix was proposed by @titanous | |||
| 2017-01-20 | Remove problematic optimization. | Clayton Smith | |
| 2016-12-18 | NODE_NEGATE cdr may not be code-node; fix #3348 ref #3324 | Yukihiro "Matz" Matsumoto | |
| Reported by Denis Kasak https://hackerone.com/dkasak | |||
| 2016-12-13 | Fixed wrong condition in new_sym() that breaks symbol data. | Yukihiro "Matz" Matsumoto | |
| 2016-12-13 | Failed to realloc irep->syms in certain condition. | Yukihiro "Matz" Matsumoto | |
| Also msym size changed to 512 from 256. | |||
| 2016-12-10 | Merge pull request #3324 from bouk/mruby/bouk-negate | Yukihiro "Matz" Matsumoto | |
| Don't generate code for NODE_NEGATE if the result isn't used Reported by https://hackerone.com/haquaman | |||
| 2016-12-09 | Fix segfault in gen_values with NOVAL and more than 127 args | Bouke van der Bijl | |
| 2016-12-08 | Fix segfault when undef is called with exactly 127 arguments | Bouke van der Bijl | |
| The issue is that when there are more than 126 arguments an array needs to be created to pass the arguments on with. Reported by https://hackerone.com/revskills | |||
| 2016-12-07 | Don't generate code for NODE_NEGATE if the result isn't used | Bouke van der Bijl | |
| Reported by https://hackerone.com/haquaman | |||
| 2016-12-03 | Import locale insensitive strtod() from Ruby1.8; fix #3270 | Yukihiro "Matz" Matsumoto | |
| The function was renamed to `mrb_float_read(const char*, char**)`. | |||
| 2016-12-03 | codegen: avoid unnecessary OP_MOVE after CASE | Yukihiro "Matz" Matsumoto | |
| 2016-12-01 | Fix segfault when using result of rest assignment | Bouke van der Bijl | |
| Reported by https://hackerone.com/haquaman | |||
| 2016-11-25 | resolve conflict; ref #3279 | Yukihiro "Matz" Matsumoto | |
| 2016-11-25 | resolve conflict; ref #3283 | Yukihiro "Matz" Matsumoto | |
| 2016-11-25 | resolve conflict; ref #3285 | Yukihiro "Matz" Matsumoto | |
| 2016-11-25 | resolve conflict; ref #3286 | Yukihiro "Matz" Matsumoto | |
| 2016-11-24 | Fix unsafe peephole optimization | Francis Bogsanyi | |
| Reported by https://hackerone.com/dkasak | |||
| 2016-11-24 | Fix segfault caused by empty condition in ternary | Bouke van der Bijl | |
| Reported by https://hackerone.com/jpenalbae | |||
| 2016-11-24 | Fix codegen issue causing misaligned register | Bouke van der Bijl | |
| Reported by https://hackerone.com/haquaman | |||
| 2016-11-24 | Fix segfault on method call with exactly 127 arguments | Bouke van der Bijl | |
| Reported by https://hackerone.com/dkasak | |||
| 2016-11-24 | Fix nested empty heredoc causing segfault | Bouke van der Bijl | |
| As reported by https://hackerone.com/jpenalbae | |||
| 2016-11-24 | redo should work well in for statement; fix #3275 | Yukihiro "Matz" Matsumoto | |
| 2016-11-24 | Add forgotten loop_pop() in NODE_OP_ASGN codegen | Yukihiro "Matz" Matsumoto | |
| 2016-11-23 | codegen_scope should not keep old iseq ptr from irep | Yukihiro "Matz" Matsumoto | |
| 2016-11-11 | fixed a bug when number of LHS and RHS differs; fix #3239 | Yukihiro "Matz" Matsumoto | |
| 2016-11-08 | fixed a bug with [] in RHS of multiple assignments; fix #3236 | Yukihiro "Matz" Matsumoto | |
| 2016-09-26 | Fix unexpected behavior with break | ksss | |
| ``` def yie yield end def bre yie { 1+1 break } end p bre #=> display 2, but should be nil ``` | |||
| 2016-07-25 | OP_ASGN vsp may be negative | Yukihiro "Matz" Matsumoto | |
| reported by https://gist.github.com/miura1729/53fbd8af889c289a79108e38635b2378 fix proposed by @miura1729 in https://github.com/miura1729/mruby/commit/b1b7933f7aa950cfb747b06327a0d0340f3e4ff8 | |||
| 2016-06-10 | fix a compiler warning for uninitialized variable | Yukihiro "Matz" Matsumoto | |
| 2016-05-16 | fixed remaining bugs in OP_ASGN stack adjustment; close #3159 | Yukihiro "Matz" Matsumoto | |
| 2016-05-16 | stack adjustment after NODE_OP_ASGN with NODE_CALL was wrong; fix #3159 | Yukihiro "Matz" Matsumoto | |
| 2016-05-09 | raise the error at runtime; fix #3152 | cremno | |
| 2016-04-01 | fix too much optimization for `||=` | Yukihiro "Matz" Matsumoto | |
| 2016-03-30 | fix duplicated eval in op_asgn | Yukihiro "Matz" Matsumoto | |
| `a` in `a.m += c` or `a[b] += c` should be evaluated only once. | |||
| 2016-03-30 | reduce OP_ARRAY in argument splat | Yukihiro "Matz" Matsumoto | |
| 2016-03-24 | better code generation for `||=`; #3138 | Yukihiro "Matz" Matsumoto | |
| 2016-03-23 | add safe-navigation (aka lonely) operator `&.` | Yukihiro "Matz" Matsumoto | |
| 2016-03-21 | rescue NameError from class variable access like `@@foo ||= 42`; fix #3138 | Yukihiro "Matz" Matsumoto | |
