summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core
AgeCommit message (Collapse)Author
2018-09-07Clear terminated spacedearblue
2018-09-06Need to support multiple `**` splats in argument list; fix #4106Yukihiro "Matz" Matsumoto
2018-09-01Avoid warning in MSVC compilation.Yukihiro "Matz" Matsumoto
2018-09-01Too much peephole optimization in `gen_call`; fix #4091Yukihiro "Matz" Matsumoto
It causes trouble for safe navigation operator.
2018-08-30Remove consequent `OP_RETURN` by peephole optimization.Yukihiro "Matz" Matsumoto
2018-08-29Merge branch 'node_negate_fix' of https://github.com/ukrainskiysergey/mruby ↵Yukihiro "Matz" Matsumoto
into ukrainskiysergey-node_negate_fix
2018-08-29Check iseq buffer size before code emission; fix #4090Yukihiro "Matz" Matsumoto
The type of `s->pc` is now `uint16_t` that can be overflowed easily. Need more checks.
2018-08-25Reduce integer casting warnings.Yukihiro "Matz" Matsumoto
2018-08-25fixup! New bytecode implementation of mruby VM.Yukihiro "Matz" Matsumoto
2018-08-25Hash splat `**` should not be ignored.Yukihiro "Matz" Matsumoto
Implemented by adding `OP_HASHCAT` that merges hashes.
2018-08-25Remove unused `NODE_*` constants from `node.h`.Yukihiro "Matz" Matsumoto
2018-08-25Add `NODE_KW_HASH` support in `mrb_parser_dump()`.Yukihiro "Matz" Matsumoto
2018-08-25Remove `arg_value` from `parse.y`.Yukihiro "Matz" Matsumoto
2018-08-25New bytecode implementation of mruby VM.Yukihiro "Matz" Matsumoto
2018-08-10Added push() after OP_SENDUkrainskiy Sergey
2018-08-09Small fixUkrainskiy Sergey
2018-08-09Fix weird behavior of the NODE_NEGATEUkrainskiy Sergey
2018-07-31Bytecode support for `mrdb`.Yukihiro "Matz" Matsumoto
2018-07-30Keyword argument implemented.Yukihiro "Matz" Matsumoto
2018-07-30New bytecode implementation of mruby VM.Yukihiro "Matz" Matsumoto
2018-07-10move mrb_irep_remove_lv to codegen.c in mruby-compileryuri
2018-05-01Update `MRB_FLO_TO_STR_FMT` to "%.16g"; fix #4016Yukihiro "Matz" Matsumoto
2018-05-01Fix stack position in multiple assignment; fix #4008Yukihiro "Matz" Matsumoto
This was caused by a patch from #2684.
2018-02-12Resolve conflicts between labels and conditional ternary; fix #3931Yukihiro "Matz" Matsumoto
2018-02-10Need to determine `IS_LABEL_POSSIBLE()` properly.Yukihiro "Matz" Matsumoto
Otherwise, `{"a": 1}` will cause `SyntaxError`.
2018-01-16Limit size of iseq buffer; fix #3927Yukihiro "Matz" Matsumoto
2018-01-16Allow `-> do rescue; end` as well as `proc do rescue; end` [Ruby2.6]Yukihiro "Matz" Matsumoto
2017-12-23Make source compilable with C++17Lothar Scholz
Changes applied: - Removing "register" keyword - Fixing const pointer to pointer assignments - Adding type casts to rb_malloc calls
2017-12-15Check if destinations are too distant; fix #3900 fix #3901Yukihiro "Matz" Matsumoto
2017-11-08Simplify `MRB_WITHOUT_FLOAT` condtionYukihiro "Matz" Matsumoto
2017-11-04Merge branch 'master' of github.com:mruby/mrubyYAMAMOTO Masaya
2017-10-28Heavily refactored how lexical scope links are implemented; fix #3821Yukihiro "Matz" Matsumoto
Instead of `irep` links, we added a `upper` link to `struct RProc`. To make a space for the `upper` link, we moved `target_class` reference. If a `Proc` does not have `env`, `target_class` is saved in an `union` shared with `env` (if a `Proc` has env, you can tell it by `MRB_PROC_ENV_P()). Otherwise `target_class` is referenced from `env->c`. We removed links in `env` as well. This change removes 2 members from `mrb_irep` struct, thus saving 2 words per method/proc/block. This also fixes potential memory leaks due to the circular references caused by a link from `mrb_irep`.
2017-10-28Add some peephole optimizationsYukihiro "Matz" Matsumoto
2017-10-17`do/end` blocks to work with `rescue/ensure/else`; CRuby2.5Yukihiro "Matz" Matsumoto
2017-10-12Correct a small error in parse.y, which causes the reading of unassigned ↵Carlo Prelz
memory (triggers an error when address sanitizer is active)
2017-10-11Add MRB_WITHOUT_FLOATYAMAMOTO Masaya
2017-10-09Fix parse error on TRICK2013/yharaNobuyoshi Nakada
2017-10-09Replace lvar_defined with local_var_pNobuyoshi Nakada
2017-09-27fix: mrbgems\mruby-compiler\core\parse.y(3455): warning C4244: 'function': ↵Tomasz Dąbrowski
conversion from 'intptr_t' to 'int', possible loss of data
2017-09-25The `[]` special method call should be able to take a block.Yukihiro "Matz" Matsumoto
2017-09-25The `lex_state` after literals should be `EXPR_ENDARG`.Yukihiro "Matz" Matsumoto
2017-09-25The symbols should not take brace blocks.Yukihiro "Matz" Matsumoto
2017-09-12Remove temporary limitation of `OP_EPOP`.Yukihiro "Matz" Matsumoto
After f68f5f6, the operand of `OP_EPOP` should have been `1`. Now we have removed the limitation.
2017-09-05Restrict `OP_EPOP` operand to `1`; ref #3789Yukihiro "Matz" Matsumoto
2017-08-28Add `__ENCODING__' support.Yukihiro "Matz" Matsumoto
`__ENCODING__' returns the current encoding name (string), unlike CRuby that returns the encoding object.
2017-08-28Remove integer type mismatch warnings from parse.y.Yukihiro "Matz" Matsumoto
2017-08-23Fixed register windows of OP_SENDs generated by NODE_{DREGX,REGX}; ref #3783Christopher Aue
2017-08-23Fixed register windows of OP_SENDs generated by NODE_OP_ASGN; ref #3783Christopher Aue
2017-08-23Refactored code around generation of OP_SEND in NODE_OP_ASGNChristopher Aue
2017-08-23Fixed register windows of OP_SENDs generated by NODE_{FOR,SYMBOLS}; ref #3783Christopher Aue