Yukihiro "Matz" Matsumoto
|
87cc0344cd
|
Call stack_clear() after stack_extend(); fix #3682
|
2017-06-01 19:35:15 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
eb5a606fe2
|
Simplify rescue stack management; ref #3683
|
2017-06-01 19:18:24 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
7ff90b52d8
|
Simplify ensure stack management; fix #3683
|
2017-06-01 19:17:48 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
72b635f7d2
|
Hide OP_EXEC lambda body from ObjectSpace#each_object; fix #3680
|
2017-06-01 15:40:07 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
90fb4dd5b3
|
Print most recent call last as CPython does.
|
2017-06-01 09:48:04 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
a893877b0d
|
Check for super using OP_ARGARY; fix #3678
It generates a wasted empty array for each `super` call though.
It should be fixed in the future, if possible.
|
2017-06-01 09:38:42 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
b0f2bc39db
|
Clear VM stack in OP_EXEC; ref #3678
|
2017-06-01 08:45:56 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
eb69eebfd7
|
Simplify code since OP_EXEC never takes CFUNC Proc; #3678
|
2017-06-01 08:28:38 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
ff7df939ba
|
Restore MRB_API function mrb_exc_backtrace(mrb, exc); ref 9644ad5
|
2017-05-31 23:15:17 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
2837de95fe
|
Prevent splicing big recursive arrrays; ref #3679
We know this is not perfect, but this change makes hack like #3679
bit harder. Harmless for useful cases.
|
2017-05-31 23:03:39 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
b4a4e3c09a
|
Simplify the logic in mrb_realloc; ref #3679
|
2017-05-31 23:02:59 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
7dbbd77407
|
Revert 4566c80; fix #3679
The patch deallocate the memory in `mrb_default_allocf` but that
hinders GC in `mrb_realloc`.
|
2017-05-31 23:01:04 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
877f9d02e6
|
Avoid infinite loop on negative exponent; fix #3677
|
2017-05-31 09:53:19 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
acd3ac62a8
|
Reduce the size of VM stack clear window; ref #3676
|
2017-05-31 06:39:12 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
2599c1932e
|
Clear VM stack for top level; fix #3676
Top-level local variables contained junk after ab25eaea2
|
2017-05-31 00:18:32 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
ef1158485b
|
Check env context before jump from OP_RETURN; fix #3673
|
2017-05-30 15:42:10 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
27a5e10454
|
Avoid using C++ style comments (//).
|
2017-05-30 11:47:59 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
4b15d5d1e3
|
Initialize String before Exception; fix #3672
The old order generated some strings with their class set to NULL.
|
2017-05-30 11:38:54 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
650cfb9e4c
|
Exceptions in fibers must be re-raised via #resume; fix #3675
|
2017-05-30 11:06:00 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
cbd4aae41c
|
Mark the proc object representing top-level as an internal object; #3621
|
2017-05-29 14:13:17 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
abed375ea6
|
Mark proc objects representing methods as internal objects; fix #3621
|
2017-05-29 14:12:23 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
02670ffa8d
|
Protect the returning value in OP_RETURN; fix #3669
Even though the returning value is retrieved from the stack,
it may be freed if GC is caused during stack rewinding
(e.g. ensure calls).
|
2017-05-29 10:33:43 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
9f634a6f8b
|
Mark the current context (not root) in final marking.
|
2017-05-29 10:32:42 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
8e390cccae
|
Fixed rounding functions (round,ceil,floor,truncate) in MRB_INT64.
They didn't work well with inexact numbers (inf,nan). Fix #3671
|
2017-05-27 23:51:22 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
34dd258c63
|
Unwind callinfo (mrb->c->ci) when a fiber termitates with error.
Fix #3668
|
2017-05-27 18:42:08 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
57ffa1c150
|
Avoid unsharing env when context (mrb->c) differs; ref #3668
|
2017-05-27 18:40:15 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
54b45f6a1b
|
Use RData instead of String to represent backtrace.
|
2017-05-26 22:30:27 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
f269d1eb40
|
Distinguish OP_R_NORMAL and OP_R_RETURN.
|
2017-05-26 11:23:27 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
e3438f404a
|
Invoke ensure clauses on Fiber termination; fix #3666
Related to #3662
|
2017-05-26 10:50:51 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
83fc915213
|
Add new range check macro FIXABLE_FLOAT(); ref #3652
When MRB_INT64, valid value range of mrb_int is bigger than double,
which only has 53 bits significant precision.
|
2017-05-26 09:54:10 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
3c31278236
|
Fix indentation in mrb_init_numeric()
|
2017-05-26 09:31:45 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
535f13f3d7
|
fixup! Let Fixnum#{ceil,floor,round,truncate} to return itself; #3652
|
2017-05-26 09:29:39 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
c80696fcd3
|
Let Fixnum#{ceil,floor,round,truncate} to return itself; #3652
|
2017-05-26 09:25:16 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
06c4933f90
|
Try our own ipow() if both base and exp are fixnums; fix #3652
|
2017-05-26 02:19:07 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
9e40586d43
|
Add cast to mrb_int in mrb_fixnum() when MRB_WORD_BOXING.
Without this cast, `long int:63` can cause warnings.
|
2017-05-26 02:16:18 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
7e4731655f
|
Fixed off-by-one error in fiber_switch(); ref #3641
|
2017-05-26 01:24:28 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
f75f506181
|
Revert 01f7825; fix #3650
Redundant `mark_context() is far better than crashes.
|
2017-05-25 21:58:15 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
ac442bc1df
|
Raise an exception when transfer arguments are too many; fix #3641
The fix was proposed by @block8437. Thank you.
|
2017-05-25 21:39:13 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
de48d95c6d
|
Avoid marking possibly freed stack; #3550 #3612
|
2017-05-25 19:58:06 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
c53747dbdf
|
Revert "Use env preserved in Proc structure in ecall(); fix #3612"
This reverts commit e26e118604.
Fix #3664
|
2017-05-25 19:57:46 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
517cd51cea
|
Invoke ensure clauses before switching context from fibers; fix #3662
|
2017-05-25 14:36:25 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
ed16535c73
|
Clear top level env in mrb_top_run(); fix #3643
|
2017-05-25 14:13:54 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
f88cb88073
|
Avoid unsharing stack if env refers top-level; ref #3643
|
2017-05-25 14:13:16 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
e0931126ff
|
Check env stack length before OP_SETUPVAR; ref #3643
|
2017-05-25 14:12:16 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
e969229b77
|
Check backtrace info may not be set (esp. NoMemError); fix #3663
|
2017-05-25 12:56:19 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
5e1a6a2cc2
|
Make gen_assignment() to support NODE_SCALL; ref #3658
|
2017-05-25 12:40:49 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
4566c80d7b
|
Free given pointer if realloc() fails; fix #3658
|
2017-05-25 12:36:38 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
ff46957ef0
|
Avoid using mrb_raise() in mrb_vm_exec(); ref #3660
|
2017-05-25 11:11:40 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
3ef97e3dd9
|
Under MRB_INT64, width may be bigger than INT_MAX; fix #3665
|
2017-05-25 10:40:35 +09:00 |
|
Yukihiro "Matz" Matsumoto
|
9bca887ac4
|
Preserve the current pc before method_missing(); fix #3660
|
2017-05-25 10:31:48 +09:00 |
|