summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2021-08-09Merge pull request #5522 from dearblue/pack-EOFYukihiro "Matz" Matsumoto
Fixed compilation error of "mruby-pack" with `MRB_NO_STDIO`
2021-08-08Merge pull request #5523 from jbampton/patch-1Yukihiro "Matz" Matsumoto
docs: fix case of mruby
2021-08-07docs: fix case of mrubyJohn Bampton
2021-08-07Fixed compilation error of "mruby-pack" with `MRB_NO_STDIO`dearblue
2021-08-07codedump.c: print two operands `R(x)` and `R(x+1)` for clarity.Yukihiro "Matz" Matsumoto
2021-08-07codegen.c: need to push the value when the loop was eliminated.Yukihiro "Matz" Matsumoto
2021-08-07array.h: avoid duplicated defined of `MRB_ARY_NO_EMBED`; fix #5520Yukihiro "Matz" Matsumoto
2021-08-07Merge pull request #5521 from ↵Yukihiro "Matz" Matsumoto
mruby/dependabot/github_actions/github/super-linter-4.6.0 build(deps): bump github/super-linter from 4.5.1 to 4.6.0
2021-08-06build(deps): bump github/super-linter from 4.5.1 to 4.6.0dependabot[bot]
Bumps [github/super-linter](https://github.com/github/super-linter) from 4.5.1 to 4.6.0. - [Release notes](https://github.com/github/super-linter/releases) - [Commits](https://github.com/github/super-linter/compare/v4.5.1...v4.6.0) --- updated-dependencies: - dependency-name: github/super-linter dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]>
2021-08-06numeric_ext.c: fix a bug regarding `MRB_INT_MIN`.Yukihiro "Matz" Matsumoto
2021-08-06numeric.c: fix a bug regarding `MRB_INT_MIN`.Yukihiro "Matz" Matsumoto
2021-08-06codegen.c: `-9223372036854775808 % -1` overflows 64 bit integer.Yukihiro "Matz" Matsumoto
2021-08-05codegen.c: remove code duplication from `NODE_ARRAY`.Yukihiro "Matz" Matsumoto
2021-08-04codegen.c: detect integer overflow in division.Yukihiro "Matz" Matsumoto
`MRB_INT_MIN / -1` overflows.
2021-08-04numeric.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-03numeric.c: check zero division before modulo.Yukihiro "Matz" Matsumoto
2021-08-03codegen.c: check zero division before constant folding.Yukihiro "Matz" Matsumoto
2021-08-03numeric_ext.c: `modulo` and `remainder` should handle infinite argument.Yukihiro "Matz" Matsumoto
2021-08-03numeric_ext.c: add `Float#modulo` and `#remainder` methods.Yukihiro "Matz" Matsumoto
2021-08-03numeric_ext.c: update `Integer#remainder` method.Yukihiro "Matz" Matsumoto
- need to detect zero division error - support floating point number argument (as `%`)
2021-08-03Revert "numeric.c: simplifies `int_mod` definition."Yukihiro "Matz" Matsumoto
This reverts commit 3738d62a86a54524d5d7738ddbafe4700ca6a889. The change changed the behavior with floating point numbers.
2021-08-03codegen.c: avoid division by zero in constant folding.Yukihiro "Matz" Matsumoto
2021-08-03numeric_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-03numeric.c: simplifies `int_mod` definition.Yukihiro "Matz" Matsumoto
2021-08-03numeric_ext.c: define `modulo` and `remainder` methods for `Integer`.Yukihiro "Matz" Matsumoto
2021-08-03Replace `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-03Replace `fixnum` references with `int`.Yukihiro "Matz" Matsumoto
The `Fixnum` class is no longer provided by `mruby`.
2021-08-03numeric_ext.c: remove unnecessary prefix `mrb_` from static functions.Yukihiro "Matz" Matsumoto
2021-08-03numeric.c: rename `fixdivmod` to `intdivmod`.Yukihiro "Matz" Matsumoto
2021-08-02codegen.c: allow constant folding for negative integer modulo.Yukihiro "Matz" Matsumoto
2021-08-02numeric.c: simpler integer modulo calculation.Yukihiro "Matz" Matsumoto
2021-08-02mrdb.c: do not skip `OP_JMP` on step execution.Yukihiro "Matz" Matsumoto
2021-08-02codegen.c: refactor `readint()` to read `MRB_INT_MIN`.Yukihiro "Matz" Matsumoto
2021-08-02numeric.c: use C's modulo operator if both operands are positive.Yukihiro "Matz" Matsumoto
2021-08-02test/driver.c: remove unused constants related to `FIXNUM`.Yukihiro "Matz" Matsumoto
2021-08-02codegen.c: fix a bug in bit shift constant folding.Yukihiro "Matz" Matsumoto
2021-08-02numeric.c: refactor integer bit shift operations.Yukihiro "Matz" Matsumoto
2021-08-02codegen.c: refactor unary operator optimization.Yukihiro "Matz" Matsumoto
2021-08-02codegen.c: constant folding binary operators, <<, >>, %, &, |, ^.Yukihiro "Matz" Matsumoto
2021-08-01codegen.c: eliminate loop if condition is constant.Yukihiro "Matz" Matsumoto
For example, `while false; ...; end` should be removed.
2021-08-01codegen.c: peephole optimize OP_JMPxxx.Yukihiro "Matz" Matsumoto
2021-07-31codegen.c: allow constant folding for mul / div.Yukihiro "Matz" Matsumoto
2021-07-31codegen.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-30codedump.c: instruction length should be `ilen`, not `iseq`.Yukihiro "Matz" Matsumoto
2021-07-29codegen.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-28debug.c: uses most space efficient packed map for line information.Yukihiro "Matz" Matsumoto
2021-07-28codegen.c: labels should be `uint32_t`.Yukihiro "Matz" Matsumoto
2021-07-28codegen.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-28codegen.c: removed bytecode when the value of `while` is not used.Yukihiro "Matz" Matsumoto
2021-07-28codegen.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`.