| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2017-04-21 | Support freeze in `Struct`. | take_cheeze | |
| 2017-04-20 | Allow `mrb_objspace_each_objects()` to break iteration; ref #3359 | Yukihiro "Matz" Matsumoto | |
| 2017-04-19 | Use trampoline technique for `instance_exec`; ref #3359 | Yukihiro "Matz" Matsumoto | |
| A new function `mrb_yield_cont()` is provided. You have to call it at the end of a C defined method, e.g. `return mrb_yield_cont()`. | |||
| 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 | Fix an off-by-one causing a buffer overflow in mirb. | Clayton Smith | |
| 2017-04-13 | Struct may not be initialized in #to_h; fix #3607 | Yukihiro "Matz" Matsumoto | |
| 2017-04-13 | Fixed a bug in NODE_XSTR code generation; fix #3605 | Yukihiro "Matz" Matsumoto | |
| 2017-04-12 | Let 'mrb_vm_run()` to restore the calling fiber; ref #3537 | 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-11 | Fiber#yield should check C function boundary; fix #3582 | Yukihiro "Matz" Matsumoto | |
| 2017-04-05 | Should specify instance type of Structs; fix #3591 | Yukihiro "Matz" Matsumoto | |
| 2017-04-05 | Should restore to the root fiber for each interaction; fix #3537 | Yukihiro "Matz" Matsumoto | |
| 2017-04-05 | Need to insert write barriers in struct updates; fix #3547 | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Correctly handle large negative usec value. | Clayton Smith | |
| 2017-04-03 | Revert "Adjust VM stack window size; fix #3547" | Yukihiro "Matz" Matsumoto | |
| This reverts commit 6dabb33635a149fc571cf285352ea4f89bdc52f0. | |||
| 2017-04-03 | Adjust VM stack window size; fix #3547 | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Merge pull request #3577 from okkez/fix-return-value-of-each-slice | Yukihiro "Matz" Matsumoto | |
| Change return value of Enumerable#each_slice | |||
| 2017-04-03 | Merge pull request #3576 from okkez/fix-return-value-of-each-cons | Yukihiro "Matz" Matsumoto | |
| Change return value of Enumberable#each_cons | |||
| 2017-04-03 | Unify `else` clause style | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Remove spaces around parens | Yukihiro "Matz" Matsumoto | |
| 2017-04-03 | Change return value of Enumerable#each_slice | Kenji Okimoto | |
| More compatibility to CRuby. | |||
| 2017-04-03 | Change return value of Enumberable#each_cons | Kenji Okimoto | |
| More compatibility to CRuby. | |||
| 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-02 | Reduce object allocation | ksss | |
| 2017-04-02 | Fix parameters when noname rest | ksss | |
| 2017-04-02 | Fixed out of bounds access; fix #3572, ref #3553 | 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-04-01 | Improve Time.new() performance using division; fix #3561 | Yukihiro "Matz" Matsumoto | |
| 2017-03-30 | Fix Enumerator#each_with_index with block | Kenji Okimoto | |
| In previous version, ``` a = [3, 2, 1] e = a.each e.sort_by(&:to_i) # => [] ``` In this version, ``` a = [3, 2, 1] e = a.each e.sort_by(&:to_i) # => [1, 2, 3] ``` | |||
| 2017-03-29 | Should raise FloatDomainError | ksss | |
| 2017-03-28 | Avoid inline local variable declarations; fix #3554 | Yukihiro "Matz" Matsumoto | |
| 2017-03-28 | Merge pull request #3553 from okkez/add-array-slice-bang | Yukihiro "Matz" Matsumoto | |
| Implement Array#slice! | |||
| 2017-03-28 | Implement Array#slice! | Kenji Okimoto | |
| 2017-03-28 | Fix infinity loop | ksss | |
| And some cases should raise FloatDomainError | |||
| 2017-03-25 | Fix lost lineno | ksss | |
| 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-21 | Hash sub class creates new sub class objects instead of Hash | Kouhei Sutou | |
| 2017-03-20 | Use `snprintf()` to stringify fixnum numbers; ref #3492 | Yukihiro "Matz" Matsumoto | |
| 2017-03-19 | Fixed some compiler errors regarding PRId. | Yukihiro "Matz" Matsumoto | |
| 2017-03-19 | Use MRB_PRId instead of "%d"; fix #3515 | 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-18 | Should use mrb_int for any object | ksss | |
| o=Object.new def o.to_int 1 end p "%*d" % [o, 1] | |||
| 2017-03-17 | Avoid trampoline when #eval is called from mrb_funcall(); fix #3522 | Yukihiro "Matz" Matsumoto | |
| 2017-03-15 | `instance_eval` method does not introduce C function boundary; fix #3508 | Yukihiro "Matz" Matsumoto | |
