| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 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-22 | `c` (`mrbc_context`) may be NULL; fix #3787 | Yukihiro "Matz" Matsumoto | |
| 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. | |||
| 2017-08-12 | Reduce integer type mismatch warnings in VC. | Yukihiro "Matz" Matsumoto | |
| 2017-08-11 | `scan_hex` may be used to parse both unicode and hex escape. | Yukihiro "Matz" Matsumoto | |
| The error checks for both usage should be separated; ref #3774 | |||
| 2017-08-11 | Fixed a wrong condition in `scan_hex`; fix #3774 | Yukihiro "Matz" Matsumoto | |
| 2017-08-09 | Replaced tabs with spaces | Christopher Aue | |
| 2017-08-09 | Support `break` within rescue clauses; fix #3767 ref #3721 | Yukihiro "Matz" Matsumoto | |
| 2017-08-05 | Change return type of `scan_oct` from `int` to `int32_t`. | Yukihiro "Matz" Matsumoto | |
| 2017-08-05 | Left shift of signed integers is undefined behavior in C; fix #3762 | Yukihiro "Matz" Matsumoto | |
| 2017-07-24 | Initialize potentially uninitialized local variable. | Yukihiro "Matz" Matsumoto | |
| 2017-07-12 | `while`|`until` should have the value from `break`; fix #3735 | Yukihiro "Matz" Matsumoto | |
| 2017-06-28 | Provide better way to check compile errors. | Yukihiro "Matz" Matsumoto | |
| Now you can just call `mrb_load_*` functions then check `context->parser_nerr > 0` if the return value is `undef`, instead of calling `mrb_parse_*` functions independently. ref #3248 #3331 | |||
| 2017-06-28 | Revert "Make `mrb_load_exec` a static function." | Yukihiro "Matz" Matsumoto | |
| This reverts commit 7944d9a6d4ccb94189f37d307d384ed1cfe33e17. Because it voids #3248 and #3331. But we should add better way to check whether compile errors occur without duplicated callings. | |||
| 2017-06-23 | Should raise an exception if `break` called in ensure; fix #3721 | Yukihiro "Matz" Matsumoto | |
| 2017-06-23 | Make `mrb_load_exec` a static function. | Yukihiro "Matz" Matsumoto | |
| 2017-06-07 | Handles exceptions from code generation phase; fix #3695 | Yukihiro "Matz" Matsumoto | |
| 2017-06-05 | Limit recursion level of `codegen()`; fix #3690 | Yukihiro "Matz" Matsumoto | |
| 2017-06-02 | Revert "Update NODE_BLOCK check logic in `void_expr_error`." | Yukihiro "Matz" Matsumoto | |
| This reverts commit 31e30686b0bd9333eb0593fb1fb43b9b99744517. | |||
| 2017-06-02 | Update NODE_BLOCK check logic in `void_expr_error`. | Yukihiro "Matz" Matsumoto | |
| 2017-06-02 | Fixed a bug in `void_expr_error`. | Yukihiro "Matz" Matsumoto | |
| 2017-06-02 | Add more precise void expression checks; ref #3686 | Yukihiro "Matz" Matsumoto | |
| 2017-06-01 | Check for super using OP_ARGARY; fix #3678 | Yukihiro "Matz" Matsumoto | |
| It generates a wasted empty array for each `super` call though. It should be fixed in the future, if possible. | |||
| 2017-05-29 | Mark the proc object representing top-level as an internal object; #3621 | Yukihiro "Matz" Matsumoto | |
| 2017-05-25 | Make `gen_assignment()` to support `NODE_SCALL`; ref #3658 | Yukihiro "Matz" Matsumoto | |
| 2017-05-12 | Change return back to break in the default case. | Clayton Smith | |
| 2017-04-25 | Avoid use of `snprintf()` when DISABLE_STDIO is set; fix #3632 | Yukihiro "Matz" Matsumoto | |
| ref #3492 #3515 #3517 | |||
| 2017-04-23 | Fix embedded document with unterminated terminator | Nobuyoshi Nakada | |
| `skips()` is `mrb_bool` function, should return `FALSE` at EOF, not `EOF`. | |||
| 2017-04-22 | Alias should `push()` extra stack space for blocks. | Yukihiro "Matz" Matsumoto | |
| 2017-04-18 | Changed evaluation order of `yield`; ref #3613 | Yukihiro "Matz" Matsumoto | |
| So that `yield expr_with_error` will cause the error from the argument rather than `LocalJumpError` when no block is given. | |||
| 2017-04-13 | Fixed a bug in NODE_XSTR code generation; fix #3605 | Yukihiro "Matz" Matsumoto | |
| 2017-04-12 | Exceptions may be raised in yyparse(); fix #3600 | Yukihiro "Matz" Matsumoto | |
| 2017-04-11 | OP_LAMBDA generation should honor VAL/NOVAL; fix #3580 | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Unify `else` clause style | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Adjust exit point in `loop_pop()`; fix #3541 | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | NODE_SPLAT to pass VAL/NOVAL; fix #3532 | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Remove unnecessary indirection; ref #3557 | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Check before generating special operators (e.g. OP_ADD); fix #3557 | Yukihiro "Matz" Matsumoto | |
| 2017-04-01 | NODE_ASGN arguments may be 127 (CALL_MAXARGS) accidentally; fix #3559 | Yukihiro "Matz" Matsumoto | |
| 2017-04-01 | Argument order of __case_eqq was wrong; fix #3567 | Yukihiro "Matz" Matsumoto | |
| 2017-03-23 | Use MRB_PRId for NODE_NTH_REF; ref #3530 | Yukihiro "Matz" Matsumoto | |
| 2017-03-23 | Cast to mrb_int to silence a warning; fix #3530 | Yukihiro "Matz" Matsumoto | |
| 2017-03-20 | Use `snprintf()` to stringify fixnum numbers; ref #3492 | Yukihiro "Matz" Matsumoto | |
| 2017-03-19 | Fixed OP_RESCUE code generation bug; fix #3519 | Yukihiro "Matz" Matsumoto | |
| 916b8e let code executed with mrb->exc set, and may cause a crash like #3519. Instead modified OP_RESCUE again. To retrieve the exception object, we use `OP_RESCUE R(A), 0, 0` (old behavior). To compare the exception object and the class, we use `OP_RESCUE R(A), R(B), 1`. The reason we use OP_RESCUE for two instruction switched by operand C is to save the instruction space. As a result, the following code: ```ruby begin raise "a" rescue TypeError p 1 rescue RuntimeError p 2 end ``` will be compiled as: ``` irep 0x55cd1f565cb0 nregs=4 nlocals=1 pools=1 syms=4 reps=0 file: - 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 023 2 005 OP_RESCUE R1 3 006 OP_GETCONST R2 :TypeError 3 007 OP_RESCUE R1 R2 cont 3 008 OP_JMPIF R2 010 3 009 OP_JMP 014 4 010 OP_LOADSELF R1 4 011 OP_LOADI R2 1 4 012 OP_SEND R1 :p 1 4 013 OP_JMP 024 5 014 OP_GETCONST R2 :RuntimeError 5 015 OP_RESCUE R1 R2 cont 5 016 OP_JMPIF R2 018 5 017 OP_JMP 022 6 018 OP_LOADSELF R1 6 019 OP_LOADI R2 2 6 020 OP_SEND R1 :p 1 6 021 OP_JMP 024 6 022 OP_RAISE R1 6 023 OP_POPERR 1 6 024 OP_STOP ``` | |||
| 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 | |
