| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2021-08-05 | codegen.c: remove code duplication from `NODE_ARRAY`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-04 | codegen.c: detect integer overflow in division. | Yukihiro "Matz" Matsumoto | |
| `MRB_INT_MIN / -1` overflows. | |||
| 2021-08-04 | numeric.c: fix a bug in left shift of negative integer. | Yukihiro "Matz" Matsumoto | |
| `-1 * (1<<63)` causes overflow, but `-1<<63` is a valid value. | |||
| 2021-08-03 | numeric.c: check zero division before modulo. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | codegen.c: check zero division before constant folding. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | numeric_ext.c: `modulo` and `remainder` should handle infinite argument. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | numeric_ext.c: add `Float#modulo` and `#remainder` methods. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | numeric_ext.c: update `Integer#remainder` method. | Yukihiro "Matz" Matsumoto | |
| - need to detect zero division error - support floating point number argument (as `%`) | |||
| 2021-08-03 | Revert "numeric.c: simplifies `int_mod` definition." | Yukihiro "Matz" Matsumoto | |
| This reverts commit 3738d62a86a54524d5d7738ddbafe4700ca6a889. The change changed the behavior with floating point numbers. | |||
| 2021-08-03 | codegen.c: avoid division by zero in constant folding. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | numeric_ext.c: use `mrb_integer` instead of `mrb_as_int`. | Yukihiro "Matz" Matsumoto | |
| `mrb_as_int` implicitly converts the value into the integer, but those methods are defined for Integer class so that the value should always be integers. | |||
| 2021-08-03 | numeric.c: simplifies `int_mod` definition. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | numeric_ext.c: define `modulo` and `remainder` methods for `Integer`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | Replace `mrb_fixnum_value()` with `mrb_int_value()`. | Yukihiro "Matz" Matsumoto | |
| Use `mrb_fixnum_value()` only when you are absolutely sure that the value is within `Fixnum` range, i.e. 31 bits signed integer at least. | |||
| 2021-08-03 | Replace `fixnum` references with `int`. | Yukihiro "Matz" Matsumoto | |
| The `Fixnum` class is no longer provided by `mruby`. | |||
| 2021-08-03 | numeric_ext.c: remove unnecessary prefix `mrb_` from static functions. | Yukihiro "Matz" Matsumoto | |
| 2021-08-03 | numeric.c: rename `fixdivmod` to `intdivmod`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | codegen.c: allow constant folding for negative integer modulo. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | numeric.c: simpler integer modulo calculation. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | mrdb.c: do not skip `OP_JMP` on step execution. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | codegen.c: refactor `readint()` to read `MRB_INT_MIN`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | numeric.c: use C's modulo operator if both operands are positive. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | test/driver.c: remove unused constants related to `FIXNUM`. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | codegen.c: fix a bug in bit shift constant folding. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | numeric.c: refactor integer bit shift operations. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | codegen.c: refactor unary operator optimization. | Yukihiro "Matz" Matsumoto | |
| 2021-08-02 | codegen.c: constant folding binary operators, <<, >>, %, &, |, ^. | Yukihiro "Matz" Matsumoto | |
| 2021-08-01 | codegen.c: eliminate loop if condition is constant. | Yukihiro "Matz" Matsumoto | |
| For example, `while false; ...; end` should be removed. | |||
| 2021-08-01 | codegen.c: peephole optimize OP_JMPxxx. | Yukihiro "Matz" Matsumoto | |
| 2021-07-31 | codegen.c: allow constant folding for mul / div. | Yukihiro "Matz" Matsumoto | |
| 2021-07-31 | codegen.c: `mrb_prev_pc()` to take previous instruction position. | Yukihiro "Matz" Matsumoto | |
| It rescans `s->iseq` so that peephole optimizer can take multiple previous instructions for constant folding, etc. | |||
| 2021-07-30 | codedump.c: instruction length should be `ilen`, not `iseq`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-29 | codegen.c: order instructions in natural order for loops. | Yukihiro "Matz" Matsumoto | |
| `while` and `until` generates in `cond` `jmpif` `body` `jmp` order. It used to be in `jmp` `body` `cond` `jmpif` order. | |||
| 2021-07-28 | debug.c: uses most space efficient packed map for line information. | Yukihiro "Matz" Matsumoto | |
| 2021-07-28 | codegen.c: labels should be `uint32_t`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-28 | codegen.c: fix `loopinfo` structure members. | Yukihiro "Matz" Matsumoto | |
| - `pc0`: `next` destination - `pc1`: `redo` destination (renamed from `pc2`) - `pc3`: `break` destination (renamed from `pc3`) old `pc1` was unused so removed. | |||
| 2021-07-28 | codegen.c: removed bytecode when the value of `while` is not used. | Yukihiro "Matz" Matsumoto | |
| 2021-07-28 | codegen.c: fixed a bug when value is taken from `while` and `until`. | Yukihiro "Matz" Matsumoto | |
| ```ruby p ((while true; p 1; break; end)) ``` should print `1 nil` but was `1`. | |||
| 2021-07-28 | Merge pull request #5518 from jbampton/pre-commit-autoupdate | Yukihiro "Matz" Matsumoto | |
| pre-commit autoupdate | |||
| 2021-07-28 | pre-commit autoupdate | John Bampton | |
| https://pre-commit.com/#pre-commit-autoupdate | |||
| 2021-07-26 | parse.y: fix an integer cast warning. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | parse.y: `mrb_int_read()` returns `mrb_int` not `unsigned long`. | Yukihiro "Matz" Matsumoto | |
| Also, now too big capture group index just gives `nil`, not error. | |||
| 2021-07-26 | parse.y: unify redundant functions `yywarn()` and `yywarning()`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | debug.c: small refactoring. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | debug.c: remove type cast warnings. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | fmt_fp.c: add implicit cast from `mrb_float` to `int8_t`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | vm.c: fix integer type error in `mrb_protect_error`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | irep.h: operand c should be fit in `uint8_t`. | Yukihiro "Matz" Matsumoto | |
| 2021-07-26 | test/binding.rb: remove a duplicated test. | Yukihiro "Matz" Matsumoto | |
| 2021-07-25 | time.c: fixed a potential buffer overflow in `time_zonename`. | Yukihiro "Matz" Matsumoto | |
