| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2017-03-13 | Fix out-of-bound access | Nobuyoshi Nakada | |
| Get rid of out-of-bound access when single % at the end. | |||
| 2017-03-13 | Need to copy argv since it may be reallocated; fix #3500 | Yukihiro "Matz" Matsumoto | |
| The argv for `mrb_yield_with_class()` should not be on mruby stack. Note the result from `mrb_get_args("*")` is on the stack. | |||
| 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-11 | The width printf specifier may be negative; fix #3498 | Yukihiro "Matz" Matsumoto | |
| 2017-03-11 | fixup! Check return value from snprintf(); ref #3498 | Yukihiro "Matz" Matsumoto | |
| 2017-03-11 | Check return value from snprintf(); ref #3498 | Yukihiro "Matz" Matsumoto | |
| 2017-03-10 | Terminate loop if generated string longer than the last; ref #3489 | Yukihiro "Matz" Matsumoto | |
| 2017-03-07 | `__FILE__` should not update `p->filename`; fix #3485 | Yukihiro "Matz" Matsumoto | |
| 2017-03-05 | Check modifiable for String `bang' methods | ksss | |
| 2017-03-02 | Fixed a bug in register size calculation; fix #3479 | Yukihiro "Matz" Matsumoto | |
| 2017-03-02 | Reorganize C++ exceptions; ref #3470 | Yukihiro "Matz" Matsumoto | |
| There are 3 levels of C++ exception handling: * default - no C++ exception (use setjmp/longjmp) * enable_cxx_exception (use C++ exceptions with C ABI) * enable_cxx_abi (use C++ ABI including exceptions) | |||
| 2017-03-02 | Avoid using <mruby/throw.h> in mruby.c | Yukihiro "Matz" Matsumoto | |
| 2017-03-01 | Keep space for safe navigation operator; fix #3475 | Yukihiro "Matz" Matsumoto | |
| 2017-03-01 | Newlines in strings should be counted; fix #3477 | 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 | Fix NODE_DREGX dump; ref #3471 | Yukihiro "Matz" Matsumoto | |
| 2017-02-28 | Fixed a bug in dregex option generation; fix #3471 | Yukihiro "Matz" Matsumoto | |
| 2017-02-28 | Update codegen.c comments | Yukihiro "Matz" Matsumoto | |
| 2017-02-24 | replace "yylval" with "pylval" to make it compile with byacc. | Tomoyuki Sahara | |
| 2017-02-16 | Configure callinfo target_class as CRuby; ref #3429 | Yukihiro "Matz" Matsumoto | |
| 2017-02-16 | Avoid executing OP_STOP in eval(); fix #3429 | Yukihiro "Matz" Matsumoto | |
| 2017-02-16 | Adjust callinfo env and target_class; ref #3429 | Yukihiro "Matz" Matsumoto | |
| 2017-02-15 | Move #instance_exec to Kernel module | Yukihiro "Matz" Matsumoto | |
| CRuby defines #instance_exec in BasicObject, but we don't. It's a small incompatibility that isn't worth accomplish at the price of implementation complexity. | |||
| 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-12 | Merge pull request #3452 from dabroz/fix-kernel-caller-aspec | Yukihiro "Matz" Matsumoto | |
| Fixed aspec for Kernel#caller | |||
| 2017-02-12 | Fixed aspec for Kernel#caller | Tomasz Dabrowski | |
| 2017-02-11 | Avoid integer overflow in sprintf(); fix #3439 | Yukihiro "Matz" Matsumoto | |
| This issue was reported by https://hackerone.com/aerodudrizzt | |||
| 2017-02-11 | Remove historical comment; ref #3450 #3448 | Yukihiro "Matz" Matsumoto | |
| 2017-02-11 | remove skip that shouldn't be necessary anymore. | robert | |
| the test should pass after https://github.com/mruby/mruby/commit/8f4a929e1a01c8d6176fb53a9ef5dff6de632959. | |||
| 2017-02-10 | String#ljust and String#rjust reimplemented with optimized Ruby | Tomasz Dabrowski | |
| 2017-02-10 | Tests for UTF-8 String#ljust and String#rjust | Tomasz Dabrowski | |
| 2017-02-10 | String#ljust and String#rjust reimplementation (fix #3445) | Tomasz Dabrowski | |
| - String#ljust and String#rjust are now C functions to improve performance - infinite loop because of an empty padding argument is now prevented (ArgumentError is raised) - extra tests for ljust/rjust added | |||
| 2017-02-08 | Fixed mixture of signed/unsigned integers | Yukihiro "Matz" Matsumoto | |
| in mrbgems/mruby-bin-debugger. | |||
| 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 | Make `eval` to use trampoline technique; fix #3415 | Yukihiro "Matz" Matsumoto | |
| Now `eval()` can call Fiber.yield etc. | |||
| 2017-02-04 | Jump address should fit in 16 bits range; fix #3426 | Yukihiro "Matz" Matsumoto | |
| 2017-02-03 | Merge pull request #3420 from udzura/patch-1 | Yukihiro "Matz" Matsumoto | |
| Fix usage of Class#name in mruby-bin-mruby's bintest | |||
| 2017-02-02 | Fetch arguments earlier to avoid a crash. | Clayton Smith | |
| 2017-02-02 | Use standard Module(Class)#to_s | Uchio KONDO | |
| 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-23 | Changed the behavior of mrb_range_beg_len(); close #3411 | Yukihiro "Matz" Matsumoto | |
| The new API is: int mrb_range_beg_len(mrb, range, &beg, &len, len, trunc) The new argument `trunc` is a boolean value that specifies whether the function truncates the range. The new return value is an integer instead of a boolean, that is: 0: not a range 1: range with proper edges 2: out of range To get the old behavior, you have to rewrite: mrb_range_beg_len(mrb, range, &beg, &len, len) to: mrn_range_beg_len(mrb, range, &beg, &len, len, TRUE) == 1 [Breaking Change] | |||
| 2017-01-21 | Fix incorrect parsing of block parameters. | Clayton Smith | |
| 2017-01-20 | Remove problematic optimization. | Clayton Smith | |
| 2017-01-18 | Merge pull request #3362 from ksss/proc | Yukihiro "Matz" Matsumoto | |
| Proc shouldn't have `initialize` method | |||
| 2017-01-16 | Dots is not needed for base 10 negative numbers; fix #3400 | Yukihiro "Matz" Matsumoto | |
| 2017-01-14 | Skip when backtrace doesn't get | ksss | |
