Commit Graph

6028 Commits

Author SHA1 Message Date
Yukihiro "Matz" Matsumoto aba9a7d053 class.c: #initialize should be private by default
Fixed wrong condition.
2025-03-07 17:17:46 +09:00
Yukihiro "Matz" Matsumoto c22f527bac symbol.c (SYMBOL_INLINE_P): fix the check condition
Symbol `:_` would break the assertion.
2025-03-07 17:17:46 +09:00
Yukihiro "Matz" Matsumoto 6a61cd9373 kernel.c: make #respond_to_missing? private 2025-03-07 17:17:46 +09:00
Yukihiro "Matz" Matsumoto ff6149dea7 kernel.c: removed some Kernel singleton methods
Since virtually no one calls `Kernel.block_given?` but just
`block_given?`. For the cases `raise` is redefined (like Ruby/Tk),
`Kernel.raise` is kept.
2025-03-07 17:17:44 +09:00
Yukihiro "Matz" Matsumoto efc03f60af proc.c: make #lambda private 2025-03-07 17:17:43 +09:00
Yukihiro "Matz" Matsumoto cfc104e66c class.c (mrb_define_module_function): make instance method private 2025-03-07 17:17:42 +09:00
Yukihiro "Matz" Matsumoto 4122cee9e4 class.c: implement attr_accessor in C 2025-03-07 17:17:39 +09:00
Yukihiro "Matz" Matsumoto 27828de749 kernel.c: make some methods private
- block_given?
- initialize_copy
- iterator?
- p
- print
- raise
- respond_to_missing?
2025-03-07 17:17:38 +09:00
Yukihiro "Matz" Matsumoto 7d2beb9fef class.c (mrb_remove_method): should call hook method from the origin
MRB_CLASS_ORIGIN moves the pointer for prepended class/module, but the
hook method should be searched from the original class/module.
2025-03-07 17:17:38 +09:00
Yukihiro "Matz" Matsumoto 6168b15e0e class.c (undef_method): call hook method when undef'ing a method 2025-03-07 17:17:38 +09:00
Yukihiro "Matz" Matsumoto bcd0e0e439 class.c (mrb_remove_method): call hook method
Depending the context, hook method should be either method_removed or
singleton_method_removed.
2025-03-07 17:17:38 +09:00
Yukihiro "Matz" Matsumoto 0863c08841 class.c: implement singleton method hook methods
- singleton_method_removed
- singleton_method_undefined
2025-03-07 17:17:37 +09:00
Yukihiro "Matz" Matsumoto 9c74f6e908 class.c: implement method hook methods
- method_removed
- method_undefined
2025-03-07 17:17:37 +09:00
Yukihiro "Matz" Matsumoto eb8b4120d7 class.c: initialize method needs to be private by default 2025-03-07 17:17:37 +09:00
Yukihiro "Matz" Matsumoto e660e28a39 class.c: make some Module methods private
- append_features
- extend_object
- extended
- included
- initialize
- method_added
- module_function
- prepend_features
- prepended
- private
- protected
- public
- remove_const
2025-03-07 17:17:36 +09:00
Yukihiro "Matz" Matsumoto f5150ab98a class.c: make some Class methods private
- initialize
- inherited
2025-03-07 17:17:36 +09:00
Yukihiro "Matz" Matsumoto c5e270e8f3 class.c: make some BasicObject methods private
- initialize
- singleton_method_added
- method_missing
2025-03-07 17:17:36 +09:00
Yukihiro "Matz" Matsumoto ca20017ac9 class.c: implement mrb_define_private_method() 2025-03-07 17:17:36 +09:00
Yukihiro "Matz" Matsumoto 71c0de7f08 class.c (mrb_define_method_raw): take visibility from the class
If not explicitly specified in the method struct.
2025-03-07 17:17:36 +09:00
Yukihiro "Matz" Matsumoto fdf71d8f2d class.c: first step to private methods; #1835
Now each method entry holds visibility information in flag bits.
2025-03-07 17:17:34 +09:00
Yukihiro "Matz" Matsumoto 3a3e877ae5 codedump.c: update OP_DEF output
OP_DEF takes R(a) as a class to define a method, sym(b) as a method
name, and R(a+1) as a method body. So we added `(R(a+1))` in the output.
2025-03-07 17:17:34 +09:00
Yukihiro "Matz" Matsumoto 6442a012c8 symbol.c (SYMBOL_INLINE_P): inline symbol to occupy 26 bits in mrb_sym
It used to occupy 30 bits, but we need 2 more bits to keep method
visibility in the method tables.
2025-03-07 17:17:33 +09:00
Yukihiro "Matz" Matsumoto 3e6abfd21c symbol.c (sym_inline_pack): set pack_length_max to 4 2025-03-07 17:17:33 +09:00
dearblue 76fc6e9ace Fixed buffer overrun in function chars2bytes()
If `off` was greater than zero, the address pointed to by `e` exceeded the valid range of the buffer.
2025-02-26 21:22:37 +09:00
dearblue b86c220384 Avoid array object creation with “unknown keyword” error
It is sufficient to return the first element.
2025-02-02 21:02:03 +09:00
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