Yukihiro "Matz" Matsumoto
37cff2ceea
Merge pull request #6469 from dearblue/const-proc
2025-01-23 22:01:57 +09:00
Yukihiro "Matz" Matsumoto
5ed4a772f3
array.c (mrb_ary_unshift_m): defer mrb_get_argv call
2025-01-21 13:07:44 +09:00
Yukihiro "Matz" Matsumoto
3b6325ba3c
hash.c (mrb_hash_aset): use pre-assigned local variable
2025-01-21 13:07:44 +09:00
dearblue
a981f5aed7
Add more const qualifier for RProc
2025-01-20 22:25:50 +09:00
dearblue
1e504bb16a
Fixed missing changes to IB_FIND_BY_KEY() parameter names
...
This is a #6432 supplement.
2025-01-20 22:11:45 +09:00
Yukihiro "Matz" Matsumoto
ab3abdf5aa
print.c (mrb_print_m): need to copy argument array; fix #6467
2025-01-18 13:35:40 +09:00
Yukihiro "Matz" Matsumoto
e45ea53773
print.c: update the header comment
2025-01-15 14:27:22 +09:00
Yukihiro "Matz" Matsumoto
f9c1894087
print.c (printstrln): a new function to print string and newline
2025-01-15 09:19:34 +09:00
Yukihiro "Matz" Matsumoto
25bf1faa81
print.c: fixed link error from mrb_print_m with MRB_NO_STDIO; #6466
2025-01-15 09:12:36 +09:00
Yukihiro "Matz" Matsumoto
b9b505b5f2
kernel.c: define Kernel#print unless mruby-io is loaded; fix #6466
...
- In addition, merge mruby-print body in to print.c
2025-01-14 13:30:32 +09:00
Yukihiro "Matz" Matsumoto
187f27b00b
string.c (char_adjust): align arguments with char_backtrack
...
Also remove the unused argument.
2025-01-12 23:13:28 +09:00
Yukihiro "Matz" Matsumoto
a67c8f9335
string.c: use byte index for a string with binary encoding
2025-01-12 23:13:28 +09:00
Yukihiro "Matz" Matsumoto
c18cd60c4b
string.h: remove unused flag unset macros
2025-01-12 23:13:27 +09:00
Yukihiro "Matz" Matsumoto
0098654e1f
string.h: rename MRB_STR_EMBED_LEN_BITS (use plurality for bit width)
2025-01-12 23:13:26 +09:00
Yukihiro "Matz" Matsumoto
0a5acc0303
string.c (str_unshare_buffer): renamed function for more intuitive name
...
The old name `str_modify_keep_ascii` does not describe the function
behavior. It was named so since it was separated from the function
`mrb_str_modify_keep_ascii`.
2025-01-12 23:13:25 +09:00
Yukihiro "Matz" Matsumoto
8276143f03
object.h: remove MRB_SET_FROZEN_FLAG/MRB_UNSET_FROZEN_FLAG macros
...
Simple `o->frozen = 1/0` now works.
2025-01-07 13:56:30 +09:00
Yukihiro "Matz" Matsumoto
c11d18e426
object.h: unify MRB_FROZEN_P() and mrb_frozen_p()
2025-01-07 11:24:58 +09:00
Yukihiro "Matz" Matsumoto
21003746df
object.h: separate frozen flag to the independent bit-field
...
So that other flag operation do not break frozen flag.
2025-01-07 07:44:10 +09:00
Yukihiro "Matz" Matsumoto
a234c66c97
class.c: removed a mistakenly copied function
2025-01-06 22:15:58 +09:00
Yukihiro "Matz" Matsumoto
ef88c3b726
kernel.c: move Kernel#p to kernel.c from mruby-print
...
It's easier to skip `p` in the debugger if it's implemented in C.
2025-01-06 13:57:23 +09:00
Yukihiro "Matz" Matsumoto
0e79f6b34b
include/object.h: rename color to gccolor
...
To clarify the color is for garbage collection.
2025-01-03 19:12:40 +09:00
Yukihiro "Matz" Matsumoto
4582cc8579
string.c: rename type setting macro
2025-01-03 09:29:43 +09:00
Yukihiro "Matz" Matsumoto
9f59d26c35
class.c: adjust space around the operator
2024-12-30 22:45:13 +09:00
Yukihiro "Matz" Matsumoto
86a40189b4
class.c: remove _P suffix from non predicate
2024-12-28 11:18:46 +09:00
Yukihiro "Matz" Matsumoto
0b5ebf1b79
class.c: avoid using separate values in files
2024-12-27 18:49:35 +09:00
Yukihiro "Matz" Matsumoto
cf8e0f3f47
class.c: define MT_KEY_SHIFT (2) for the future
2024-12-27 18:39:46 +09:00
Yukihiro "Matz" Matsumoto
baeeb5e435
hash.c (mrb_hash_to_s): print :sym => val as sym: val
...
Ruby 3.4 changed the format of hash string representation. We follow.
2024-12-21 08:52:23 +09:00
Yukihiro "Matz" Matsumoto
aad7dce017
gc.c (mark_context_stack): use SET_NIL_VALUE macro to clear the stack
2024-12-19 16:20:46 +09:00
Yukihiro "Matz" Matsumoto
2f5c2d6b42
Revert "vm.c (OP_ENTER): clear all registers region in the stack"
...
This reverts commit 19385a8710 .
The issue is covered by 1003a6.
2024-12-16 19:26:56 +09:00
Yukihiro "Matz" Matsumoto
19385a8710
vm.c (OP_ENTER): clear all registers region in the stack
...
To keep GC away from touching uninitialized values
2024-12-15 23:23:07 +09:00
Hoshiumi Arata
52e1ebe191
mruby-bigint: handle rhs bigint in int_mod and int_divmod functions
2024-12-11 20:58:03 +09:00
dearblue
95e2f8e844
Fixed wrong range condition in OP_JMPUW
...
fixed #6441
2024-12-03 22:14:50 +09:00
Yukihiro "Matz" Matsumoto
4a99f28ec3
Revert "vm.c (cipush): small refactoring"
...
This reverts commit d6e23f3cdc .
Caused some memory crashes.
2024-12-03 16:48:48 +09:00
Yukihiro "Matz" Matsumoto
77e08c9193
ops.h: rename OP_LOADI to OP_LOADI8
...
OP_LOADI stores an 8 bit integer to a register, so we renamed the
instruction name to describe the behavior more precisely, like
OP_LOADI16 and OP_LOADI32.
2024-12-01 19:16:54 +09:00
Yukihiro "Matz" Matsumoto
d6e23f3cdc
vm.c (cipush): small refactoring
...
- simplified if-statement
- rename local variable size to diff (means diff between cibase & ci).
2024-11-30 11:13:38 +09:00
Yukihiro "Matz" Matsumoto
5b69185171
dump.c (mrb_dump_irep): skip lv section if MRB_DUMP_NO_LVAR is set
2024-11-29 16:29:18 +09:00
Yukihiro "Matz" Matsumoto
673d71ffca
dump.c (mrb_dump_irep): reorganize if-structure
2024-11-28 10:14:06 +09:00
Yukihiro "Matz" Matsumoto
8a25c424a4
dump.c: remove unnecessary braces around return
2024-11-28 04:54:20 +09:00
Yukihiro "Matz" Matsumoto
b1091e7c64
dump.c: use post-decrements
2024-11-28 04:54:19 +09:00
dearblue
fd97241cd6
Moving code in macro arguments out of macros
...
In `src/hash.c`, there are code blocks that are passed as macro arguments.
These code blocks are interpreted as part of the macro function, so breakpoints cannot be set in the debugger.
Also, the gcov command will aggregate them to the caller, and the code in the block will not be counted.
This patch will prevent them from being interpreted as part of a macro, and thus the aforementioned problems will no longer occur.
2024-11-21 22:52:29 +09:00
Yukihiro "Matz" Matsumoto
4a54b551e8
hash.c (ht_set): inline ht_set_without_ib_adjustment()
2024-11-21 07:59:11 +09:00
Yukihiro "Matz" Matsumoto
33357d4f35
hash.c (ht_set_without_ib_adjustment): need to skip tombstone; #6421
...
If a tombstone (a deleted entry slot) is found in searching the entry,
it should be skipped, but we had added the new entry even if the entry
to be replaced might be found in the further search. #6414 and #6421
tried to rehash the table to remove tombstone. But rehashing consumes
memory. So for the time being, we just skip tombstones in the search.
Maybe we will add some heuristics to rehash when the table has too many
tombstones. close #6414
2024-11-20 10:52:39 +09:00
dearblue
0337e0e0f1
Need to update ci variable after re-entry to VM
...
Some functions called by `mrb_vm_exec()` involve re-entry into the mruby VM.
If the `ci` variable is not updated after re-entry, use-after-free is caused.
This patch makes the following after-call fixes.
| called | might call methods
| ----------------------- | ----------------
| `mrb_ary_splat()` | `#to_a`
| `hash_new_from_regs()` | `#eql?` `#hash`
| `mrb_hash_delete_key()` | `#eql?` `#hash`
| `mrb_hash_get()` | `#eql?` `#hash` `#default`
| `mrb_hash_key_p()` | `#eql?` `#hash`
| `mrb_hash_merge()` | `#eql?` `#hash`
| `mrb_hash_set()` | `#eql?` `#hash`
| `mrb_range_new()` | `#<=>`
2024-11-19 22:47:04 +09:00
dearblue
9501c3f58c
Add annotations for function names defined in the preprocessor
2024-11-16 20:50:49 +09:00
Yukihiro "Matz" Matsumoto
a247f48cf6
Merge pull request #6416 from hoshiumiarata/optimize_class_new_iseq
2024-11-15 15:42:57 +09:00
Yukihiro "Matz" Matsumoto
ab3bc12fcb
class.c: remove 'class' prefix from error messages
2024-11-15 15:33:14 +09:00
Yukihiro "Matz" Matsumoto
a109599d53
vm.c (prepare_missing): add receiver's class in superclass calls
2024-11-15 15:15:08 +09:00
Yukihiro "Matz" Matsumoto
65e0e5bbd3
class.c (mrb_method_missing): add receiver's class to clarify
...
We needed to modify a lot of test code that expected the old style.
2024-11-15 15:13:24 +09:00
Hoshiumi Arata
0b1d55a088
class.c: replace OP_SEND with OP_SSEND in "new" method's iseq
2024-11-13 18:34:16 +09:00
Yukihiro "Matz" Matsumoto
5387b74be7
hash.c (mrb_hash_to_s): put spaces around =>
...
CRuby 3.4 puts spaces around `=>` since for example `{:a!=>2}` can be
confusing where to separate tokens. mruby should follow the behavior.
Many tests in `test/t` directory assumed no spaces around `=>`, so we
needed to fix them too.
2024-11-11 11:07:43 +09:00