Commit Graph

6150 Commits

Author SHA1 Message Date
google-labs-jules[bot] b4826fdbcf Fix: Correct placement of comments in src/variable.c
This commit corrects the placement of C-style block comments
for MRB_API functions in src/variable.c. Comments are now
placed directly before each function definition as per standard
documentation practices.
2025-06-05 23:13:42 +00:00
Yukihiro "Matz" Matsumoto a3e72804cd range.c: add descriptive comments to MRB_API functions in src/range.c
This commit adds descriptive comments to the following functions:

- mrb_range_ptr
- mrb_range_new
- mrb_range_beg_len

The comments were written by Google Jules.
2025-06-04 11:03:35 +09:00
google-labs-jules[bot] e68eafd511 Add descriptive comments for MRB_API functions in src/class.c
This commit adds C-style block comments to all MRB_API functions
defined in the src/class.c file. The comments explain the purpose
of each function, its parameters, and its return value, aiming to
improve code readability and maintainability.
2025-06-04 01:59:44 +00:00
Yukihiro "Matz" Matsumoto 8e0081923f Merge pull request #6543 from mruby/add-comments-dump-c-partial 2025-06-03 09:01:56 +09:00
google-labs-jules[bot] c837d386de Add descriptive comments to several functions in src/dump.c
This commit adds Doxygen-style comments to the following functions
in src/dump.c, ensuring "@brief" is not used:

Non-static functions (comments reviewed/updated):
- mrb_dump_irep
- mrb_dump_irep_binary
- mrb_dump_irep_cfunc

Static functions (new comments added):
- write_irep_header
- write_iseq_block
- dump_float (if compiled)
- get_pool_block_size
- write_pool_block
- get_syms_block_size
- write_syms_block
- get_irep_record_size

This work is part of a larger effort to document all non-trivial
functions in this file as per your feedback. The remaining functions
will be documented in subsequent commits.
2025-06-03 00:01:24 +00:00
Yukihiro "Matz" Matsumoto c3d2b903c6 error.c: add descriptive comments
The comments are written by Google Jules.
2025-06-03 08:53:06 +09:00
Yukihiro "Matz" Matsumoto 83b21e8fd6 Merge pull request #6542 from mruby/add-symbol-comments 2025-06-03 08:43:23 +09:00
google-labs-jules[bot] e8458f9c22 Add descriptive comments to MRB_API functions in src/symbol.c
This commit adds descriptive comments to all functions marked with MRB_API
in the `src/symbol.c` file. The comments explain the purpose, parameters,
and return values of these functions, improving code readability and
maintainability.

The following functions were commented:
- mrb_intern
- mrb_intern_static
- mrb_intern_cstr
- mrb_intern_str
- mrb_intern_check
- mrb_check_intern
- mrb_intern_check_cstr
- mrb_check_intern_cstr
- mrb_intern_check_str
- mrb_check_intern_str
- mrb_sym_name_len
- mrb_sym_str
- mrb_sym_name
- mrb_sym_dump
2025-06-02 23:42:40 +00:00
Yukihiro "Matz" Matsumoto 46b8e80d9e Merge pull request #6541 from mruby/add-api-comments-array 2025-06-02 08:48:57 +09:00
google-labs-jules[bot] 7f3329e393 Add descriptive comments for MRB_API functions in src/array.c
This change adds C-style multiline comments to all functions
marked with MRB_API in the src/array.c file.

The comments explain each function's purpose, its parameters,
and what it returns, where applicable. This improves the
readability and maintainability of the C API for mruby arrays.

The `@brief` markup was intentionally avoided as per your
requirements.
2025-06-01 23:48:11 +00:00
google-labs-jules[bot] 493cc64902 hash.c: add descriptive comments to C-facing MRB_API hash functions
This commit adds C-style descriptive comments to MRB_API functions
in `src/hash.c` that are intended for use as part of mruby's C API.
The comments are targeted at C developers using these functions directly.

Comments were added or updated for the following functions:
- mrb_hash_new: Added comment.
- mrb_hash_new_capa: Updated existing comment to be more C API user-centric.
- mrb_hash_dup: Added comment.
- mrb_hash_get: Added comment.
- mrb_hash_fetch: Added comment.
- mrb_hash_set: Added comment.
- mrb_hash_delete_key: Added comment.
- mrb_hash_size: Added comment.
- mrb_hash_merge: Added comment.
- mrb_hash_foreach: Comment updated in a previous phase of work.

This work aligns with the guideline to comment C-facing MRB_API functions,
while avoiding adding new C-API comments to those MRB_API functions
that solely implement Ruby methods and already have extensive Ruby
method documentation (call-seq) in the source. The @brief markup
was avoided as per the original issue request.
2025-06-01 17:57:30 +09:00
Yukihiro "Matz" Matsumoto ec68497a39 Merge pull request #6540 from mruby/add-comments-object-c 2025-05-31 22:48:02 +09:00
google-labs-jules[bot] f4b56a5e56 Add descriptive comments to MRB_API functions in object.c
This commit adds and updates C-style block comments for all functions marked with MRB_API in src/object.c.

The comments explain the purpose, parameters, and return values of these functions, adhering to the project's documentation style and avoiding the use of '@brief' markup.

Existing comments were also reviewed and updated for clarity and consistency.
2025-05-31 13:45:31 +00:00
google-labs-jules[bot] 5924a23b8d Here's the rewritten message:
Add descriptive comments for MRB_API functions in src/string.c

This commit adds descriptive comments to various MRB_API functions
within the src/string.c file. These comments aim to improve code
readability and maintainability by explaining the purpose,
parameters, and return values of these functions.
2025-05-31 13:44:19 +00:00
Yukihiro "Matz" Matsumoto df62559ddb Merge pull request #6537 from mruby/add-cdump-comments 2025-05-30 07:24:00 +09:00
Yukihiro "Matz" Matsumoto b925d6fee4 Merge pull request #6536 from mruby/add-debug-comments 2025-05-30 07:23:45 +09:00
google-labs-jules[bot] bee56a8634 The comments in cdump.c have been updated to remove the @brief tag from the Doxygen-style comment for the mrb_dump_irep_cstruct function. This change was made based on your feedback.
The rest of the comment, which details the function's purpose, parameters, return values, and conditional compilation, remains unchanged.
2025-05-29 22:22:07 +00:00
Yukihiro "Matz" Matsumoto 0011ee2267 Merge pull request #6535 from mruby/add-mempool-comments 2025-05-29 10:06:32 +09:00
google-labs-jules[bot] a668834b2d Add descriptive comments to public functions in src/debug.c
This change adds Doxygen-style comments to the public API functions
in `src/debug.c`, including mrb_packed_int_len, mrb_packed_int_encode,
and mrb_packed_int_decode. The comments explain the purpose of each function,
its parameters, and its return value. This improves the readability
and maintainability of the code.
2025-05-28 22:06:18 +00:00
google-labs-jules[bot] e0d1f99744 I've added descriptive comments for functions/macros in src/mempool.c.
This commit adds Doxygen-style comments to the public functions,
internal static functions, and structs within the `src/mempool.c` file.
These comments clarify the purpose, parameters, and return values (where applicable)
of these code elements, improving code readability and maintainability.

The following elements were commented:
- struct mempool_page
- struct mempool
- ALIGN_PADDING macro
- mempool_open()
- mempool_close()
- page_alloc()
- mempool_alloc()
- mempool_realloc()
2025-05-28 22:02:53 +00:00
google-labs-jules[bot] 224d0c8933 Add descriptive comment to mrb_read_float function
This commit adds a descriptive comment at the beginning of the `mrb_read_float` function in `src/readfloat.c`.

The comment explains the function's purpose, its parameters (`str`, `endp`, `fp`), and its return value (`TRUE` or `FALSE`). This improves code readability and understanding.
2025-05-28 22:01:17 +00:00
Yukihiro "Matz" Matsumoto e5905fe1dc Merge pull request #6533 from katafrakt/fix-extended-callback 2025-05-28 11:13:38 +09:00
Yukihiro "Matz" Matsumoto eb5fbfbb40 class.c: Remove MRB_INLINE_METHOD_CACHE support from mt_tbl
The sorted array binary search implementation no longer uses the inline
cache array, so remove all MRB_INLINE_METHOD_CACHE definitions and
related code.
2025-05-28 08:33:21 +09:00
Yukihiro "Matz" Matsumoto e8ebeb151d class.c: Switch mt_tbl to sorted array binary search for method lookups
By replacing the open‐addressing hash with a sorted array and binary
search, we eliminate tombstone management and improve cache locality of
method entries. This preserves the original contiguous values+keys
layout and peak memory usage, while simplifying growth logic and
delivering lookup performance gains.
2025-05-28 07:54:42 +09:00
Paweł Świątkowski bdcd496bc2 Fix calling extended callback
The callback of extending module should be called, not of a singleton
class of an extended object.
2025-05-27 23:03:10 +02:00
Yukihiro "Matz" Matsumoto bec5dbc4e9 variable.c (iv_copy): just memcpy sorted array; no iv_put 2025-05-27 10:58:41 +09:00
Yukihiro "Matz" Matsumoto 63a09ee336 variable.c (iv_rehash): just memcpy sorted array; no need to call iv_put 2025-05-27 10:53:58 +09:00
Yukihiro "Matz" Matsumoto 9cee6ead4c variable.c: use binary search for iv_tbl lookups
Preserve the original iv_tbl heap layout and allocation pattern, but
switch iv_put to maintain sorted keys and iv_get/iv_del to perform
binary search. This eliminates extra probing overhead, improves
read-heavy lookup performance for small tables, and incurs zero
additional allocations.
2025-05-27 10:33:09 +09:00
Yukihiro "Matz" Matsumoto ca6dc4ec2d variable.c (iv_size): refactor the function
Along with removing an obsolete comment line.
2025-05-27 10:16:12 +09:00
Yukihiro "Matz" Matsumoto 7c02e17e25 variable.c (mrb_mod_cv_get): initialize local variable
To silence compiler warning.
2025-05-26 22:59:04 +09:00
Yukihiro "Matz" Matsumoto 11bf789730 array.c: remove unnecessary blank line 2025-05-26 14:32:19 +09:00
google-labs-jules[bot] e82f49adf7 I've reverted method table optimizations to prioritize memory savings for you.
My previous attempts to improve method table (mt_tbl) performance by introducing a load factor and adjusting the initial allocation size unfortunately led to undesirable increases in memory consumption.

Given that memory usage is a primary concern, I've reverted the following changes:
- Removed the load factor based rehashing logic.
- Removed the related definitions for the load factor.
- Ensured the initial allocation size is 8.

This restores the method table to its original behavior, where it rehashes only when the table is completely full or during initial allocation. This should bring memory usage back to its baseline level prior to these optimization attempts.
2025-05-25 11:40:43 +00:00
google-labs-jules[bot] 8a91c91a69 Improve method table performance by rehashing at 75% load factor.
The method table (mt_tbl) in src/class.c previously only rehashed when it became completely full. With linear probing, this could lead to significant performance degradation for lookups and insertions as the table approached full capacity.

This change introduces a load factor (MT_LOAD_FACTOR_NUM/MT_LOAD_FACTOR_DEN, set to 3/4 or 0.75). The mt_put function now checks if adding a new element would cause the table's size to meet or exceed this load factor relative to its allocated capacity. If so, it triggers a rehash before inserting the new element.

This helps maintain more empty slots in the hash table, improving the average-case performance of linear probing and reducing the likelihood of worst-case scenarios. The existing initial allocation size and doubling strategy for rehashing are retained.
2025-05-24 22:50:29 +00:00
Yukihiro "Matz" Matsumoto 0c51a72bfe string.c (popcount): support when sizeof(int) == 4
This function is used when the compiler does not support builtin
popcount operation (namely VC++).
2025-05-23 23:10:45 +09:00
Yukihiro "Matz" Matsumoto ca526044d3 vm.c (stack_init): clear initial stack 2025-05-23 23:09:53 +09:00
Yukihiro "Matz" Matsumoto 77d08772a5 error.c (mrb_vformat): prevent SEGV from %s with NULL 2025-05-21 09:52:10 +09:00
Yukihiro "Matz" Matsumoto d08276a052 codedump.c: remove unnecessary tab character from OP_MOVE 2025-05-19 23:36:16 +09:00
Yukihiro "Matz" Matsumoto 82d03b32f2 codedump.c: skip string body if it's empty 2025-05-19 23:34:02 +09:00
Yukihiro "Matz" Matsumoto f9414456a5 codedump.c: output format for OP_ARRAY has changed 2025-05-19 23:09:03 +09:00
Yukihiro "Matz" Matsumoto 1d426c50bf range.c (range_num_to_a): C++ compiler eagerly warns goto statement 2025-05-19 19:41:01 +09:00
Yukihiro "Matz" Matsumoto 94d9f6cfc7 range.c (range_num_to_a): support big integer beg/end in ranges 2025-05-19 17:36:54 +09:00
Yukihiro "Matz" Matsumoto ff4109735f range.c (range_num_to_a): improved float support 2025-05-19 17:36:45 +09:00
Yukihiro "Matz" Matsumoto 18c43c2a5a mruby-io: provide Kernel#p in this gem
To prevent ordering instability when output from mruby-io and Kernel#p
mixed.
2025-05-19 13:31:01 +09:00
dearblue 36df859333 Revert "class.c (find_visibility_scope): when callinfo returns, *ep == NULL; #6512"
This reverts commit 3879b95a62.

This is because the code first reported in #6494 no longer works.
2025-05-18 18:52:32 +09:00
John Bampton 781edbd446 misc: fix spelling 2025-05-14 02:01:02 +10:00
Yukihiro "Matz" Matsumoto dbc9d12254 mempool.c (mempool_open): avoid using old API in mempool.c 2025-05-12 13:04:22 +09:00
Yukihiro "Matz" Matsumoto 6566099dbb mempool.c: remove mrb_state dependency from mempool library
mempool.h provide compatibility layer so that existing programs does not
need to update (but update recommended anyway, since compatibility layer
takes mrb_state that is not used at all).
2025-05-12 08:26:18 +09:00
Yukihiro "Matz" Matsumoto 6766fcb905 class.c (mt_rehash): Fix mrb_calloc argument order
Since mrb_calloc() (along with mrb_calloc) takes two arguments: nmemb
which is number of array elements, and size which is size of the array.
Of course, revsersing does not change the behavior, but we'd like to
respect the original design intention of calloc(3).
2025-05-11 20:11:56 +09:00
Yukihiro "Matz" Matsumoto 7e4810658e allocf.c: update and enhance documentation in the comment 2025-05-10 09:07:35 +09:00
Yukihiro "Matz" Matsumoto 5522c94bb3 mruby.h: remove mrb_allocf type
As a result, we removed (already obsoleted) `mrb_open_allocf()', and
made `mrb_open_core()` take no argument. [incompatible changes]
2025-05-10 08:59:18 +09:00