summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler
AgeCommit message (Collapse)Author
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
2017-08-23Tested register windows of OP_SENDs generated by NODE_{RESCUE,HASH,ALIAS}; ↵Christopher Aue
ref #3783
2017-08-23Fixed register windows of OP_SENDs generated by ↵Christopher Aue
NODE_{SCALL,CASE,YIELD,UNDEF}; ref #3783
2017-08-22`c` (`mrbc_context`) may be NULL; fix #3787Yukihiro "Matz" Matsumoto
2017-08-19Replace stack `pop()` by `push_n(2); pop_n(3)`; fix #3783Yukihiro "Matz" Matsumoto
To calculate correct register windows size. The fix was suggested by Christopher Aue.
2017-08-12Reduce integer type mismatch warnings in VC.Yukihiro "Matz" Matsumoto
2017-08-11`scan_hex` may be used to parse both unicode and hex escape.Yukihiro "Matz" Matsumoto
The error checks for both usage should be separated; ref #3774
2017-08-11Fixed a wrong condition in `scan_hex`; fix #3774Yukihiro "Matz" Matsumoto
2017-08-09Replaced tabs with spacesChristopher Aue
2017-08-09Support `break` within rescue clauses; fix #3767 ref #3721Yukihiro "Matz" Matsumoto
2017-08-05Change return type of `scan_oct` from `int` to `int32_t`.Yukihiro "Matz" Matsumoto
2017-08-05Left shift of signed integers is undefined behavior in C; fix #3762Yukihiro "Matz" Matsumoto
2017-07-24Initialize potentially uninitialized local variable.Yukihiro "Matz" Matsumoto
2017-07-12`while`|`until` should have the value from `break`; fix #3735Yukihiro "Matz" Matsumoto
2017-06-28Provide better way to check compile errors.Yukihiro "Matz" Matsumoto
Now you can just call `mrb_load_*` functions then check `context->parser_nerr > 0` if the return value is `undef`, instead of calling `mrb_parse_*` functions independently. ref #3248 #3331
2017-06-28Revert "Make `mrb_load_exec` a static function."Yukihiro "Matz" Matsumoto
This reverts commit 7944d9a6d4ccb94189f37d307d384ed1cfe33e17. Because it voids #3248 and #3331. But we should add better way to check whether compile errors occur without duplicated callings.
2017-06-23Should raise an exception if `break` called in ensure; fix #3721Yukihiro "Matz" Matsumoto
2017-06-23Make `mrb_load_exec` a static function.Yukihiro "Matz" Matsumoto
2017-06-07Handles exceptions from code generation phase; fix #3695Yukihiro "Matz" Matsumoto
2017-06-05Limit recursion level of `codegen()`; fix #3690Yukihiro "Matz" Matsumoto
2017-06-02Revert "Update NODE_BLOCK check logic in `void_expr_error`."Yukihiro "Matz" Matsumoto
This reverts commit 31e30686b0bd9333eb0593fb1fb43b9b99744517.
2017-06-02Update NODE_BLOCK check logic in `void_expr_error`.Yukihiro "Matz" Matsumoto
2017-06-02Fixed a bug in `void_expr_error`.Yukihiro "Matz" Matsumoto
2017-06-02Add more precise void expression checks; ref #3686Yukihiro "Matz" Matsumoto
2017-06-01Check for super using OP_ARGARY; fix #3678Yukihiro "Matz" Matsumoto
It generates a wasted empty array for each `super` call though. It should be fixed in the future, if possible.
2017-05-29Mark the proc object representing top-level as an internal object; #3621Yukihiro "Matz" Matsumoto
2017-05-25Make `gen_assignment()` to support `NODE_SCALL`; ref #3658Yukihiro "Matz" Matsumoto
2017-05-12Change return back to break in the default case.Clayton Smith