summaryrefslogtreecommitdiffhomepage
path: root/src
AgeCommit message (Collapse)Author
2018-04-18`ary_dup()` should not use `ary_replace(); fix #4004Yukihiro "Matz" Matsumoto
Otherwise the duplicated object may have shared entities that should not be modified in-line.
2018-04-18A new function `ary_from_values()`; ref #4004Yukihiro "Matz" Matsumoto
2018-04-18Turn off major GC mode before full GC; fix #4000Yukihiro "Matz" Matsumoto
2018-04-17Fallback to float when caompiled binary with 64bit compiler.Takeshi Watanabe
closes #3997.
2018-04-17Make `ary_replace()` to share entry buffers if possible.Yukihiro "Matz" Matsumoto
2018-04-17Make `ary_concat()` to replace the receiver when it is empty.Yukihiro "Matz" Matsumoto
2018-04-17Make `ary_replace()` to take `struct RArray*` argument.Yukihiro "Matz" Matsumoto
2018-04-17Implement `Array#__svalue` in C.Yukihiro "Matz" Matsumoto
2018-04-14Invoke full GC when too many objects allocated during GC; fix #3998Yukihiro "Matz" Matsumoto
When object allocation rate during incremental GC is too high, the `gc->majorgc_old_threshold` becomes too big. This means major GC start slower and old objects stay longer (and consume too much memory).
2018-04-14Change `MAJOR_GC_INC_RATIO` to 120; ref #3998Yukihiro "Matz" Matsumoto
Because 200% is consumes too much memory for some cases.
2018-04-14Remove `DEFAULT_` from `DEFAULT_MAJOR_GC_INC_RATIO`; ref #3998Yukihiro "Matz" Matsumoto
Because unlike other GC ratio constants, it's not a default value.
2018-04-13No longer need to insert write barriers for fibers.Yukihiro "Matz" Matsumoto
Those barriers are inserted to fix #3699 but all living fibers are marked from `mark_context()` anyway now.
2018-04-13The #3871 fix caused wrong `break from proc-closure` error; fix #3996Yukihiro "Matz" Matsumoto
2018-04-13Add `fallthrough` comment to silence gcc warning.Yukihiro "Matz" Matsumoto
2018-04-13Silence gcc initializer warning.Yukihiro "Matz" Matsumoto
2018-04-11Check length of env stack before accessing upvar; fix #3995Yukihiro "Matz" Matsumoto
2018-04-05Adjust environment when `mrb_exec_irep` happened.Takeshi Watanabe
2018-03-24Return nil if type differ in `String#<=>`.Takeshi Watanabe
2018-03-22Need to keep block argument in `mrb_exec_irep`; fix #3973Yukihiro "Matz" Matsumoto
2018-03-20Needed to set `ci->proc` in `OP_SUPER`; fix #3966Yukihiro "Matz" Matsumoto
2018-03-19Set array length after expanding capacity.Takeshi Watanabe
2018-03-16Update `mrb_get_args` reference comment; ref #3963Yukihiro "Matz" Matsumoto
2018-03-04fix && to &! in mrb_get_args()dearblue
2018-03-04add forced block arguments feature to mrb_get_argsdearblue
2018-02-13Check if `to_int` returns `fixnum` value; fix #3946Yukihiro "Matz" Matsumoto
2018-02-12`String#inspect` to use hexadecimal, not octal to print unprintable.Yukihiro "Matz" Matsumoto
2018-02-09Check `ensure` proc is NULL before calling; fix #3943Yukihiro "Matz" Matsumoto
2018-02-02Fix possible memory access error.Takeshi Watanabe
2018-01-30Need not to pop `callinfo` on `OP_STOP`.Yukihiro "Matz" Matsumoto
2018-01-25Check `arena_idx` before accessing; fix #3934Yukihiro "Matz" Matsumoto
2018-01-17Detect cyclic link of class path references; fix #3926Yukihiro "Matz" Matsumoto
2018-01-17Typo fixed.Yukihiro "Matz" Matsumoto
2017-12-23Do not include object string representation in `NoMethodError` message.Yukihiro "Matz" Matsumoto
This information is not mandatory but causes a lot of problems in the past due to infinite recursion by redefining `to_str`, `inspect` etc.
2017-12-23`super` should raise `TypeError` when the receiver is switched; fix #3911Yukihiro "Matz" Matsumoto
The receiver can be switched using `#instance_eval` etc.
2017-12-23Avoid infinite recursion in `method_missing`; ref #3908Yukihiro "Matz" Matsumoto
2017-12-23May need more stack space in `mrb_funcall_with_block`; fix #3908Yukihiro "Matz" Matsumoto
2017-12-23Should not overwrite `ci->target_class` in `mrb_exec_irep()`.Yukihiro "Matz" Matsumoto
For example, the following code behaved wrong: ```ruby Object.instance_exec(1,2,3){|*a| def foo 42 end } p foo() ```
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-20Do not need to take `target_class` from the upper proc.Yukihiro "Matz" Matsumoto
Since it is already set in `mrb_proc_new()`.
2017-12-20Should not overwrite `MRB_PROC_TARGET_CLASS(p)` if `p` has env; fix #3905Yukihiro "Matz" Matsumoto
2017-12-20Fixed method look-up for `method_missing` in OP_SUPER; ref #3905Yukihiro "Matz" Matsumoto
Method look-up for `OP_SUPER` should start from the superclass of the `target_class` but if it fails, the look-up for `method_missing` should start from the class of the receiver. The following code explains the case: ```ruby class Bar def foo super end end class Foo<Bar def method_missing(mid, *) p mid end end ``` Foo.new.foo
2017-12-20The superclass info should be taken from `TARGET_CLASS(ci->proc).Yukihiro "Matz" Matsumoto
Not from `ci->target_class` that may be switched using `class_eval` etc. fix #3899, fix #3906 We found out there is a mruby specific limitation that `super` may be screwed up when a method is defined in a module and `super` is called in the block with the target class switched (for example, `super` in `class_eval` block). Now we raise `RuntimeError` for such cases. The following code works in CRuby but not in mruby. ``` module M def foo "aaa".singleton_class.class_eval{super 2} end end class Foo def foo(*); end end class Bar<Foo include M end Bar.new.foo ```
2017-12-16Need to set `ci->proc` before calling methods; fix #3902Yukihiro "Matz" Matsumoto
2017-12-16Need to clear exception handler on `return`; fix #3898Yukihiro "Matz" Matsumoto
2017-12-15Check if destinations are too distant; fix #3900 fix #3901Yukihiro "Matz" Matsumoto
2017-12-13Retrieve operands at the beginning of `OP_SCLASS`.Yukihiro "Matz" Matsumoto
2017-12-13Fixed wrong `MRB_WITHOUT_FLOAT` condition; ref #3827Yukihiro "Matz" Matsumoto
2017-12-12Modifying frozen objects will raise `FrozenError`.Yukihiro "Matz" Matsumoto
`FrozenError` is a subclass of `RuntimeError` which used to be raised. [Ruby2.5]
2017-12-07Cancel df3507660 that does not do any good.Yukihiro "Matz" Matsumoto
2017-12-07Avoid updating to reallocated stack in `OP_RETURN`; fix #3870Yukihiro "Matz" Matsumoto
The code was introduced to address #3175 but it's no longer needed.