summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler
AgeCommit message (Collapse)Author
2019-01-28`class`/`module` expression with empty body should return `nil`KOBAYASHI Shuji
Before: p(class A end) #=> A p(class << self; end) #=> #<Class:#<Object:0x7fdc3880e420>> p(module B end) #=> B After/Ruby: p(class A end) #=> nil p(class << self; end) #=> nil p(module B end) #=> nil
2019-01-06Fix 0.0 and -0.0 handling.KOBAYASHI Shuji
Fix the following issue: Good: $ bin/mruby -e 'p(-0.0)' #=> "-0" Bad: $ bin/mruby -e 'a=0.0; p(-0.0)' #=> "0"
2018-12-31Should not check non-node value to `void_expr_error`; fix #4203Yukihiro "Matz" Matsumoto
This is also a reason for #4192 as well.
2018-12-21Add `NULL` pointer check before `void_expr_error()`; fix #4192Yukihiro "Matz" Matsumoto
2018-11-25Allow destructuring in formal arguments.Yukihiro "Matz" Matsumoto
e.g. ``` def m(a,(b,c),d); p [a,b,c,d]; end m(1,[2,3],4) # => [1,2,3,4] ``` mruby limitation: Destructured arguments (`b` and `c` in above example) cannot be accessed from the default expression of optional arguments and keyword arguments, since actual assignment is done after the evaluation of those default expressions. Thus: ``` def f(a,(b,c),d=b) p [a,b,c,d] end f(1,[2,3]) ``` raises `NoMethodError` for `b` in mruby.
2018-11-25Remove redundant rules from `parse.y`.Yukihiro "Matz" Matsumoto
2018-11-20Fixed a bug in `mirb` heredoc handling; fix #3989Yukihiro "Matz" Matsumoto
2018-11-20Stop special treating of `\r` in the lexer; fix #4132Yukihiro "Matz" Matsumoto
2018-11-19Need to keep rooms for empty splat; fix #4166Yukihiro "Matz" Matsumoto
2018-11-15Fixed a bug in continuous read of target files; ref #4138Yukihiro "Matz" Matsumoto
Line number information in a compiled file was wrong.
2018-11-15Shrink file name table size to `uint16_t`; ref #4138Yukihiro "Matz" Matsumoto
2018-11-15Remove `filename`&`lines` from `mrb_irep` struct.Yukihiro "Matz" Matsumoto
This patch slightly reduce memory consumption (2% for my test).
2018-11-02Remove reserved symbols for now.Yukihiro "Matz" Matsumoto
It should be done by planned embedded symbols.
2018-10-29Reduce unnecessary symbol table entrytake-cheeze
2018-10-29Reduce instruction sizetake-cheeze
2018-10-29Rename libmruby stuff to avoid confusiontake-cheeze
2018-10-13Fixed a bug caused by too much optimization; fix #4137Yukihiro "Matz" Matsumoto
2018-10-12Fixed broken stack consistency; fix #4135Yukihiro "Matz" Matsumoto
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-06-20Fix dependencies.take-cheeze
2018-06-20Add forgotten `mkdir_p`s.take-cheeze
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