summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
AgeCommit message (Collapse)Author
2017-08-11Defer `mid` update after `unshift`; ref #3776Yukihiro "Matz" Matsumoto
2017-08-11Merge branch 'super_method_missing_fix' of ↵Yukihiro "Matz" Matsumoto
https://github.com/christopheraue/mruby into christopheraue-super_method_missing_fix
2017-08-11Silence integer type conversion warnings.Yukihiro "Matz" Matsumoto
2017-08-10Fixed calling missing method through super with 126 argsChristopher Aue
2017-08-09Replaced tabs with spacesChristopher Aue
2017-08-09Wrong blkargs pos for vararg; ref #3768Yukihiro "Matz" Matsumoto
2017-08-09The block argument offset saved in the env was wrong; fix #3768Yukihiro "Matz" Matsumoto
When the method takes variable number of argument (`argc = -1`), the block argument offset should be `-1` not `0`.
2017-08-08Float values divided by zero should honor signs; fix #3766Yukihiro "Matz" Matsumoto
It also fixes unexpected resurrection of #3745 by #3752
2017-08-08Set the current `pc` as the error position in `OP_ERR`; ref #3765Yukihiro "Matz" Matsumoto
2017-08-01Implements `Module::nesting' (15.2.2.3.2); ref #600, #3200Yukihiro "Matz" Matsumoto
2017-07-27Embed small size array elements in the heap.Yukihiro "Matz" Matsumoto
It reduces the memory consumption and sometimes improve the performance as well. For example, the consumed memory size of `bench/bm_ao_render.rb` is reduced from 1.2GB to 1GB, and its total execution time become 18.795 sec from 22.229 sec.
2017-07-27Remove loop from `OP_POPERR`.Yukihiro "Matz" Matsumoto
2017-07-25`0/0` should not be infinity; fix #3752Yukihiro "Matz" Matsumoto
2017-07-24Clear mrb_callinfo struct by zero initializer.Yukihiro "Matz" Matsumoto
2017-07-21Need to unshare env on OP_R_BREAK too.Yukihiro "Matz" Matsumoto
2017-07-21Move NULL check to `mrb_env_unshare()`; ref #3750Yukihiro "Matz" Matsumoto
2017-07-21Should not raise `LocalJumpError` on funcall'ed frame; fix #3750Yukihiro "Matz" Matsumoto
2017-07-19Avoid C undefined behavior of division by zero; close #3745Yukihiro "Matz" Matsumoto
2017-07-18Simplify `mrb_gc_arena_restore()` to reduce overhead.Yukihiro "Matz" Matsumoto
It will no longer shrink arena region. Instead `vm.c` uses a static function `mrb_gc_arena_shrink()` to shrink.
2017-07-12Add `inline` modifier to `cipush()` and `cipop()` functions.Yukihiro "Matz" Matsumoto
2017-07-05Check stack size before accessing env stack; fix #3727Yukihiro "Matz" Matsumoto
2017-07-01`break` should not cross fiber-context boundary; fix #3724Yukihiro "Matz" Matsumoto
2017-07-01`super` may be called from a block; fix #3723Yukihiro "Matz" Matsumoto
2017-06-21Should call `ecall()` before callinfo adjustment; fix #3715Yukihiro "Matz" Matsumoto
2017-06-20#3711 fixMiura Hideki
2017-06-17Store operands to local variables.Yukihiro "Matz" Matsumoto
Mostly for debugging purpose.
2017-06-16Allow `break` from a block called by `mrb_yield`; close #3359Yukihiro "Matz" Matsumoto
This means #3701 is now OK to merge.
2017-06-16Need to unshare env from top callinfo; fix #3685Yukihiro "Matz" Matsumoto
2017-06-15Call write barriers for stack-modified fibers; fix #3699Yukihiro "Matz" Matsumoto
2017-06-15Protect the last exception object from GC in `ecall`; fix #3702Yukihiro "Matz" Matsumoto
2017-06-15Save the register value in a local variable for ease of debugging.Yukihiro "Matz" Matsumoto
2017-06-15Ensure size of the stack before handling exceptions; fix #3693Yukihiro "Matz" Matsumoto
2017-06-15Ensure size of the stack in OP_CALL.Yukihiro "Matz" Matsumoto
2017-06-14Clear stack in OP_CALL; fix #3694Yukihiro "Matz" Matsumoto
2017-06-14Fixed uninitialized local variable bug; ref #3692Yukihiro "Matz" Matsumoto
2017-06-14Avoid out-of-bound access of VM stack in OP_SENDB; fix #3692Yukihiro "Matz" Matsumoto
2017-06-03Revert "Simplify rescue stack management; ref #3683"Yukihiro "Matz" Matsumoto
This reverts commit eb5a606fe209944d0757301edb331ed7ff0fd31f and 079f310fbc9c23b97f062230c32bd91ac65e4835. The rescue stack works differently from ensure stack, so the change caused #3686 and #3688. It might take long to solve the problems, so that I would revert the changes for now. Fix #3688
2017-06-03Check if a block is a lambda before marking it orphan; ref #3640Yukihiro "Matz" Matsumoto
2017-06-03Add checks for `break from proc-closure`; fix #3640Yukihiro "Matz" Matsumoto
2017-06-02Make `break` in lambdas work as `return` according to CRuby behavior.Yukihiro "Matz" Matsumoto
2017-06-02Adjust ridx if `mrb_yield` terminated by `break`; fix #3686Yukihiro "Matz" Matsumoto
This issue is related to #3640.
2017-06-01Call `stack_clear()` after `stack_extend()`; fix #3682Yukihiro "Matz" Matsumoto
2017-06-01Simplify rescue stack management; ref #3683Yukihiro "Matz" Matsumoto
2017-06-01Simplify ensure stack management; fix #3683Yukihiro "Matz" Matsumoto
2017-06-01Hide OP_EXEC lambda body from `ObjectSpace#each_object`; fix #3680Yukihiro "Matz" Matsumoto
2017-06-01Clear VM stack in OP_EXEC; ref #3678Yukihiro "Matz" Matsumoto
2017-06-01Simplify code since OP_EXEC never takes CFUNC Proc; #3678Yukihiro "Matz" Matsumoto
2017-05-31Reduce the size of VM stack clear window; ref #3676Yukihiro "Matz" Matsumoto
2017-05-31Clear VM stack for top level; fix #3676Yukihiro "Matz" Matsumoto
Top-level local variables contained junk after ab25eaea2
2017-05-30Check env context before jump from OP_RETURN; fix #3673Yukihiro "Matz" Matsumoto