pyama86
54246db00a
irep is released when Fiber is terminated
2018-08-06 19:13:19 +09:00
Yukihiro "Matz" Matsumoto
0dca6206c1
Rename ambiguous function names.
...
`mrb_iv_p` -> `mrb_iv_name_sym_p`
`mrb_iv_check` -> `mrb_iv_name_sym_check`
2018-08-06 10:15:55 +09:00
Yukihiro "Matz" Matsumoto
8f386f7663
Remove utility functions: mrb_vm_iv_{get,set}.
2018-08-06 10:15:55 +09:00
Yukihiro "Matz" Matsumoto
14c7a9c548
Revert 04dbbff.
...
Use segment list for instance variable again to reduce memory.
2018-08-06 10:15:55 +09:00
Yukihiro "Matz" Matsumoto
005ccd9c7e
Small refactoring of flodivmod().
2018-08-06 10:15:55 +09:00
Yukihiro "Matz" Matsumoto
4713cd9eb7
Simply use snprintf instead of custom fmt_fp,
...
Unless `MRB_DISABLE_STDIO` is set. `snprintf` is used anyway
if mruby is configured to use `stdio`. This change reduces 8KB
of program size on the Linux box.
2018-08-01 16:50:44 +09:00
Yukihiro "Matz" Matsumoto
b9817b00a4
Remove nregs member from mrb_callinfo.
...
This means reducing one word per a call frame.
2018-08-01 13:18:32 +09:00
Yukihiro "Matz" Matsumoto
8558627b9b
Reorganize flags values for classes; fix #3975
...
Renamed flag macro names as well:
`MRB_FLAG_IS_FROZEN` -> `MRB_FL_OBJ_FROZEN`
`MRB_FLAG_IS_PREPENDED` -> `MRB_FL_CLASS_IS_PREPENDED`
`MRB_FLAG_IS_ORIGIN` -> `MRB_FL_CLASS_IS_ORIGIN`
`MRB_FLAG_IS_INHERITED` -> `MRB_FL_CLASS_IS_INHERITED`
2018-07-31 16:48:50 +09:00
Yukihiro "Matz" Matsumoto
adb1eae912
Use mrb_raise() instead of mrb_raisef(); ref #4062
2018-06-28 22:40:24 +09:00
Yukihiro "Matz" Matsumoto
695f29cd60
Add negative check in mrb_str_resize; fix #4062
2018-06-27 16:32:24 +09:00
Yukihiro "Matz" Matsumoto
7e79840587
initialize a local variable to avoid warning
2018-06-22 12:03:52 +09:00
Yukihiro "Matz" Matsumoto
97933665b6
Restore GC arena after raised exceptions; ref #4042
2018-06-14 11:42:34 +09:00
Yukihiro "Matz" Matsumoto
ba090a46af
Need to add a write barrier for ranges; fix #4042
...
Ranges are almost immutable but `initialize` and `initialize_copy`
modify the receiver so that we need to add a write barrier.
2018-06-14 11:25:12 +09:00
Yukihiro "Matz" Matsumoto
23a4e7149d
Revert "No longer need to insert write barriers for fibers."
...
This reverts commit c6736357a7 .
The assumption was wrong and caused the issue; fix #4020
2018-06-11 14:50:42 +09:00
Yukihiro "Matz" Matsumoto
a9b740b36b
Retrieve b operand from the instruction (for debugging); ref #4020
2018-06-11 14:50:03 +09:00
Yukihiro "Matz" Matsumoto
faa4eaf680
mrb_class_real() did not work for BasicObject; fix #4037
2018-06-08 14:13:06 +09:00
Yukihiro "Matz" Matsumoto
55edae0226
Allow Object#clone to copy frozen status only; fix #4036
...
Copying all flags from the original object may overwrite the clone's
flags e.g. the embedded flag.
2018-06-07 16:17:00 +09:00
Yukihiro "Matz" Matsumoto
55dcdd26cc
Merge pull request #4039 from i110/i110/fix-broken-lexical-variables
...
fix broken lexical variables
2018-06-07 16:02:30 +09:00
Yukihiro "Matz" Matsumoto
ff0a4f7867
Export stack_extend function (renamed mrb_stack_extend); fix #3219
...
This change is required to support #4038 .
2018-06-07 15:55:20 +09:00
Ichito Nagata
c2b2bec9e2
Revert "Fix heap use after free on mruby-aws-sigv4."
...
This reverts commit b8869498b7 .
2018-06-06 15:04:58 +09:00
Ichito Nagata
edaa7a1ba1
fix env->stack misadjusting
2018-06-03 19:40:33 +09:00
Yukihiro "Matz" Matsumoto
395260747a
Instead of defining Hash#dup, we should define Hash#initialize_copy.
...
`Hash#clone` did not work properly; fix #4030
2018-06-01 22:40:42 +09:00
Yukihiro "Matz" Matsumoto
f408143c28
The clone method should copy object status (e.g. frozen) too; #4030
2018-06-01 22:39:40 +09:00
Yukihiro "Matz" Matsumoto
b64ce17852
Should not call initialize_copy for TT_ICLASS; fix #4027
...
Since `TT_ICLASS` is a internal object that should never be revealed
to Ruby world.
2018-05-30 17:05:40 +09:00
Yukihiro "Matz" Matsumoto
1dddc2f712
Clear __classname__ of duped class/module; ref #4027
2018-05-30 17:05:05 +09:00
Yukihiro "Matz" Matsumoto
14c21793a0
Check if the exception is frozen; fix #4025
...
`exc_debug_info()` and `mrb_keep_backtrace()` raise `FrozenError`
if the exception is frozen and lead to infinite loop.
2018-05-23 08:30:50 +09:00
Yukihiro "Matz" Matsumoto
72581696d3
env referred from top-level callinfo should not be unshared; fix #4019
...
Because `mirb` keeps top-level environment across each iteration.
2018-05-03 15:15:30 +09:00
Yukihiro "Matz" Matsumoto
2d4c092de7
Need to call mrb_str_modify() in mrb_str_cat_str(); fix #4018
...
If `str` and `str2` are the same string object `str->ptr` may be
rewritten by `mrb_str_modify()`.
2018-05-02 22:50:55 +09:00
Yukihiro "Matz" Matsumoto
028e34d345
Update MRB_FLO_TO_STR_FMT to "%.16g"; fix #4016
2018-05-01 17:21:01 +09:00
Yukihiro "Matz" Matsumoto
59c8fdd651
Update OP_APOST description; ref #4008
2018-04-28 15:36:23 +09:00
Yukihiro "Matz" Matsumoto
0fee6e1ee9
Fix broken support of MRB_WITHOUT_FLOAT; fix #4015
2018-04-28 15:15:28 +09:00
Yukihiro "Matz" Matsumoto
50a9c5d7c7
Update the patch to not use funcall in C; ref #4013
2018-04-28 11:26:23 +09:00
kimu_shu
4b29abc565
Fix Enumerable#hash on non 32-bit integer conf.
2018-04-28 11:26:23 +09:00
Takeshi Watanabe
b8869498b7
Fix heap use after free on mruby-aws-sigv4.
2018-04-27 10:45:59 +09:00
Kouhei Sutou
4194fe9d65
Fix wrong the number of marked objects of MRB_TT_ENV in gray mark phase
...
If MRB_TT_ENV has stack shared flag or bidx flag, flags is too large
than the real stack size.
2018-04-26 15:25:36 +09:00
Takeshi Watanabe
e66c990234
Fix array replace leak error in mruby-uri.
2018-04-25 13:27:00 +09:00
Takeshi Watanabe
25c40c2f12
Fix undefined error of pointer dereference.
2018-04-23 12:06:13 +09:00
Yukihiro "Matz" Matsumoto
54905e98cf
ary_dup() should not use `ary_replace(); fix #4004
...
Otherwise the duplicated object may have shared entities that
should not be modified in-line.
2018-04-18 17:30:33 +09:00
Yukihiro "Matz" Matsumoto
391e24210f
A new function ary_from_values(); ref #4004
2018-04-18 17:29:45 +09:00
Yukihiro "Matz" Matsumoto
135b4773e3
Turn off major GC mode before full GC; fix #4000
2018-04-18 00:18:03 +09:00
Takeshi Watanabe
87ef6aeb02
Fallback to float when caompiled binary with 64bit compiler.
...
closes #3997 .
2018-04-17 22:59:07 +09:00
Yukihiro "Matz" Matsumoto
0e76faed8c
Make ary_replace() to share entry buffers if possible.
2018-04-17 17:21:45 +09:00
Yukihiro "Matz" Matsumoto
5c15aa2f3b
Make ary_concat() to replace the receiver when it is empty.
2018-04-17 12:34:30 +09:00
Yukihiro "Matz" Matsumoto
c078783a5a
Make ary_replace() to take struct RArray* argument.
2018-04-17 12:33:01 +09:00
Yukihiro "Matz" Matsumoto
d88191e7e7
Implement Array#__svalue in C.
2018-04-17 11:32:31 +09:00
Yukihiro "Matz" Matsumoto
fabc460880
Invoke full GC when too many objects allocated during GC; fix #3998
...
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-14 06:18:49 +09:00
Yukihiro "Matz" Matsumoto
3b273243e6
Change MAJOR_GC_INC_RATIO to 120; ref #3998
...
Because 200% is consumes too much memory for some cases.
2018-04-14 06:13:00 +09:00
Yukihiro "Matz" Matsumoto
fc85016a32
Remove DEFAULT_ from DEFAULT_MAJOR_GC_INC_RATIO; ref #3998
...
Because unlike other GC ratio constants, it's not a default value.
2018-04-14 06:12:12 +09:00
Yukihiro "Matz" Matsumoto
c6736357a7
No longer need to insert write barriers for fibers.
...
Those barriers are inserted to fix #3699 but all living fibers are
marked from `mark_context()` anyway now.
2018-04-13 23:46:40 +09:00
Yukihiro "Matz" Matsumoto
e3e87ee26a
The #3871 fix caused wrong break from proc-closure error; fix #3996
2018-04-13 21:56:45 +09:00