dearblue
73c8330cbd
RBreak remembers the CI location
...
It is now possible to specify return destination directly.
This allows callinfo to distinguish between calls to the same proc object.
At the same time, the `Kernel#catch` method is adjusted.
By removing the previously required double lambda object, the REnv object is no longer created as well.
2023-12-07 21:33:14 +09:00
Yukihiro "Matz" Matsumoto
5a258f0872
Merge pull request #6109 from dearblue/fix-6108
...
Needs `cipop()` before crossing the C boundary
2023-12-06 15:57:16 +09:00
Yukihiro "Matz" Matsumoto
9c2af6aaed
load.c: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:29:02 +09:00
dearblue
ca9e8d91e4
Needs cipop() before crossing the C boundary
...
fix #6108
2023-12-05 22:03:38 +09:00
Yukihiro "Matz" Matsumoto
87453fb70b
vm.c (CI_PROC_SET): consider alias proc
2023-12-03 22:38:31 +09:00
Yukihiro "Matz" Matsumoto
e8da16cdf5
vm.c (exec_irep): need to support aliases
2023-12-03 22:38:30 +09:00
Yukihiro "Matz" Matsumoto
ccdd81eb69
Merge pull request #6101 from dearblue/unwinding
...
Reorganization of unwinding at `break` / `return`.
2023-11-22 08:11:15 +09:00
Yukihiro "Matz" Matsumoto
f2dc76e3b5
Change alias handling to avoid using mid in Env; ref 6098
...
Since `Env` objects are shared by Blocks/Procs in the same context,
making multiple aliases in one context screws up with alias names.
New implementation uses alias bodies (Procs) to refer new names.
As a side effect, `__callee__` stop working correctly for aliases.
To fix this `__callee__` problem, we need to keep alias method names in
`callinfo`, which consumes more memory. We are wondering that is worth
the compatibility.
2023-11-21 09:37:17 +09:00
Yukihiro "Matz" Matsumoto
9c1c9ba8e5
vm.c: rename local variable m to p
...
`m` usually stands for a method but this one was `struct RProc*`.
2023-11-19 23:21:05 +09:00
Yukihiro "Matz" Matsumoto
91b4da3a2b
class.c: keep alias flag in proc object; fix #6098
2023-11-16 17:18:28 +09:00
Yukihiro "Matz" Matsumoto
9959d4fc66
range.c: use presym for symbol initialization
2023-11-16 16:30:40 +09:00
Yukihiro "Matz" Matsumoto
a94005b740
range.c: use presym to initialize Range class
2023-11-16 16:27:57 +09:00
dearblue
2e881d3297
Reorganization of unwinding at break / return.
...
The unwinding process that has been done at each point in time is now done in a merged block after looking for the last ci to `break` / `return`.
2023-11-12 20:39:33 +09:00
Yukihiro "Matz" Matsumoto
76d0ff9a45
error.c: use presym for error initialization
2023-11-11 23:49:32 +09:00
Yukihiro "Matz" Matsumoto
8e6f4a79a8
hash.c: use presym to initialize Hash class
2023-11-11 23:48:31 +09:00
Yukihiro "Matz" Matsumoto
df1d397da5
numeric.c: use presym to initialize numeric classes
2023-11-11 23:48:31 +09:00
Yukihiro "Matz" Matsumoto
5084716e6b
class.c: use presym to undefine Module methods
2023-11-11 23:48:23 +09:00
Yukihiro "Matz" Matsumoto
d5a69ac8c7
proc.c: use presym to initialize Proc class
2023-11-07 21:40:45 +09:00
Yukihiro "Matz" Matsumoto
e41bbaa67a
class.c: move Proc class allocation to proc.c
2023-11-07 21:40:45 +09:00
Yukihiro "Matz" Matsumoto
eb906bd4c1
array.c: use presyms to define the class
2023-11-07 21:40:44 +09:00
Yukihiro "Matz" Matsumoto
1dec82d82f
object.c: use presyms to define classes
2023-11-07 21:40:44 +09:00
Yukihiro "Matz" Matsumoto
4fd63cfb9d
kernel.c: use presym to define a module
2023-11-07 21:40:44 +09:00
Yukihiro "Matz" Matsumoto
bc012deef9
object.c (mrb_eql): avoid mrb_funcall_argv() when possible
2023-11-02 13:20:10 +09:00
Yukihiro "Matz" Matsumoto
7db4050040
enum.c: use presym
2023-11-02 13:15:45 +09:00
Yukihiro "Matz" Matsumoto
1e3d47760f
Merge pull request #6090 from LanzaSchneider/patch-1
...
fix(class.c): typo in format specifiers
2023-11-02 08:20:39 +09:00
Yukihiro "Matz" Matsumoto
8708186692
Merge pull request #6091 from dearblue/binding.5
...
Fixed acquisition of wrong target class in `Kernel#binding`
2023-11-01 23:05:50 +09:00
Yukihiro "Matz" Matsumoto
c99b67db65
gc.c: use presym for GC initialization
2023-11-01 22:24:57 +09:00
Yukihiro "Matz" Matsumoto
c080d16150
string.c: use presym to define String class
2023-11-01 22:23:35 +09:00
Yukihiro "Matz" Matsumoto
571cb54f38
compar.c: remove unused file
2023-11-01 22:21:59 +09:00
dearblue
0b25c9d224
Fixed acquisition of wrong target class in Kernel#binding
...
fixed #6089
2023-10-28 18:24:41 +09:00
Lanza
4ae0bacc6e
fix(class.c): typo in format specifiers
2023-10-28 13:47:05 +08:00
Yukihiro "Matz" Matsumoto
ac73793a8f
range.c: use mrb_define_method_id() which directly use symbols
2023-10-25 22:01:54 +09:00
Yukihiro "Matz" Matsumoto
7a08c7042f
string.c: move __ENCODING__ from kernel.c
2023-10-25 15:05:10 +09:00
Yukihiro "Matz" Matsumoto
0443f14fd0
array.c,hash.c,numeric.c,string.c: use mrb_define_method_id()
...
For primary class libraries.
2023-10-23 15:23:08 +09:00
Yukihiro "Matz" Matsumoto
8ad825dc3b
class.c,kernel.c,object.c: use mrb_define_method_id()
...
Instead of mrb_define_method(), so that symbol resolution can be done in
compile-time.
2023-10-23 15:18:26 +09:00
Yukihiro "Matz" Matsumoto
0b8daabf27
object.c: fix wrong ISO section numbers
2023-10-23 12:26:51 +09:00
Yukihiro "Matz" Matsumoto
fe6f9faba4
vm.c: reduce number of check_method_noarg() calls
2023-10-22 22:04:58 +09:00
Yukihiro "Matz" Matsumoto
10d4a4278e
class.c: make keyword_max mrb_int; ref #4754
...
Which is compared to other mrb_int.
2023-10-17 13:27:19 +09:00
Yukihiro "Matz" Matsumoto
c22fbb2aa7
Merge pull request #6076 from dearblue/fiber-unwinding
...
Fixed unwinding block that could point to invalid PC
2023-10-13 20:33:03 +07:00
Yukihiro "Matz" Matsumoto
4c696ed9e3
array.c: set array size limitation again
...
Unlike strings, arrays occupies more memory. It is still arguable
whether the current limit (131072) is appropriate.
2023-10-13 18:01:21 +09:00
Yukihiro "Matz" Matsumoto
3277cc9ce1
numeric.c (int_to_s): avoid mrb_get_args()
2023-10-11 20:32:09 +09:00
Yukihiro "Matz" Matsumoto
717f91e5c6
array.c (mrb_ary_last): avoid mrb_get_args()
2023-10-11 20:31:23 +09:00
Yukihiro "Matz" Matsumoto
fae8e55396
pool.c (mrb_pool_realloc): add comments in reallocation code
2023-10-11 13:39:53 +09:00
Yukihiro "Matz" Matsumoto
64e08c6d99
pool.c: add cast to void*
2023-10-11 13:38:59 +09:00
Yukihiro "Matz" Matsumoto
5d53c2b951
pool.c: remove unused mrb_pool_can_realloc()
2023-10-10 22:31:34 +09:00
Yukihiro "Matz" Matsumoto
a538837fb1
pool.c (mrb_pool_realloc): do nothing if realloc() tries to shrink
2023-10-10 22:17:30 +09:00
dearblue
e7828bac4d
Fixed unwinding block that could point to invalid PC
...
Switching back from a fiber with an exception could point to an invalid PC.
The investigation was inspired by #6060 .
2023-10-10 21:29:38 +09:00
Yukihiro "Matz" Matsumoto
42a621b42e
pool.c: small refactoring regarding local variable declarations
2023-10-10 14:49:19 +09:00
John Bampton
24ac7a547a
Fix spelling
2023-10-04 01:17:23 +10:00
Yukihiro "Matz" Matsumoto
83d12f8d52
vm.c: GCC does not provide __has_feature()
2023-10-03 01:05:26 +09:00