google-labs-jules[bot]
71e8dbcd97
Refactor str_succ_bang for in-place modification
...
This commit refactors the str_succ_bang function in mrbgems/mruby-string-ext/src/string.c to perform string succession in-place.
The previous implementation used an intermediate temporary string, which incurred memory and performance overhead.
This change aims to reduce memory usage and improve performance by modifying the string buffer directly, using mrb_str_resize and memmove when prepending characters is necessary (e.g., '9' -> '10').
Formatting changes (newlines before 'else') have also been applied as per user request.
2025-06-23 09:23:54 +00:00
Yukihiro "Matz" Matsumoto
791b374155
khash.h: reduce KHASH_DEFAULT_SIZE from 32 to 8
2025-06-23 17:07:31 +09:00
Yukihiro "Matz" Matsumoto
c152f3a79a
mruby-set: add comprehensive tests for Set operations: +, -, &
2025-06-23 17:07:31 +09:00
Yukihiro "Matz" Matsumoto
18b45c7ab5
mruby-set: change string representation from #<Set: {1}> to Set[1]
2025-06-23 17:07:31 +09:00
Yukihiro "Matz" Matsumoto
561a3eac82
mruby-set: make eql? an alias of == method
2025-06-23 17:07:30 +09:00
Yukihiro "Matz" Matsumoto
20b32531ea
mruby-set: Fix memory leak in Set#flatten! and simplify implementation
...
- Remove circular reference check in favor of max depth check only
- Fix memory leak by properly handling errors in set_flatten_bang
- Simplify code by reducing variables and unifying error handling
2025-06-23 17:07:30 +09:00
Yukihiro "Matz" Matsumoto
9d739cdad8
mruby-set: use set_is_set extensively
2025-06-23 17:07:30 +09:00
Yukihiro "Matz" Matsumoto
f47609574a
mruby-set: remove some AI generated work-log comments
2025-06-23 17:07:30 +09:00
Yukihiro "Matz" Matsumoto
ea0ceff7fb
mruby-set: implement Set#flatten and flatten! in C
...
The code is generated by Cursor.
2025-06-23 17:07:30 +09:00
Yukihiro "Matz" Matsumoto
73c61e4a60
mruby-set: optimize inspect/to_s to avoid intermediate array
2025-06-23 17:07:29 +09:00
Yukihiro "Matz" Matsumoto
e2982bdb57
mruby-set: optimize join method to avoid intermediate array
2025-06-23 17:07:29 +09:00
Yukihiro "Matz" Matsumoto
0430f1e9b8
mruby-set: optimize eql? by checking fast path
2025-06-23 17:07:29 +09:00
Yukihiro "Matz" Matsumoto
d7a0d5687e
mruby-set: optimize equal by checking fast path
2025-06-23 17:07:29 +09:00
Yukihiro "Matz" Matsumoto
83fc43e71d
mruby-set: improve Set#hash by using FNV-1 hashing
2025-06-23 17:07:29 +09:00
Yukihiro "Matz" Matsumoto
3a5d0a1840
mruby-set: simplify the code with KHASH_FOREACH macro
2025-06-23 17:07:28 +09:00
Yukihiro "Matz" Matsumoto
eb1820d75e
symbol.c: remove unused <mruby/khash.h> header
2025-06-23 17:07:28 +09:00
Yukihiro "Matz" Matsumoto
e30ec3da42
mruby-metaprog: use KHASH_FOREACH macro
2025-06-23 17:07:28 +09:00
Yukihiro "Matz" Matsumoto
bce8cee8f9
khash.h (KHASH_FOREACH): a new macro to iterate over khash table
2025-06-23 17:07:28 +09:00
Yukihiro "Matz" Matsumoto
d41d477e22
mruby-set: add type checking helper functions
...
Add two helper functions to improve code clarity and maintainability:
- set_check_type: Checks if a value is a Set and raises an error if not
- set_is_set: Checks if a value is a Set and returns a boolean result
Update all relevant methods to use these helper functions, reducing
code duplication and centralizing type checking logic.
2025-06-23 17:07:27 +09:00
Yukihiro "Matz" Matsumoto
deb5c47fc6
mruby-set: implement comparison methods in C for better performance
...
Reimplemented the following methods in C for improved efficiency:
- superset? and proper_superset? (>= and >)
- subset? and proper_subset? (<= and <)
- intersect? and disjoint?
- <=> comparison operator
2025-06-23 17:07:27 +09:00
Yukihiro "Matz" Matsumoto
60f06e7a0f
mruby-set: Add comprehensive method documentation
2025-06-23 17:07:27 +09:00
Yukihiro "Matz" Matsumoto
091e48159a
mruby-set: Use numbered parameters for block arguments
2025-06-23 17:07:27 +09:00
Yukihiro "Matz" Matsumoto
04b38c2c47
mruby-set: rename internal methods
...
Renaming all internal C methods from __set_* to a cleaner __* convention
(e.g., __set_merge is now __merge), and updating their call sites in the
Ruby code accordingly.
2025-06-23 17:07:26 +09:00
Yukihiro "Matz" Matsumoto
e096eeed1a
mruby-set: reimplement #initialize in Ruby again
...
And we have eliminated mrb_funcall* from set.c.
2025-06-23 17:07:26 +09:00
Yukihiro "Matz" Matsumoto
5e2a7568e2
mruby-set: move #replace to Ruby again
...
Since it does only clear() and merge(), there is little use of the C
implemented fast path. This change also reduce memory consumption.
2025-06-23 17:07:26 +09:00
Yukihiro "Matz" Matsumoto
100ba913f2
mruby-set: extensive refactor in set.c
...
We refactor out loop by set_khash_foreach() function, so that we don't
need to repeat for loop. it makes the code simpler. The code is written
by Atlassian Rovodev.
2025-06-23 17:07:26 +09:00
Yukihiro "Matz" Matsumoto
f210772465
mruby-set: optimize Set operations to use mrb_get_arg1()
...
Replace mrb_get_args() with more efficient mrb_get_arg1() for
single-argument functions. The code is written by Atlassian Rovodev.
2025-06-23 17:07:26 +09:00
Yukihiro "Matz" Matsumoto
c117674cfe
mruby-set: refactor Set#replace
...
The code is written by Atlassian Rovodev.
2025-06-23 17:07:25 +09:00
Yukihiro "Matz" Matsumoto
8538c79f3f
mruby-set: refactor Set#merge
...
The code is written by Atlassian Rovodev.
2025-06-23 17:07:25 +09:00
Yukihiro "Matz" Matsumoto
169654ad9b
mruby-set: refactor Set#subtract
...
The code is written by Atlassian Rovodev.
2025-06-23 17:07:25 +09:00
Yukihiro "Matz" Matsumoto
c188b9a1aa
mruby-set: refactor Set#difference
...
The code is written by Atlassian Rovodev.
2025-06-23 17:07:25 +09:00
Yukihiro "Matz" Matsumoto
10ea05d3aa
mruby-set: refactor Set#union (+, |)
...
The code is written by Atlassian Rovodev.
2025-06-23 17:07:24 +09:00
Yukihiro "Matz" Matsumoto
d9f0c5a3a4
mruby-set: refactor Set#xor (^)
...
According to the similar strategy as Set#intersection.
The code is mostly written by Atlassian Rovodev.
2025-06-23 17:07:24 +09:00
Yukihiro "Matz" Matsumoto
56a41b844e
mruby-set: refactor Set#intersection
...
Define generic operation method in Ruby, then prepare fast-path function
in C as a general structure. Some methods will follow this pattern.
The code is generated by Atlassian Rovodev.
2025-06-23 17:07:24 +09:00
Yukihiro "Matz" Matsumoto
4ae3068b2a
mruby-set: replace mrb_funcall_id() by set_to_a()
2025-06-23 17:07:24 +09:00
Yukihiro "Matz" Matsumoto
73a1eb03e8
mruby-set: remove mrb_funcall_id() from set_join()
2025-06-23 17:07:24 +09:00
Yukihiro "Matz" Matsumoto
abae5a5ff5
mruby-set: remove __equal_fallback that no longer used
2025-06-23 17:07:23 +09:00
Yukihiro "Matz" Matsumoto
a2339a7fde
mruby-set: refactor set_equal() function
...
Made not to use mrb_funcall() as well.
2025-06-23 17:07:23 +09:00
Yukihiro "Matz" Matsumoto
72b51c4e92
mruby-set: I prefer newline before else keyword
2025-06-23 17:07:23 +09:00
Yukihiro "Matz" Matsumoto
655981c6ed
mruby-set: remove unused object allocation
...
AI added this allocation to avoid memory leaks, but actually this extra
allocation does nothing useful. We see more room for AI improvement.
2025-06-23 17:07:23 +09:00
Yukihiro "Matz" Matsumoto
e4ed04ba8b
mruby-set (set_init): adjust a local variable declaration
2025-06-23 17:07:23 +09:00
Yukihiro "Matz" Matsumoto
52285161e7
mruby-set: remove methods added by AI hallucination
2025-06-23 17:07:22 +09:00
Yukihiro "Matz" Matsumoto
1238fb2808
mruby-set (flatten_merge): remove unnecessary assignment
2025-06-23 17:07:22 +09:00
Yukihiro "Matz" Matsumoto
f44a7bc5db
mruby-set: remove statistic measurement code
2025-06-23 17:07:22 +09:00
Yukihiro "Matz" Matsumoto
7a1732d438
mruby-set: make #initialize_copy private
2025-06-23 17:07:22 +09:00
Yukihiro "Matz" Matsumoto
11106525c4
mruby-set (__get_hash): remove no longer used method
2025-06-23 17:07:22 +09:00
Yukihiro "Matz" Matsumoto
7ffe6a3a9a
mruby-set: re-implement Set class in C
...
The code is mostly developed by Atlassian Rovodev.
2025-06-23 17:07:21 +09:00
Yukihiro "Matz" Matsumoto
e87bd7fcc1
mruby-set: update README.md
...
The document is written by Google Jules.
2025-06-23 17:07:21 +09:00
Yukihiro "Matz" Matsumoto
695207be68
hash.c (mrb_obj_hash_code): expose hash function
2025-06-23 17:07:21 +09:00
Yukihiro "Matz" Matsumoto
d73e337442
mruby-bigint: update README.md
...
The document is written by Google Jules.
2025-06-23 17:07:20 +09:00
Yukihiro "Matz" Matsumoto
4cd7f523fb
Merge pull request #6555 from dearblue/mt_foreach
2025-06-21 06:33:35 +09:00
Yukihiro "Matz" Matsumoto
e2e2b5d35b
Merge pull request #6556 from dearblue/iv_foreach
2025-06-21 06:33:18 +09:00
dearblue
5931aeb825
mrb_mt_foreach() needs to update the pointer at each loop
...
When calling a user function, a pointer retrieved outside of a loop may be invalidated.
2025-06-19 22:35:09 +09:00
dearblue
afd5805224
iv_foreach() needs to update the pointer at each loop
...
When calling a user function, a pointer retrieved outside of a loop may be invalidated.
2025-06-19 22:25:13 +09:00
Yukihiro "Matz" Matsumoto
2edfd96cbe
mruby-rational: add README.md
...
The document is written by Google Jules.
2025-06-17 16:22:19 +09:00
Yukihiro "Matz" Matsumoto
ef1cdbc0c7
mruby-complex: add README.md
...
The document is written by Google Jules.
2025-06-17 16:19:44 +09:00
Yukihiro "Matz" Matsumoto
67dbaf856f
mruby-pack: add README.md
...
The document is written by Google Jules.
2025-06-16 12:45:18 +09:00
Yukihiro "Matz" Matsumoto
0fc6288ae2
mruby-binding: make Binding#initialize_copy private
2025-06-16 12:44:06 +09:00
Yukihiro "Matz" Matsumoto
085adaf408
mruby-date: make Data#initialize_copy private
2025-06-16 12:43:34 +09:00
Yukihiro "Matz" Matsumoto
783bc526e4
mruby-enumerator: make Enumerator#initialize_copy private
2025-06-16 12:42:56 +09:00
Yukihiro "Matz" Matsumoto
35fafe57fb
mruby-io: make IO#initialize_copy private
2025-06-16 12:42:22 +09:00
Yukihiro "Matz" Matsumoto
10c40c4e87
mruby-set: make Set#initialize_copy private
2025-06-16 12:41:54 +09:00
Yukihiro "Matz" Matsumoto
0a306b81ed
mruby-struct: make Struct#initialize_copy private
2025-06-16 12:41:19 +09:00
Yukihiro "Matz" Matsumoto
d015d91c12
mruby-time: make Time#initialize_copy private
2025-06-16 12:40:29 +09:00
Yukihiro "Matz" Matsumoto
262d3715f5
proc.c: make Proc#initialize_copy private
2025-06-15 14:14:24 +09:00
Yukihiro "Matz" Matsumoto
8cb427b75c
hash.c: make Hash#initialize_copy private
2025-06-15 14:13:56 +09:00
Yukihiro "Matz" Matsumoto
a25a896caf
range.c: make Range#initialize_copy private
2025-06-15 14:12:58 +09:00
Yukihiro "Matz" Matsumoto
65369ca1e6
array.c: make Array#initialize_copy private
2025-06-15 14:12:12 +09:00
Yukihiro "Matz" Matsumoto
ff2464e879
string.c: make String#initialize_copy private
2025-06-15 14:11:54 +09:00
Yukihiro "Matz" Matsumoto
f7813268d6
mruby-socket: inline #_new_with_prelude that is only called once.
2025-06-14 13:39:12 +09:00
Yukihiro "Matz" Matsumoto
ebd9f29b38
The method #initialize_copy should be private, no direct call
...
Fixed test/t/array.rb and test/t/string.rb in standard tests.
And mrbgems/mruby-struct/test/struct.rb as well.
2025-06-14 13:38:22 +09:00
Yukihiro "Matz" Matsumoto
bf0f37833d
mruby-socket: fixed raising RuntimeError from #accept; #6554
...
In mruby, bare `raise` in rescue clause does not re-raise the last
exception. You should explicitly specify the exception.
2025-06-14 01:56:43 +09:00
Yukihiro "Matz" Matsumoto
12c124e1d4
mruby-time: add README.md
...
The document is written by Google Jules.
2025-06-14 01:06:55 +09:00
Yukihiro "Matz" Matsumoto
ac8d5c6ae6
mruby-sprintf: add README.md
...
The document is written by Google Jules.
2025-06-14 01:04:23 +09:00
Yukihiro "Matz" Matsumoto
1b189bc1a2
mruby-random: add README.md
...
The document is written by Google Jules.
2025-06-14 01:02:52 +09:00
Yukihiro "Matz" Matsumoto
8ef1d1e104
mruby-enum-lazy: add README.md
...
The document is written by Google Jules.
2025-06-13 04:45:48 +09:00
Yukihiro "Matz" Matsumoto
74f46a05fd
mruby-enum-chain: add README.md
...
The document is written by Google Jules.
2025-06-13 04:42:17 +09:00
Yukihiro "Matz" Matsumoto
6b64447f0e
mruby-enumerator: add README.md
...
The document is written by Google Jules.
2025-06-13 04:40:29 +09:00
Yukihiro "Matz" Matsumoto
04b769b5ca
mruby-os-memsize: add README.md
...
The document is written by Google Jules.
2025-06-12 21:29:20 +09:00
Yukihiro "Matz" Matsumoto
91ec6ea9cc
mruby-objectspace: add REAME.md
...
The document is written by Google Jules.
2025-06-12 21:28:42 +09:00
Yukihiro "Matz" Matsumoto
0b52b33597
mruby-proc-binding: add README.md
...
The document is written by Google Jules.
2025-06-11 18:38:14 +09:00
Yukihiro "Matz" Matsumoto
18f65c6652
mruby-method: update README.md
...
Updated document is written by Google Jules.
2025-06-11 18:35:59 +09:00
Yukihiro "Matz" Matsumoto
84c308aedc
mruby-metaprog: add README.md
...
The document is written by Google Jules.
2025-06-11 18:33:35 +09:00
Yukihiro "Matz" Matsumoto
0a45941337
mruby-eval: add README.md
...
The document is written by Google Jules.
2025-06-11 18:31:52 +09:00
Yukihiro "Matz" Matsumoto
b5197c22f6
mruby-socket: should not directly call private #initialize; fix #6554
2025-06-10 14:28:26 +09:00
Yukihiro "Matz" Matsumoto
2f00046758
mruby-toplevel-ext: add README.md
...
The document is written by Google Jules.
2025-06-10 11:28:18 +09:00
Yukihiro "Matz" Matsumoto
3a27a868a1
mruby-symbol-ext: add README.md
...
The document is written by Google Jules.
2025-06-10 11:25:45 +09:00
Yukihiro "Matz" Matsumoto
4e711fe0ef
mruby-string-ext: add README.md
...
The document is written by Google Jules.
2025-06-10 11:23:50 +09:00
Yukihiro "Matz" Matsumoto
396a85de9a
mruby-range-ext: add README.md
...
The document is written by Google Jules.
2025-06-10 11:09:16 +09:00
Yukihiro "Matz" Matsumoto
59902a94ab
mruby-proc-ext: add README.md
...
The document is written by Google Jules.
2025-06-10 11:07:16 +09:00
Yukihiro "Matz" Matsumoto
3814cbc539
mruby-object-ext: add README.md
...
The document is written by Google Jules.
2025-06-10 11:03:19 +09:00
Yukihiro "Matz" Matsumoto
5e5b4445ff
mruby-numeric-ext: add README.md
...
The document is written by Google Jules.
2025-06-10 10:58:22 +09:00
Yukihiro "Matz" Matsumoto
97ad019707
mruby-kernel-ext: add README.md
...
The document is written by Google Jules.
2025-06-10 10:56:01 +09:00
Yukihiro "Matz" Matsumoto
8fbe5523cf
mruby-hash-ext: add README.md
...
The document is written by Google Jules.
2025-06-10 10:53:57 +09:00
Yukihiro "Matz" Matsumoto
470c1dc184
mruby-errno: add README.md
...
The document is written by Google Jules.
2025-06-09 17:14:02 +09:00
Yukihiro "Matz" Matsumoto
813dc8eae5
mruby-error: add README.md
...
The document is written by Google Jules.
2025-06-09 17:13:20 +09:00
Yukihiro "Matz" Matsumoto
5cdd394c6d
mruby-encoding: add README.md
...
The document is written by Google Jules.
2025-06-09 17:11:46 +09:00
Yukihiro "Matz" Matsumoto
6509f52642
mruby-struct: add README.md
...
The document is written by Google Jules.
2025-06-09 11:01:48 +09:00
Yukihiro "Matz" Matsumoto
acf3656e49
mruby-data: add README.md
...
The document is written by Google Jules.
2025-06-09 11:01:05 +09:00
Yukihiro "Matz" Matsumoto
1beecb9670
mruby-cmath: add README.md
...
The document is written by Google Jules.
2025-06-08 17:04:05 +09:00
Yukihiro "Matz" Matsumoto
d7f7ea0d82
mruby-math: add README.md
...
The document is written by Google Jules.
2025-06-08 17:02:55 +09:00
Yukihiro "Matz" Matsumoto
6bcee69c9c
mruby-catch: add README.md
...
The document is written by Google Jules.
2025-06-08 17:00:07 +09:00
Yukihiro "Matz" Matsumoto
5731fbf17c
mruby-binding: add README.md
...
The document is written by Google Jules.
2025-06-08 16:59:25 +09:00
Yukihiro "Matz" Matsumoto
f835b86d10
mruby-enum-ext: add README.md
...
The document is written by Google Jules.
2025-06-07 11:53:04 +09:00
Yukihiro "Matz" Matsumoto
50945bec68
mruby-compar-ext: add README.md
...
The document is written by Google Jules.
2025-06-07 11:50:53 +09:00
Yukihiro "Matz" Matsumoto
5cc5a8a9c3
mruby-class-ext: add README.md
...
The document is written by Google Jules.
2025-06-07 11:48:40 +09:00
Yukihiro "Matz" Matsumoto
c7ffb0cc55
mruby-array-ext: add README.md
...
The document is written by Google Jules.
2025-06-07 11:46:11 +09:00
Yukihiro "Matz" Matsumoto
35d073a986
vm.c: fix unintended argument renaming by Google Jules; #6533
2025-06-06 11:53:14 +09:00
Yukihiro "Matz" Matsumoto
2b75da7335
Merge pull request #6553 from mruby/add-vm-comments
2025-06-06 08:15:41 +09:00
google-labs-jules[bot]
da9365f98e
Add descriptive comments for MRB_API functions in src/vm.c
...
This commit adds Doxygen-style comments to several MRB_API functions
in src/vm.c to improve code readability and documentation.
The following functions were commented:
- mrb_stack_extend
- mrb_protect_error
- mrb_funcall
- mrb_funcall_id
- mrb_funcall_with_block
- mrb_funcall_argv
- mrb_yield_with_class
- mrb_yield_argv
- mrb_yield
- mrb_vm_run
- mrb_vm_exec
- mrb_top_run
Additionally, the parameter name 'self' in mrb_yield_with_class was
renamed to 'self_obj' for better clarity and consistency with the new comment.
2025-06-05 23:14:43 +00:00
Yukihiro "Matz" Matsumoto
e55b3f0c55
Merge pull request #6552 from mruby/fix-comments-variable-c
2025-06-06 08:14:17 +09:00
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
2f19fe1e36
Merge pull request #6551 from mruby/add-comments-state
2025-06-06 08:13:11 +09:00
google-labs-jules[bot]
19ddbdcf4b
Add descriptive comments for MRB_API functions in src/state.c
...
This commit adds descriptive comments to the following MRB_API functions in src/state.c, clarifying their purpose and functionality:
- mrb_open_core
- mrb_open
- mrb_free_context
- mrb_close
- mrb_add_irep
- mrb_top_self
- mrb_state_atexit
2025-06-05 23:12:50 +00:00
Yukihiro "Matz" Matsumoto
bdd379bc8c
Merge pull request #6550 from mruby/add-comments-to-proc-c
2025-06-06 08:12:32 +09:00
google-labs-jules[bot]
ddbbf3bd82
Add descriptive comments for MRB_API functions in src/proc.c
...
This commit adds Doxygen-style comments to the following MRB_API functions in src/proc.c:
- mrb_proc_new_cfunc
- mrb_proc_new_cfunc_with_env
- mrb_closure_new_cfunc
- mrb_proc_cfunc_env_get
The comments describe the purpose, parameters, and return value of each function.
2025-06-05 23:12:02 +00:00
Yukihiro "Matz" Matsumoto
64d390b9e0
numeric.c : add descriptive comments for public functions
...
- mrb_int_overflow
- mrb_int_zerodiv
- mrb_int_pow
- mrb_div_int
- mrb_div_int_value
- mrb_float_to_str
- mrb_check_num_exact
- mrb_int_mul
- mrb_num_shift
- mrb_float_to_integer
- mrb_int_add
- mrb_int_sub
- mrb_int_to_cstr
- mrb_integer_to_str
- mrb_cmp
The comments were written by Google Jules.
2025-06-06 08:11:37 +09:00
Yukihiro "Matz" Matsumoto
d3f339062b
Merge pull request #6549 from mruby/add-kernel-comments
2025-06-05 10:36:52 +09:00
google-labs-jules[bot]
1e3295d93e
Add descriptive comments to kernel functions
...
This commit adds descriptive C-style comments to the following functions
in `src/kernel.c`:
- `mrb_func_basic_p`: Explains that the function checks if an object's method is implemented by a specific C function.
- `mrb_obj_freeze`: Explains that the function freezes an object, preventing further modifications.
- `mrb_obj_is_instance_of`: Explains that the function checks if an object is an instance of a given class.
2025-06-05 01:35:27 +00:00
Yukihiro "Matz" Matsumoto
24a84a5a37
Merge pull request #6548 from mruby/add-comments-etc
2025-06-05 10:34:17 +09:00
google-labs-jules[bot]
52d56fe443
Add descriptive comments to MRB_API functions in src/etc.c
...
This commit adds Doxygen-style comments to several MRB_API functions
in the `src/etc.c` file. These comments explain the purpose,
parameters, and return values of these functions, improving code
readability and maintainability.
The following functions were commented:
- mrb_data_object_alloc
- mrb_data_check_type
- mrb_data_check_get_ptr
- mrb_data_get_ptr
- mrb_obj_to_sym
- mrb_obj_id
- mrb_word_boxing_float_value
- mrb_word_boxing_value_float
- mrb_word_boxing_cptr_value
- mrb_boxing_int_value
2025-06-05 01:33:38 +00:00
Yukihiro "Matz" Matsumoto
576a104a77
Merge pull request #6546 from mruby/dependabot/github_actions/ls-lint/action-2.3.1
2025-06-05 10:18:26 +09:00
dependabot[bot]
ad015f14a8
build(deps): bump ls-lint/action from 2.3.0 to 2.3.1
...
Bumps [ls-lint/action](https://github.com/ls-lint/action ) from 2.3.0 to 2.3.1.
- [Commits](https://github.com/ls-lint/action/compare/v2.3.0...v2.3.1 )
---
updated-dependencies:
- dependency-name: ls-lint/action
dependency-version: 2.3.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-06-04 14:33:09 +00:00
Yukihiro "Matz" Matsumoto
1ff94c5e00
AUTHORS: update entries [ci skip]
2025-06-04 13:20:08 +09: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
Yukihiro "Matz" Matsumoto
99d9568aeb
Merge pull request #6544 from zenspider/zenspider/frozen_strings
2025-06-04 11:03:26 +09:00
Yukihiro "Matz" Matsumoto
851f9f61a9
Merge pull request #6545 from mruby/add-comments-class-c
2025-06-04 11:00:55 +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
Ryan Davis
59f08ff148
Fix build strings that must be mutable. Tested with RUBYOPT=--enable-frozen-string-literal make
2025-06-03 18:18:29 -07: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
d2728fb0ae
mruby-time (mrb_to_time_t): separate into smaller functions
...
The code was written by Google Jules.
2025-06-02 16:05:44 +09:00
Yukihiro "Matz" Matsumoto
70956e9683
mruby-time: add descriptive comments
...
The comments were written by Google Jules.
2025-06-02 16:04:54 +09:00
Yukihiro "Matz" Matsumoto
91c59ced99
mruby-time: replace magic numbers to C macros
...
The code is written by Google Jules.
2025-06-02 15:55:44 +09: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
Yukihiro "Matz" Matsumoto
9c5d1cdaa9
Merge branch 'jules_wip_7626599795303680331'
2025-06-01 17:58:39 +09: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
273e7325c9
Merge pull request #6538 from mruby/dependabot/bundler/rake-13.3.0
2025-05-31 22:48:52 +09:00
Yukihiro "Matz" Matsumoto
ec68497a39
Merge pull request #6540 from mruby/add-comments-object-c
2025-05-31 22:48:02 +09:00
Yukihiro "Matz" Matsumoto
05c7aa2fe2
Merge pull request #6539 from mruby/add-string-comments
2025-05-31 22:47:45 +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
dependabot[bot]
bbb5d28530
build(deps): bump rake from 13.2.1 to 13.3.0
...
Bumps [rake](https://github.com/ruby/rake ) from 13.2.1 to 13.3.0.
- [Release notes](https://github.com/ruby/rake/releases )
- [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc )
- [Commits](https://github.com/ruby/rake/compare/v13.2.1...v13.3.0 )
---
updated-dependencies:
- dependency-name: rake
dependency-version: 13.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-05-30 14:40:20 +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
Yukihiro "Matz" Matsumoto
70614ba82a
Merge pull request #6534 from mruby/add-readfloat-comment
2025-05-29 09:25:39 +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
Yukihiro "Matz" Matsumoto
9537d9b75a
Merge pull request #6532 from mruby/improve-mt-hash-load-factor
2025-05-25 20:57:36 +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
Yukihiro "Matz" Matsumoto
ed8ec097a2
Merge pull request #6531 from mruby/improve-mt-hash-load-factor
2025-05-25 20:12:46 +09: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
86ef7a912d
mruby-rational (int_lshift): check before actual left bit shift
2025-05-21 13:25:08 +09:00
Yukihiro "Matz" Matsumoto
f4b01ed19e
mruby-rational (int_lshift): exponential may be bigger than int bits
2025-05-21 10:40:02 +09:00
Yukihiro "Matz" Matsumoto
1fa9eaa2b5
mruby-eval (binding_eval_error_check): re-raise Exception in parsing
2025-05-21 10:25:35 +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
1726b61481
mruby-compiler (gen_move): avoid unnecessary goto's
2025-05-20 18:31:51 +09:00
Yukihiro "Matz" Matsumoto
d329d9af79
mruby-compiler (gen_move): avoid optimization of ADDI/SUBI
...
ADDI/SUBI may fall back to method call that may clear block argument
place holder, which may be a live register. So we cannot directly call
ADDI/SUBI over local variables.
2025-05-20 18:31:21 +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
Yukihiro "Matz" Matsumoto
65247613b9
Merge pull request #6530 from dearblue/visibility
2025-05-19 08:11:18 +09:00
Yukihiro "Matz" Matsumoto
31ebcb349e
mruby-compiler: add y.tab.c in the repository again; close #6515
...
Since we have introduced lrama, everyone can generate same `y.tab.c`
on any platform, without installing Bison. That was the reason we have
removed `y.tab.c` from the repository. But this change cause #6515 and
bothered out-of-tree builds. So we (reluctantly) added `y.tab.c` again.
2025-05-19 08:00:37 +09:00
Yukihiro "Matz" Matsumoto
c356e8f2ff
.gitignore: no longer ignore y.tab.c; ref #6515
2025-05-19 08:00:36 +09:00
Yukihiro "Matz" Matsumoto
96cbde7988
mruby-compiler: remove mrb_free dependency from codegen.c
2025-05-19 08:00:36 +09:00
Yukihiro "Matz" Matsumoto
bb712f9467
mruby-compiler: remove mrb_calloc dependency from parse.y
2025-05-19 08:00:36 +09:00
Yukihiro "Matz" Matsumoto
9fc58852e3
mruby-compiler: removed mrb_state dependency from two functions
...
- mrb_ccontext_partial_hook
- mrb_ccontext_cleanup_local_variables
2025-05-19 08:00:36 +09:00
Yukihiro "Matz" Matsumoto
fa19d7d3b5
stdlib.gembox: add mruby-catch to the gembox
2025-05-19 08:00:36 +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
dearblue
4417321d1c
Add more test code for method visibility
...
This test corresponds to the first issue of #6494 .
Complement to #6512 .
2025-05-18 18:50:02 +09:00
Yukihiro "Matz" Matsumoto
b952ca30cd
Merge pull request #6529 from mruby/dependabot/github_actions/super-linter/super-linter-7.4.0
2025-05-15 05:46:57 +09:00
dependabot[bot]
ef840eced0
build(deps): bump super-linter/super-linter from 7.3.0 to 7.4.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v7.3.0...v7.4.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-version: 7.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-05-14 14:19:47 +00:00
Yukihiro "Matz" Matsumoto
923b1c9e37
stdlib.gembox: add mruby-enum-chain gem
2025-05-14 15:58:24 +09:00
Yukihiro "Matz" Matsumoto
9e6ddbb2ad
metaprog.gembox: add two binding gems
...
- mruby-binding
- mruby-proc-binding
2025-05-14 15:58:24 +09:00
Yukihiro "Matz" Matsumoto
d414e3f912
math.gembox: exclude mruby-cmath from math gembox
2025-05-14 15:58:23 +09:00
Yukihiro "Matz" Matsumoto
34bd571a65
Merge pull request #6528 from jbampton/fix-grammar-spelling
2025-05-14 15:58:05 +09:00
Yukihiro "Matz" Matsumoto
1fcaa3995e
Merge pull request #6418 from jbampton/add-ls-lint
2025-05-14 15:55:33 +09:00
John Bampton
781edbd446
misc: fix spelling
2025-05-14 02:01:02 +10:00
John Bampton
4f2f2cfd20
Add ls-lint with GitHub Actions
...
Rename files in the `mrbgems` directory
2025-05-14 01:14:02 +10:00
Yukihiro "Matz" Matsumoto
93a7e5ec26
Merge pull request #6526 from vickash/luckfox-pico
2025-05-13 16:46:23 +09:00
Yukihiro "Matz" Matsumoto
75466f9aab
mruby-compiler: use mrb_basic_alloc_func() directly from compiler
...
As a side effect, memory allocation failure may cause segmentation
fault. Maybe we have to add error detection later.
2025-05-13 13:20:06 +09:00
Yukihiro "Matz" Matsumoto
9ef2f551b7
mruby-compiler: use new mempool API
2025-05-13 08:13:48 +09: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
ebca0cbf6a
Merge pull request #6525 from hasse09052/skip-empty-mirb-history
2025-05-12 12:59:28 +09:00
Yukihiro "Matz" Matsumoto
c2d5a402ba
compile.h: change struct mrb_mempool to mrb_mempool
...
So that compatibility layer can be used without macro definition.
2025-05-12 12:30:15 +09:00
vickash
6700c327ac
Luckfox Pico config: Use realpath, comment flags and cmath exclusion
2025-05-11 23:25:32 -04:00
vickash
f98a05c738
Add build config for Luckfox Pico embedded SBC
2025-05-11 22:35:05 -04: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
4704a7700a
Merge pull request #6521 from jbampton/add-codespell-config
2025-05-11 20:09:25 +09:00
hasse
6df8096af2
mruby-bin-mirb: skip adding empty input to mirb history
2025-05-11 02:44:04 +09:00
Yukihiro "Matz" Matsumoto
c6e3ae7e74
doc/guides/memory.md: update the document
...
- new API
- detailed hook description
- migration path from old API
2025-05-10 09:34:20 +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
Yukihiro "Matz" Matsumoto
5c71681d82
allocf.c (mrb_basic_alloc_func): remove ud argument
2025-05-10 08:59:18 +09:00
Yukihiro "Matz" Matsumoto
c3cc559dfc
allocf.c: rename mrb_default_alloc to mrb_basic_alloc_func
...
Along with removing mrb_state first argument from the function. From
mruby 3.2, this function is *not* the default function, but the entry
point that can be redefined for the application. The function in
`src/allocf.c` is the default *implementation* (using malloc / realloc /
free) of the function.
2025-05-09 21:50:18 +09:00
John Bampton
f515669ce3
Add codespell config file .codespellrc
...
Add `.codespellrc` to the GitHub labeler
Can now run codespell from the command line standalone and it will use
our standard config file. Running codespell with pre-commit will also use this config.
Useful when regenerating the ignored words file on the command line.
https://github.com/codespell-project/codespell?tab=readme-ov-file#using-a-config-file
https://github.com/codespell-project/codespell?tab=readme-ov-file#pre-commit-hook
2025-05-09 20:54:27 +10:00
Yukihiro "Matz" Matsumoto
0bdd529430
mruby.h: remove allocf and allocf_ud from mrb_state
...
This is preparation for memory allocation restructuring.
2025-05-09 18:13:28 +09:00
Yukihiro "Matz" Matsumoto
3d2f848e64
mruby-random: Random#rand(nil) should raise TypeError
2025-05-08 17:37:05 +09:00
Yukihiro "Matz" Matsumoto
88e86ee62e
mruby-random: update error messages to be compatible with CRuby; #6523
2025-05-08 16:42:33 +09:00
Yukihiro "Matz" Matsumoto
21d6bfb6dd
test/kernel.rb: disable some Kernel#p tests; ref #6524
2025-05-08 16:21:01 +09:00
Yukihiro "Matz" Matsumoto
37b84f40e0
Merge pull request #6523 from leviongit/rand-range
2025-05-08 16:06:02 +09:00
Yukihiro "Matz" Matsumoto
5b10fdf684
Merge pull request #6524 from hasumikin/fix/Kernel#p
2025-05-08 16:01:35 +09:00
Yukihiro "Matz" Matsumoto
147af9d669
Merge pull request #6522 from jbampton/label-more-files
2025-05-08 15:59:47 +09:00
Yukihiro "Matz" Matsumoto
3879b95a62
class.c (find_visibility_scope): when callinfo returns, *ep == NULL; #6512
2025-05-08 12:02:32 +09:00
Yukihiro "Matz" Matsumoto
2b0d866da1
class.c (find_visibility_scope): rename the function; ref #6512
...
Since the function returns either callinfo or env, thus the name does
not describe the current behavior. In addition, we did some refactoring
on the function.
2025-05-08 12:02:00 +09:00
Yukihiro "Matz" Matsumoto
50c8e180d8
class.c (find_visibility_ci): refactor to reduce complexity; ref #6512
2025-05-08 07:57:35 +09:00
Yukihiro "Matz" Matsumoto
dbc4768758
mruby/internal.h: rename visibility separation macros; ref #6512
2025-05-08 07:32:36 +09:00
Yukihiro "Matz" Matsumoto
c9a36e5d39
mruby/value.h: rename flag check macros; ref #6512
2025-05-08 07:27:30 +09:00
Yukihiro "Matz" Matsumoto
41e91a2ca8
vm.c (mrb_exec_irep): remove recently added separate_module argument
...
The argument was added in #6512
2025-05-08 07:27:23 +09:00
Yukihiro "Matz" Matsumoto
ef0cbc2981
mruby-eval (exec_irep): cache mrb->c->ci to a local variable
2025-05-07 23:30:41 +09:00
Yukihiro "Matz" Matsumoto
567617ceb5
Merge branch 'dearblue-visibility'
2025-05-07 15:37:37 +09:00
Yukihiro "Matz" Matsumoto
aec8d0c58b
Merge branch 'visibility' of github.com:dearblue/mruby into dearblue-visibility
2025-05-07 15:37:08 +09:00
Yukihiro "Matz" Matsumoto
81f5f5b8d4
mruby-bin-debugger: should not use Exception#inspect to print errors
...
Use mrb_exc_get_output() instead.
2025-05-07 12:34:13 +09:00
Yukihiro "Matz" Matsumoto
c36d9b7732
mruby-bin-mirb: should not use Exception#inspect to print errors
...
Use mrb_exc_get_output() instead.
2025-05-07 12:32:12 +09:00
Yukihiro "Matz" Matsumoto
6eb969ff04
backtrace.c (print_backtrace): use mrb_exc_get_output()
...
To keep the old error print even after Exception#inspect format changed.
2025-05-07 12:22:11 +09:00
Yukihiro "Matz" Matsumoto
33d9ad6c44
error.c (mrb_exc_get_output): a new function for old inspect format
2025-05-07 12:19:05 +09:00
Yukihiro "Matz" Matsumoto
85d048c1fb
mruby-error: update tests for new Exception#inspect format
2025-05-07 12:19:05 +09:00
Yukihiro "Matz" Matsumoto
a87b4b6bc3
test/exception.rb: update for new Exception#inspect
2025-05-07 12:19:05 +09:00
Yukihiro "Matz" Matsumoto
333c364d5f
error.c (mrb_exc_inspect): Update format to match CRuby
2025-05-07 12:19:04 +09:00
Yukihiro "Matz" Matsumoto
b5ad35d8ef
proc.h (MRB_SET_VISIBILITY_FLAGS): rename macro
2025-05-07 12:19:04 +09:00
Yukihiro "Matz" Matsumoto
0da5e0e190
AUTHORS: update entries [ci skip]
2025-05-07 12:19:04 +09:00
Yukihiro "Matz" Matsumoto
abfef2c38d
Merge pull request #6520 from jbampton/update-pre-commit
2025-05-04 23:19:54 +09:00
leviongit
7be940942c
random.c : treat ranges where r.begin > r.end the same way cruby does
2025-05-04 04:10:39 +02:00
leviongit
98906d5ac9
random.c : fix Random#rand not returning value
2025-05-04 03:48:22 +02:00
HASUMI Hitoshi
fdfd67ff40
Fix Kernel#p when no argument
...
## Expected
```ruby
p
=> nil
```
## Actual
```ruby
p
=> []
```
2025-05-04 10:17:37 +09:00
leviongit
202c213fe1
random.c : add some tests
2025-05-04 02:44:19 +02:00
leviongit
4390aeb78d
random.c : add rand(Range)
2025-05-04 02:44:19 +02:00
Yukihiro "Matz" Matsumoto
0723e10dcd
Merge pull request #6519 from jbampton/update-prettier-ignore
2025-05-03 14:42:24 +09:00
John Bampton
757c0472d0
gha: label more files
2025-05-03 04:47:04 +10:00
John Bampton
ddae958405
pre-commit: autoupdate and update node LTS version
...
https://nodejs.org/en
https://pre-commit.com/#pre-commit-autoupdate
2025-05-03 02:00:44 +10:00
John Bampton
7a3eebc1d5
Add tools/lrama to .prettierignore
...
Prettier uses an ignore file to exclude files from formatting when
running with pre-commit and also when running standalone from the command line.
This is detailed on the CLI docs page:
https://prettier.io/docs/cli
2025-05-03 01:42:36 +10:00
Yukihiro "Matz" Matsumoto
30d1db4528
10error.rb: move 2 more classes to error.c
...
- FloatDomainError
- RegexpError
2025-05-02 08:50:20 +09:00
Yukihiro "Matz" Matsumoto
0fb280adbf
10error.rb: move some error class definitions to error.c
...
- Exception
- ArgumentError
- LocalJumpError
- RangeErrpr
- TypeError
- IndexError
- KeyError
- NotImplementError
- FrozenError
- ZeroDivisionError
2025-05-01 15:10:55 +09:00
Yukihiro "Matz" Matsumoto
1bc16676a1
class.c: implement BasicObject#!= in C file
...
The method is defined in inline bytecode. As a side-effect, `00class.rb`
was removed.
2025-05-01 10:23:03 +09:00
Yukihiro "Matz" Matsumoto
683ecc09b5
codedump.c: do not print extra ';' if operands are not local vars
2025-04-30 07:54:40 +09:00
Yukihiro "Matz" Matsumoto
789d350da9
codedump.c: put parenthesis around virtual operand
...
Some operands are virtual (e.g. `a` and `a+1`). It is easier to count
instructions if you can distinguish virtual and real operands.
2025-04-29 07:49:59 +09:00
Yukihiro "Matz" Matsumoto
08f74dd2be
class.c: move alias attr attr_reader from 00class.rb
2025-04-28 14:20:07 +09:00
Yukihiro "Matz" Matsumoto
1b39c7d7da
mruby-compiler (codegen): private backquote should be called; fix #6516
2025-04-28 10:40:05 +09:00
Yukihiro "Matz" Matsumoto
e9d20a1590
doc/limitations.md: document double dispatch removal
...
We have removed `append_features`/`prepend_features`/`extend_object`.
It is incompatible with CRuby, but simpler.
2025-04-28 10:30:01 +09:00
Yukihiro "Matz" Matsumoto
6c72f8b378
class.c (extend_object): remove method; implement Kernel#extend in C
2025-04-28 10:30:00 +09:00
Yukihiro "Matz" Matsumoto
6c25b5896a
class.c (prepend_features): remove the method
...
Just like `#append_features`, we remove `#prepend_features` and
implemented `#prepend` directly in C.
2025-04-28 10:30:00 +09:00
Yukihiro "Matz" Matsumoto
9387cd382e
class.c (append_features): remove the method
...
The technique is called "double dispatch" (that was popular in
Smalltalk), but it does not work well with mruby. It's slower and
consumes more memory. Even thought `#append_features` defined in ISO
standard (15.2.2.4.11), we decided to remove it. Strictly speaking, it
is mruby limitation. And it should be documented clearly.
2025-04-28 10:30:00 +09:00
Yukihiro "Matz" Matsumoto
5fe406d59c
vm.c (send_method): should not use C++ keyword public
2025-04-28 10:30:00 +09:00
Yukihiro "Matz" Matsumoto
a6ef3a45d1
vm.c (mrb_f_public_send): define #public_send method
...
The method itself is available when mruby-metaprog is loaded.
2025-04-25 17:39:12 +09:00
Yukihiro "Matz" Matsumoto
dd96afd5a8
variable.c (mrb_const_set): call const_added hook
2025-04-25 16:25:36 +09:00
Yukihiro "Matz" Matsumoto
e5478c2b40
class.c (setup_class): simplified using mrb_const_set()
2025-04-25 16:23:02 +09:00
Yukihiro "Matz" Matsumoto
8f120971b5
variable.c: merge mrb_vm_const_set to mrb_const_set
...
Inline vm part to the VM itself.
2025-04-25 16:12:06 +09:00
Yukihiro "Matz" Matsumoto
03719490eb
class.c: define const_added method (with empty body)
2025-04-25 15:56:57 +09:00
Yukihiro "Matz" Matsumoto
6e1538ce3a
Merge pull request #6518 from HirohitoHigashi/master
2025-04-25 15:51:36 +09:00
Yukihiro "Matz" Matsumoto
279855985f
Merge pull request #6517 from jbampton/remove-unneeded-semicolon
2025-04-25 15:46:14 +09:00
HirohitoHigashi
586ff7a694
Change mrbc_args.flags bit width from 2 to 3.
2025-04-25 12:05:01 +09:00
John Bampton
fe201dc72f
core/codegen.c: remove unneeded duplicate semicolon
2025-04-25 05:10:24 +10:00
Yukihiro "Matz" Matsumoto
9c6349c769
Merge pull request #6513 from mruby/stable
2025-04-21 13:57:27 +09:00
Hiroshi Mimaki
d4097716b3
NEWS: remove wrong spelling from the pull-request description
2025-04-21 10:24:03 +09:00
mimaki
99f5668243
Merge branch 'master' into stable
2025-04-20 13:25:22 +09:00
mimaki
a309524d0b
Update version and release date. (mruby 3.4.0 (2025-04-20))
2025-04-20 13:08:22 +09:00
Yukihiro "Matz" Matsumoto
baea6e284e
mruby-bigint (mpz_bits): use lzb()
2025-04-17 08:11:27 +09:00
Yukihiro "Matz" Matsumoto
061521ead5
mruby-bigint (mpz_bits): renamed from mpz_bit_length()
2025-04-17 08:10:34 +09:00
Yukihiro "Matz" Matsumoto
16198dc985
mruby-numeric-ext (int_sqrt): translate Japanese comment (oops)
2025-04-17 01:43:03 +09:00
Yukihiro "Matz" Matsumoto
e42523fcf4
mruby-numeric-ext: add test for Integer.sqrt()
2025-04-16 23:30:23 +09:00
Yukihiro "Matz" Matsumoto
ddfe65763e
mruby-numeric-ext (int_sqrt): support bigint
2025-04-16 23:08:23 +09:00
Yukihiro "Matz" Matsumoto
dee661913f
mruby-numeric-ext (int_sqrt): Integer.sqrt implemented
...
This is the first version. It should support bigint eventually.
2025-04-16 22:37:06 +09:00
Yukihiro "Matz" Matsumoto
9a0f96e617
pre-commit autoupdate
2025-04-16 22:34:27 +09:00
Yukihiro "Matz" Matsumoto
8b213c4fbf
string.c (sub_replace): check if found argument is within proper range
...
Since it is an internal method, we didn't check the argument range, but
if it's called directly, out-of-range argument could cause SEGV.
2025-04-15 07:11:09 +09:00
Yukihiro "Matz" Matsumoto
9cc6d39956
test/module.rb: add test for #6506
2025-04-14 22:09:35 +09:00
Yukihiro "Matz" Matsumoto
1969100fb4
variable.c (mrb_vm_get_const): seek singleton class superclass; fix #6506
...
Also ensure we don't revive #2515 , #3003 , #3598
2025-04-14 22:09:35 +09:00
Yukihiro "Matz" Matsumoto
953ebdf334
variable.c (mrb_vm_const_get): refactoring for singleton classes
2025-04-14 22:09:35 +09:00
Yukihiro "Matz" Matsumoto
95f9de4877
mruby-metaprog (mrb_mod_s_constants): Module.constants implemented
...
The method returns the list of all constants accessible from the point
of call.
2025-04-14 22:09:35 +09:00
Yukihiro "Matz" Matsumoto
e08452585e
variable.c (mrb_mod_cv_get): c must not be NULL as an argument
2025-04-14 22:09:34 +09:00
Yukihiro "Matz" Matsumoto
90d77e71f5
variable.c (mrb_mod_cv_set): small refactoring
...
The argument c should not be NULL.
2025-04-14 22:09:34 +09:00
Yukihiro "Matz" Matsumoto
118e13d85c
variable.c: a new function mrb_mod_const_at()
...
And mrb_mod_constants() use the new function now.
2025-04-14 22:09:34 +09:00
Yukihiro "Matz" Matsumoto
cda551ce25
mruby-metaprog (mrb_mod_s_constants): call Module#constants if possible
...
When the optional argument is given or the receiver is not `Module`.
2025-04-14 22:09:34 +09:00
Yukihiro "Matz" Matsumoto
82522a2e71
mruby-bigint (mrb_bint_to_s): add check for MRB_32BIT and MRB_INT64
2025-04-14 22:09:33 +09:00
Yukihiro "Matz" Matsumoto
29964b3ba7
mruby-io (mrb_file_size): add check for MRB_32BIT and MRB_INT64
2025-04-14 22:09:33 +09:00
Yukihiro "Matz" Matsumoto
0d5fecf833
variable.c (mrb_const_get): adjust local variable scope
2025-04-14 22:09:33 +09:00
dearblue
3fd5e1c250
Fixed visibility at method definition
...
There was a problem with visibility state from proc that straddles a fiber or is independent.
Therefore, it has been changed to give priority to env objects, if any.
Also, added "separate module" flag to block traversal to a higher level env object.
Note that the "separate module" flag is now set when calling blocks with the `mrb_yield_with_class()` function.
fixed https://github.com/mruby/mruby/issues/6494
2025-04-11 21:36:26 +09:00
Yukihiro "Matz" Matsumoto
52de3b7e10
Merge pull request #6511 from dearblue/precommit
...
Exclude the external project "lrama" from pre-commit
2025-04-08 23:44:31 +09:00
dearblue
40095bf755
Exclude the external project "lrama" from pre-commit
2025-04-08 22:11:32 +09:00
Yukihiro "Matz" Matsumoto
46aa35a117
Merge pull request #6510 from dearblue/visibility
...
Fixed class method visibility via `module_function`
2025-04-08 17:18:19 +09:00
dearblue
84e1b0045c
Fixed class method visibility via module_function
...
The following code should work
```ruby
module M
def me
p self
end
module_function :me
end
M.me
```
2025-04-07 21:40:56 +09:00
Yukihiro "Matz" Matsumoto
1fdd961041
mruby-compiler (scope_new): need to initialize nregs; fix #6509
...
`nregs` should not be smaller than `nlocals`.
2025-04-07 11:35:19 +09:00
Yukihiro "Matz" Matsumoto
8c2ea232ea
Revert "mruby-enum-ext (cycle): need to splat block parameters; #6508 "
...
This reverts commit 6c4b799b42 .
2025-04-07 08:23:52 +09:00
Yukihiro "Matz" Matsumoto
6c4b799b42
mruby-enum-ext (cycle): need to splat block parameters; #6508
2025-04-06 22:05:57 +09:00
Yukihiro "Matz" Matsumoto
96855d31b5
mruby-enum-ext (sum): need to honor index; fix #6508
2025-04-06 22:04:56 +09:00
Yukihiro "Matz" Matsumoto
dd68681002
mruby-enum-ext: tally should respect multi-values; fix #6507
2025-04-05 22:12:51 +09:00
Yukihiro "Matz" Matsumoto
cb8cd9388c
mruby-enum-ext: filter_map should not ignore index; fix #6504
2025-04-05 21:44:49 +09:00
Yukihiro "Matz" Matsumoto
9750513c25
mruby-bigint (mpz_get_str): add type cast to stop warning
2025-04-04 23:55:44 +09:00
Yukihiro "Matz" Matsumoto
bf36ba9d10
Merge pull request #6505 from jbampton/fix-spelling
...
mrbgems: fix spelling
2025-04-04 17:33:32 +09:00
John Bampton
b1d910f6f4
mrbgems: fix spelling
2025-04-04 15:05:13 +10:00
Yukihiro "Matz" Matsumoto
76f7678db2
AUTHORS: update entries [ci skip]
2025-04-04 07:56:52 +09:00
Yukihiro "Matz" Matsumoto
07d7aa6fdb
mruby-pack: fix int and mrb_int mixture
2025-04-02 16:45:11 +09:00
Yukihiro "Matz" Matsumoto
b88680ee9e
mruby-pack (pack_unpack): use mrb_bool instead of int
2025-04-02 16:44:06 +09:00
Yukihiro "Matz" Matsumoto
3684a27209
tools/lrama: update to lrama 0.7.0; close #6384
2025-04-02 00:16:23 +09:00
Yukihiro "Matz" Matsumoto
5c2c77c71c
mruby-string (str_succ_bang): fixed sample string; close #6500
...
To avoid spellcheck failure in pre-commit.
2025-04-01 11:00:25 +09:00
Yukihiro "Matz" Matsumoto
4af6fe87c4
doc/mruby3.4.md: remove wrong spelling from the pull-request description
2025-03-31 21:42:01 +09:00
Yukihiro "Matz" Matsumoto
9405702e02
Merge pull request #6503 from jbampton/misc-typo-fixes
...
misc: fix typos
2025-03-31 16:16:55 +09:00
Yukihiro "Matz" Matsumoto
206eccb828
boxing_word.h: allow 4 byte alignment of object pointers
...
Only if MRB_WORDBOX_NO_FLOAT_TRUNCATE or MRB_NO_FLOAT is defined.
2025-03-30 23:23:02 +09:00
John Bampton
b56f984c25
misc: fix typos
2025-03-30 14:04:34 +10:00
Yukihiro "Matz" Matsumoto
39fbc96eaf
Merge pull request #6502 from jbampton/patch-2
...
pre-commit: update prettier to the latest version
2025-03-29 19:02:42 +09:00
John Bampton
14f2e6db5a
pre-commit: update prettier to the latest version
...
https://www.npmjs.com/package/prettier
2025-03-29 16:31:58 +10:00
Yukihiro "Matz" Matsumoto
a317b744f4
Merge pull request #6501 from jbampton/patch-2
...
Update pre-commit Node.js version to `v22.14.0 LTS`
2025-03-29 14:09:15 +09:00
John Bampton
14de644234
Update pre-commit Node.js version to v22.14.0 LTS
2025-03-29 07:32:47 +10:00
Yukihiro "Matz" Matsumoto
6a3e5b87f8
Merge pull request #6497 from jbampton/patch-2
...
gha: update `build.yml` try `windows-2025` image
2025-03-28 12:40:40 +09:00
Yukihiro "Matz" Matsumoto
a9353c4f73
Merge pull request #6498 from jbampton/pre-commit-clean-up
...
Clean up and standardize the pre-commit config
2025-03-28 09:02:57 +09:00
Yukihiro "Matz" Matsumoto
2ce0606f14
guides/symbol.md: 'punctuation' is uncountable; close #6488
...
Issue #6488 is addressed by fixing spelling.
2025-03-28 08:22:53 +09:00
John Bampton
c1a0a6193b
pre-commit autoupdate
2025-03-28 08:04:21 +10:00
John Bampton
1ae4f94844
Clean up and standardize the pre-commit config
2025-03-28 07:39:59 +10:00
Yukihiro "Matz" Matsumoto
7538ee8f5d
gperf: remove obsolete command line options -p and -g
2025-03-28 06:16:00 +09:00
John Bampton
68a0ecc782
gha: update build.yml try windows-2025 image
...
https://github.com/actions/runner-images?tab=readme-ov-file#available-images
https://github.com/actions/runner-images/blob/main/images/windows/Windows2025-Readme.md
2025-03-28 04:24:32 +10:00
Yukihiro "Matz" Matsumoto
0090e2cd01
github/workflows/coverage.yml: measure coverage on push only
2025-03-26 16:22:37 +09:00
Yukihiro "Matz" Matsumoto
7351f1127b
vm.c: ci_bidx() returns mrb_int, that may be different in size from int
2025-03-26 16:19:26 +09:00
Yukihiro "Matz" Matsumoto
d908daa8b9
mruby-rational (rational_hash): hash value is uint32_t
2025-03-25 08:10:49 +09:00
Yukihiro "Matz" Matsumoto
b446b0d547
mruby-compiler: add type cast to silence warning
2025-03-25 08:10:04 +09:00
Yukihiro "Matz" Matsumoto
a574034cb2
hash.c (hash_set_default_proc): mrb_proc_arity() returns mrb_int
2025-03-25 08:09:21 +09:00
Yukihiro "Matz" Matsumoto
4ca61298ac
mruby-sprintf: add type cast to silence warning
2025-03-25 08:08:26 +09:00
Yukihiro "Matz" Matsumoto
7e18b1dadb
mruby-fiber/fibertest.c: use ptrdiff_t for pointer difference
2025-03-24 22:31:27 +09:00
Yukihiro "Matz" Matsumoto
b8351d6191
mruby-io/file.c: use ptrdiff_t for pointer difference
2025-03-24 22:30:53 +09:00
Yukihiro "Matz" Matsumoto
dd2950211c
mruby-io/mruby_io_test.c: use -1 for length (means strlen(s))
2025-03-24 15:19:54 +09:00
Yukihiro "Matz" Matsumoto
4aae7be949
mruby-io (path_gethome): move local variable declarations
2025-03-24 14:03:13 +09:00
Yukihiro "Matz" Matsumoto
a33426da15
mruby-io (mrb_file_s_chmod): check string type before casting
2025-03-23 20:04:25 +09:00
Yukihiro "Matz" Matsumoto
11f6251d23
mruby-io (mrb_file_basename): fixed a silly mistake
2025-03-22 13:01:38 +09:00
Yukihiro "Matz" Matsumoto
cde0b7edeb
Merge pull request #6495 from dearblue/cleanup
...
Remove `MRB_ENDIAN_LOHI()` that is no longer in use
2025-03-22 11:15:36 +09:00
Yukihiro "Matz" Matsumoto
aa06aff50d
mruby-io/file.c: use mrb_sys_fail instead of mrb_raise (w/ errno info)
2025-03-22 11:02:05 +09:00
dearblue
4e7399d4f4
Remove MRB_ENDIAN_LOHI() that is no longer in use
2025-03-21 21:56:42 +09:00
Yukihiro "Matz" Matsumoto
f3b79fcc23
mruby-io (mrb_file_s_readlink): increase buffer size linearly
2025-03-21 19:34:05 +09:00
Yukihiro "Matz" Matsumoto
ca693dec30
mruby-io (mrb_file_s_readlink): when rc == bufsize, rc never be -1
2025-03-21 19:31:12 +09:00
Yukihiro "Matz" Matsumoto
9e315af2a5
mruby-io (mrb_file_basename): fixed wrong strncmp usage
2025-03-21 10:37:05 +09:00
Yukihiro "Matz" Matsumoto
90d4805f5b
mruby-io (mrb_file_realpath): use mrb_str_cat instead of mrb_str_append
2025-03-20 22:04:49 +09:00
Yukihiro "Matz" Matsumoto
5bc391e170
mruby-io (mrb_file_basename): use mrb_str_cat() instead of snprintf(3)
2025-03-20 22:03:30 +09:00
Yukihiro "Matz" Matsumoto
ed00879923
Merge pull request #6493 from hasumikin/patch-1
...
Fix TYPO in memory.md
2025-03-20 14:42:56 +09:00
Yukihiro "Matz" Matsumoto
dbafada7be
mruby-io (mrb_file_basename): use "z" specifier for mrb_get_args()
2025-03-20 13:39:38 +09:00
HASUMI Hitoshi
1ec84a2874
Fix TYPO in memory.md
...
No `alloc.c` in the source tree. It'd be `allocf.c`
2025-03-20 10:15:20 +09:00
Yukihiro "Matz" Matsumoto
226acdc540
hash.c (mrb_hash_set_default_proc): avoid repeated calls for mrb_nil_p()
2025-03-19 14:57:02 +09:00
Yukihiro "Matz" Matsumoto
a55e3685a9
string.c: rename local variable indx to idx
...
`indx` seems not to be a common abbreviation.
2025-03-18 10:40:30 +09:00
Yukihiro "Matz" Matsumoto
c0024e1077
Merge pull request #6492 from jethrodaniel/fix-typo
...
fix a typo, update specs
2025-03-18 10:40:00 +09:00
Mark Delk
6396aac434
fix a typo, update specs
2025-03-17 10:47:33 -05:00
mimaki
2a435caf79
Update version to 3.4.0RC2.
2025-03-17 16:31:36 +09:00
mimaki
8b65a296db
Merge branch 'master' into stable
2025-03-17 15:52:25 +09:00
Yukihiro "Matz" Matsumoto
468c6f1901
doc/mruby3.4.md: add #6491 to the release note
2025-03-17 09:21:36 +09:00
Yukihiro "Matz" Matsumoto
d1909320d9
mruby-compiler: fixed a bug in string literal merge; fix #6491
2025-03-17 09:17:38 +09:00
Yukihiro "Matz" Matsumoto
a6848ca2cb
pre-commit autoupdate
2025-03-15 16:34:18 +09:00
Yukihiro "Matz" Matsumoto
eb455c19fe
mruby-compiler: prohibit singleton methods for literals
...
We have checked `def (literal).m` style but not `def literal.m` style.
In addition, `NODE_INT` check is newly added.
2025-03-14 23:28:42 +09:00
Yukihiro "Matz" Matsumoto
8472fe0f13
doc/limitation.md: remove visibility note
...
We have implemented visibility in mruby 3.4
2025-03-13 22:46:23 +09:00
Yukihiro "Matz" Matsumoto
9c37098c15
Merge pull request #6490 from dearblue/string
...
Fixed `RSTR_SINGLE_BYTE_P()` return values to boolean
2025-03-13 10:57:49 +09:00
dearblue
609a5c23b2
Fixed RSTR_SINGLE_BYTE_P() return values to boolean
...
Incorrectly returned void type when `MRB_UTF8_STRING` definition is not present.
2025-03-12 22:01:37 +09:00
Yukihiro "Matz" Matsumoto
17d5aaa048
doc/mruby3.4.md: first draft of the mruby 3.4 release note
2025-03-12 14:51:58 +09:00
Yukihiro "Matz" Matsumoto
5bc00bf199
mruby-compiler: detect super without surrounding method; close #6271
2025-03-11 21:21:50 +09:00
Yukihiro "Matz" Matsumoto
1e6442f54e
Revert "class.c (include_module_at): narrow local variable scope"
...
C++ does not compile `goto` cross local variable declaration.
This reverts commit c618b44fee .
2025-03-10 19:33:49 +09:00
mimaki
a2841fd9a8
Update version to 3.4.0RC.
2025-03-10 14:42:59 +09:00
Yukihiro "Matz" Matsumoto
1e36d7662c
object.h: rename gccolor to clearer gc_color
2025-03-10 14:23:51 +09:00
Yukihiro "Matz" Matsumoto
92b18d6a44
gc.c: fix re-using to reusing
2025-03-10 14:23:21 +09:00
Yukihiro "Matz" Matsumoto
f4de205960
range.c (range_num_to_a): reduce integer to float conversion
...
For big numbers (especially integers close to MRB_INT_MAX), float
conversion may be lose precisions. So we try not to convert numbers, but
just compare.
2025-03-10 13:13:10 +09:00
Yukihiro "Matz" Matsumoto
76d3739a89
mruby-metaprog (mrb_obj_methods): should not retrieve obj->c directly
...
In some cases, `obj` may not be an object structure, but an immediate.
2025-03-10 11:40:48 +09:00
Yukihiro "Matz" Matsumoto
c618b44fee
class.c (include_module_at): narrow local variable scope
2025-03-10 11:26:13 +09:00
Yukihiro "Matz" Matsumoto
48f93adcdc
class.c (boot_defclass): unify variable declaration and initialization
2025-03-10 11:25:34 +09:00
Yukihiro "Matz" Matsumoto
32200f1eb9
build_config/no-float.rb: test build for MRB_NO_FLOAT
...
mruby allows to disable floating point numbers. We have add a build
configuration to test mruby build without floating point numbers.
2025-03-09 17:14:46 +09:00
Yukihiro "Matz" Matsumoto
f2c8b43d42
mruby-test: stop unused local variable warning
2025-03-09 16:43:28 +09:00
Yukihiro "Matz" Matsumoto
4ba0cac481
numeric.c (coerce_step_counter): move local variable definition
...
To avoid unused local variable warning.
2025-03-09 16:42:28 +09:00
Yukihiro "Matz" Matsumoto
2b76967724
Merge pull request #6487 from esotericpig/master
...
Add Emscripten toolchain & build_config
2025-03-09 14:28:30 +09:00
Yukihiro "Matz" Matsumoto
9a226c28bc
hash.c: add arity check for Hash#default_proc (and Hash.new); fix #6484
2025-03-08 16:14:26 +09:00
Yukihiro "Matz" Matsumoto
a7f3cfb711
hash.c: allow 'default_proc=nil' to clear default_proc; ref #6483
2025-03-08 15:49:26 +09:00
Yukihiro "Matz" Matsumoto
837f62f18a
hash.c: should check type before setting default_proc; fix #6483
2025-03-08 12:34:25 +09:00
Yukihiro "Matz" Matsumoto
fbaedfeaad
test/hash.rb: remove Hash#freeze before Hash#rehash; ref #6485
2025-03-08 11:25:49 +09:00
Yukihiro "Matz" Matsumoto
87680d3ab2
hash.c (mrb_hash_rehash): call hash_modify before actual modify; fix #6485
2025-03-08 11:21:27 +09:00
Yukihiro "Matz" Matsumoto
213a262b20
hash.c (mrb_hash_compact): call hash_modify instead of mrb_check_frozen
...
Currently, hash_modify() only calls mrb_check_frozen, but we may add new
checks in the future; ref #6485
2025-03-08 11:15:37 +09:00
Yukihiro "Matz" Matsumoto
96113a2ed9
mruby-io: define File.absolute_path method; ref #6482
2025-03-08 11:12:12 +09:00
Yukihiro "Matz" Matsumoto
436269f62c
class.c: remove duplicated CI_TARGET_CLASS definition from class.c
2025-03-08 11:09:57 +09:00
Yukihiro "Matz" Matsumoto
3c4f6501b0
class.c (find_visibility_ci): inline find_ci_from_proc()
2025-03-08 07:54:51 +09:00
esotericpig
bfc9742848
Add Emscripten toolchain & build_config
2025-03-07 12:39:54 -10:00
Yukihiro "Matz" Matsumoto
07b986f710
symbol.c (sym_inline_unpack): should not mix signedness
2025-03-07 17:55:20 +09:00
Yukihiro "Matz" Matsumoto
ec7477fe0d
class.c: take visibility from outer scope
...
It is possible to update the visibility from within a block, so that
`find_visibility_ci()` should look up outer scopes.
2025-03-07 17:49:08 +09:00
Yukihiro "Matz" Matsumoto
67e85ed296
vm.c (mrb_object_exec): update ci's target class by update function
...
To avoid breaking a Proc with env set.
2025-03-07 17:17:50 +09:00
Yukihiro "Matz" Matsumoto
fb56fecf51
class.h: remove macros no longer used
2025-03-07 17:17:50 +09:00
Yukihiro "Matz" Matsumoto
889f09f8b7
class.c: move visibility flags from classes/modules to callinfo
2025-03-07 17:17:50 +09:00
Yukihiro "Matz" Matsumoto
02bf7fe08e
symbol.c (sym_inline_pack): max inline symbol length is now 4
2025-03-07 17:17:50 +09:00
Yukihiro "Matz" Matsumoto
6e1ab49ed3
class.c: allow changing visibility of methods defined in superclasses
2025-03-07 17:17:49 +09:00
Yukihiro "Matz" Matsumoto
2309fa0353
AUTHORS: update entries [ci skip]
2025-03-07 17:17:49 +09:00
Yukihiro "Matz" Matsumoto
37fb59bdac
class.h: rename macros for clarity
...
- MRB_SET_VISIBILITY -> MRB_CLASS_SET_VISIBILITY
- MRB_VISIBILITY -> MRB_CLASS_VISIBILITY
2025-03-07 17:17:49 +09:00
Yukihiro "Matz" Matsumoto
5e6ea6c5f9
vm.c: restore visibility when reopen class/module definition
...
Ideally, the default visibility should be stored in the scope. But for
the time being mruby stores the visibility in the class/module. As a
result, nesting class/module reopening or class_eval/module_eval could
cause incompatibility. We will try to fix them in the future.
2025-03-07 17:17:49 +09:00
Yukihiro "Matz" Matsumoto
2a876d2047
class.c: implement top-level public/private/protected in the core in C
2025-03-07 17:17:49 +09:00
Yukihiro "Matz" Matsumoto
43da490a1e
class.c: alias should keep the visibility of the original
2025-03-07 17:17:48 +09:00
Yukihiro "Matz" Matsumoto
18674c0237
test/module.rb: add visibility tests; ref #1835
2025-03-07 17:17:48 +09:00
Yukihiro "Matz" Matsumoto
384579fd21
test/module.rb: rename to pass the spell check
2025-03-07 17:17:48 +09:00
Yukihiro "Matz" Matsumoto
921d632615
class.c (mrb_mod_visibility): clear method cache
2025-03-07 17:17:48 +09:00
Yukihiro "Matz" Matsumoto
20d5330417
class.c: use MT_VMASK to mask the flag values
2025-03-07 17:17:48 +09:00
Yukihiro "Matz" Matsumoto
3f93254b02
mruby-metaprog: add actual test for Kernel#protected_methods
2025-03-07 17:17:47 +09:00
Yukihiro "Matz" Matsumoto
16db15d6fd
mruby-metaprog: add actual test for Kernel#private_methods
2025-03-07 17:17:47 +09:00
Yukihiro "Matz" Matsumoto
2db1ad9ce3
mruby-metaprog/test: avoid potential name crash by Foo class
2025-03-07 17:17:47 +09:00
Yukihiro "Matz" Matsumoto
6f2409adf3
Revert "proc.h: define visibility flags for RProc"
...
This reverts commit 7948373c7d2a019b0eed6ca6dfcb4d6e503b75d8.
2025-03-07 17:17:47 +09:00
Yukihiro "Matz" Matsumoto
b0db0bdd3a
vm.c: add checks for visibility (private, protected); close #1835
2025-03-07 17:17:47 +09:00
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
1a026ba9aa
pre-commit: autoupdate
2025-03-07 17:17:46 +09:00
Yukihiro "Matz" Matsumoto
29cb270ef4
proc.h: define visibility flags for RProc
...
Visibility status should be store in Procs (that represent scopes), not
classes. Since classes can be reopened or can be accessed recursively.
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
52403abcf8
mruby-binding: make Kernel#binding private
2025-03-07 17:17:45 +09:00
Yukihiro "Matz" Matsumoto
e5e8dd11c0
mruby-rational: make Rational() private
2025-03-07 17:17:45 +09:00
Yukihiro "Matz" Matsumoto
2a991fb399
mruby-complex: make Complex() private
2025-03-07 17:17:45 +09:00
Yukihiro "Matz" Matsumoto
111fe4b3be
mruby-compiler: generate OP_SSEND from Complex and Rational literals
2025-03-07 17:17:45 +09:00
Yukihiro "Matz" Matsumoto
4a0e80601f
mruby-kernel-ext: make Kernel methods private
...
- fail
- caller
= __method__
- __callee__
- Integer
= Float
- String
- Array
- Hash
2025-03-07 17:17:45 +09:00
Yukihiro "Matz" Matsumoto
93e133548f
mruby-eval: make #eval private
2025-03-07 17:17:44 +09:00
Yukihiro "Matz" Matsumoto
d7a4275dd1
mruby-metaprog: make #global_variables, #local_variables private
2025-03-07 17:17:44 +09:00
Yukihiro "Matz" Matsumoto
95b30a38dc
kernel.rb: make Kernel#loop private
2025-03-07 17:17:44 +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
3a56106d6c
mruby-proc-ext: make #proc private
2025-03-07 17:17:43 +09:00
Yukihiro "Matz" Matsumoto
efc03f60af
proc.c: make #lambda private
2025-03-07 17:17:43 +09:00
Yukihiro "Matz" Matsumoto
cc54865873
mruby-sleep: make #sleep (and #usleep) private
2025-03-07 17:17:43 +09:00
Yukihiro "Matz" Matsumoto
f7142cd327
mruby-random: make Kernel#srand and #rand private
2025-03-07 17:17:43 +09:00
Yukihiro "Matz" Matsumoto
4f5cad6444
mruby-catch: make #catch and #throw private
2025-03-07 17:17:43 +09:00
Yukihiro "Matz" Matsumoto
6bb629e957
mruby-exit: make exit methods private
2025-03-07 17:17:42 +09:00
Yukihiro "Matz" Matsumoto
6f97c842d2
mruby-io: use ... for argument forwarding
2025-03-07 17:17:42 +09:00
Yukihiro "Matz" Matsumoto
a736ddcbb7
mruby-io: make some methods private
...
- open
- print
- printf
- gets
2025-03-07 17:17:42 +09:00
Yukihiro "Matz" Matsumoto
37d3d34036
mruby-compiler: use OP_SSEND for backquote calls
2025-03-07 17:17:42 +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
d022a3ee68
mruby-eval/test: use #__send__ to call private #eval
2025-03-07 17:17:41 +09:00
Yukihiro "Matz" Matsumoto
23d5e04fdf
mruby-proc-ext/test: fix wrong usage of mrb_module_function()
2025-03-07 17:17:41 +09:00
Yukihiro "Matz" Matsumoto
541cdf35eb
00kernel.rb: use #__send__ to skip private check
2025-03-07 17:17:41 +09:00
Yukihiro "Matz" Matsumoto
798fd7dbdf
00class.rb: use #__send__ to skip private check
2025-03-07 17:17:41 +09:00
Yukihiro "Matz" Matsumoto
e8574b6298
mruby-struct/test: call #remove_const via #__send__
2025-03-07 17:17:41 +09:00
Yukihiro "Matz" Matsumoto
cce8f62b21
mruby-object-ext/test: call #remove_const via #__send__
2025-03-07 17:17:40 +09:00
Yukihiro "Matz" Matsumoto
4d547b6cbb
test/module.rb: call #remove_const via #__send__ to skip private check
2025-03-07 17:17:40 +09:00
Yukihiro "Matz" Matsumoto
e0cb99aad4
test/module.rb: call #extend_object via #__send__ to skip private check
2025-03-07 17:17:40 +09:00
Yukihiro "Matz" Matsumoto
8a409feaad
test/module.rb: call #prepend_features via #__send__ to skip private check
2025-03-07 17:17:40 +09:00
Yukihiro "Matz" Matsumoto
701a18deda
test/module.rb: call #append_features via #__send__ to skip private check
2025-03-07 17:17:40 +09:00
Yukihiro "Matz" Matsumoto
7653bdd05e
test/codegen.rb: call #remove_const via #__send__ to skip private check
2025-03-07 17:17:39 +09:00
Yukihiro "Matz" Matsumoto
f82cd188b0
test/exception.rb: call #initialize via #__send__ to skip private check
2025-03-07 17:17:39 +09:00
Yukihiro "Matz" Matsumoto
214ae5aad3
test/array.rb: call #initialize via #__send__ to skip private check
2025-03-07 17:17:39 +09:00
Yukihiro "Matz" Matsumoto
7981865e18
test/string.rb: call #initialize via #__send__ to skip private check
2025-03-07 17:17:39 +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
bfcc1e3c2c
mruby-io: puts should print nothing for empty arrays
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
457aaa173b
mruby-metaprog (mrb_mod_remove_method): stop calling method_removed()
...
The hook method should be called from mrb_remove_method().
2025-03-07 17:17:37 +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
4ea5510937
mruby-compiler (merge_op_string): fix #6477
...
If two merging strings are the same and registered at the bottom of the
pool, we should not remove the slot from the pool.
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
1ab8e4d27d
mruby-toplevel-ext: make Main#include private
2025-03-07 17:17:35 +09:00
Yukihiro "Matz" Matsumoto
7f12e6648f
AUTHORS: update entries [ci skip]
2025-03-07 17:17:35 +09:00
Yukihiro "Matz" Matsumoto
1e4a3f3e5c
mruby-toplevel-ext: implement toplevel public/private/protected
2025-03-07 17:17:35 +09:00
Yukihiro "Matz" Matsumoto
235c1484d0
mruby-toplevel-ext: Directly include features to Object class
2025-03-07 17:17:35 +09:00
Yukihiro "Matz" Matsumoto
9e3e7b2cfe
mruby-metaprog: add 3 new methods to retrieve instance method names
...
- public_instance_methods
- private_instance_methods
- protected_instance_methods
2025-03-07 17:17:34 +09:00
Yukihiro "Matz" Matsumoto
9229da10e4
mruby-metaprog: implement method list from a class (or an instance)
2025-03-07 17:17:34 +09:00
Yukihiro "Matz" Matsumoto
a282f8bf2a
mruby-metaprog: remove unnecessary enum
2025-03-07 17:17:34 +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
Yukihiro "Matz" Matsumoto
fc16f9dd13
Merge pull request #6482 from dearblue/absolute_path
...
Add `File.absolute_path?` method
2025-03-07 17:16:20 +09:00
dearblue
c796729fa8
Add File.absolute_path? method
2025-03-05 22:23:49 +09:00
Yukihiro "Matz" Matsumoto
8f69fbbaf8
Merge pull request #6480 from mruby/dependabot/github_actions/super-linter/super-linter-7.3.0
2025-02-28 12:24:20 +09:00
dependabot[bot]
1d76e9f4f4
build(deps): bump super-linter/super-linter from 7.2.1 to 7.3.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 7.2.1 to 7.3.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v7.2.1...v7.3.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2025-02-27 14:28:50 +00:00
Yukihiro "Matz" Matsumoto
0e1a77e7d7
Merge pull request #6479 from dearblue/expand_path
2025-02-27 10:36:32 +09:00
Yukihiro "Matz" Matsumoto
30b0b41fb1
Merge pull request #6478 from dearblue/chars2bytes
2025-02-27 10:32:55 +09:00
dearblue
f77ebfe102
Reimplementation of File.expand_path method
...
The reason for this is to fix the following problems
- Even on non-Windows, drive letter recognition was still being handled.
- On Windows, paths starting with a slash were not expanded correctly.
- On Windows, relative paths containing drive letters behaved differently than in CRuby.
Due to reimplementation, the internal methods `File._concat_path`, `File._gethome` and `File._getwd` methods have been removed.
2025-02-26 21:55:25 +09:00
dearblue
437065997f
Redefine some macros in mruby-io
...
To improve uniformity of names and definition locations.
2025-02-26 21:55:17 +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
Yukihiro "Matz" Matsumoto
66606f71dd
Merge pull request #6474 from dearblue/kwerr
2025-02-03 11:54:52 +09:00
Yukihiro "Matz" Matsumoto
623e953193
Merge pull request #6473 from dearblue/bigint
2025-02-03 08:28:54 +09:00
Yukihiro "Matz" Matsumoto
8c1915ec3b
Merge pull request #6475 from dearblue/buildconf
2025-02-02 21:24:32 +09:00
dearblue
d946c3e264
Don't include deleted mruby-print
2025-02-02 21:13:11 +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
dearblue
3b1e3d930f
Hide mpz_and() symbol
2025-02-02 16:59:28 +09:00
Yukihiro "Matz" Matsumoto
49396024b7
Merge pull request #6472 from dearblue/rational
2025-01-27 12:37:53 +09:00
Yukihiro "Matz" Matsumoto
cb3b94346e
mruby-complier (gen_call): remove duplicate MRB_OPSYM_2(); #6471
2025-01-27 12:36:14 +09:00
Yukihiro "Matz" Matsumoto
69024d9a36
mruby-compiler (gen_call): operator optimization with self; close #6471
...
If the left operand is `self`, the previous (reverted) change disabled
optimization with operators. This is sort of a hack, but it works.
2025-01-26 23:14:19 +09:00
dearblue
12e90896a5
Moved tests for Integer#quo
...
The `Rational` class is never defined during core testing.
2025-01-26 21:11:21 +09:00
Yukihiro "Matz" Matsumoto
acddb3945b
mruby-compiler (gen_call): adjust spacing
2025-01-26 20:08:01 +09:00
Yukihiro "Matz" Matsumoto
6731d59f06
Revert "mruby-compiler (gen_call): use OP_SSEND for self.foo() calls"
...
This reverts commit 583aa985c8f3117a833a38f0d27753a090503f17; #6471
2025-01-26 19:52:01 +09:00
Yukihiro "Matz" Matsumoto
171847a99a
build_config/playstationportable.rb: remove obsolete mruby-print gem
2025-01-23 22:02:24 +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
9bab92e060
.git-blame-ignore-revs: ignore indentation fix commit; ref #6470
2025-01-22 14:10:30 +09:00
Yukihiro "Matz" Matsumoto
f311a53995
Merge pull request #6470 from dearblue/psp
2025-01-22 13:58:18 +09:00
Yukihiro "Matz" Matsumoto
91a7bc53a6
.pre-commit-config.yml: pre-commit autoupdate
2025-01-21 13:07:44 +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
Yukihiro "Matz" Matsumoto
4ebe706496
Merge pull request #6468 from dearblue/hash
2025-01-21 10:29:47 +09:00
dearblue
90ab714fda
Adjusting indentation
2025-01-20 22:51:36 +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
6174541d82
mruby-encoding: move String#b to mruby-string-ext gem
2025-01-18 13:23:55 +09:00
Yukihiro "Matz" Matsumoto
583214f452
build_config: remove MRB_UTF8_STRING from full-core configurations
...
- host-debug
- ci/gcc-clang
Since it is automatically turned on by mruby-encoding.
2025-01-16 09:18:14 +09:00
Yukihiro "Matz" Matsumoto
351cd5aa46
mruby-string-ext: remove some methods moved to mruby-encoding
...
- String#valid_encoding?
- String#force_encoding
2025-01-16 09:12:09 +09:00
Yukihiro "Matz" Matsumoto
3b1c5d7397
mruby-string-ext: remove duplicated definition of String#b
...
When we use `mruby-encoding` gem as well.
2025-01-16 09:08:14 +09:00
Yukihiro "Matz" Matsumoto
0c01bf7ff0
mruby-string-ext: String#codepoints to support binary encoding
2025-01-16 09:06:19 +09:00
Yukihiro "Matz" Matsumoto
8395ffb5f8
mruby-string-ext: String#ord to support binary encoding
2025-01-16 09:00:44 +09:00
Yukihiro "Matz" Matsumoto
74bdae9e4c
mruby-encoding: add Poorman's Encoding gem
...
The difference from CRuby's Encoding:
- Encoding is a module, instead of a class
- each Encoding (e.g. `Encoding::UTF_8) is a string instead of Encoding object
- only supports `UTF-8` and `ASCII-8BIT` (and its alias `BINARY`)
Using this gem automatically turn on `MRB_UTF8_STRING` support.
2025-01-16 08:52:41 +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
6c3143aa12
mrbgem/full-core.gembox: stop excluding mruby-print gem; #6466
...
Since the gem no longer exists.
2025-01-14 13:30:33 +09:00
Yukihiro "Matz" Matsumoto
89d83c27f3
mruby-print: remove the gem; ref #6466
2025-01-14 13:30:32 +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
b623f5c149
mruby-io: define HAVE_MRUBY_IO_GEM if present; ref #6466
2025-01-14 13:24:16 +09:00
Yukihiro "Matz" Matsumoto
272f61a051
AUTHORS: update entries [ci skip]
2025-01-13 12:18:59 +09:00
Yukihiro "Matz" Matsumoto
e47b4ca704
mruby-string-ext: new method String#force_encoding
...
It takes a string instead of Encoding object for simplicity
2025-01-12 23:13:28 +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
d5fa9504ad
mruby-string-ext (str_b): String#b should copy the receiver
2025-01-12 23:13:28 +09:00
Yukihiro "Matz" Matsumoto
6c530b8f48
mruby-string-ext (str_append_as_bytes): reimplement in C
...
To handle strings as byte sequences.
2025-01-12 23:13:27 +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
8c184d4566
string.h: move flag definitions for readability
2025-01-12 23:13:26 +09:00
Yukihiro "Matz" Matsumoto
e75654a991
string.h (RSTR_SET_TYPE): simplify macro definition
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
797c49bc0b
Merge pull request #6465 from diamant3/add-psp-build
2025-01-12 23:10:06 +09:00
Diamond Rivero
7fa467eb40
Add initial playstation portable crossbuild
2025-01-11 08:28:06 +08: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
003e0fb330
mruby-print: disable the gem unless explicitly specified
...
mruby-print is the duplicate of part of mruby-io. You need it only when
limited I/O functionality required.
2025-01-06 13:57:23 +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
6f8bfed18e
object.h: change gccolor type to unsigned int
...
I was uncomfortable with the combination of an integer with a size
specification (uint32_t) and a bit field.
2025-01-06 13:56:58 +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
04ab2be2f0
mruby-string-ext (str_ascii_only_p): simplify the flag update
2025-01-03 08:47:38 +09:00
Yukihiro "Matz" Matsumoto
5a7c944a52
mruby-string-ext (str_b): simplify the flag update
2025-01-03 08:46:04 +09:00
Yukihiro "Matz" Matsumoto
8c2c57c59b
Merge pull request #6461 from dearblue/auto-release
2025-01-02 21:58:26 +09:00
Yukihiro "Matz" Matsumoto
e35c027966
Merge pull request #6463 from dearblue/dirname
2025-01-02 21:58:01 +09:00
Yukihiro "Matz" Matsumoto
1c50d1885d
Merge pull request #6462 from dearblue/mruby-io
2025-01-02 21:55:17 +09:00
Yukihiro "Matz" Matsumoto
b0127f0cdd
mruby-string-ext (str_b): add a new method String#b
...
The method makes the receiver binary-mode, but in mruby, which is
virtually no meaning.
2025-01-02 18:45:50 +09:00
dearblue
5c91014530
Add level argument to File.dirname
...
from Ruby-3.1
https://bugs.ruby-lang.org/issues/12194
2025-01-02 18:10:14 +09:00
dearblue
ef11cd94e7
Reimplement the File.dirname method
...
The purpose is as follows:
- Stop using `mrb_locale_from_utf8()`.
- Because there is no corresponding `mrb_utf8_from_locale()`.
- Because on Windows, for example, if the code page is 932 (CP932, likely ShiftJIS), it cannot be distinguished from the second byte 0x5c (\), and returns wrong results.
- Stop using `dirname(3)`.
- Because leading consecutive slashes are not truncated.
For example, if `/////a/b` is given, CRuby returns `/a`, but mruby so far returns `/////a`.
- Because the `path` argument cannot be passed in an immutable form.
- Stop using `_splitpath()` in the Windows implementation.
- Because there is no support for UNC paths with up to 32767 characters.
ref. https://learn.microsoft.com/ja-jp/dotnet/standard/io/file-path-formats#unc-paths
- Because modifying the result of paths terminated by a directory separator.
Previously, for example, `C:/` would return `C:.` instead of `C:/`, and `a/b/` would return `a/b` instead of `a`.
2025-01-02 17:42:40 +09:00
dearblue
3b659f5320
Properly cast the return value of memchr()
2025-01-02 15:34:36 +09:00
dearblue
af1e33c442
To create a release package file in draft
...
This is to allow final confirmation of the created release file.
Release files in draft form cannot be downloaded by the general public.
2025-01-01 20:24:56 +09:00
Yukihiro "Matz" Matsumoto
85df487e63
mruby-string-ext (append_as_bytes): new method introduced by CRuby 3.4
...
Since mruby does not have Encoding support, append_as_bytes works
exactly same as String#concat.
2025-01-01 16:05:00 +09:00
Yukihiro "Matz" Matsumoto
9f59d26c35
class.c: adjust space around the operator
2024-12-30 22:45:13 +09:00
Yukihiro "Matz" Matsumoto
59d1fcfa02
include/proc/h: add 2 new constants for the future
2024-12-29 18:04:40 +09:00
Yukihiro "Matz" Matsumoto
d7559253de
mruby-compiler: need to add proper type cast for C++
2024-12-28 11:39:22 +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
32d11d86ff
mruby-compiler (new_lit_str2): move declarations to the point needed
2024-12-26 09:58:01 +09:00
Yukihiro "Matz" Matsumoto
648495a4b3
mruby-compiler (mrb_prev_pc): remove unnecessary local variable
2024-12-25 12:40:33 +09:00
Yukihiro "Matz" Matsumoto
160935dc24
mruby-compiler (mrb_prev_pc): add assertion to ensure pc within iseq
2024-12-25 12:39:57 +09:00
Yukihiro "Matz" Matsumoto
dbcb5b5a6d
mruby-compiler (merge_pool_str): check whether merged string is in the pool
2024-12-25 12:39:34 +09:00
Yukihiro "Matz" Matsumoto
890a8362b6
mruby-compiler (new_lit_str2): fixed a bug in pool string equality check
2024-12-25 12:39:34 +09:00
Yukihiro "Matz" Matsumoto
6687bddba3
mruby-compiler (gen_addsub): merge 2 literal strings str + str
...
Unlike previous attempt, this change can merge sequence of plus
operations (e.g. `str + str + str`). Need more tests though.
2024-12-25 12:39:34 +09:00
Yukihiro "Matz" Matsumoto
b44372599e
mruby-compiler (codegen): combine literal str + str to one string
2024-12-25 12:39:34 +09:00
Yukihiro "Matz" Matsumoto
61f57b22dd
Merge pull request #6459 from dearblue/FileTest
2024-12-25 00:04:11 +09:00
dearblue
7c69a37aa6
FileTest is a module
...
It has been incorrectly defined as a class.
2024-12-23 22:45:47 +09:00
Yukihiro "Matz" Matsumoto
6037e50298
test/hash: update tests to new hash format
2024-12-21 08:53:57 +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
e31869fd91
mruby-fiber: rename fiber_init_fiber to init_fiber
...
Resolve confusing function names
2024-12-20 17:56:25 +09:00
Yukihiro "Matz" Matsumoto
583aa985c8
mruby-compiler (gen_call): use OP_SSEND for self.foo() calls
2024-12-20 10:05:09 +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
c83bddd856
mruby-bigint (bint_new): avoid memcpy'ing NULL pointer
...
The second argument of memcpy() is declared to never be NULL. Clang ASAN
report this as an undefined behavior error.
2024-12-18 13:48:11 +09:00
Yukihiro "Matz" Matsumoto
18cc2cea41
mruby-compiler (codegen): loop info may be NULL (retry)
2024-12-17 10:41:23 +09:00
Yukihiro "Matz" Matsumoto
a77b9b4bab
mruby-compiler (codegen): loop info may be NULL (redo)
2024-12-17 10:41:23 +09:00
Yukihiro "Matz" Matsumoto
f67939ff78
Merge pull request #6458 from mruby/dependabot/github_actions/super-linter/super-linter-7.2.1
2024-12-17 10:32:32 +09:00
dependabot[bot]
8099db94ff
Bump super-linter/super-linter from 7.2.0 to 7.2.1
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 7.2.0 to 7.2.1.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v7.2.0...v7.2.1 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-12-16 14:23:58 +00: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
d1003a6f9a
mruby-fiber (fiber_init_fiber): clear all of fiber stack allocated
2024-12-16 19:23:05 +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
Yukihiro "Matz" Matsumoto
d13e6ff8c9
include/presym.h: MRB_GVSYM() for global variables is now available
2024-12-14 16:03:35 +09:00
Yukihiro "Matz" Matsumoto
46019f3871
Merge pull request #6444 from hoshiumiarata/tests_for_bigint
2024-12-13 17:57:16 +09:00
Hoshiumi Arata
03ed952600
Merge branch 'master' into tests_for_bigint
2024-12-13 17:31:54 +09:00
Yukihiro "Matz" Matsumoto
b561abd46b
Merge pull request #6457 from hoshiumiarata/fix_division_of_smallint_by_bigint
2024-12-13 14:23:52 +09:00
Hoshiumi Arata
6fb93ce6f7
mruby-bigint: fix bug with division of a small number by a bigint; fix #6456
2024-12-13 12:07:34 +09:00
Yukihiro "Matz" Matsumoto
917066647e
Merge pull request #6450 from dearblue/io-pread-pwrite
2024-12-13 08:19:55 +09:00
dearblue
ce1abfb2c9
Change MRB_WITH_IO_PREAD_PWRITE configuration name
...
Change to `MRB_USE_IO_PREAD_PWRITE` for consistency with mruby configuration macros.
Similarly, `MRB_WITHOUT_IO_PREAD_PWRITE` is changed to `MRB_NO_IO_PREAD_PWRITE`.
The previous names are available for compatibility but are deprecated.
2024-12-12 22:18:34 +09:00
Yukihiro "Matz" Matsumoto
29a2bc19a3
mruby-bigint (mpz_get_str): use UL suffix for mp_limb table
2024-12-12 17:15:02 +09:00
Hoshiumi Arata
3152402fa6
Merge branch 'master' into tests_for_bigint
2024-12-12 17:01:06 +09:00
Yukihiro "Matz" Matsumoto
c495d08c5b
mruby-io (mrb_file__gethome): add casts to stop type warnings
2024-12-12 16:13:56 +09:00
Yukihiro "Matz" Matsumoto
423c12e985
Merge pull request #6455 from hoshiumiarata/bigint_fix_div_rounding
2024-12-12 16:13:47 +09:00
Yukihiro "Matz" Matsumoto
ceb1885121
Merge pull request #6454 from hoshiumiarata/fix_rhs_bigint_mod_and_divmod
2024-12-12 13:45:48 +09:00
Yukihiro "Matz" Matsumoto
d8e6de28e9
mruby-bigint (mrb_bint_add_n): fixed a memory leak
2024-12-11 21:29:22 +09:00
Yukihiro "Matz" Matsumoto
8bd62ca311
mruby-bigint (mrb_bint_xor): fix a bug in bigint ^ int operation
...
Fix #6453 ; ref #6444
2024-12-11 21:29:21 +09:00
Yukihiro "Matz" Matsumoto
b807c0a27d
mruby-bigint (mpz_pow): combine mpz_init and mpz_set
2024-12-11 21:29:21 +09:00
Yukihiro "Matz" Matsumoto
8da0db545e
mruby-bigint (mpz_get_str): reduce one division
2024-12-11 21:29:21 +09:00
Hoshiumi Arata
94a3a3eb6e
mruby-bigint: fix rounding behavior in mpz_mdiv and mpz_mdivmod functions
2024-12-11 21:09:46 +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
Yukihiro "Matz" Matsumoto
989c133c9f
Merge pull request #6449 from dearblue/presym.2
2024-12-11 10:46:27 +09:00
Yukihiro "Matz" Matsumoto
a77e917d78
Merge pull request #6448 from dearblue/presym.1
2024-12-11 10:08:22 +09:00
Yukihiro "Matz" Matsumoto
19cb0fc374
Merge pull request #6447 from dearblue/File.expand_path
...
Fixed `File.expand_path`
2024-12-10 13:54:46 +09:00
Hoshiumi Arata
7dfbbd1eaa
Merge branch 'master' into tests_for_bigint
2024-12-09 22:38:32 +09:00
dearblue
27082d143c
Using presym in the mruby-io/src/file_test.c file
2024-12-09 22:09:15 +09:00
dearblue
384db9054d
Suppress presym in mruby/ext/io.h file
...
When defining macro constants for error classes in public header files, it is preferable to use `MRB_ERROR_SYM()`.
2024-12-09 22:05:01 +09:00
Yukihiro "Matz" Matsumoto
9af061a4ce
mruby-bigint: fixed a bug in string conversion; ref #6444
2024-12-09 13:14:22 +09:00
Yukihiro "Matz" Matsumoto
6d2e7f50e2
mruby-bigint: compact mpz_add_int,mpz_sub_int calling conditions
2024-12-09 13:04:01 +09:00
Yukihiro "Matz" Matsumoto
441d4be0ad
mruby-bigint: fixed a bug with bigint +/- mrb_int; close #6445
2024-12-08 23:45:25 +09:00
Yukihiro "Matz" Matsumoto
33841519a9
AUTHORS: update entries [ci skip]
2024-12-08 19:35:41 +09:00
Yukihiro "Matz" Matsumoto
7b0dcaaa34
Merge pull request #6446 from dearblue/win64
2024-12-08 19:35:27 +09:00
dearblue
88e3ce1b58
Fix File.expand_path for Windows
...
- The inner method `File._gethome` could be read as intending to use the `USERPROFILE` environment variable instead on Windows when the `HOME` environment variable is not available.
In reality, however, this was not the case.
- The result of `File.expand_path` should unify path separators with `/`, but it did not.
2024-12-08 10:43:20 +09:00
dearblue
06bb54d380
Improved File.expand_path test in `mruby-io
...
Since `mruby-io` does not depend on `mruby-env` even for test builds, it is impossible that `ENV` constants are defined.
Therefore, define `MRubyIOTestUtil::ENV_HOME` for alternative use.
2024-12-08 10:43:20 +09:00
dearblue
1326017d1d
Omit the _WIN64 definition check
...
Checking the official MSVC documentation, if `_WIN64` is defined, then `_WIN32` is also defined.
https://learn.microsoft.com/en-us/cpp/preprocessor/predefined-macros
I could not find any documentation on MinGW, but I assume it is not a problem.
2024-12-07 22:47:28 +09:00
Yukihiro "Matz" Matsumoto
1dfd3d9043
Merge pull request #6442 from dearblue/jmpuw
2024-12-06 23:43:31 +09:00
Yukihiro "Matz" Matsumoto
ac6436556b
Merge pull request #6440 from dearblue/redo
...
Fix `redo` keyword
2024-12-06 23:42:44 +09:00
Hoshiumi Arata
9a02daaca0
Merge branch 'master' into tests_for_bigint
2024-12-04 20:58:55 +09:00
Yukihiro "Matz" Matsumoto
16028442e6
Merge pull request #6443 from hoshiumiarata/node_negate_for_bigint
2024-12-04 20:50:22 +09:00
Hoshiumi Arata
21ccbf965e
bigint: expand test cases for arithmetic operations
2024-12-04 18:34:21 +09:00
Hoshiumi Arata
3034b0847a
codegen: fix NODE_NEGATE for bigints
2024-12-04 17:57:50 +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
94a4b95b5d
test/lang.rb: update compiled code in comments
...
- variable sized instructions
- new instruction names
- remove OP_ prefix as code dump does
2024-12-02 15:23:06 +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
dearblue
9a67bdb6aa
Fix redo keyword
...
Add `OP_NOP` to distinguish `retry` and jump targets while maintaining instruction compatibility.
Ideally, it might be preferable to separate them into `OP_REDO`.
fixed #6439
2024-12-01 11:40:17 +09:00
dearblue
939659e2db
Allow redo from nested LOOP_BEGIN and LOOP_RESCUE
2024-12-01 11:34:10 +09:00
dearblue
01ea2c088d
Add more tests for redo keyword
2024-12-01 11:33:23 +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
e05dbf7bbc
mruby-compiler (mrb_irep_remove_lv): remove the function altogether
...
Recent changes make mrb_irep_remove_lv() used no longer. Removing this
function would not make any compatibility issue, since it's an internal
function.
2024-11-29 17:09:44 +09:00
Yukihiro "Matz" Matsumoto
28d2dfbb11
mruby-bin-mrbc: use MRB_DUMP_NO_LVAR flag
...
Instead of `mrb_irep_remove_lv()` function.
2024-11-29 16:45:26 +09:00
Yukihiro "Matz" Matsumoto
3a6272d9e9
mruby-bin-strip: use MRB_DUMP_NO_LVAR flags
...
Instead of `mrb_irep_remove_lv()` function.
2024-11-29 16:41:27 +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
bd5ece3a26
dump.h: remove obsolete flag DUMP_DEBUG_INFO
2024-11-29 07:39:26 +09:00
Yukihiro "Matz" Matsumoto
4751e385c3
dump.h: add new dump flag MRB_DUMP_NO_LVAR
2024-11-29 07:38:47 +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
Yukihiro "Matz" Matsumoto
a5c6cb5afb
Merge pull request #6434 from dearblue/doc/hier
2024-11-28 04:53:55 +09:00
dearblue
26f949e612
Added document "The mruby directory structure"
...
This text was translated from Japanese to English by https://www.deepl.com/ .
2024-11-27 23:04:23 +09:00
Yukihiro "Matz" Matsumoto
3505874f72
Merge pull request #6437 from jbampton/pre-commit-config-add-more-details
2024-11-27 14:40:38 +09:00
Yukihiro "Matz" Matsumoto
85eeeda0b3
Merge pull request #6438 from dearblue/task/install
2024-11-27 14:36:21 +09:00
dearblue
c7ca1038d2
Remove unused MRuby::Build#list_install_excludes method
...
This method was added by commit 0ac755dbc8 (#6407 ).
It was added during the initial conception, but was ultimately no longer needed.
2024-11-26 22:05:47 +09:00
Yukihiro "Matz" Matsumoto
c96f0cd265
mruby-compar-ext (clamp): found a bug by newly added test
...
Translate CRuby's logic (in C) to Ruby.
2024-11-26 17:40:10 +09:00
Yukihiro "Matz" Matsumoto
ec68c6afd8
mruby-compar-ext: add test for Comparable#clamp
2024-11-26 17:40:09 +09:00
Yukihiro "Matz" Matsumoto
a6267a4145
Merge pull request #6436 from dearblue/doc/index
2024-11-26 13:35:27 +09:00
John Bampton
7fb6fdd4e2
Add more details to the pre-commit config
2024-11-25 22:49:30 +10:00
dearblue
f42a55d9e0
Make rake doc:update-index prettier friendly
2024-11-25 21:32:14 +09:00
Yukihiro "Matz" Matsumoto
3ececd4f1f
mruby-catch: fixed typo
2024-11-25 16:51:46 +09:00
Yukihiro "Matz" Matsumoto
1c317cf79e
mruby-catch (throw_m): small refactoring
2024-11-25 12:28:50 +09:00
Yukihiro "Matz" Matsumoto
79dda053a5
mruby-numeric-ext: add test for Integer#digits
2024-11-23 23:16:47 +09:00
Yukihiro "Matz" Matsumoto
781359a1d1
Merge pull request #6432 from dearblue/hash
2024-11-22 09:53:10 +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
87bd5c7abc
Merge pull request #6409 from jbampton/add-prettier-config
2024-11-21 14:01:41 +09:00
Yukihiro "Matz" Matsumoto
1e41c47ebf
Merge pull request #6429 from hoshiumiarata/fix_num_params_as_hash_key
2024-11-21 11:47:00 +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
3ad85e6038
Merge pull request #6431 from dearblue/typo
2024-11-21 07:58:55 +09:00
dearblue
de494796ac
Fixed typo
2024-11-20 21:14:55 +09:00
John Bampton
a7c947360e
[CI] Add prettier to pre-commit
...
Add `.prettierignore` and the `.prettierrc` config file. Prettier is currently targeting the `JSON`, `Markdown` and `YAML` files in the mruby repo.
Additional file types can be targetted with prettier via additional community plugins.
https://prettier.io/docs/en/
You can see all the languages that are supported on the homepage:
https://prettier.io/
This PR references a few other issues and PRs
We did have prettier running with pre-commit before that method was removed from prettier.
https://github.com/mruby/mruby/pull/6292
https://github.com/mruby/mruby/issues/6291
https://github.com/mruby/mruby/issues/6138
https://github.com/mruby/mruby/pull/5490
Perhaps we could add more npm software to pre-commit in future using new the `local` repo approach.
https://pre-commit.com/#repository-local-hooks
The best part is that it runs with pre-commit on our local machines on `git commit` and also when running `pre-commit run --all-files` or for example when running `make check`.
There were also some minor fixes / style changes in the pre-commit config to standardize casing.
https://www.npmjs.com/package/prettier?activeTab=readme
2024-11-20 14:51:11 +10:00
Yukihiro "Matz" Matsumoto
dc5566e560
mruby-bigint (int_fit_limb_p): fix the logic to check mrb_int size
...
`int_fit_limb_p()` checks if `mrb_int` fits in `mp_limb`. Previous logic
did not work well with negative integers.
2024-11-20 11:27:54 +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
Yukihiro "Matz" Matsumoto
9ea6bda781
Merge pull request #6427 from dearblue/vm-recursive
2024-11-20 07:22:12 +09:00
Yukihiro "Matz" Matsumoto
4953dcd81f
Merge pull request #6428 from hoshiumiarata/change_limits_of_addi_and_subi
2024-11-20 06:37:19 +09:00
Hoshiumi Arata
386cd771e7
Fix numbered parameters when used as hash keys
2024-11-20 00:31:44 +09:00
Hoshiumi Arata
d5823623ed
Change the limits of OP_ADDI and OP_SUBI from 0-127 to 0-255.
2024-11-19 23:36:22 +09:00
Yukihiro "Matz" Matsumoto
9546207047
Merge pull request #6426 from hoshiumiarata/coverage
...
Add GitHub Actions workflow for coverage reporting
2024-11-19 22:55:37 +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
Hoshiumi Arata
0947dd64d0
Update coverage workflow to use Clang 18 for compilation
2024-11-19 18:24:40 +09:00
Hoshiumi Arata
abca6549d8
Update coverage workflow to use Clang for compilation
2024-11-19 18:12:57 +09:00
Hoshiumi Arata
593cda570f
Update retention days for coverage report in GitHub Actions workflow
2024-11-19 18:11:08 +09:00
Yukihiro "Matz" Matsumoto
dbb1d2342f
Merge pull request #6425 from mruby/dependabot/github_actions/super-linter/super-linter-7.2.0
2024-11-19 06:41:07 +09:00
Hoshiumi Arata
1fbcd4a39b
Fix lint errors
2024-11-19 00:06:37 +09:00
Hoshiumi Arata
f7b2ec1408
Fix formatting of coverage report in GitHub Actions workflow
2024-11-19 00:00:49 +09:00
Hoshiumi Arata
7cf5e9b0af
Refactor coverage report generation in GitHub Actions workflow
2024-11-18 23:56:55 +09:00
dependabot[bot]
cc76dda8a5
Bump super-linter/super-linter from 7.1.0 to 7.2.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 7.1.0 to 7.2.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v7.1.0...v7.2.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-11-18 14:45:49 +00:00
Hoshiumi Arata
fbcc6cf255
Update coverage workflow to trigger on pull requests
2024-11-18 23:29:17 +09:00
Hoshiumi Arata
6028be193c
Add GitHub Actions workflow for coverage reporting
2024-11-18 23:19:28 +09:00
Yukihiro "Matz" Matsumoto
b437b1da24
Merge pull request #6424 from MaxFork/max-add-check_command
2024-11-18 23:15:40 +09:00
Max Base
f6106f62c7
Update Makefile - Add check_command
2024-11-17 14:43:21 +03:30
Yukihiro "Matz" Matsumoto
f27bc6ab32
Merge pull request #6423 from dearblue/task/test
2024-11-17 07:52:50 +09:00
Yukihiro "Matz" Matsumoto
6663f1072c
Merge pull request #6422 from dearblue/hash
2024-11-17 00:05:20 +09:00
dearblue
cf91cbf090
Adding a serialized test task
...
Under normal circumstances, `rake -m test` will parallelize not only the build task, but also the test task.
With this patch, `rake -m test:run:serial` will parallelize the build tasks, but the test tasks will be done one by one in sequence.
The name of the task to be added is as follows:
| tasks to be added | corresponding exist tasks
| --------------------- | ----------------
| `test:run:serial` | `test:run`
| `test:run:serial:bin` | `test:run:bin`
| `test:run:serial:lib` | `test:run:lib`
2024-11-16 21:21:51 +09:00
dearblue
9501c3f58c
Add annotations for function names defined in the preprocessor
2024-11-16 20:50:49 +09:00
Yukihiro "Matz" Matsumoto
013bcb9221
Merge pull request #6420 from jbampton/patch-2
2024-11-16 04:52:15 +09:00
Yukihiro "Matz" Matsumoto
628f057482
Merge pull request #6419 from hoshiumiarata/fix_numparams_in_lambda
2024-11-15 16:17:03 +09:00
Yukihiro "Matz" Matsumoto
e0d9bce8b6
Merge pull request #6415 from hoshiumiarata/fix_numbered_parameters_in_singleton
2024-11-15 16:10:34 +09:00
Yukihiro "Matz" Matsumoto
a00267c802
Merge pull request #6417 from hoshiumiarata/fix_email_lint
2024-11-15 16:03:41 +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
John Bampton
d506ed08da
Update .github/labeler.yml
2024-11-13 23:46:22 +10:00
John Bampton
33ba77fb00
Update labeler.yml: add label for the tools directory
2024-11-13 23:39:51 +10:00
Hoshiumi Arata
9fe2a5c46a
parser: setup numbered parameters in new_lambda and adjust dump_prefix offset
2024-11-13 22:19:27 +09:00
Hoshiumi Arata
3be0e6b24f
Update mlc_config.json to ignore mailto links in linting
2024-11-13 20:45:28 +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
Hoshiumi Arata
cc2ec53807
parser: support numbered parameters when used as a singleton
2024-11-13 00:22:49 +09:00
Yukihiro "Matz" Matsumoto
13acf12df5
test/t/vformat.rb: fix encoding error; should have been UTF-8
2024-11-11 23:52:58 +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
Yukihiro "Matz" Matsumoto
d2eb2bcacc
Update AUTHORS [ci skip]
2024-11-11 11:07:42 +09:00
Yukihiro "Matz" Matsumoto
1d88398d94
Merge pull request #6413 from dearblue/doc/index
2024-11-11 09:45:14 +09:00
Yukihiro "Matz" Matsumoto
d4cb111d14
Merge pull request #6412 from dearblue/OP_RETURN_BLK
...
Distinguish the call frame of the generator with `OP_RETURN_BLK`
2024-11-10 23:10:27 +09:00
dearblue
6291b55bba
Add links to documentation in README.md
...
The documentation table is generated by the `rake doc:update-index` command.
The following conditions must be met for links to be added to the documentation table.
- The file must be placed under the `doc/` directory
- The file must have the extension `.md`
- The file must be written at the top of the file with `<! -- summary: ANY-TEXT -->`
2024-11-10 22:39:14 +09:00
dearblue
c654123561
Distinguish the call frame of the generator with OP_RETURN_BLK
...
When multiple identical proc objects are placed on the call stack, it is not possible to distinguish where to `return`.
Therefore, use env object comparisons to do this.
fixed #6411
2024-11-10 18:39:00 +09:00
Yukihiro "Matz" Matsumoto
90764b10fd
Merge pull request #6410 from dearblue/msvc
2024-11-07 14:12:18 +09:00
dearblue
ff9c03fde4
Put #include <stdlib.h> in parse.y
...
ref. #6388
2024-11-06 22:29:29 +09:00
Yukihiro "Matz" Matsumoto
fcab6d2769
Merge pull request #6408 from dearblue/c++
2024-11-06 13:31:42 +09:00
dearblue
a92b97ff45
Improve compliance with C++ standards
...
- Avoid "Designated initializer"
C++20 is required for C++.
- Avoid "Compound literals"
Not available for C++.
2024-11-05 22:07:53 +09:00
Yukihiro "Matz" Matsumoto
ee7919e658
Merge pull request #6407 from dearblue/install/libmruby_core
2024-11-05 13:10:44 +09:00
Yukihiro "Matz" Matsumoto
521766009b
Merge pull request #6405 from ArtSin/io_read-fix-mrb_raisef-arg
2024-11-05 13:08:42 +09:00
Yukihiro "Matz" Matsumoto
fed631c21b
mruby-bigint (mrb_bint_sub_n): avoid allocating mpz_z
2024-11-05 13:03:54 +09:00
Yukihiro "Matz" Matsumoto
6085ffb968
mruby-bigint (mrb_bint_add_n): avoid allocating mpz_z
2024-11-05 12:22:10 +09:00
Yukihiro "Matz" Matsumoto
ef18bd86a6
mruby-bigint (mpz_sub_int): avoid allocating mpz_t for mrb_int
2024-11-05 11:52:22 +09:00
Yukihiro "Matz" Matsumoto
fe12e840f3
mruby-bigint (mpz_add_int): move the function definition
...
To prepare `mpz_sub_int` update.
2024-11-05 11:52:22 +09:00
dearblue
0ac755dbc8
Allow to exclude specific files in rake install
...
Introduce the `MRuby::Build#install_excludes` attribute.
This attribute is an array to which you add strings, regular expressions, and proc objects that will serve as filters to exclude.
This feature was inspired by @hoshiumiarata's comment.
https://github.com/mruby/mruby/issues/6352#issuecomment-2426721517
2024-11-04 20:44:13 +09:00
ArtSin
0afc7ae13b
io_read: use %i instead of %d in call to mrb_raisef
...
`length` is `mrb_int`, not `int`.
2024-11-04 13:56:46 +04:00
Yukihiro "Matz" Matsumoto
48455756d2
Merge pull request #6399 from jbampton/patch-2
2024-11-03 07:21:26 +09:00
John Bampton
903baddb03
Add macOS 15 to the build
...
macOS 15 (Sequoia) is now available as a public beta in GitHub Actions
https://github.com/actions/runner-images/issues/10686
https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md
2024-11-02 12:50:17 +10:00
Yukihiro "Matz" Matsumoto
16ae9e6ed9
Merge pull request #6397 from wataash/boxno-set-value
2024-11-01 11:11:39 +09:00
Wataru Ashihara
b1d299f88b
boxing_no.h: rename BOXNIX_SET_VALUE -> BOXNO_SET_VALUE
...
boxing_nix.h was renamed to boxing_no.h on
https://github.com/mruby/mruby/commit/df4c298e3b280b11add8502f1602cefc246655dd
2024-10-31 16:01:05 +09:00
Yukihiro "Matz" Matsumoto
3885e14049
mruby-rational: explicitly add return for error cases too
2024-10-31 14:06:10 +09:00
Yukihiro "Matz" Matsumoto
19d3620965
mruby-bigint (mrb_bint_powm): stop a warning for no return
2024-10-31 14:06:10 +09:00
Yukihiro "Matz" Matsumoto
49525fa207
mempool.c: renamed from pool.c
...
To avoid confusion with pools in irep, we renamed region-based memory
manager from pool to mempool.
- rename pool.c to mempool.c
- separate mempool.h
- rename all mrb_pool to mrb_mempool
So if someone is using pool.c functions (I suppose no one does though),
they need to rename all `mrb_pool` to `mrb_mempool` and include
`mruby/mempool.h` header at the top.
2024-10-31 14:06:10 +09:00
Yukihiro "Matz" Matsumoto
62ef5db13e
irep.h: rename mrb_pool_value to mrb_irep_pool
...
mrb_pool_value is a structure that represents a value in the irep
literal pool and is unrelated to mrb_pool, which performs region-based
memory management. It has been renamed mrb_irep_pool to avoid confusion.
2024-10-29 20:34:53 +09:00
Yukihiro "Matz" Matsumoto
2436b32f1f
irep.h: reformat comments
2024-10-29 20:34:52 +09:00
Yukihiro "Matz" Matsumoto
6ad6b6c6c1
Merge pull request #6396 from vickash/milkvduo
2024-10-28 10:42:51 +09:00
vickash
8fbc809614
milkvduo: update GPIO gem url
2024-10-27 17:37:33 -04:00
Yukihiro "Matz" Matsumoto
cda7b56d65
Merge pull request #6395 from dearblue/to_proc
2024-10-27 21:14:48 +09:00
dearblue
a7a81aa761
Storing method-id inside Symbol#to_proc
...
When called in combination with a method like `*_eval` or `*_exec` that switches self, `__send__` was passed an object that was not necessarily a symbol as the method name.
This problem was discovered during the #6389 correction process.
2024-10-27 10:41:51 +09:00
Yukihiro "Matz" Matsumoto
38487f2100
Merge pull request #6393 from dearblue/mrb_object_exec
2024-10-26 07:51:55 +09:00
dearblue
94290b9bb8
Follow-up to #6391
...
The #6392 has been merged, so the call to `mrb_yield_with_class()` is no longer needed.
2024-10-25 21:11:07 +09:00
Yukihiro "Matz" Matsumoto
ba69f36d6d
Merge pull request #6392 from dearblue/mrb_exec_irep
2024-10-25 07:12:05 +09:00
Yukihiro "Matz" Matsumoto
49b9db24b2
Merge pull request #6391 from dearblue/instance_exec
2024-10-25 07:09:44 +09:00
dearblue
8d64788cbf
Fix argument forwarding in mrb_exec_irep()
...
C to Ruby calls using `mrb_exec_irep()` were not forwarding arguments.
There was also a problem in setting the target class and method ID, which is also fixed.
This issue was discovered during the work to fix #6389 .
2024-10-24 22:33:18 +09:00
dearblue
a196d8a5f3
Fixed also argument forwarding in class_exec
...
Pointed out by @matz.
https://github.com/mruby/mruby/pull/6391#issuecomment-2433662139
2024-10-24 22:05:59 +09:00
dearblue
f9151e0bd9
Fixed argument forwarding in instance_exec
...
However, on C, there is no easy way to pass keyword arguments.
Therefore, when called `Kernel#instance_exec` on C, keyword arguments are converted to positional arguments.
This is a limitation of current mruby.
fixed #6389
2024-10-24 21:20:46 +09:00
Yukihiro "Matz" Matsumoto
f245943aed
mruby-bigint (mrb_bint_powm): fixed bugs in type casting
2024-10-24 07:21:12 +09:00
Yukihiro "Matz" Matsumoto
0b96f7f2f7
mruby-bigint (mrb_bint_to_s): add uzero_p() check
2024-10-24 07:20:24 +09:00
Yukihiro "Matz" Matsumoto
c5565a37ac
mruby-bigint: add checks for divided by zero by sizes and contents
2024-10-24 07:18:34 +09:00
Yukihiro "Matz" Matsumoto
5e9593e285
mruby-bigint (udiv): add assertion for divided by zero
2024-10-24 07:16:32 +09:00
Yukihiro "Matz" Matsumoto
3d3aa92649
Merge pull request #6390 from dearblue/mrb_gc_free_gv
2024-10-23 10:03:16 +09:00
dearblue
be9431a9ef
Fix use-after-free by mrb_gc_unregistor()
...
Calling `mrb_gc_unregistor()` from `mrb_data_type::dfree` caused a use-after-free deep inside `mrb_close()`.
The impetus to investigate was <https://github.com/mruby/mruby/pull/6342#pullrequestreview-2292747530 >.
Currently, when `mrb_close()` is called, all objects are destroyed first.
The process is done heap page by heap page, and when all objects belonging to a heap page are destroyed, the heap page is released.
If the next heap page contains `RData` objects, the `mrb_gc_unregistor()` function may be called from the `mrb_data_type::dfree` function.
At this time, the `mrb_gc_unregistor()` function gets an array object from a Ruby global variable.
If the array object belongs to a freed heap page, use-after-free is established by referencing this array object.
About the fixes.
First of all, there is the fact that the `mrb_gv_get()` function returns `nil` if `mrb->globals` is `NULL`.
Therefore, before destroying all objects, free `mrb->globals` and set `mrb->globals` to `NULL` at the same time.
Now the `mrb_gv_get()` function will return `nil` to the calling `mrb_gc_unregistor()` function and `mrb_gc_unregistor()` will do nothing more.
ref. https://github.com/mruby/mruby/issues/4618
2024-10-22 22:57:49 +09:00
Yukihiro "Matz" Matsumoto
b95ca53e5c
mruby-compiler: revert ce2fdb7; close #6388
...
The commit was to stop warnings from Visual C but unexpectedly caused
compilation errors on some configuration.
2024-10-22 14:46:12 +09:00
Yukihiro "Matz" Matsumoto
51fd065722
mruby-compiler (parser_yylex): skip sign if bigint starts with +
...
To reserve memory (1 byte) and avoid error (fixed by 11cff8f ).
2024-10-22 14:45:48 +09:00
Yukihiro "Matz" Matsumoto
11cff8fa7d
mruby-bigint (mpz_init_set_str): should skip + in the string
...
When the string starts with `+` it should not cause error silently. It
might cause serious error afterwards.
2024-10-22 14:44:51 +09:00
Yukihiro "Matz" Matsumoto
f2908031c4
Merge pull request #6387 from dearblue/gc-unregister.1
2024-10-21 10:56:49 +09:00
Yukihiro "Matz" Matsumoto
f6fbfdfcf0
Merge pull request #6386 from dearblue/gc-unregister
2024-10-21 10:55:38 +09:00
Yukihiro "Matz" Matsumoto
df0fc6f3a8
Merge pull request #6385 from dearblue/gc-register.1
2024-10-21 10:49:37 +09:00
Yukihiro "Matz" Matsumoto
c317659b8f
Merge pull request #6382 from dearblue/gc-register
2024-10-21 10:48:46 +09:00
Yukihiro "Matz" Matsumoto
1f5ba7e01d
vm.c (OP_STRCAT): mrb_str_concat may call VM recursively
...
And recursive calls may reallocate call-info stack.
2024-10-20 19:46:23 +09:00
Yukihiro "Matz" Matsumoto
d8e6987e4c
Merge pull request #6358 from jbampton/add-latest-ubuntu-to-build
2024-10-19 02:17:59 -04:00
Yukihiro "Matz" Matsumoto
56fc329633
Merge pull request #6383 from jbampton/remove-macos-12
2024-10-19 00:28:25 -04:00
Yukihiro "Matz" Matsumoto
f3257c448b
mruby-bigint (mrb_bint_powm): should call mpz_clear() on exceptions
2024-10-19 13:09:03 +09:00
Yukihiro "Matz" Matsumoto
e4d2f343fe
mruby-bigint (mrb_bint_neg): move the function to group bit operations
2024-10-19 12:47:06 +09:00
Yukihiro "Matz" Matsumoto
ee13b9e67b
mruby-bigint: fix mrb_int optimization bugs for and, or, xor
...
If the operand is a small integer, those functions tried to reduce
bigint allocations, but we had some bugs in them. We removed those
imperfect optimization altogether.
2024-10-19 12:45:04 +09:00
dearblue
2ec2437d23
Small improvements for mrb_gc_unregister()
...
`ARY_PTR()` and `ARY_LEN()` avoid using them in a loop if the array is not changed, since they involve branching.
2024-10-19 11:10:10 +09:00
dearblue
1dcc2cac03
Avoid calling mrb_gv_set() from mrb_gc_unregister()
...
Should simply be ignored for the possibility of being called from `RData::dfree`.
2024-10-19 11:08:32 +09:00
dearblue
b28d53bda9
Small improvements for mrb_gc_register()
...
The `mrb_nil_p()` used in conditional expressions is semantically included in `!mrb_array_p()`.
2024-10-19 10:59:21 +09:00
Yukihiro "Matz" Matsumoto
2430eaba13
mruby-bigint (mrb_bint_powm): fixed memory leak
2024-10-19 07:32:06 +09:00
Yukihiro "Matz" Matsumoto
001d5fcc3f
mruby-bigint (mpz_get_str): get b2 by table lookup
...
The `b2` is the power of `base` no bigger than DIG_BASE.
2024-10-19 07:32:05 +09:00
Yukihiro "Matz" Matsumoto
4aa87acfc9
mruby-bigint (mpz_set_uint64): adjust reallocation size for uint64
...
The uint64_t value may fit in `mp_limb*n` where n is 1..4.
2024-10-19 07:32:05 +09:00
John Bampton
86e969a406
Remove macOS 12 from the build
...
The macOS 12 runner image will be removed by December 3rd, 2024.
2024-10-19 00:18:19 +10:00
dearblue
13512aba91
Make array objects invisible in mrb_gc_register()
...
Once the class is set, objects can be referenced and manipulated from the Ruby side by using `ObjectSpace.each_object`.
Also, currently `mrb_gc_unregister()` assumes that the element is a non-immediate object.
However, `mrb_gc_unregister()` does not read or write to the address, so there was no problem.
2024-10-18 22:29:23 +09:00
Yukihiro "Matz" Matsumoto
c3be2568ea
Merge pull request #6005 from jbampton/build-and-test-on-macos-13
2024-10-17 23:28:03 -04:00
Yukihiro "Matz" Matsumoto
5e6d382782
mruby-bigint (mpz_set_uint64): fixed a bug in for loop
...
Found double increments in a loop. Since no one called mpz_set_int64()
in the real code, we could not find this bug for long time.
2024-10-18 12:27:02 +09:00
Yukihiro "Matz" Matsumoto
fe42f1d047
mruby-bigint (mpz_set_int): simplify using early return
2024-10-18 12:27:02 +09:00
Yukihiro "Matz" Matsumoto
a5c0b2114a
mruby-bigint (mrb_bint_2comp): need to initialize mpz_t
2024-10-18 12:27:02 +09:00
Yukihiro "Matz" Matsumoto
c8a73515e9
Merge pull request #6381 from 513ry/iss6380
2024-10-17 22:00:56 -04:00
siery
1a426e245f
part 2: Fix indentation to include break after function return type
2024-10-17 22:26:20 +02:00
siery
7d694df717
Fix indentation to include break after function return type
2024-10-17 21:11:11 +02:00
John Bampton
d387e89ae2
Build and test on macOS 13
...
https://github.com/actions/runner-images#available-images
2024-10-17 22:33:59 +10:00
Yukihiro "Matz" Matsumoto
63f3ff4ac5
Merge pull request #6379 from jbampton/add-pre-commit-hook-gitleaks
2024-10-17 02:40:28 -04:00
Yukihiro "Matz" Matsumoto
b4ab4cd7cf
Merge branch 'master' into add-pre-commit-hook-gitleaks
2024-10-17 02:33:23 -04:00
Yukihiro "Matz" Matsumoto
f1863163a8
mruby-bigint (uzero_p): avoid signed and unsigned comparison in loop
2024-10-16 16:33:43 +09:00
Yukihiro "Matz" Matsumoto
84d17f2c44
array.c (mrb_ary_clear): remove unnecessary function
2024-10-16 16:33:42 +09:00
Yukihiro "Matz" Matsumoto
389740e1d2
Merge pull request #6377 from jbampton/add-pre-commit-hook-oxipng
2024-10-16 03:34:12 -04:00
Yukihiro "Matz" Matsumoto
62c8951787
Merge pull request #6378 from jbampton/add-pre-commit-hook-format-json
2024-10-16 03:25:58 -04:00
John Bampton
42d3eb4b60
Add pre-commit hook gitleaks to detect and prevent hardcoded secrets
...
https://github.com/gitleaks/gitleaks
Adding another check/test to our pre-commit framework.
gitleaks is a popular tool that helps with security.
Removes the gitleaks check from the Super-Linter.
So now we can run gitleaks with pre-commit on `git commit`
2024-10-16 04:20:49 +10:00
John Bampton
e0a9a06c77
Add pre-commit hook pretty-format-json
...
https://github.com/pre-commit/pre-commit-hooks?tab=readme-ov-file#pretty-format-json
From the official pre-commit team a minor feature to add.
We have one JSON file at `.github/linters/mlc_config.json`.
2024-10-16 03:56:19 +10:00
John Bampton
83040c50e7
Add pre-commit hook oxipng for lossless PNG compression
...
Oxipng is a multithreaded lossless PNG/APNG compression optimizer.
Lossless compression is a class of data compression that allows the original data to be perfectly reconstructed from the compressed data with no loss of information.
https://en.wikipedia.org/wiki/Lossless_compression
https://github.com/shssoichiro/oxipng?tab=readme-ov-file#git-integration-via-pre-commit
Oxipng is a multithreaded PNG optimizer written in Rust
https://pre-commit.com/index.html#rust
"pre-commit will bootstrap rust if it is not present."
2024-10-16 03:10:16 +10:00
Yukihiro "Matz" Matsumoto
bbce194609
Merge pull request #6374 from jbampton/add-hooks-upgrade-pre-commit
2024-10-15 08:43:54 -04:00
Yukihiro "Matz" Matsumoto
7b5608e78a
mruby-rational: refactor float to rational conversion
...
- the function `float_decode_internal` was removed
- simplified `rational_new_f()`
- do not need to call `ldexp`
- allocate less bigint objects
2024-10-15 21:10:11 +09:00
Yukihiro "Matz" Matsumoto
51b11a6919
mruby-rational: add comments
...
We used `mrb_bint_mul(mrb, n, ONE)` to normalize `n`. The code confused
ChatGPT that could not read the intention.
2024-10-15 21:10:10 +09:00
Yukihiro "Matz" Matsumoto
8cfc1a4581
variable.c: fix int and mrb_bool confusion
2024-10-15 21:10:10 +09:00
Yukihiro "Matz" Matsumoto
540bd54ed3
variable.c (iv_rehash): name magic number 4 as IV_INITIAL_SIZE
2024-10-15 21:10:10 +09:00
Yukihiro "Matz" Matsumoto
06f45f8635
mruby-compiler (codegen): detect too-deep nesting error; fix #6270
2024-10-15 21:10:10 +09:00
Yukihiro "Matz" Matsumoto
fa68e634a7
variable.c (mrb_exc_const_get): E_XXX_ERROR should not call const_missing
...
As #6359 pointed out, calling const_missing hook from E_XXX_ERROR (that
calls mrb_exc_get_id()) can be an attack vector. Since E_XXX_ERROR is
supposed to be a defined error class, we think that the situation where
it is undefined and the const_missing hook is called should be detected
as an error; fix #6359
2024-10-15 21:09:48 +09:00
Yukihiro "Matz" Matsumoto
b5801cd730
mruby-bigint (mrb_bint_new_int64): fixed a bug on the 32bit platforms
2024-10-11 14:19:33 +09:00
Yukihiro "Matz" Matsumoto
2d565d30cb
Merge pull request #6376 from 513ry/master
2024-10-11 01:18:02 -04:00
siery
c8203b2d52
Fix typo
2024-10-11 05:08:46 +02:00
Yukihiro "Matz" Matsumoto
e29f3d64b2
mruby-compiler: stop malloc/free warnings from Visual Studio build
2024-10-11 09:10:44 +09:00
Yukihiro "Matz" Matsumoto
32a527ad6d
readfloat.c: fix float to int assignment
2024-10-11 08:45:27 +09:00
Yukihiro "Matz" Matsumoto
763c9cba03
mruby-rational (int_lshift): add cast to stop overflow warning
2024-10-11 08:44:12 +09:00
Yukihiro "Matz" Matsumoto
f4fdf25bb0
mruby-bigint (mrb_bint_new_int64): wrong return value
2024-10-11 08:41:51 +09:00
Yukihiro "Matz" Matsumoto
39a5d2a9d8
Merge pull request #6375 from jbampton/fix-grammar
2024-10-10 19:36:49 -04:00
John Bampton
6f97cf10e9
docs: fix grammar
2024-10-11 04:07:58 +10:00
John Bampton
95f58d8a98
Upgrade pre-commit min version; add hook; pre-commit autoupdate
...
https://github.com/pre-commit/pre-commit-hooks/releases/tag/v5.0.0
pre-commit-hooks now requires pre-commit>=3.2.0
https://github.com/pre-commit/pre-commit-hooks?tab=readme-ov-file#check-illegal-windows-names
https://pre-commit.com/#pre-commit-autoupdate
refs pre-commit/pre-commit#2808
https://pre-commit.com/#top_level-default_stages
2024-10-11 03:32:16 +10:00
Yukihiro "Matz" Matsumoto
6d4de2496c
mruby-bigint: remove unused macros; ref #6371
2024-10-10 23:14:27 +09:00
Yukihiro "Matz" Matsumoto
e21055604c
mruby-bigint: separate mpz and bint functions; ref #6371
...
The pull-request #6371 was tight integration of mpz and bint functions.
The mpz functions take `struct RBigint*` instead of `mpz_t*`. It
decrease maintainability, in my opinion. This commit initializes `mpz_t`
from `struct RBigint*` in bint functions, so that we can keep separation
of function roles.
2024-10-10 23:04:04 +09:00
Yukihiro "Matz" Matsumoto
c6dbaf702e
Merge branch 'bigint-embed'; #6371
2024-10-10 23:02:10 +09:00
Yukihiro "Matz" Matsumoto
12b97ceb78
fixup! Merge branch 'bigint-embed' of https://github.com/dearblue/mruby into bigint-embed
2024-10-10 22:57:32 +09:00
Yukihiro "Matz" Matsumoto
bda2fa39d2
Merge branch 'bigint-embed' of https://github.com/dearblue/mruby into bigint-embed
2024-10-10 22:31:55 +09:00
Yukihiro "Matz" Matsumoto
453e9eabf0
mruby-rational (rat_add_b): might have called rational_new_b with int
...
`rational_new_b` should be called with bigint objects.
2024-10-10 07:55:51 +09:00
Yukihiro "Matz" Matsumoto
5a40f6710b
Update AUTHORS [ci skip]
2024-10-09 22:56:45 +09:00
Yukihiro "Matz" Matsumoto
b56ad8fdee
mruby-bigint: improve mpz_mul_int() and mpz_add_int()
...
Both functions are only called from mpz_init_set_str(). We can assume
- mpz_t is modifiable
- mpz_t is positive
- n is positive and small (n <= 36)
Those new definitions consume less memory and are slightly faster.
2024-10-08 16:09:46 +09:00
Yukihiro "Matz" Matsumoto
3b06ad4737
mruby-bigint (mpz_mul): cancel Karatsuba algorithm
...
We tried many times to implement the Karatsuba method to improve the
performance of multiplication of large multi-precision integers. But it
did not speed up in all cases due to the cost of memory allocation. We
decided to go back to the basic multiplication method.
If anyone wants to take on the challenge of improving the performance of
multiplication, we welcome it.
2024-10-08 16:02:19 +09:00
John Bampton
f13a4bfe65
gha: add Ubuntu 24.04 to the build
...
Remove Ubuntu 20.04
2024-10-08 16:23:49 +10:00
Yukihiro "Matz" Matsumoto
7e6f8685a3
Merge pull request #6373 from vickash/milkvduo
2024-10-06 20:30:10 -04:00
Yukihiro "Matz" Matsumoto
77fb1b1b65
mruby-bigint (mul_karatsuba): use byte-wise addition to combine
2024-10-07 07:28:24 +09:00
vickash
e99f605458
milkv config: Add directive for board variant, and optional wiringX mrbgem
2024-10-06 12:27:12 -04:00
dearblue
6366f1cbb9
Update mrbgems/mruby-bigint/core/bigint.h
...
Co-authored-by: John Bampton <jbampton@users.noreply.github.com >
2024-10-06 23:03:03 +09:00
vickash
115a739059
milkv config: forgot to remove "-L" in linker paths taken from official Makefile
2024-10-06 09:54:41 -04:00
dearblue
009a79b5c9
Embedding in RBigint objects
...
Integers up to 3 words long will no longer allocate heap space.
2024-10-06 22:28:22 +09:00
vickash
d2878ef47f
Comment out test-inline-struct in milv_duo config
2024-10-06 08:33:21 -04:00
vickash
491b7685db
Add build config for Milk-V Duo (RISC-V Linux) board
2024-10-06 00:26:07 -04:00
Yukihiro "Matz" Matsumoto
40c7febca8
mruby-bigint (uadd): remove redundant trim()
2024-10-05 15:08:16 +09:00
Yukihiro "Matz" Matsumoto
be9da7199b
mruby-bigint (mul_karatsuba) improve performance
...
Unnecessary mpz_t u0u1 and v0v1 are removed.
2024-10-05 10:57:42 +09:00
Yukihiro "Matz" Matsumoto
8faf78f1b8
mruby-method: singleton_method() should search in superclasses
...
[ruby-bugs:20620](https://bugs.ruby-lang.org/issues/20620 )
2024-10-04 21:37:49 +09:00
Yukihiro "Matz" Matsumoto
32aed6ad8c
mruby-bigint: increase KARATSUBA_THREASHOLD to 512
...
Since Karatsuba algorithm is far heavier than the basic multiplication,
we have increased KARATSUBA_THREASHOLD and decreased MAX_RECURSION_DEPTH.
2024-10-04 18:10:14 +09:00
Yukihiro "Matz" Matsumoto
6820da1526
mruby-bigint (mpz_abs): use zero_p()
2024-10-04 18:10:14 +09:00
Yukihiro "Matz" Matsumoto
fd8d3a8d70
mruby-bigint: use zero() to make mpz_t zero.
2024-10-04 18:10:14 +09:00
Yukihiro "Matz" Matsumoto
6274f8de43
mruby-bigint (mpz_sub): avoid data copy
...
Since mpz_sub() calls mpz_add() with opposite sign, refer same data from
the original, instead of copying whole data.
2024-10-04 18:10:14 +09:00
Yukihiro "Matz" Matsumoto
363754b5d1
mruby-bigint (uzero_p): check from the top, not bottom
...
For most of the case, the first non-zero value would be found earlier
when search starts from the top.
2024-10-04 18:10:14 +09:00
Yukihiro "Matz" Matsumoto
fcc1832efc
mruby-bigint (mul_karatsuba): avoid copying operand u and v
2024-09-30 18:32:26 +09:00
Yukihiro "Matz" Matsumoto
0023cbdb3d
mruby-bigint (mpz_mul): use Karatsuba algorithm to improve performance
2024-09-28 05:26:40 +09:00
Yukihiro "Matz" Matsumoto
1348daa683
vm.c: save offset in a local variable in OP_BLKPUSH
2024-09-27 16:31:13 +09:00
Yukihiro "Matz" Matsumoto
b94be7de5a
gc.c (mark_context): no need to mark ci->blk; ref #5791
...
Since the passed block is referenced from the stack after the last
commit.
2024-09-26 02:57:57 +09:00
Yukihiro "Matz" Matsumoto
9c5812a463
mruby-compier: keep stack reference to passed block after modifying &b
...
To mark `MRB_PROC_ORPHAN` we need to keep track of passed block, even
after the assignment to the block argument. And `yield` should use the
original block; #5786 , #5791 , #6369
2024-09-26 02:48:16 +09:00
Yukihiro "Matz" Matsumoto
d6fa7772a0
mruby.h (mrb_method_t): avoid unnamed union
...
It caused errors in the pedantic-mode of GCC.
2024-09-26 00:07:03 +09:00
Yukihiro "Matz" Matsumoto
204928120b
vm.c (cipop): fix improper code to check if env is reclaimed; fix #6369
...
The callinfo refers blk since #5786 but not marked at the time. Later we
added reclamation check by #5791 but its repeated heap scans decrease
the performance drastically in some cases. So the original @dearblue's
solution should be taken
Probably we need to always keep the original block at the bottom of
arguments. And the explicit block argument should be a normal local
variable. We will investigate it later.
2024-09-25 14:12:50 +09:00
Yukihiro "Matz" Matsumoto
12264e33e5
Merge pull request #6361 from jbampton/add-pre-commit-hook-shellcheck
2024-09-24 09:44:25 +09:00
Yukihiro "Matz" Matsumoto
abc4ccf763
Merge pull request #6368 from jbampton/add-pre-commit-hook-check-json
2024-09-24 09:40:39 +09:00
Yukihiro "Matz" Matsumoto
05e3c5831d
Merge pull request #6367 from jbampton/fix-spelling
2024-09-24 07:16:55 +09:00
John Bampton
2adf60320d
Add pre-commit hook check-json
...
https://github.com/pre-commit/pre-commit-hooks?tab=readme-ov-file#check-json
Adds another check/test to our pre-commit framework for checking JSON files
We have one JSON file at `.github/linters/mlc_config.json`
2024-09-24 00:47:27 +10:00
John Bampton
e12da35645
Fix spelling
2024-09-24 00:14:24 +10:00
Yukihiro "Matz" Matsumoto
919a689517
Merge pull request #6363 from dearblue/mrb_type
2024-09-23 14:49:55 +09:00
Yukihiro "Matz" Matsumoto
17acf23914
readfloat.c: we don't need long double for mruby; fix #6365
...
`mrb_read_float()` function does not raise ERANGE (unlike `strtod()`)
so we don't need high precision double for calculation.
2024-09-23 08:11:23 +09:00
Yukihiro "Matz" Matsumoto
ecd42ab3e9
Merge pull request #6360 from jbampton/add-actionslint-to-pre-commit
2024-09-22 20:21:44 +09:00
Yukihiro "Matz" Matsumoto
1b875a925c
Merge pull request #6364 from jbampton/fix-spelling
2024-09-22 20:19:06 +09:00
John Bampton
b974b944af
docs: fix spelling
2024-09-22 12:16:23 +10:00
dearblue
1f933c21e3
Revert "Perform pseudo binary search with mrb_type()"
...
This reverts commit e76bebe836 (#6309 ).
Because it crashes limited to gcc13 -O3.
ref. #6358 .
Also, benchmark tests have shown that revert tends to be preferable in this time.
2024-09-22 10:51:12 +09:00
John Bampton
6fe57ae44e
Add pre-commit hook shellcheck-py to check syntax of shell scripts
...
https://github.com/shellcheck-py/shellcheck-py
https://www.shellcheck.net/
https://github.com/koalaman/shellcheck
Remove bash/shell checking from the Super-Linter
2024-09-22 10:18:21 +10:00
John Bampton
6d749e92ed
Add pre-commit hook actionlint
...
Validate GitHub Actions with pre-commit.
Remove the Super-Linter GitHub Actions check.
It is more useful to run "actionlint" with pre-commit
since the hooks run on our local machines on git commit.
We also run pre-commit on GitHub.
Whereas the Super-Linter tests only run on GitHub.
https://github.com/rhysd/actionlint/blob/main/docs/usage.md#pre-commit
2024-09-22 08:51:42 +10:00
Yukihiro "Matz" Matsumoto
bd668e4c9d
readfloat.c: new implementation of mrb_read_float(); ref #6187
...
The new version gives more accurate values for decimal number
representation that are not divisible in binary representations, for
example `0.3`.
The function uses `long double` for precision. Please report if `long
double` causes problems on any platform (especially microcontrollers).
Ref #6182
2024-09-21 02:47:42 +09:00
Yukihiro "Matz" Matsumoto
c162f8f709
Merge pull request #6356 from dearblue/get-args-splat
2024-09-21 00:03:38 +09:00
dearblue
cf23861166
Making splat argument objects invisible from Ruby side
...
The `mrb_get_argv()` function and the `*` specifier of `mrb_get_args()` get the address of the argument.
At this time, if it is passed in the form of a splat argument, it will be an address to an element of an array object.
After getting the pointer to the array object, the caller may call `mrb_vm_exec()` directly or indirectly.
At this time, a splat argument with the class set can be retrieved as an array object by searching with `ObjectSpace.each_object`.
If changes are made as array objects, addresses on the heap as arrays may become invalid, or objects in the array may be recycled by the GC.
When the caller references the changed address in a subsequent operation, use-after-free is established.
This patch assigns `NULL` as the class of the array object so that it cannot be detected by `ObjectSpace.each_object` from the Ruby side.
2024-09-19 23:13:18 +09:00
Yukihiro "Matz" Matsumoto
f6caf0d788
mruby-bigint (mrb_init_set_str): reduce mpz_t allocations
2024-09-19 20:52:11 +09:00
Yukihiro "Matz" Matsumoto
e3ff54fda3
vm.c (mrb_vm_exec): unify declaration and initialization of variables
2024-09-18 22:32:35 +09:00
Yukihiro "Matz" Matsumoto
d1d010a03a
array.c (mrb_ary_delete): array index should be mrb_int
2024-09-17 12:07:39 +09:00
Yukihiro "Matz" Matsumoto
ba8ee7b895
mruby-socket (inet_pton): need to initialize loop variable
2024-09-17 12:05:46 +09:00
Yukihiro "Matz" Matsumoto
4b500eb971
Merge pull request #6340 from dearblue/array-cmp
2024-09-17 11:29:41 +09:00
Yukihiro "Matz" Matsumoto
b8a6752570
Merge pull request #6354 from dabroz/dabroz-patch-1
2024-09-17 11:00:49 +09:00
Tomasz Pędraszewski
78ee1529d6
Update AUTHORS
2024-09-17 00:01:02 +02:00
Yukihiro "Matz" Matsumoto
de6955b1b0
vm.c (mrb_vm_run): merge declaration and initialization
2024-09-16 17:50:13 +09:00
Yukihiro "Matz" Matsumoto
fddc7650ca
numeric.c (int_ceil): should rename mrb_bint_add_d to mrb_bint_add_n
2024-09-15 04:00:52 +09:00
Yukihiro "Matz" Matsumoto
afefb5261b
mruby-rational (rat_sub_b): avoid normalization of big integers
2024-09-15 03:04:32 +09:00
Yukihiro "Matz" Matsumoto
bdbf8536a7
mruby-bigint: rename add_d and sub_d to add_n and sub_n respectively
...
`_n` suffix represents `no_normalize`.
2024-09-15 03:02:41 +09:00
Yukihiro "Matz" Matsumoto
50225acec4
mruby-rational (rat_mul_b): should not normalize multiplication results
2024-09-15 02:50:57 +09:00
Yukihiro "Matz" Matsumoto
3ce96e5c4d
Merge pull request #6353 from dearblue/array-delete
2024-09-14 06:11:54 +09:00
dearblue
0955539cf9
Fix use-after-free in mrb_ary_delete()
...
`mrb_equal()` may call `obj.==` method internally.
Therefore, using an unupdated pointer and length after `mrb_equal()` could result in a read/write to an invalid address.
Fresh properties must always be obtained regardless of the result of `mrb_equal()`.
Also, `ary_modify()` must be called each time before writing.
ref. #6339
2024-09-13 21:44:56 +09:00
Yukihiro "Matz" Matsumoto
6e44c0bc91
vm.c (argnum_error): merge declaration and initialization
2024-09-13 07:27:17 +09:00
Yukihiro "Matz" Matsumoto
704ad87150
Merge pull request #6338 from dearblue/proc-align
2024-09-12 06:43:42 +09:00
Yukihiro "Matz" Matsumoto
ee9b1381ec
Merge pull request #6347 from leviongit/fixes/yield-kw-codegen
...
codegen.c,parse.y: remove flattening of `yield` arguments; fix #6346
2024-09-12 06:39:27 +09:00
Yukihiro "Matz" Matsumoto
413b005801
Merge pull request #6349 from dearblue/dir-test
2024-09-11 07:12:31 +09:00
Yukihiro "Matz" Matsumoto
a38dd0c988
Merge pull request #6350 from dearblue/io-filepath
2024-09-11 07:10:45 +09:00
Yukihiro "Matz" Matsumoto
9aee23b056
Merge pull request #6351 from dearblue/io-arena
2024-09-11 07:09:11 +09:00
Yukihiro "Matz" Matsumoto
06db87e758
Merge pull request #6348 from dearblue/warnings
2024-09-10 22:11:14 +09:00
dearblue
9cb42438e1
Remove unnecessary mrb_gc_arena_restore()
...
When a function defined as a method returns, there is no need to call `mrb_gc_arena_restore()` immediately before it.
2024-09-10 21:45:44 +09:00
dearblue
33cf729a39
Fixed character encoding conversion function mismatch
2024-09-10 21:34:05 +09:00
dearblue
3aa9a5ee68
Perform GC before deleting directories
...
In some environments, the test will fail because the directory in use cannot be deleted.
This problem was encountered when building 32-bit binary with mingw32 on FreeBSD and running on wine.
2024-09-10 21:17:10 +09:00
dearblue
8b495cdfda
Cancel the warning disablement
...
Suppress warnings for 0-length sequences is not required.
By commit f1a02dff58 , it was introduced.
By commit 24939723d7 , pseudo-variable length arrays are now used and the warning suppression is no longer needed.
By commit e8841fbf58 , moved the intervening code.
2024-09-10 21:07:43 +09:00
Yukihiro "Matz" Matsumoto
da4cfbf89c
mruby-array-ext: add a new method Array#fetch_values
2024-09-10 10:22:34 +09:00
leviongit
87801ed5f1
codegen.c,parse.y: remove flattening of yield arguments; fix #6346
...
this commit changes the parse tree of the `yield` node, allowing for
proper keyword argument generation
2024-09-09 10:06:31 +02:00
Yukihiro "Matz" Matsumoto
0972c84773
array.c (mrb_ary_delete): protect return value; fix #6339
...
The C local variable is not protected from GC, so we use the function
mrb_gc_protect() to keep the value. We also keep the arena position by
mrb_gc_arena_save(), then restoring the position for every new return
value, to minimize arena size.
Small cosmetic changes (pre-increment to post-increment) are also made
in this commit.
2024-09-09 14:57:32 +09:00
Yukihiro "Matz" Matsumoto
1c4514964e
AUTHORS: update entries [ci skip]
2024-09-09 09:55:30 +09:00
Yukihiro "Matz" Matsumoto
2d871fb1ef
vm.c (catch_handler_find): merge declaration and initialization
2024-09-09 07:10:50 +09:00
Yukihiro "Matz" Matsumoto
a3aff8f437
vm.c (mrb_yield_cont): merge declaration and initialization
2024-09-07 08:36:02 +09:00
Yukihiro "Matz" Matsumoto
1f9fa06119
array.c: no need to assert if blk is a Proc; ref #6344
...
Since `blk` always comes from `mrb_get_args`, it should always be either
`nil` or a Proc.
2024-09-05 15:26:09 +09:00
Yukihiro "Matz" Matsumoto
3ca3849f54
Merge pull request #6344 from leviongit/array/yield
2024-09-05 15:23:01 +09:00
leviongit
020cfa9283
prefer using mrb_yield to call block arguments
2024-09-04 20:44:51 +02:00
Yukihiro "Matz" Matsumoto
4671459e73
Merge pull request #6343 from mruby/dependabot/bundler/yard-0.9.37
2024-09-05 00:10:42 +09:00
dependabot[bot]
c3615be2ac
build(deps): bump yard from 0.9.36 to 0.9.37
...
Bumps [yard](https://github.com/lsegal/yard ) from 0.9.36 to 0.9.37.
- [Release notes](https://github.com/lsegal/yard/releases )
- [Changelog](https://github.com/lsegal/yard/blob/main/CHANGELOG.md )
- [Commits](https://github.com/lsegal/yard/compare/v0.9.36...v0.9.37 )
---
updated-dependencies:
- dependency-name: yard
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-09-04 14:52:41 +00:00
Yukihiro "Matz" Matsumoto
649162624f
Merge pull request #6341 from dearblue/restore-arena
2024-09-04 09:39:41 +09:00
dearblue
e476d9a344
Need to restore the GC arena after some function calls
...
When calling `mrb_equal()` or `mrb_funcall()` family functions, the GC arena should be restored if the loop is repeated by a non-immediate return value.
In my opinion, restoring the GC arena is unnecessary when a non-immediate (true) value causes the function to return (e.g. the `mrb_ary_index_m()` function).
The patch does not take into account the case of recursive calls and may be incomplete.
2024-09-03 21:29:06 +09:00
dearblue
29496c9931
Fix use-after-free for Array#<=>
...
The `mrb_ary_cmp()` function calls `mrb_cmp()` for comparison, but `mrb_cmp()` may call the `obj.<=>` method internally.
If a user-defined `<=>` method is called and the array object under comparison is expanded or reduced, a reference to an invalid address may subsequently be made.
2024-09-03 21:25:31 +09:00
Yukihiro "Matz" Matsumoto
1d12097bae
mruby-io (mrb_file__gethome): allow avoiding getpwnam(3); ref #5358
...
You have to define `MRB_IO_NO_PWNAM` to skip calling getpwname(3).
2024-09-03 15:27:29 +09:00
Yukihiro "Matz" Matsumoto
96cf9ba230
vm.c (mrb_yield_with_class): merge declaration and initialization
2024-09-03 11:58:20 +09:00
Yukihiro "Matz" Matsumoto
4062069679
gc.c (gc_arena_keep): revert 2 commits regarding arena allocation; #6329
...
We assumed there's no need for gc_arena_keep() when MRB_GC_FIXED_ARENA
is set. But it turned out that gc_protect() still can cause use-after-free
with fixed arena.
Revert "gc.c (gc_protect): should not call gc_arena_keep twice from allocation"
This reverts commit 28ece4ed8b .
Revert "gc.c (gc_arena_keep): reorganized for MRB_GC_FIXED_ARENA; ref #6329 "
This reverts commit 33dd623a02 .
2024-09-02 23:00:09 +09:00
Yukihiro "Matz" Matsumoto
6c4dbe8584
vm.c (eval_under): unify declaration and initialization of variables
2024-09-02 11:52:32 +09:00
Yukihiro "Matz" Matsumoto
f2d9995984
Merge pull request #6332 from dearblue/mruby-compiler
2024-09-01 22:45:07 +09:00
Yukihiro "Matz" Matsumoto
472f699ee6
vm.c (mrb_f_send): unify declaration and initialization of variables
2024-09-01 22:29:46 +09:00
dearblue
42513d61fd
Need to place static proc objects into 8-byte alignments
...
Static proc objects defined as methods may be placed in 4-byte alignments in 32-bit environments.
This may be misinterpreted as an immediate value depending on the address.
Since C11 and C++11 have additional language features for byte alignment, corresponding compilers use them to define the `mrb_alignas()` macro.
For earlier compilers, they use their own extensions to define the `mrb_alignas()` macro.
GCC supports `__attribute__((aligned(alignment)))` since at least version 2.95.3 (1999).
https://gcc.gnu.org/onlinedocs/gcc-2.95.3/gcc_4.html#IDX305
According to GPT-4, support was added in version 2.7 (1995).
It is not known which version of Visual C++ added support for `__declspec(align(n))`.
According to GPT-4, at least Visual C++ 6.0 (1998) seems to support it.
Also, the documentation of past Intel C/C++ compilers that support `__declspec(align(n))` makes reference to support with Visual C++ 4.2 (1996).
https://www.intel.com/content/dam/www/public/ijkk/jp/ja/documents/developer/ccomp40j.pdf
2024-09-01 20:28:34 +09:00
Yukihiro "Matz" Matsumoto
56c3d748fb
Merge pull request #6335 from dearblue/OP_RETURN
2024-08-30 10:53:58 +09:00
Yukihiro "Matz" Matsumoto
fa62129fdc
Merge pull request #6337 from mruby/dependabot/github_actions/super-linter/super-linter-7.1.0
2024-08-29 09:55:03 +09:00
dependabot[bot]
45bb0973fd
build(deps): bump super-linter/super-linter from 7.0.0 to 7.1.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 7.0.0 to 7.1.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v7.0.0...v7.1.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-08-28 14:08:55 +00:00
Yukihiro "Matz" Matsumoto
6de3009606
Merge pull request #6328 from dearblue/env-obj_free
2024-08-28 16:40:04 +09:00
Yukihiro "Matz" Matsumoto
4a71d4604e
mruby-rational: add typecast to check if a value is fit in mrb_int
2024-08-27 22:48:40 +09:00
Yukihiro "Matz" Matsumoto
540d976f7f
array.c (sort_cmp): mrb_cmp() may return -2 for errors
2024-08-27 22:36:24 +09:00
dearblue
7ec5d47a91
Add return_ci in CHECKPOINT_MAIN() of OP_RETURN
...
For role clarity, distinguish between `ci` and `return_ci`.
2024-08-27 21:39:09 +09:00
Yukihiro "Matz" Matsumoto
28ece4ed8b
gc.c (gc_protect): should not call gc_arena_keep twice from allocation
2024-08-27 11:03:14 +09:00
Yukihiro "Matz" Matsumoto
ef5ae1c629
Merge pull request #6333 from dearblue/heap_p
2024-08-26 05:49:49 +09:00
Yukihiro "Matz" Matsumoto
33dd623a02
gc.c (gc_arena_keep): reorganized for MRB_GC_FIXED_ARENA; ref #6329
2024-08-26 05:47:28 +09:00
Yukihiro "Matz" Matsumoto
1a322449aa
Merge pull request #6331 from dearblue/test-gcarena
2024-08-26 05:47:48 +09:00
Yukihiro "Matz" Matsumoto
b9c93673f9
Merge pull request #6329 from dearblue/mrb_obj_alloc
2024-08-26 05:40:12 +09:00
Yukihiro "Matz" Matsumoto
325c918464
class.c: use mrb_unboxed_type where obj is not immediate for sure
2024-08-26 05:33:19 +09:00
dearblue
98fdfe1037
Reduce the number of branch instructions in the heap_p()
...
As far as `gcc -S` for several CPU architectures has confirmed, it reduces the number of branch instructions by one.
2024-08-25 20:35:41 +09:00
dearblue
cfe410f466
Must not depend on the “host” build to generate mruby-compiler/core/y.tab.c
...
“mruby-compiler” should be able to generate `y.tab.c` files through a separate build configuration if it is not added to the ‘host’ build.
In the example above, the “host/mrbc” build should generate the `y.tab.c` file.
2024-08-25 11:17:56 +09:00
dearblue
79d7ac5f7e
Restore the GC arena with tests.
...
This was the unintentional catalyst for finding the problem in #6329 , but it is preferable to add a test if necessary.
2024-08-25 11:08:40 +09:00
dearblue
1c5839fb01
Fix use-after-free in mrb_obj_alloc()
...
When GC occurs during the expansion of the GC arena by `gc_protect()` in `mrb_obj_alloc()`, the object page just allocated by `add_heap()` is released.
Therefore, as soon as control returns from `gc_protect()`, there is a possibility of illegal writing or reading to the address just released.
This issue was discovered during the investigation of #6326 .
2024-08-25 10:55:15 +09:00
Yukihiro "Matz" Matsumoto
a2db222422
Merge pull request #6330 from dearblue/mrb_env_unshare
2024-08-24 21:47:44 +09:00
dearblue
13571402d2
Add a precondition to call mrb_env_unshare().
...
The following assertions can be added to omit the `if` block
- env object must be non-null
- env object must be in a shared state with the stack
The current caller is believed to satisfy the condition.
2024-08-24 17:30:54 +09:00
dearblue
22b1ac9070
Fix use-after-free in obj_free() for env objects
...
A reference to an invalid address might occur in `is_dead()` of `obj_free()` called from `incremental_sweep_phase()`.
This would happen if the heap page was freed ahead of time in the same `incremental_sweep_phase()`.
fixed #6326
2024-08-24 16:46:27 +09:00
Yukihiro "Matz" Matsumoto
204b81c563
mruby-bin-mirb: fix the issue on macOS; #6327
2024-08-24 07:13:45 +09:00
Yukihiro "Matz" Matsumoto
7ba95e2f5e
Merge pull request #6327 from juchem/master
2024-08-23 22:33:44 +09:00
Yukihiro "Matz" Matsumoto
f35000f2a9
array.c (sort_cmp): comparing objects may be freed by GC; #6326
...
If comparing function (block or `<=>`) modifies the sorting array and GC
happens after the modification, objects passed to comparison may be
freed by GC.
2024-08-23 22:29:45 +09:00
Marcelo Juchem
a6eb3e5c27
fix ncurses linking issues
...
The build configuration for `mruby` assumes only the `ncurses` library
needs to be linked because `tinfo` is implicitly pulled in.
In environments where ncurses is available only as a static library,
`tinfo` needs to be linked explicitly (needed for functions like
`tputs`.
This patch fixes that by linking `tinfo` if available.
It also fixes the build for environments where only the `ncursesw`
version of the library (including wide character support) is present,
while still giving preference to the `ncurses` version (without wide
character support).
2024-08-22 14:11:48 -05:00
Yukihiro "Matz" Matsumoto
58c70834d9
array.c (srot_cmp): need modify check after mrb_cmp as well; #6326
...
mrb_cmp() may also modify the sorting array internally.
2024-08-22 07:49:16 +09:00
Yukihiro "Matz" Matsumoto
4ea6d74d83
mruby-rational: introduce the constants ONE and ZERO
2024-08-21 18:38:51 +09:00
Yukihiro "Matz" Matsumoto
752ebe6b7f
array.c (mrb_ary_sort_bang): check if array is modified in blocks
...
This address at least part of #6326 . CRuby copied the array internally,
but mruby avoid copying to reserve memory.
2024-08-21 18:31:46 +09:00
Yukihiro "Matz" Matsumoto
4b9f567821
vm.c (exec_irep): unify declaration and initialization
2024-08-20 12:49:45 +09:00
Yukihiro "Matz" Matsumoto
98440e095f
vm.c (mrb_ci_nregs): unify declaration and initialization
2024-08-20 10:39:12 +09:00
Yukihiro "Matz" Matsumoto
166262243a
benchmark/bm_so_mandelbrot.rb: add new benchmark
2024-08-18 23:11:29 +09:00
Yukihiro "Matz" Matsumoto
39b9a1a06a
mruby-rational (rational_new): fix compilation condition
2024-08-17 16:29:51 +09:00
Yukihiro "Matz" Matsumoto
44908e5cba
mruby-rational: support bigint numerators & denominators
2024-08-16 15:12:03 +09:00
Yukihiro "Matz" Matsumoto
92f476d8fa
mruby-bigint (mpz_set): trim destination mpz_t
2024-08-16 07:32:05 +09:00
Yukihiro "Matz" Matsumoto
479259b4e1
Merge pull request #6324 from dearblue/localjump_error
2024-08-16 06:22:32 +09:00
Yukihiro "Matz" Matsumoto
b202d00219
Merge pull request #6325 from mruby/dependabot/github_actions/super-linter/super-linter-7.0.0
2024-08-16 06:19:16 +09:00
dependabot[bot]
f3b24009e6
build(deps): bump super-linter/super-linter from 6.9.0 to 7.0.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.9.0 to 7.0.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.9.0...v7.0.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-08-15 14:34:20 +00:00
Yukihiro "Matz" Matsumoto
a4225709ef
Merge pull request #6323 from mruby/dependabot/github_actions/super-linter/super-linter-6.9.0
2024-08-15 12:15:17 +09:00
dearblue
9d0617f27b
Remove localjump_error()
...
Suppress heap allocation for strings.
2024-08-15 10:27:53 +09:00
Yukihiro "Matz" Matsumoto
dfe2dbcde6
class.c (init_copy): need to copy float numbers in some cases
...
If `MRB_BOXING_WORD` and `MRB_WORDBOXING_NO_FLOAT_TRANCATE` is defined,
float numbers are packed in the heap object. We need to copy them
explicitly.
2024-08-15 09:57:56 +09:00
dependabot[bot]
eb6d7afd7e
build(deps): bump super-linter/super-linter from 6.8.0 to 6.9.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.8.0 to 6.9.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.8.0...v6.9.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-08-14 14:56:30 +00:00
Yukihiro "Matz" Matsumoto
e9c4486e27
mruby-bigint: add fast path to mrb_bint_mul() & mrb_bint_div()
2024-08-14 22:36:47 +09:00
Yukihiro "Matz" Matsumoto
16f5000794
Merge pull request #6320 from dearblue/OP_BREAK
2024-08-14 18:02:34 +09:00
Yukihiro "Matz" Matsumoto
6e5a493ff3
mruby-bigint (mrb_bint_new_float): add fast path for FIXABLE_FLOAT
2024-08-14 16:11:27 +09:00
Yukihiro "Matz" Matsumoto
92302df49d
Merge pull request #6322 from hoshiumiarata/fix_mrb_ro_data_p
2024-08-13 17:50:35 +09:00
Hoshiumi Arata
da54da1923
Fix mrb_ro_data_p on Intel Mac
2024-08-13 17:27:08 +09:00
Yukihiro "Matz" Matsumoto
1e503f902d
Merge pull request #6321 from dearblue/lib-warnings
2024-08-13 11:48:21 +09:00
Yukihiro "Matz" Matsumoto
c853dc4090
vm.c (funcall): move va_list declaration right before va_start()
2024-08-12 22:57:05 +09:00
dearblue
79f4a67268
Avoid warnings in lib/**/*.rb
...
```console
% find -s lib -type f -name '*.rb' -exec ruby -cw {} \;
lib/mruby/build/command.rb:320: warning: `+' after local variable or literal is interpreted as binary operator
lib/mruby/build/command.rb:320: warning: even though it seems like unary operator
Syntax OK
Syntax OK
Syntax OK
Syntax OK
Syntax OK
lib/mruby/gem.rb:469: warning: `&' interpreted as argument prefix
Syntax OK
Syntax OK
Syntax OK
Syntax OK
```
2024-08-12 21:06:31 +09:00
dearblue
682583a609
Shrinking the code in OP_BREAK and OP_RETURN_BLK
...
- Can refer directly to `proc->e.env` after `MRB_PROC_ENV_P()`.
- Can omit `MRB_ENV_ONSTACK_P()` since `mrb->c` is never NULL and can be directly compared to `env->cxt`.
- Can avoid `goto` by putting the code block that raises the `LocalJumpError` at the end.
2024-08-12 20:54:55 +09:00
Yukihiro "Matz" Matsumoto
22eb7e87af
vm.c (uvenv): move declaration to initialization
2024-08-11 23:45:40 +09:00
Yukihiro "Matz" Matsumoto
7ca60a0964
vm.c (stack_extend_alloc): move variable declaration to initialization
2024-08-10 21:57:51 +09:00
Yukihiro "Matz" Matsumoto
56a82009aa
Revert "The lex_state after literals should be EXPR_ENDARG."; fix #6298
...
This reverts commit e98823f189 .
2024-08-10 19:17:49 +09:00
Yukihiro "Matz" Matsumoto
a267dfd76b
vm.c (OP_CLASS,OP_MODULE): combine declarations with initializers
2024-08-08 06:11:52 +09:00
Yukihiro "Matz" Matsumoto
22ec76f46c
vm.c (OP_RANGE_INC): remove unnecessary local variable
2024-08-08 06:10:35 +09:00
Yukihiro "Matz" Matsumoto
320c757186
Merge pull request #6318 from dearblue/shrink-vm-vars
...
Shrink variables in `mrb_vm_exec()`
2024-08-06 12:21:36 +09:00
Yukihiro "Matz" Matsumoto
aad2aacf25
range.c (mrb_get_values_at): support bigint too
2024-08-05 16:35:41 +09:00
Yukihiro "Matz" Matsumoto
6da2e60edc
mruby-bigint (mpz_get_str): avoid malloc when base is a power of 2
2024-08-05 10:43:47 +09:00
Yukihiro "Matz" Matsumoto
0e6ef15b0f
AUTHORS: update entries [ci skip]
2024-08-04 23:19:25 +09:00
Yukihiro "Matz" Matsumoto
e8bb03da40
numeric.rb (step): iterate over integers even if end is a float
...
It used to check all `start`, `end` and `step`. If either of them are
float number, `#step` iterated over float number. Now we don't check the
type of `end` argument.
2024-08-03 13:35:09 +09:00
Yukihiro "Matz" Matsumoto
6d6e26661d
gc.c: remove unnecessary argument from add_gray_list()
2024-08-02 21:14:58 +09:00
Yukihiro "Matz" Matsumoto
3324773f56
gc.c (mrb_gc_register): protect obj from GC during execution
...
Because `mrb_ary_new()` and `mrb_ary_push()` can cause GC; fix #6317
2024-08-02 04:52:11 +09:00
Yukihiro "Matz" Matsumoto
16fe4b2701
Merge pull request #6319 from mruby/dependabot/github_actions/super-linter/super-linter-6.8.0
2024-08-02 04:47:42 +09:00
dependabot[bot]
7db4cfd5cd
build(deps): bump super-linter/super-linter from 6.7.0 to 6.8.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.7.0 to 6.8.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.7.0...v6.8.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-08-01 14:32:11 +00:00
Yukihiro "Matz" Matsumoto
aa06432776
mruby-array-ext: index should be within mrb_int range
...
Type check is done by `__to_int` method.
2024-08-01 07:34:20 +09:00
dearblue
822e3fdfd7
Remove pool and syms variables in mrb_vm_exec()
...
Can be referenced by traversing through the `irep` pointer.
2024-07-31 22:27:04 +09:00
dearblue
f2a139a616
Avoid assignments to pc and proc parameters in mrb_vm_exec()
...
Introduce the `ci` variable instead and refer to it indirectly.
2024-07-31 22:27:04 +09:00
Yukihiro "Matz" Matsumoto
a668e6d81e
Merge pull request #6310 from dearblue/ci-extend
2024-07-31 11:09:23 +09:00
Yukihiro "Matz" Matsumoto
eca59ad9ac
Merge pull request #6312 from dearblue/OP_RETURN
2024-07-30 12:04:01 +09:00
Yukihiro "Matz" Matsumoto
3c5baac5c5
mruby-sprintf: fix a bug with negative octals
...
Leading octal digit may be 1, 3, 7 unlike binary or hexadecimal.
2024-07-30 11:33:18 +09:00
Yukihiro "Matz" Matsumoto
ab95e042ca
mruby-bigint (mrb_bint_xor): add fast path with fixnums
2024-07-29 16:44:54 +09:00
Yukihiro "Matz" Matsumoto
b706c89c41
mruby-bigint (mrb_bint_2comp): fix assertion
2024-07-29 16:44:54 +09:00
Yukihiro "Matz" Matsumoto
bf7f14341d
mruby-bigint (mrb_bint_or): add fast path with fixnums
2024-07-29 15:47:19 +09:00
Yukihiro "Matz" Matsumoto
dcf7adeeb7
mruby-bigint: use zero_p()
2024-07-29 15:43:22 +09:00
Yukihiro "Matz" Matsumoto
196c2bd0b9
mruby-bigint (mrb_bint_add): add type cast to stop warnings in C++
2024-07-28 23:29:54 +09:00
Yukihiro "Matz" Matsumoto
081cd0627f
mruby-bigint (mrb_bint_hash): need to get hash from all digits
2024-07-27 18:54:50 +09:00
Yukihiro "Matz" Matsumoto
203a89a3f2
mruby-bigint (zero_p): define a new predicate to check if mpz_t is 0
2024-07-27 18:54:50 +09:00
Yukihiro "Matz" Matsumoto
234a2b10fb
mruby-bigint (mpz_neg): no need to check x != y
2024-07-27 18:54:50 +09:00
Yukihiro "Matz" Matsumoto
811637e99f
mruby-bigint (mrb_bint_2comp): inline mpz_2comp
2024-07-27 18:54:49 +09:00
Yukihiro "Matz" Matsumoto
c218894af9
mruby-bigint: use mp_limb instead of uint32_t
...
Because mp_limb may be uint16_t on some platforms.
2024-07-27 18:54:48 +09:00
Yukihiro "Matz" Matsumoto
a50a2ce148
.gitingore: add entries (.cache, gmon.out, perf.data)
2024-07-27 18:53:55 +09:00
Yukihiro "Matz" Matsumoto
2247e4f355
mruby-bigint (mpz_xor): simplify the code
2024-07-27 18:53:36 +09:00
Yukihiro "Matz" Matsumoto
b573a8430f
mruby-bigint (mpz_or): simplify the code
2024-07-27 18:50:09 +09:00
Yukihiro "Matz" Matsumoto
dea1cc18a6
mruby-bigint (mpz_and): simplify the code
2024-07-27 18:48:01 +09:00
Yukihiro "Matz" Matsumoto
bf081c3d3d
mruby-bigint (mrb_bint_and): further optimization for bint & int
2024-07-25 17:46:36 +09:00
Yukihiro "Matz" Matsumoto
99c078bb6b
mruby-bigint (mrb_bint_2comp): simplify using mpz_2comp()
2024-07-25 16:18:49 +09:00
Yukihiro "Matz" Matsumoto
3d69412ea5
mruby-bigint: Distinguish uzero_p(x) and x->sn == 0
...
The latter is a check for integers that have been set up (and disclosed to the
outer world), while the former is a check for integers that are being worked on.
2024-07-25 16:18:48 +09:00
Yukihiro "Matz" Matsumoto
93653dfd4c
mruby-bigint (uzero_p): add fast path
2024-07-25 16:18:48 +09:00
Yukihiro "Matz" Matsumoto
4ee7c8e021
mruby-bigint: rename uzero to uzero_p
...
Since uzero() is a predicate, and zero() is a function to assign zero to
mpz_t, it's confusion. Rename predicate uzero() to uzero_p() to follow
mruby naming convention.
2024-07-25 16:18:48 +09:00
Yukihiro "Matz" Matsumoto
88536ebe30
mruby-bigint (mpz_xor): support bit-wise xor with negative numbers; #6314
2024-07-25 16:18:48 +09:00
Yukihiro "Matz" Matsumoto
ee2eb6c87e
mruby-bigint (mpz_or): support bit-wise or with negative numbers; #6314
2024-07-25 16:18:48 +09:00
Yukihiro "Matz" Matsumoto
69a80c94b9
mruby-bigint (mpz_and): support bit-wise and with negative numbers
...
Negative integers are virtually considered as 2's compliment of the
absolute value of the corresponding number. It means `-1` is considered
as infinite sequence of `1` toward msb side. ref #6314
2024-07-25 16:18:48 +09:00
Yukihiro "Matz" Matsumoto
e3a459d5b9
mruby-bigint (mrb_bint_and): optimize bint & fixnum operation; ref #6314
2024-07-25 16:18:48 +09:00
Yukihiro "Matz" Matsumoto
c16aba9280
mruby-bigint: remove special handling of Float in bitwise operations
...
CRuby raises TypeError with float numbers as operands; ref #6314
2024-07-25 16:18:47 +09:00
Yukihiro "Matz" Matsumoto
81a9eef591
Merge pull request #6313 from hoshiumiarata/fix_typo_in_opcode_doc
2024-07-24 12:28:52 +09:00
Yukihiro "Matz" Matsumoto
b4ffddebdf
Merge pull request #6314 from hoshiumiarata/optimize_int_even
2024-07-24 08:11:43 +09:00
Hoshiumi Arata
612941dcbc
Add test code for even?/odd?
2024-07-23 21:09:17 +09:00
Hoshiumi Arata
80502b30fb
Optimize even?/odd? for big integers
2024-07-23 21:05:10 +09:00
Hoshiumi Arata
35571df7ea
Update opcode.md: fix wrong column number
2024-07-23 20:25:22 +09:00
Yukihiro "Matz" Matsumoto
bb4a8c2410
Merge pull request #6311 from dearblue/OP_SEND
2024-07-23 11:04:20 +09:00
Yukihiro "Matz" Matsumoto
6a03647fc0
Merge pull request #6309 from dearblue/mrb_type
2024-07-23 07:26:04 +09:00
Yukihiro "Matz" Matsumoto
d2878138d9
mruby-numeric-ext: implement Integer#even? and Integer#odd?
2024-07-23 07:23:13 +09:00
Yukihiro "Matz" Matsumoto
9d709164dc
Merge pull request #6308 from dearblue/vm-catch
2024-07-22 16:29:56 +09:00
Yukihiro "Matz" Matsumoto
f3b570f33a
mruby-enumerator: add test for Enumerable#chunk_while
2024-07-22 13:52:12 +09:00
dearblue
e93226f402
Doubling the call stack when extending it
...
Previously it was "approximately double".
2024-07-21 21:58:18 +09:00
dearblue
748af76ed2
Omit error checking at OP_RETURN, OP_RETURN_BLK and OP_BREAK
...
Clearing errors at the beginning of `mrb_vm_exec()` essentially keeps the mruby VM in a non-error state.
For consistency, functions such as `mrb_funcall()` check for errors when control returns from a C function as a method.
In the case of a tail call, it should return to `mrb_vm_exec()` afterwards, so error checking is performed there.
Instructions issued while `mrb->exc` is non-null should be limited to `OP_EXCEPT`, the jump target of the catch handler table.
2024-07-21 21:58:18 +09:00
dearblue
ce847c1aa9
Added fast-path for positional arguments less than 15 in OP_SEND
2024-07-21 21:58:18 +09:00
dearblue
e76bebe836
Perform pseudo binary search with mrb_type()
2024-07-21 21:58:18 +09:00
dearblue
45007888f5
Assume that MRB_CATCH() has mrb->exc set
...
The caller of `MRB_EXC_THROW()` must be preconfigured.
2024-07-21 21:58:18 +09:00
Yukihiro "Matz" Matsumoto
dcbe2e3eb3
mruby-enumerator: add Enumerable#chunk_while
2024-07-21 20:29:27 +09:00
Yukihiro "Matz" Matsumoto
7d8fc3b35f
Merge pull request #6305 from dearblue/method_missing
...
Protect keyword arguments in `prepare_missing()`
2024-07-20 22:04:50 +09:00
dearblue
890dda79d0
Protect keyword arguments in prepare_missing()
...
Previously, keyword arguments were lost if no positional arguments were passed.
Fixed #6304
2024-07-20 16:25:11 +09:00
Yukihiro "Matz" Matsumoto
3ec6038505
Merge pull request #6299 from mruby/dependabot/github_actions/super-linter/super-linter-6.7.0
...
build(deps): bump super-linter/super-linter from 6.6.0 to 6.7.0
2024-07-20 15:25:20 +09:00
dependabot[bot]
6c4ea4cd10
build(deps): bump super-linter/super-linter from 6.6.0 to 6.7.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.6.0 to 6.7.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.6.0...v6.7.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-07-20 06:16:03 +00:00
Yukihiro "Matz" Matsumoto
9326c514c5
mruby-enum-ext: add Enumerable#each_entry test
2024-07-20 14:20:15 +09:00
Pete Kinnecom
509590c18d
Method missing kwargs test failure:
...
Fail: Method#call with undefined method -- only kwargs (mrbgems: mruby-method)
- Assertion[6]
NoMethodError exception expected, not
Class: <TypeError>
Message: <Array cannot be converted to Hash>
- Assertion[9]
Expected: {:kwarg1=>:val1, :kwarg2=>:val2}
Actual: [:foo]
2024-07-19 20:37:40 +00:00
Yukihiro "Matz" Matsumoto
c539256b43
mruby-enum-ext: add Enumerable#each_entry
2024-07-19 23:29:45 +09:00
Yukihiro "Matz" Matsumoto
313c5a31ac
test/hash.rb: add tests for Hash#assoc and Hash#rassoc
2024-07-18 15:09:49 +09:00
Yukihiro "Matz" Matsumoto
398e669bbf
hash.c: add Hash#assoc and Hash#rassoc
2024-07-18 15:06:31 +09:00
Yukihiro "Matz" Matsumoto
1fc8c20723
Merge pull request #6303 from hasumikin/fix/return-value-of-String_aset
...
mrb_str_aset_m() should return replace instead of str
2024-07-17 09:49:34 +09:00
Yukihiro "Matz" Matsumoto
cd8582a011
hash.c: define Hash#to_hash
2024-07-17 09:46:46 +09:00
Yukihiro "Matz" Matsumoto
45078d9a49
mruby-string-ext: fixed typo (casecmp! -> casecmp?)
2024-07-17 02:25:49 +09:00
HASUMI Hitoshi
cc16afb7f3
mrb_str_aset_m() should return replace instead of str
...
`string[]=(idx, replace)` should return `replace`.
## Actual (wrong)
```
string.[]=(idx, replace) → string
string.[]=(idx, len, replace) → string
```
## Expected
```
string.[]=(idx, replace) → replace
string.[]=(idx, len, replace) → replace
```
## Sidenote
As of the current mruby-compiler, `(string[idx] = 'X')` creates not only "CALL_NODE" but also "ASGN_NODE" and "OP_MOVE", overriding the wrong return value.
On the other hand, `string.[]=(idx, 'X')` creates only "CALL_NODE", exposing the wrong return value.
If my new mruby-compiler2, leveraging Prism, took the place of official compiler, `(string[idx] = 'X')` and `string.[]=(idx, 'X')` would be going to generate the same VM code without "OP_MOVE".
So I paranoidly added tests.
FYI: You can find how the new mruby-compiler2's AST and VM code look like in mruby/c's issue (mruby/c had the same bug): https://github.com/mrubyc/mrubyc/pull/210
2024-07-16 18:55:26 +09:00
Yukihiro "Matz" Matsumoto
ac8846dbce
numeric.c: add Numeric#fdiv
2024-07-15 22:16:52 +09:00
Yukihiro "Matz" Matsumoto
301242c822
numeric.c (int_fdiv): add Integer#fdiv and Float#fdiv
2024-07-15 22:16:52 +09:00
Yukihiro "Matz" Matsumoto
4faab0581e
Merge pull request #6302 from auroranockert/minor-mrb-str-init-cleanup
...
Minor cleanup in mrb_str_init
2024-07-15 21:38:48 +09:00
Yukihiro "Matz" Matsumoto
ca28e639c6
mruby-numeric-ext: move allbits?, anybits?, nobits? to Integer class
2024-07-15 21:35:42 +09:00
Yukihiro "Matz" Matsumoto
3f5138a6ac
mruby-numeric-ext: implement Numeric#integer? method
2024-07-15 21:35:42 +09:00
Yukihiro "Matz" Matsumoto
1a8df40392
mruby-enum-ext: add Array#sort_by! method
2024-07-15 21:35:42 +09:00
Yukihiro "Matz" Matsumoto
fcab7ef377
numeric.c (int_div): fixed a bug regarding bigint / non-integer
...
Non-integer means Complex or Rational.
2024-07-15 21:35:42 +09:00
Yukihiro "Matz" Matsumoto
bcba0bc674
Merge pull request #6300 from jbampton/fix-spelling
...
Fix spelling
2024-07-15 21:35:43 +09:00
Aurora Nockert
a871e4908f
Minor cleanup in mrb_str_init
...
mrb_str_new was essentially manually inlined here, and I think it is a bit easier to follow if we just call the function instead.
2024-07-13 15:38:14 +02:00
John Bampton
de8a6fe787
Fix spelling
2024-07-13 00:21:53 +10:00
Yukihiro "Matz" Matsumoto
c75f7587bc
mruby-numeric-ext: add call-seq reference for Integer#size
2024-07-10 14:56:13 +09:00
Yukihiro "Matz" Matsumoto
ee296f024b
mruby-numeric-ext: add Integer#size method
...
Although CRuby uses clz() for the biggest word, mruby bigint only counts
number of digit words.
2024-07-10 14:50:54 +09:00
Yukihiro "Matz" Matsumoto
a77bc25a5f
mruby-sprintf: support dots expression of negative integer format
...
For specifiers assume unsigned integers, negative numbers show dots (..)
to indicate virtual infinite 1s at the MSB side of 2's compliment.
2024-07-09 11:13:55 +09:00
Yukihiro "Matz" Matsumoto
80fec16cb6
mruby-sprintf: inline sign_bits() function
2024-07-09 10:48:07 +09:00
Yukihiro "Matz" Matsumoto
d249c2e939
mruby-sprintf: separate filling high bits and converting negatives
2024-07-09 10:40:46 +09:00
Yukihiro "Matz" Matsumoto
2488375a35
mruby-bigint (mpz_mod): move mpz_init() to avoid memory leak
2024-07-09 08:00:23 +09:00
Yukihiro "Matz" Matsumoto
0ea1549faa
mruby-sprintf: reorder functions
...
In addition, internal function `mrb_str_format()` is made `static`.
2024-07-06 08:45:19 +09:00
Yukihiro "Matz" Matsumoto
bd502f6d7b
mruby-sprintf: support Big integers for %d etc.
2024-07-04 22:51:14 +09:00
Yukihiro "Matz" Matsumoto
f1a04dae3e
mruby-enum-ext (sort_by): avoid copying the receiver
...
When the receiver is an Array.
2024-07-03 07:31:32 +09:00
Yukihiro "Matz" Matsumoto
7c7ee5c244
array.c: implement Array#delete method in C
2024-07-02 11:45:20 +09:00
Yukihiro "Matz" Matsumoto
b9cb9b9bbe
Merge pull request #6295 from dearblue/revert-6282
...
Revert "Delegate the care of a directly given block from `cipop()` to `cipush()`"
2024-07-02 11:45:13 +09:00
dearblue
ad576f1e75
Revert "Delegate the care of a directly given block from cipop() to cipush()"
...
This reverts commit ad2e626e7a .
Because of the changes made by #6282 , the following code caused a problem.
```ruby
b = proc { break "BAD!" }
p self.tap { b.call }
# (expected) => break from proc-closure (LocalJumpError)
# (after #6282 ) => "BAD!"
```
I revived the `mrb_callinfo::blk` field to fix this, but it did not overcome the following problem.
```ruby
def m(&b); b = b.clone; GC.start; b.call; end
p m { break "OK!" }
# (expected) => "OK!"
# (revived blk) => break from proc-closure (LocalJumpError)
```
2024-06-30 21:01:45 +09:00
Yukihiro "Matz" Matsumoto
73337133f7
Merge pull request #6294 from auroranockert/optimise-obj-iv-p
...
Optimise `mrb_iv_get`
2024-06-30 18:25:43 +09:00
Yukihiro "Matz" Matsumoto
72bf46de22
array.c (mrb_ary_cmp): fixed wrong type casting
2024-06-30 18:19:52 +09:00
Yukihiro "Matz" Matsumoto
eee83ed7af
array.c: implement Array#index and Array#rindex in C
...
No need to override Array#index in mruby-array-ext. We can call
`to_enum` from C implemented methods.
2024-06-29 15:03:12 +09:00
Yukihiro "Matz" Matsumoto
dd808a0be4
array.c: implement Array#<=> in C
2024-06-29 15:03:12 +09:00
Yukihiro "Matz" Matsumoto
8cffa04def
array.c: implement Array#== and Array#eql? in C
...
It seems OK to call comparison from C method from measurement.
2024-06-29 08:32:06 +09:00
Yukihiro "Matz" Matsumoto
5b8de8d616
Array.c (mrb_ary_init): implement Array#initialize in C
2024-06-28 08:56:41 +09:00
Aurora Nockert
646c37ecda
Add a fast-path for mrb_type
...
By adding a fast-path where we ignore boxed types we can gain a pretty substantial speedup of mrb_iv_get, making it about 25% faster during a standard optcarrot benchmark run.
NOTE: It is just mrb_iv_get that is that much faster, the whole benchmark seems to be about 3-5% faster with word boxing.
2024-06-27 22:46:13 +02:00
Aurora Nockert
27f972b048
Reorder mrb_vtype
...
This allows the compiler to optimise the case in obj_iv_p into a range check. There does not seem to be any other very hot uses of this index and it grants a pretty big gain on optcarrot.
2024-06-27 22:46:13 +02:00
Yukihiro "Matz" Matsumoto
f709847bde
numeric.c (cmpnum): skip mrb_as_float() if possible
2024-06-27 10:02:06 +09:00
Yukihiro "Matz" Matsumoto
5b27469d19
numeric.c (mrb_cmp): check the first argument if it's int or float
...
To avoid the cost of `mrb_type(obj1)`.
2024-06-27 09:24:34 +09:00
Yukihiro "Matz" Matsumoto
ac1e4a2d58
numeric.c (cmpnum): handle the case where both arguments are fixnum first
...
To avoid the cost of `mrb_type(v2)`.
2024-06-27 08:55:28 +09:00
Yukihiro "Matz" Matsumoto
b8f968b4a3
numeric.c (mrb_cmp): no need to check respond_to?(:<=>)
...
Because every object responds to `<=>`.
2024-06-27 08:48:11 +09:00
Yukihiro "Matz" Matsumoto
5bd63d6232
array.c: replace sort! method implementation
...
- use heap sort (O(1)) instead of merge sort (O(n)) for better space
complexity.
- method implemented in C for better performance
As a result, simple sorting now consumes far less memory and is faster.
Since it's implemented in C, fiber context switching is not allowed from
comparison, but we consider the risk is minimal (no one switches context
in the comparison, right?)
2024-06-26 11:28:56 +09:00
Yukihiro "Matz" Matsumoto
b521d0816f
numeric.c (cmpnum): restrict comparison between Numeric objects
2024-06-25 14:36:56 +09:00
Yukihiro "Matz" Matsumoto
bb2733e9a2
numeric.c (cmpnum): rafactoring
...
- separate `MRB_NO_FLOAT` case
- use `mrb_as_float()` as much as possible
2024-06-24 09:34:13 +09:00
Yukihiro "Matz" Matsumoto
a0d4c63f9a
Merge pull request #6293 from dearblue/doc/opcode.md
...
Changed the instruction table in `opcode.md`
2024-06-23 20:14:51 +09:00
dearblue
f4f3a061be
Changed the instruction table in opcode.md
...
- Added the index number corresponding to the instruction code.
- Omitted trailing `|` from table elements.
The table elements in GitHub Flavored Markdown can't wrap wherever wanted.
And trying to align the end of it tends to make the whole thing longer.
2024-06-22 23:21:43 +09:00
Yukihiro "Matz" Matsumoto
54e99197bd
Revert "tools/lrama: apply ruby/lrama#442"
...
This reverts commit fb9fbc8498 .
The fix in the upstream still causes syntax error in C++.
2024-06-22 13:34:46 +09:00
Yukihiro "Matz" Matsumoto
eab6bddffe
Merge pull request #6292 from jbampton/pre-commit-autoupdate
...
markdownlint --fix; remove prettier; pre-commit autoupdate; fix spelling
2024-06-21 14:33:44 +09:00
Yukihiro "Matz" Matsumoto
d4c65d7ab1
AUTHORS: update entries [ci skip]
2024-06-21 13:01:38 +09:00
Yukihiro "Matz" Matsumoto
c592e7b70d
string.c: small refactoring
2024-06-21 10:11:32 +09:00
Yukihiro "Matz" Matsumoto
fb9fbc8498
tools/lrama: apply ruby/lrama#442
2024-06-21 08:12:27 +09:00
John Bampton
88e2eb0188
Fix spelling
2024-06-21 08:14:17 +10:00
John Bampton
06becc3495
pre-commit autoupdate
2024-06-21 08:14:17 +10:00
John Bampton
bbb0dddc7e
Remove prettier from pre-commit
2024-06-21 08:14:17 +10:00
John Bampton
ac74c90b30
Run markdownlint --fix
2024-06-21 06:53:42 +10:00
Yukihiro "Matz" Matsumoto
73c3970ea1
numeric.c: fix spacing in a comment
2024-06-19 09:25:19 +09:00
Yukihiro "Matz" Matsumoto
b8396aec33
numeric.c (cmpnum): fix a bug in float-bigint comparison
...
Should have used bigint to float conversion.
2024-06-19 09:25:19 +09:00
Yukihiro "Matz" Matsumoto
0f2d12a005
numeric.c (cmpnum): reduce else nesting
2024-06-18 01:50:49 +09:00
Yukihiro "Matz" Matsumoto
75de002058
mruby-complex: provide Complex#<=> in Ruby
2024-06-17 08:14:27 +09:00
Yukihiro "Matz" Matsumoto
3b9aec90dd
mruby-rational: define <=> method in Ruby, not in C
2024-06-17 08:02:42 +09:00
Yukihiro "Matz" Matsumoto
36eff3ec59
mruby-rational/test: remove UserDefinedNumeric tests
...
Since they checks the behavior different from CRuby.
2024-06-17 07:57:54 +09:00
Yukihiro "Matz" Matsumoto
d1592ba9f9
numeric.c (cmpnum): use mrb_as_int() instead of mrb_integer()
2024-06-17 07:51:25 +09:00
Yukihiro "Matz" Matsumoto
b44dc1c0b9
mruby-rational: use presym for initialization
2024-06-14 06:17:20 +09:00
Yukihiro "Matz" Matsumoto
0e045a52f6
mruby-complex: use presym for initialization
2024-06-14 06:15:34 +09:00
Yukihiro "Matz" Matsumoto
921a54ef33
mruby-socket/socket.rb: done some small refactoring
2024-06-14 06:14:27 +09:00
Yukihiro "Matz" Matsumoto
39d577799f
mruby-socket: use presym for initialization
2024-06-14 06:14:07 +09:00
Yukihiro "Matz" Matsumoto
7be10097a0
mruby-io: use presym for initialization
2024-06-14 02:00:17 +09:00
Yukihiro "Matz" Matsumoto
db8d43090a
mruby-struct: use presym for initialization
2024-06-14 01:59:30 +09:00
Yukihiro "Matz" Matsumoto
8bd66a9358
mruby-data: use presym for initialization
2024-06-14 01:59:10 +09:00
Yukihiro "Matz" Matsumoto
d5fd3338a4
mruby-method: use presym for initialization
2024-06-14 01:46:22 +09:00
Yukihiro "Matz" Matsumoto
71a4e5f3ff
mruby-proc-ext: use presym for initialization
2024-06-14 01:45:58 +09:00
Yukihiro "Matz" Matsumoto
2b4591fe68
mruby-proc-binding: use presym for initialization
2024-06-14 01:45:23 +09:00
Yukihiro "Matz" Matsumoto
9fbdf78380
mruby-binding: use presym for initialization
2024-06-14 01:44:49 +09:00
Yukihiro "Matz" Matsumoto
d1e49f7121
mruby-metaprog: use presym for initialization
2024-06-14 01:43:57 +09:00
Yukihiro "Matz" Matsumoto
c32a94d878
mruby-string-ext: use presym for initialization
2024-06-14 01:43:03 +09:00
Yukihiro "Matz" Matsumoto
513908d77f
mruby-range-ext: use presym for initialization
2024-06-14 01:42:30 +09:00
Yukihiro "Matz" Matsumoto
4104837ba1
mruby-hash-ext: use presym for initialization
2024-06-14 01:41:55 +09:00
Yukihiro "Matz" Matsumoto
cfd90a65f7
mruby-array-ext: use presym for initialization
2024-06-14 01:41:06 +09:00
Yukihiro "Matz" Matsumoto
574f9f0d39
mruby-class_ext: use presym for initialization
2024-06-14 00:37:05 +09:00
Yukihiro "Matz" Matsumoto
6361f6d661
mruby-numeric-ext: use presym for initialization
2024-06-14 00:35:44 +09:00
Yukihiro "Matz" Matsumoto
d94916bf15
mruby-kernel-ext: use presym for initialization
2024-06-14 00:34:07 +09:00
Yukihiro "Matz" Matsumoto
e1a62a581f
mruby-object-ext: use presym for initialization
2024-06-14 00:33:18 +09:00
Yukihiro "Matz" Matsumoto
c99b8d7d3b
mruby-fiber: use presym for initialization
2024-06-14 00:32:07 +09:00
Yukihiro "Matz" Matsumoto
bf8e19f7da
mruby-sleep: use presym for initialization
2024-06-14 00:30:32 +09:00
Yukihiro "Matz" Matsumoto
0eb616e3bd
mruby-symbol-ext: use presym for initialization
2024-06-14 00:28:33 +09:00
Yukihiro "Matz" Matsumoto
3628d093f4
mruby-dir: use presym for initialization
2024-06-14 00:27:13 +09:00
Yukihiro "Matz" Matsumoto
6535f6d159
mruby-eval: use presym for initialization
2024-06-14 00:26:22 +09:00
Yukihiro "Matz" Matsumoto
9c060b425c
mruby-errno: use presym for initialization
2024-06-14 00:25:26 +09:00
Yukihiro "Matz" Matsumoto
e4c2423f6e
mruby-catch: use presym for initialization
2024-06-14 00:23:11 +09:00
Yukihiro "Matz" Matsumoto
6bcaeb5a93
mruby-pack: use presym for initialization
2024-06-14 00:19:21 +09:00
Yukihiro "Matz" Matsumoto
f3c2373c6f
mruby-print: use presym for initialization
2024-06-14 00:18:22 +09:00
Yukihiro "Matz" Matsumoto
c94ae288d5
mruby-time: use presym for initialization
2024-06-14 00:16:21 +09:00
Yukihiro "Matz" Matsumoto
8f184a356b
mruby-random: use presym for initialization
2024-06-14 00:15:25 +09:00
Yukihiro "Matz" Matsumoto
3141b9424c
mruby-compiler/y.tab.c: it will be generated by Lrama from parse.y
...
No longer need to bundle in the repository.
2024-06-10 15:34:16 +09:00
Yukihiro "Matz" Matsumoto
933e966fab
tools/lrama: update template to stop C++ compiler error
2024-06-10 15:23:53 +09:00
Yukihiro "Matz" Matsumoto
fbe21a0321
tools/lrama: bundle Lrama 0.6.9 (copied from CRuby source)
2024-06-10 14:26:26 +09:00
Yukihiro "Matz" Matsumoto
d6da2d4760
mruby-compiler: use @1 in parse.y to enable YYLTYPE
...
This change itself does nothing good, but it is a preparation for the
future Bison to Lrama migration. As of 0.6.9, Lrama has a compatibility
issue for grammar files without `@n`.
2024-06-10 08:23:36 +09:00
Yukihiro "Matz" Matsumoto
473206c5d8
class.c: adjust local variable declarations with initialization
2024-06-10 08:23:36 +09:00
Yukihiro "Matz" Matsumoto
b6b74b3a5b
Merge pull request #6290 from dearblue/libdir
...
Allow to change the output directory name of the `libmruby` file
2024-06-10 08:22:52 +09:00
dearblue
0fcf54b47d
Allow to change the output directory name of the libmruby file
...
Add the `MRuby::Build#libdir_name` accessor and the `MRUBY_SYSTEM_LIBDIR_NAME` environment variable.
Resolved #6240
2024-06-09 22:49:46 +09:00
Yukihiro "Matz" Matsumoto
43b3536803
Merge pull request #6288 from dearblue/closing
...
Detach `env` of ci explicitly on atexit
2024-06-09 19:40:21 +09:00
Yukihiro "Matz" Matsumoto
b60cd351a1
Merge pull request #6289 from dearblue/orphan-block
...
Simplify `OP_RETURN_BLK` and `OP_BREAK
2024-06-08 23:51:48 +09:00
dearblue
f48ac7469b
Simplify OP_RETURN_BLK and `OP_BREAK
...
- There was some unnecessary complexity in `OP_BREAK` introduced in commit ad2e626 (#6282 ).
- Since `mrb->c` is never NULL, there is no need to check it with `MRB_ENV_ONSTACK_P()` beforehand.
2024-06-08 13:46:28 +09:00
dearblue
bd596153f1
Detach env of ci explicitly on atexit
...
Supplement to commit 177debacc5 (#6276 ).
If the ci is incomplete, the previous method may cause the application to crash because `env->stack` points to an invalid address when expanding the data stack.
Since the ci is in an abnormal state, control it by putting `NULL` in `env->stack`.
If the ci is fine and top-level, detach `env` as usual with `mrb_env_unshare()`.
2024-06-06 21:35:24 +09:00
Yukihiro "Matz" Matsumoto
8c1e12263e
Merge pull request #6287 from mruby/dependabot/github_actions/super-linter/super-linter-6.6.0
...
build(deps): bump super-linter/super-linter from 6.5.1 to 6.6.0
2024-06-05 21:26:23 +09:00
Yukihiro "Matz" Matsumoto
889af10090
mruby-compiler: prohibit dynamic assignment to constants; #3521
...
Along with some declaration adjustments to minimize `y.tab.c` diff.
2024-06-05 18:56:11 +09:00
dependabot[bot]
bc930d68ab
build(deps): bump super-linter/super-linter from 6.5.1 to 6.6.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.5.1 to 6.6.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.5.1...v6.6.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-06-04 14:49:19 +00:00
Yukihiro "Matz" Matsumoto
5072358276
vm.c: remove unnecessary type cast to blk; ref #6282
2024-06-03 19:45:53 +09:00
Yukihiro "Matz" Matsumoto
dcdd94c04c
Merge pull request #6282 from dearblue/orphan-block
...
Delegate the care of a directly given block from `cipop()` to `cipush()`
2024-06-02 22:02:58 +09:00
Yukihiro "Matz" Matsumoto
95dcc52e16
Merge pull request #6283 from dearblue/env
...
Simplify `uvenv()`
2024-06-01 22:51:02 +09:00
dearblue
d0b06446f2
Simplify uvenv()
...
The part removed in this patch was introduced by commit c7c9543bed .
The current mechanism should be able to trace from block objects created by `eval` to higher level blocks without any problems.
2024-06-01 20:36:22 +09:00
Yukihiro "Matz" Matsumoto
00a874cff6
Merge pull request #6281 from dearblue/binding
...
Fixes local variables in `mruby-binding`.
2024-05-31 22:56:04 +09:00
Yukihiro "Matz" Matsumoto
8d79cfdc83
Merge pull request #6280 from dearblue/env
...
Remove `MRB_ENV_CLOSED` flag
2024-05-31 22:50:56 +09:00
Yukihiro "Matz" Matsumoto
7b9b0997e0
string.c: adjust local variable declarations
2024-05-31 22:49:25 +09:00
dearblue
ad2e626e7a
Delegate the care of a directly given block from cipop() to cipush()
...
Outlines:
- Removed `mrb_callinfo::blk`
- Added `mrb_callinfo::flags`
- Added `MRB_CI_COMPANION_BLOCK` flag
2024-05-31 22:03:15 +09:00
dearblue
e82b36035e
Fixes local variables in mruby-binding.
...
There are two issues to be fixed:
- `mrb_irep` could leak if `mrb_calloc()` encountered an out-of-memory exception
- `mrb_proc_merge_lvar()` allocated one extra variable name.
`irep->lv` can always refer to only one less range than `irep->nlocals`.
Also, when `mrb_proc_merge_lvar()` extends `irep->lv`, `mrb_realloc()` with `NULL` has the same behavior as `mrb_malloc()`.
2024-05-30 21:25:30 +09:00
dearblue
7ab6386cc6
Remove MRB_ENV_CLOSED flag
...
Set `env->cxt` to `NULL` when it is detached from the call frame.
In other words, we can determine if `env->cxt` is `NULL` or not.
Also, `mruby-binding` had been setting `env->cxt` unnecessarily, so this has been fixed.
2024-05-30 21:09:49 +09:00
Yukihiro "Matz" Matsumoto
0a11af74f4
Merge pull request #6279 from kou/windows-lean-and-mean-include
...
Include headers for malloc() explicitly; fix #6277
2024-05-29 14:37:10 +09:00
Sutou Kouhei
c258ead85b
Include headers for malloc() explicitly; fix #6277
...
We need to include stdlib.h and malloc.h to use malloc()/free() but
they aren't included in src/string.c with WIN32_LEAN_AND_MEAN. It
generates build time warnings.
We can solve this by including stdlib.h and malloc.h explicitly.
2024-05-29 09:45:36 +09:00
Yukihiro "Matz" Matsumoto
f1dec3959f
mruby-range-ext (range_size): raise TypeError if not iterable
...
According ruby/ruby#8663 , `Range#size` behavior has changed.
2024-05-28 15:30:08 +09:00
Yukihiro "Matz" Matsumoto
f2dc44215c
Merge pull request #6276 from dearblue/closing
...
Always run `atexit` on the top-level call frame
2024-05-27 12:40:52 +09:00
Yukihiro "Matz" Matsumoto
bf244d65db
Merge pull request #6275 from dearblue/binding.eval
...
Fixed `Binding#eval` that failed to assign to the same variable
2024-05-27 08:49:14 +09:00
dearblue
177debacc5
Always run atexit on the top-level call frame
...
In the following example, the fiber context and call stack may be in an incomplete state.
- In case another thread running mruby is terminated abnormally
- In case of a global jump that is out of management by mruby
2024-05-26 21:17:00 +09:00
Yukihiro "Matz" Matsumoto
d03394fbc4
mruby-os-memsize: adjust local variable declarations
2024-05-26 18:01:15 +09:00
Yukihiro "Matz" Matsumoto
681bcdbcd3
mruby-bigint: adjust local variable declarations
2024-05-26 07:38:34 +09:00
dearblue
75b0d06c41
Fixed Binding#eval that failed to assign to the same variable
...
In `Binding#eval`, two times parsing is executed.
The problem found in this case was caused by not passing an upper block to hold variables of the binding object during the first parsing.
The problem was uncovered by <https://github.com/mruby/mruby/discussions/6274 >.
2024-05-25 21:55:02 +09:00
Yukihiro "Matz" Matsumoto
20cf58d1d3
Merge pull request #6273 from dearblue/closing
...
Improvements to `mrb_protect_atexit()`
2024-05-25 16:48:56 +09:00
Yukihiro "Matz" Matsumoto
d415a45a33
AUTHORS: update entries [ci skip]
2024-05-25 16:47:08 +09:00
Yukihiro "Matz" Matsumoto
10bc15c23e
mruby-class-ext: adjust variable declarations
2024-05-25 16:41:24 +09:00
Yukihiro "Matz" Matsumoto
292f7ef0ce
mruby-proc-ext (mrb_proc_parameters): adjust variable declarations
2024-05-25 16:39:32 +09:00
Yukihiro "Matz" Matsumoto
89c70aeea0
mruby-range-ext: move local variable declarations to minimize scope
2024-05-25 16:39:32 +09:00
Yukihiro "Matz" Matsumoto
7c2be58e2a
mruby-rational (rational_pow): fix wrong power calculation
...
`a/b ** -n` can be calculated by `b/a ** n` for correctness.
2024-05-25 16:39:32 +09:00
Yukihiro "Matz" Matsumoto
d148bf8c0b
mruby-rational: adjust local variable declarations with initialization
2024-05-25 16:39:32 +09:00
Yukihiro "Matz" Matsumoto
68e093729b
string.c: refactor bit operation (e.g. SWAR)
...
To generate a bit mask of `0x8080...` of the word size, we prepare
`MASK01` which is `0x0101...` and multiply masking word (e.g., `0x80).
2024-05-25 16:39:32 +09:00
Yukihiro "Matz" Matsumoto
bff68cbf17
mruby-socket (inet_ntop): refactor addrinfo loop
2024-05-25 16:39:31 +09:00
Yukihiro "Matz" Matsumoto
4e824048c0
mruby-socket: adjust local variable declarations
2024-05-25 16:39:31 +09:00
Yukihiro "Matz" Matsumoto
bd7efbe75f
string.c: check if the index points character boundary; fix #6267
2024-05-25 16:39:31 +09:00
dearblue
b12ea17d0b
Improvements to mrb_protect_atexit()
...
- Initialize the GC arena each time `atexit` is called.
- To reduce the overhead of `MRB_TRY()`, an internal loop is also performed.
2024-05-25 10:48:16 +09:00
Yukihiro "Matz" Matsumoto
f2e1cf2d3c
Merge pull request #6272 from mruby/dependabot/github_actions/super-linter/super-linter-6.5.1
...
build(deps): bump super-linter/super-linter from 6.5.0 to 6.5.1
2024-05-25 07:57:55 +09:00
dependabot[bot]
ccc34c37b9
build(deps): bump super-linter/super-linter from 6.5.0 to 6.5.1
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.5.0 to 6.5.1.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.5.0...v6.5.1 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-05-24 14:22:15 +00:00
Yukihiro "Matz" Matsumoto
86f620822f
Merge pull request #6269 from mruby/dependabot/github_actions/super-linter/super-linter-6.5.0
...
build(deps): bump super-linter/super-linter from 6.4.1 to 6.5.0
2024-05-16 07:09:41 +09:00
Yukihiro "Matz" Matsumoto
c635456f16
mruby-dir: fix indentation
2024-05-16 07:06:59 +09:00
dependabot[bot]
e36f0fd266
build(deps): bump super-linter/super-linter from 6.4.1 to 6.5.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.4.1 to 6.5.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.4.1...v6.5.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-05-15 14:28:17 +00:00
Yukihiro "Matz" Matsumoto
156c7ecae3
Merge pull request #6266 from dearblue/array-delete
...
Passes the nonexistent key as a block argument in `Array#delete`
2024-05-14 09:49:36 +09:00
Yukihiro "Matz" Matsumoto
7865593823
mruby-dir: enumerating methods should return enumerators; #6265
2024-05-14 09:42:38 +09:00
Yukihiro "Matz" Matsumoto
dd552cee13
Merge pull request #6265 from dearblue/dir-children
...
Fixes `Dir.children` and `Dir.each_child`
2024-05-14 09:32:51 +09:00
Yukihiro "Matz" Matsumoto
169114666a
mruby-io: fix Win32 declaration bugs
2024-05-14 01:34:43 +09:00
Yukihiro "Matz" Matsumoto
a147b2c149
Merge pull request #6264 from dearblue/to_enum
...
Must pass keyword arguments for `Kernel#to_enum`
2024-05-14 01:28:14 +09:00
Yukihiro "Matz" Matsumoto
37e7c071c2
mruby-io: adjust local variable declarations
2024-05-14 01:22:04 +09:00
Yukihiro "Matz" Matsumoto
ae6e5b7b5e
mruby-method: adjust local variable declaration place
2024-05-13 23:37:21 +09:00
Yukihiro "Matz" Matsumoto
7dee66c5db
mruby-fiber: adjust local variable declaration places
2024-05-12 20:34:25 +09:00
dearblue
f0cd35c78b
Passes the nonexistent key as a block argument in Array#delete
...
```ruby
a = %w(R G B A)
p a.delete("Y") { _1 }
# BEFORE => nil (same for mruby 3.3)
# AFTER => "Y" (same for CRuby)
```
2024-05-10 22:46:11 +09:00
dearblue
c753ca33d0
Add test for Array#delete
2024-05-10 22:35:13 +09:00
dearblue
12030b3f41
Fixes Dir.children and Dir.each_child
...
The two methods exclude "." and "..".
2024-05-10 21:54:59 +09:00
dearblue
a06e2484e6
Must pass keyword arguments for Kernel#to_enum
2024-05-10 21:50:51 +09:00
Yukihiro "Matz" Matsumoto
dcee404ebb
mruby-hash-ext: use NONE.equal?() for NONE comparison; ref #6262
2024-05-10 20:40:11 +09:00
Yukihiro "Matz" Matsumoto
4d7ad4863f
mruby-enumerator: use NONE.equal?() for NONE comparison; ref #6262
2024-05-10 20:40:11 +09:00
Yukihiro "Matz" Matsumoto
1f80b875c4
mruby-enum-ext: use NONE.equal?() for NONE comparison; ref #6262
2024-05-10 20:40:11 +09:00
Yukihiro "Matz" Matsumoto
db30b0636f
mruby-array-ext: use NONE.equal?() for NONE comparison; fix #6262
...
The equal (`==`) method of the comparison target might be redefined
(the root cause of #6262 ), and not supposed to be compared with NONE.
To reduce chance for the problem, we use `NONE.equal?()` for comparison.
2024-05-10 20:37:01 +09:00
Yukihiro "Matz" Matsumoto
058a4ab5c6
Merge pull request #6263 from leviongit:array/delete
...
fix: `Array#delete` mistakingly calling block even if not passed
2024-05-10 12:11:53 +09:00
leviongit
67df0aca67
fix: Array#delete mistakingly calling block even if not passed
2024-05-09 14:33:23 +02:00
Yukihiro "Matz" Matsumoto
19d9f48f7d
mruby-sleep: update MIT license URL
2024-05-09 17:08:27 +09:00
Yukihiro "Matz" Matsumoto
aac9e4cf0d
Merge pull request #6261 from leviongit/range/to_a
...
fix: `to_a` integer ranges with `begin > end` failing
2024-05-09 17:07:51 +09:00
leviongit
fff07ca182
fix: to_a integer ranges with begin > end failing
...
example of failure:
```rb
(-1..-4).to_a
```
expected result:
```rb
(-1..-4).to_a
```
2024-05-08 23:10:28 +02:00
Yukihiro "Matz" Matsumoto
06480f7147
mruby-string-ext: move local variable declarations
2024-05-08 11:29:20 +09:00
Yukihiro "Matz" Matsumoto
cf785a6133
mruby-random: move variable declarations to initialization
2024-05-07 17:57:41 +09:00
Yukihiro "Matz" Matsumoto
f975794f19
Merge pull request #6260 from dearblue/mrb_vm_exec-exception
...
Remove `exc_caught` from `mrb_vm_exec()`
2024-05-06 22:55:07 +09:00
dearblue
dea5c9e1dc
Remove exc_caught from mrb_vm_exec()
...
Only go to exception handling if `mrb->exc` is non-null.
This may cause some compatibility problems, but I doubt that it is necessary to maintain that compatibility.
Here is how I see the incompatibility with the change at this time:
- If `mrb->exc` is non-null and `mrb_vm_exec()` is called, an exception will be thrown immediately.
- If `MRB_THROW()` is used while `mrb->exc` is `NULL`, it will not go to exception handling.
2024-05-05 21:30:18 +09:00
Yukihiro "Matz" Matsumoto
1e61a875ed
mruby-data: adjust local variable declarations
2024-05-05 18:56:20 +09:00
Yukihiro "Matz" Matsumoto
0a61a9a76f
mruby-struct: adjust local variable declarations
2024-05-05 18:55:42 +09:00
Yukihiro "Matz" Matsumoto
c548943a2b
mruby-symbol-ext: adjust local variable declarations
2024-05-04 08:30:53 +09:00
Yukihiro "Matz" Matsumoto
86b1c8ff87
string.c (utf8_strlen): add assertion utf8_len <= byte_len
2024-05-03 07:50:40 +09:00
Yukihiro "Matz" Matsumoto
aea3e7aedd
mruby-sprintf: raise ArgumentError for % at the bottom
2024-05-03 07:46:45 +09:00
Yukihiro "Matz" Matsumoto
4801a424a3
mruby-time: adjust local variable declarations
2024-05-02 19:55:29 +09:00
Yukihiro "Matz" Matsumoto
c5314a29b7
mruby-test: move declarations in driver.c and vformat.c
2024-05-01 13:24:32 +09:00
Yukihiro "Matz" Matsumoto
2c8cde2ba7
codedump.c: move variable declarations to initialization place
2024-04-30 22:17:22 +09:00
Yukihiro "Matz" Matsumoto
fa213a2d89
string.c (search_nonascii): prevent buffer overrun; ref #6255
2024-04-29 16:35:08 +09:00
Yukihiro "Matz" Matsumoto
714ef4c4fd
string.c (mrb_utf8_strlen): handle invalid UTF-8 sequence; fix #6255
...
Previous SWAR version assumes valid UTF-8 to count number of code points
in the string, but we need to handle invalid sequence as well. We now
use `search_nonascii` to skip counting single byte characters for
performance. The new version is even faster than SWAR version (probably
because `search_nonascii` uses SSE2 on Intel compatible CPU (which I use).
2024-04-29 15:37:22 +09:00
Yukihiro "Matz" Matsumoto
c9ae8df2c2
error.c: move variable declaration to initialization
2024-04-29 14:42:49 +09:00
Yukihiro "Matz" Matsumoto
7cea1cd035
Merge pull request #6256 from dearblue/doc/mrb_top_run
...
Update documentation for `mrb_top_run()`
2024-04-27 14:57:03 +09:00
Yukihiro "Matz" Matsumoto
09896099ee
Merge pull request #6257 from jethrodaniel/tiny-mrbconf-doc-updates
...
fix some mrbconf.md typos
2024-04-27 14:41:50 +09:00
Mark Delk
b99536f1fc
rm unneeded MRB_NO_GEMS doc addition
2024-04-26 23:33:16 -05:00
Mark Delk
f78eab7c3f
fix some typos, mention MRB_NO_GEMS
2024-04-26 19:54:07 -05:00
Yukihiro "Matz" Matsumoto
598dca7a08
debug.c: move local variable declarations to initialization place
2024-04-27 08:40:36 +09:00
dearblue
a0526418ce
Update documentation for mrb_top_run()
...
Also, add explanations for the `mrb_load_irep()` and `mrb_load_string()` families, which are indirect calls to `mrb_top_run()`.
2024-04-26 22:05:45 +09:00
Yukihiro "Matz" Matsumoto
7edbff8c83
Merge pull request #6253 from dearblue/fiber-sweep
...
Allow recycling fibers by GC if not referenced directly
2024-04-25 11:34:08 +09:00
Yukihiro "Matz" Matsumoto
22518b5b78
Merge pull request #6244 from dearblue/mrb_vm_run
...
Revise scope of role of `mrb_vm_run()`
2024-04-24 08:45:29 +09:00
dearblue
f1c9260ada
Allow recycling fibers by GC if not referenced directly
...
The patch assumes that `struct REnv::cxt` only performs checks with the `OP_BREAK` and `OP_RETURN_BLK` instructions, and does not reference the entity.
Therefore, by changing to a weak reference, it is possible to collect fibers that are no longer directly referenced while in the suspended state.
However, we need to detach the living env objects that remain in the call stack of the fiber.
So, in effect, it involves a revert of following commits.
- commit a3365d8b3f
- commit 57ffa1c150
Examples of the effects of change are shown below.
Note that it was built with `rake MRUBY_CONFIG=host-debug`.
```ruby
f = Fiber.new { (x, y, z) = "X", "Y", "Z"; Fiber.yield -> { [x, y, z] } }
g = f.resume
GC.start
p ObjectSpace.memsize_of_all
# => 59532
g.call
# => ["X", "Y", "Z"]
f = nil
GC.start
ObjectSpace.memsize_of_all
# BEFORE => 59532
# AFTER => 58044
g.call
# => ["X", "Y", "Z"]
```
2024-04-23 22:30:32 +09:00
dearblue
c8c7d1ab23
Don't mrb_realloc_simple() call mrb_full_gc() in the sweep phase
...
`mrb_env_unshare()` calls `mrb_realloc_simple()` and follows `mrb_full_gc()` to avoid an infinite loop where `mrb_env_unshare()` is called again.
This does not occur at this time, but may occur in subsequent patches.
2024-04-23 22:25:54 +09:00
Yukihiro "Matz" Matsumoto
85120d524a
Merge pull request #6250 from jbampton/fix-spelling
...
Fix spelling
2024-04-23 00:21:59 +09:00
Yukihiro "Matz" Matsumoto
3d32bc11ef
Merge pull request #6252 from mruby/dependabot/github_actions/super-linter/super-linter-6.4.1
...
build(deps): bump super-linter/super-linter from 6.4.0 to 6.4.1
2024-04-23 00:20:28 +09:00
Yukihiro "Matz" Matsumoto
2e4dc20673
Merge pull request #6251 from jbampton/clean-up-root-move-codeowners
...
Clean up root move `CODEOWNERS` to `.github` directory
2024-04-23 00:18:03 +09:00
dependabot[bot]
2fc2c20155
build(deps): bump super-linter/super-linter from 6.4.0 to 6.4.1
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.4.0...v6.4.1 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-22 14:37:45 +00:00
John Bampton
5c39e39b8a
Clean up root move CODEOWNERS to .github directory
...
https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#codeowners-file-location
2024-04-22 20:41:41 +10:00
John Bampton
67c5ced277
Fix spelling
2024-04-22 18:00:27 +10:00
Yukihiro "Matz" Matsumoto
ca29aa81bd
Merge pull request #6247 from jbampton/clean-up-dockerignore
...
Clean up the `.dockerignore` file
2024-04-22 09:49:52 +09:00
Yukihiro "Matz" Matsumoto
34c8e8253a
Merge pull request #6249 from jbampton/fix-grammar
...
Fix grammar in `src/vm.c`; `catched` -> `caught`
2024-04-22 09:49:19 +09:00
Yukihiro "Matz" Matsumoto
9c2fa6239e
Merge pull request #6248 from jbampton/pre-commit-autoupdate
...
pre-commit autoupdate
2024-04-22 09:47:53 +09:00
Yukihiro "Matz" Matsumoto
87b756086f
Merge pull request #6246 from jbampton/fix-spelling
...
Fix typo in `test/t/hash.rb`
2024-04-22 09:47:22 +09:00
Yukihiro "Matz" Matsumoto
5661cf6939
Merge pull request #6245 from jbampton/gha-label-more-files
...
gha: add labels to more files
2024-04-22 09:46:58 +09:00
John Bampton
f9c2ea2f11
Fix grammar in src/vm.c; catched -> caught
...
Saying 'catched' instead of 'caught' is a grammatical error
2024-04-22 00:01:21 +10:00
John Bampton
fef91724cb
pre-commit autoupdate
...
https://pre-commit.com/#pre-commit-autoupdate
2024-04-21 23:21:46 +10:00
John Bampton
7e8ec85f6b
Clean up the .dockerignore file
2024-04-21 22:46:19 +10:00
John Bampton
983a13f342
Fix typo in test/t/hash.rb
2024-04-21 22:21:57 +10:00
John Bampton
b71092d440
gha: add labels to more files
2024-04-21 21:32:03 +10:00
dearblue
5aa20f41ef
Revise scope of role of mrb_vm_run()
...
`mrb_vm_run()` is,
- It does not change the fiber context.
- When control is returned, only one ci prepared by the caller is popped.
If the ci equals cibase when called, the ci position does not change.
related commits:
- commit 4e84bdb507
- commit 34dd258c63
- commit ebd6636a1e
- commit c6736357a7
- commit 23a4e7149d
- commit 31a961acf1
2024-04-21 13:30:24 +09:00
Yukihiro "Matz" Matsumoto
ad476c3684
Merge pull request #6243 from dearblue/base64
2024-04-21 08:25:56 +09:00
dearblue
6c2f570d79
Fixed base64 decoding in mruby-pack
...
Previously `\x80` was incorrectly mapped to `0`.
```ruby
"\x80\x80\x80\x80".unpack("m*")
# before => "\x00\x00\x00"
# after => ""
```
The reason is that the C string terminator is placed in `base64_dec_tab[128]` and the array length is obtained by `sizeof`.
Therefore, the length of `base64_dec_tab[]` is strictly specified and replaced with element-by-element initialization.
Also, similar changes are made to `base64chars[]`.
2024-04-20 09:56:08 +09:00
Yukihiro "Matz" Matsumoto
4a27a18807
dump.c: adjust local variable declarations
2024-04-20 09:54:55 +09:00
Yukihiro "Matz" Matsumoto
c445723fa4
enum.c: adjust local variable declaration
2024-04-19 16:20:36 +09:00
Yukihiro "Matz" Matsumoto
8350106896
etc.c: adjust local variable initializations
2024-04-18 15:49:19 +09:00
Yukihiro "Matz" Matsumoto
ca26f41b57
mruby-sprintf: remove unnecessary assignment
2024-04-18 15:48:45 +09:00
Yukihiro "Matz" Matsumoto
e52b608ed9
Merge pull request #6241 from mruby/dependabot/github_actions/super-linter/super-linter-6.4.0
...
build(deps): bump super-linter/super-linter from 6.3.1 to 6.4.0
2024-04-18 07:53:16 +09:00
dependabot[bot]
e2f7c5daff
build(deps): bump super-linter/super-linter from 6.3.1 to 6.4.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.3.1 to 6.4.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.3.1...v6.4.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-17 14:28:32 +00:00
Yukihiro "Matz" Matsumoto
c01899a8d3
Merge pull request #6235 from leviongit/array/delete
...
fix `Array#delete` always firing the block when deleting `nil`
2024-04-16 07:35:59 +09:00
Yukihiro "Matz" Matsumoto
aec67dcd17
Merge pull request #6237 from dearblue/env-strict
...
Stricter env objects to attach to ci
2024-04-15 13:59:32 +09:00
Yukihiro "Matz" Matsumoto
93c02e96d5
Merge pull request #6238 from dearblue/init-stack
...
Minimize zero initialization of the stack
2024-04-15 13:59:14 +09:00
Yukihiro "Matz" Matsumoto
c183e12d68
Merge pull request #6236 from leviongit/array/filters
...
unify the code for filter methods (and speed up `#reject!`)
2024-04-15 00:05:12 +09:00
Yukihiro "Matz" Matsumoto
bc8b76a7a5
cdump.c: adjust local variable declarations
2024-04-15 00:01:11 +09:00
dearblue
a4b57aa47b
Minimize zero initialization of the stack
2024-04-13 22:22:39 +09:00
dearblue
e3d51497cf
Stricter env objects to attach to ci
...
- Don't create multiple envs on one ci.
- Don't share a env to different ci.
- Don't attach a closed env to any ci.
Changes in `envadjust()` can be simplified with those guarantees.
2024-04-13 22:13:04 +09:00
Yukihiro "Matz" Matsumoto
3174488851
backtrace.c: remove uninitialized local variable declaration
2024-04-13 16:17:47 +09:00
leviongit
81bb520919
unify the code for filter methods (and speed up #reject!)
...
the worst case for `Array#reject!` (i.e. a proc always returning `true`)
is at least 5x worse than the worst case for `Array#select!` (proc
always returning `false`)
this commit unifies these implementations and inlines the (effective)
call of `#select!` in `#keep_if` and `#reject!` in `#delete_if`
2024-04-13 08:53:32 +02:00
leviongit
bb78c2cbc9
reimplement Array#delete with a helper method
2024-04-13 07:41:00 +02:00
leviongit
312d49c59f
reimplement Array#delete in ruby
2024-04-13 07:21:51 +02:00
leviongit
c04afb9e99
revert moving Array#delete to c
2024-04-13 06:52:37 +02:00
leviongit
d46e9a9480
fix shared array mistake
2024-04-12 18:12:51 +02:00
leviongit
14bd875d70
fix Array#delete
...
reimplement `Array#delete` in c, fixing `ary.delete(nil, &blk)` firing the block regardless of removal
minimal reproduction:
```rb
ary = [nil]
ret = ary.delete(nil) { "not deleted?" }
```
2024-04-12 17:30:03 +02:00
Yukihiro "Matz" Matsumoto
f30e8240d2
array.c: adjust local variable declarations
2024-04-12 18:07:51 +09:00
Yukihiro "Matz" Matsumoto
d761561be3
Merge pull request #6233 from dearblue/fiber-end-free
...
Free stack memory at end of fiber
2024-04-11 23:31:54 +09:00
Yukihiro "Matz" Matsumoto
1c021a5c3a
hash.c (obj_eql): simplify the expression
2024-04-11 15:39:45 +09:00
Yukihiro "Matz" Matsumoto
492d8331e1
mruby-io/ext/io.h: reorder struct mrb_io to reduce the size; #6231
...
The `sizeof(struct mrb_io)` is reduced from 32 bytes to 24 bytes on
x86_64-linux.
2024-04-10 13:35:03 +09:00
Yukihiro "Matz" Matsumoto
0ad669eb80
Merge pull request #6231 from Asmod4n/add_close_fd_to_io
...
Add a way to let other gems handle closing of fds in mruby-io
2024-04-10 13:29:20 +09:00
Yukihiro "Matz" Matsumoto
6c4f5a34cc
Revert "object.c (mrb_eql): avoid mrb_funcall_argv() when possible"
...
This reverts commit bc012deef9 .
Ref #6168
2024-04-10 13:28:28 +09:00
dearblue
f3b393272c
Free stack memory at end of fiber
...
Immediately frees the call stack and data stack at the end of a non-root fiber.
If the env object needs to be detached, the data stack is reused through `mrb_realloc()`.
Previously, it was not necessary to take into account that `c->cibase` could be `NULL`.
Note that this is no longer the case due to this patch.
In fact, changes to "mruby-fiber" are now required.
2024-04-09 21:13:32 +09:00
Yukihiro "Matz" Matsumoto
7403cb57ac
AUTHORS: update entries [ci skip]
...
From now on, we exclude merge commits (add `--no-merges` option to
`git shortlog` command in the counting script) to count contribution
fairly.
2024-04-09 08:03:50 +09:00
Yukihiro "Matz" Matsumoto
3ce5f3acbc
Merge pull request #6232 from dearblue/free-env
...
Fold the code for freeing `env`
2024-04-08 23:37:24 +09:00
Yukihiro "Matz" Matsumoto
6eeb06795f
Merge pull request #6230 from dearblue/fiber-err-switch
...
Fix status of fiber after switched by exception raised
2024-04-08 23:37:09 +09:00
Yukihiro "Matz" Matsumoto
f3f7df0da0
vm.c: update ci after switching context
...
0614a1 removed too much `ci` updates, as @dearblue pointed out.
2024-04-08 08:38:23 +09:00
Asmod4n
96b5cd757d
Add a way to let other gems handle closing of FDs
2024-04-07 13:46:11 +02:00
dearblue
1a9282914e
Fold the code for freeing env
...
Also, `e->stack = NULL` is not needed.
This is because "use-after-free" can be detected with `MRB_DEBUG` + `MRB_GC_STRESS`.
2024-04-07 20:45:10 +09:00
dearblue
4956584ff1
Fix status of fiber after switched by exception raised
...
The state of a fiber switched due to an exception occurrence was incorrectly set to "Suspended".
```ruby
Fiber.new {
begin
Fiber.new { 0 / 0 }.resume
rescue
p Fiber.current
# before => #<Fiber:0x159f61e43ce0 fiber.rb:1 (suspended by resuming)>
# after => #<Fiber:0x159f61e43ce0 fiber.rb:1 (resumed)>
end
}.resume
```
2024-04-07 20:08:12 +09:00
dearblue
307812ff20
Revert "env referred from top-level callinfo should not be unshared; fix #4019 "
...
This reverts commit 72581696d3 .
The #4012 that may have been the trigger for issue #4019 was later reverted by #4039 due to issue #4021 .
2024-04-06 08:59:51 +09:00
Yukihiro "Matz" Matsumoto
d503d9b113
Merge pull request #6229 from mruby/dependabot/bundler/rake-13.2.1
...
build(deps): bump rake from 13.2.0 to 13.2.1
2024-04-06 08:51:07 +09:00
dependabot[bot]
b174ea5847
build(deps): bump rake from 13.2.0 to 13.2.1
...
Bumps [rake](https://github.com/ruby/rake ) from 13.2.0 to 13.2.1.
- [Release notes](https://github.com/ruby/rake/releases )
- [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc )
- [Commits](https://github.com/ruby/rake/compare/v13.2.0...v13.2.1 )
---
updated-dependencies:
- dependency-name: rake
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-05 14:52:46 +00:00
Yukihiro "Matz" Matsumoto
47642f70cb
Merge pull request #6227 from leviongit/array/shuffle_b
...
fix: `Array#shuffle(!)` result distribution
2024-04-05 08:33:04 +09:00
Yukihiro "Matz" Matsumoto
88792e0d9a
Merge pull request #6226 from mruby/dependabot/github_actions/super-linter/super-linter-6.3.1
...
build(deps): bump super-linter/super-linter from 6.3.0 to 6.3.1
2024-04-05 08:19:12 +09:00
leviongit
ad62d7809e
fix: Array#shuffle(!) result distribution
2024-04-04 20:36:44 +02:00
dependabot[bot]
e610322a47
build(deps): bump super-linter/super-linter from 6.3.0 to 6.3.1
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.3.0...v6.3.1 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-04 14:33:40 +00:00
Yukihiro "Matz" Matsumoto
d3e4450917
Merge pull request #6225 from dearblue/revert-3991
...
Revert "Adjust environment when `mrb_exec_irep` happened."
2024-04-04 08:19:57 +09:00
Yukihiro "Matz" Matsumoto
d8a3406132
Merge pull request #6224 from dearblue/orphan-env
...
`mrb_env_unshare()` to break the link to fiber
2024-04-04 08:19:08 +09:00
Yukihiro "Matz" Matsumoto
c42f4e1d2c
Merge pull request #6191 from leviongit/sym-eql
...
Speed up symbol equality comparison
2024-04-04 07:35:54 +09:00
dearblue
28d31262e5
Revert "Adjust environment when mrb_exec_irep happened."
...
This reverts commit 26e436e247 .
After investigation, it is possible to revert by commit e89cc9b9fa .
The build configuration file used in the investigation is shown below.
```ruby
MRuby::Build.new do |conf|
toolchain :clang
enable_debug
enable_bintest
enable_test
cc.command = "clang18"
linker.command = "clang18"
[cc, cxx].each { |c| c.defines << "MRB_GC_STRESS" }
[cc, cxx, linker].each { |cmd| cmd.flags << %w(-fsanitize=address) }
gem github: "iij/mruby-dir" # rev: "89dceefa1250fb1ae868d4cb52498e9e24293cd1"
gem github: "iij/mruby-env" # rev: "056ae324451ef16a50c7887e117f0ea30921b71b"
gem github: "iij/mruby-errno" # rev: "b4415207ff6ea62360619c89a1cff83259dc4db0"
gem github: "iij/mruby-require" # rev: "f0634d785e5cbb73cd7d118ee36deff499e4181e"
gem github: "iij/mruby-tempfile" # rev: "9b883438547020dae328e34c8a2fe736171cd0ab"
end
```
Since the `rake` command needs to be from the past, we used the Ruby 2.6 version.
2024-04-03 22:04:25 +09:00
dearblue
96d56debc7
mrb_env_unshare() to break the link to fiber
...
Currently `e->cxt` is used exclusively to check for `break` / `return` availability.
In other words, there is no need to maintain a reference to a fiber that has reached its end.
2024-04-03 21:54:53 +09:00
Yukihiro "Matz" Matsumoto
88004e44af
Merge pull request #6223 from mruby/dependabot/bundler/rake-13.2.0
...
build(deps): bump rake from 13.1.0 to 13.2.0
2024-04-03 08:15:45 +09:00
dependabot[bot]
bb7370b59a
build(deps): bump rake from 13.1.0 to 13.2.0
...
Bumps [rake](https://github.com/ruby/rake ) from 13.1.0 to 13.2.0.
- [Release notes](https://github.com/ruby/rake/releases )
- [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc )
- [Commits](https://github.com/ruby/rake/compare/v13.1.0...v13.2.0 )
---
updated-dependencies:
- dependency-name: rake
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-02 14:38:41 +00:00
Yukihiro "Matz" Matsumoto
aa28f48c3b
string.c (search_nonascii): simplify fallback implementation by SWAR
2024-04-02 19:50:13 +09:00
Yukihiro "Matz" Matsumoto
898d1ff11e
proc.h: simplify method macros; ref #6220
...
- MRB_METHOD_CFUNC_P: reduce ternary; use logical-or instead
- MRB_METHOD_CFUNC: assume MRB_METHOD_CFUNC_P check before call
2024-04-01 07:33:28 +09:00
Yukihiro "Matz" Matsumoto
4982999e07
Merge pull request #6221 from dearblue/arrange-each_backtrace
...
Arranging `each_backtrace()`
2024-03-31 21:44:56 +09:00
Yukihiro "Matz" Matsumoto
586ce04cee
Merge pull request #6222 from dearblue/sync-regs
...
Need to synchronize `dbg->regs` after VM call in `mrdb`
2024-03-31 21:41:16 +09:00
Yukihiro "Matz" Matsumoto
423026353d
Merge pull request #6220 from dearblue/methodcache
...
Reorganize `mrb_cache_entry` and `mrb_method_t` types
2024-03-31 21:36:19 +09:00
dearblue
8dfebe8d12
Need to synchronize dbg->regs after VM call in mrdb
...
VM inrush could invalidate addresses stored in `dbg->regs` by `stack_extend()`.
2024-03-31 11:53:09 +09:00
dearblue
9b8b864be1
Arranging each_backtrace()
...
Highlights are:
- `Integrate the blocks `if (!ci->proc || MRB_PROC_CFUNC_P(ci->proc))` and `if (loc.irep == NULL)`.
- Folding some other conditionals.
- Assertions ensure that procs are not aliases.
2024-03-31 09:53:16 +09:00
Yukihiro "Matz" Matsumoto
2fbd49903b
LEGAL: update memsearch_swar description
2024-03-30 23:06:03 +09:00
Yukihiro "Matz" Matsumoto
cbb31e6a7c
string.c (mrb_utf8_strlen): use SWAR technique for performance
2024-03-30 22:50:12 +09:00
dearblue
328eb71e52
Reorganize mrb_cache_entry and mrb_method_t types
...
The purpose is to remove the `mid` field from the `mrb_cache_entry` structure.
The resulting RAM requirement for the method cache is reduced from 5 words per entry to 4 words per entry for 32-bit CPUs.
The relevant changes are as follows:
- Removed `MRB_USE_METHOD_T_STRUCT`.
The `mrb_method_t` type is now always defined as a structure.
- Include method IDs in `mrb_method_t`
Change the `flags` member to `uint32_t`.
The bitstring structure should be the same as the keys of the `mt` table in `class.c`.
I believe the impact on API compatibility with previous versions is minimal.
2024-03-30 18:19:26 +09:00
Yukihiro "Matz" Matsumoto
61b1a4db8e
Merge pull request #6219 from dearblue/fixed-to-out
...
Avoid assigning a fixed value in the loop
2024-03-29 23:55:05 +09:00
Yukihiro "Matz" Matsumoto
27061e4d58
Merge pull request #6216 from dearblue/shared-class-iv
...
Shared empty `iv_tbl` of module
2024-03-29 23:12:32 +09:00
dearblue
3d91ae28f5
Avoid assigning a fixed value in the loop
2024-03-29 22:26:46 +09:00
Yukihiro "Matz" Matsumoto
f0614a1e0c
vm.c: remove unnecessary update of ci local variable
2024-03-29 21:22:37 +09:00
Yukihiro "Matz" Matsumoto
f54ff74f9b
vm.c: add volatile to a variable across setjmp/longjmp
2024-03-29 21:22:37 +09:00
Yukihiro "Matz" Matsumoto
c54bf673a9
vm.c: remove unused initializations
2024-03-29 21:22:36 +09:00
Yukihiro "Matz" Matsumoto
5b133e42cc
Merge pull request #6217 from dearblue/mrb_istruct_size
...
Strict declaration for `mrb_istruct_size()`
2024-03-28 15:29:25 +09:00
dearblue
1c1c67b878
Strict declaration for mrb_istruct_size()
...
In C, `void` is required if there are no parameters.
2024-03-27 22:01:18 +09:00
dearblue
f1c0752ab8
Shared empty iv_tbl of module
...
This will be a partial merge of #5317 with the following changes.
- Remove `iclass->iv_c` since `iclass->iv_c` is equivalent to `iclass->c`.
- `class_iv_ptr()` returns a single pointer instead of a double pointer.
2024-03-27 21:39:32 +09:00
Yukihiro "Matz" Matsumoto
ef94bfc2e6
proc.c (closure_setup): fix NULL check logic
...
It used to check ci to be non NULL in line 37, but we silently assumed
ci was not NULL in the `else` clause too. So instead of checking NULL,
we add assertion. This incomplete check was found by clang-tidy.
2024-03-26 14:00:00 +09:00
Yukihiro "Matz" Matsumoto
b42b8480d1
vm.c: adjust spacing
2024-03-26 14:00:00 +09:00
Yukihiro "Matz" Matsumoto
a97c27358e
class.c (prepare_name_common): remove unnecessary pointer update
2024-03-26 14:00:00 +09:00
Yukihiro "Matz" Matsumoto
07f9f9b4be
gc.c (mrb_alloca): add const modifier
2024-03-26 13:59:59 +09:00
Yukihiro "Matz" Matsumoto
87b358a342
Including header files in include/* by <>
2024-03-26 13:59:59 +09:00
Yukihiro "Matz" Matsumoto
0786b24528
proc.h: stop including khash.h which is no longer used
...
Instead, we need to include <string.h> explicitly.
2024-03-26 13:59:59 +09:00
Yukihiro "Matz" Matsumoto
81e8617d02
mruby-metaprog: explicitly include khash.h which was included from proc.h
2024-03-26 13:59:59 +09:00
Yukihiro "Matz" Matsumoto
a8977f713d
class.c,variable.c: use mrb_int_hash_func instead of kh_ version
2024-03-26 13:59:59 +09:00
Yukihiro "Matz" Matsumoto
96fa3461f0
mruby.h: move integer hash function from khash.h
2024-03-26 13:59:58 +09:00
Yukihiro "Matz" Matsumoto
3ccc98fa32
Merge pull request #6215 from mruby/dependabot/bundler/rake-13.1.0
...
build(deps): bump rake from 13.0.6 to 13.1.0
2024-03-26 12:05:29 +09:00
dependabot[bot]
86155d8ab4
build(deps): bump rake from 13.0.6 to 13.1.0
...
Bumps [rake](https://github.com/ruby/rake ) from 13.0.6 to 13.1.0.
- [Release notes](https://github.com/ruby/rake/releases )
- [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc )
- [Commits](https://github.com/ruby/rake/compare/v13.0.6...v13.1.0 )
---
updated-dependencies:
- dependency-name: rake
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-26 02:12:45 +00:00
Yukihiro "Matz" Matsumoto
a7aa7a8772
Merge pull request #6205 from jbampton/gha-label-more-files
...
GitHub labeler: label more files
2024-03-26 11:12:40 +09:00
Yukihiro "Matz" Matsumoto
24c60895cd
Merge pull request #6214 from jbampton/add-more-comments
...
Improve the `pre-commit` and `.github` YAML files
2024-03-26 11:12:06 +09:00
Yukihiro "Matz" Matsumoto
4cdbddb3b0
Merge pull request #6213 from jbampton/add-pre-commit-hook-destroyed-symlinks
...
Add `pre-commit` hook `destroyed-symlinks`
2024-03-26 11:11:06 +09:00
John Bampton
e26d33caf5
GitHub labeler: label more files
...
These are some of the config files for the linters/tests that run
2024-03-24 04:36:09 +10:00
John Bampton
cc6d25dc29
Improve the pre-commit and .github YAML files
2024-03-23 22:46:19 +10:00
John Bampton
2e9f79409a
Add pre-commit hook destroyed-symlinks
...
https://github.com/pre-commit/pre-commit-hooks?tab=readme-ov-file#destroyed-symlinks
Another check or test we can have
2024-03-23 20:46:11 +10:00
Yukihiro "Matz" Matsumoto
a810b9bca8
mruby-compiler/codegen.c: stop too aggressive optimization; fix #6210
...
The old code assumes unary minus (`-@`) does not cause any side effect
(including errors). Considering the code like `-nil; nil`, the
assumption was too aggressive.
2024-03-19 13:38:05 +09:00
Yukihiro "Matz" Matsumoto
7404fab8fb
Merge pull request #6211 from jbampton/clean-up-git-ignore
...
Minor `.gitignore` clean up; order entries
2024-03-19 13:13:38 +09:00
John Bampton
0541713b6b
Minor .gitignore clean up; order entries
2024-03-19 12:51:37 +10:00
Yukihiro "Matz" Matsumoto
07fd080321
Merge pull request #6208 from jbampton/clean-up-the-pre-commit-config
...
Clean up the `pre-commit` config
2024-03-18 14:57:32 +09:00
Yukihiro "Matz" Matsumoto
35cf1abd4e
Merge pull request #6209 from jbampton/clean-up-gitignore
...
Minor `.gitignore` clean up
2024-03-17 23:57:33 +09:00
John Bampton
7ac2773a84
Minor .gitignore clean up
2024-03-16 20:40:49 +10:00
John Bampton
f18d8888ba
Clean up the pre-commit config
...
Removal of unneeded files / file types
Clean up the repo root folder by moving `codespell.txt`
2024-03-16 20:03:21 +10:00
Yukihiro "Matz" Matsumoto
4da5d025d3
Merge pull request #6206 from dearblue/table-expansion
...
Simplify expansion of mt and iv a bit
2024-03-16 08:17:42 +09:00
Yukihiro "Matz" Matsumoto
eb57432d03
Bump yard from 0.9.28 to 0.9.36
2024-03-15 23:52:00 +09:00
Yukihiro "Matz" Matsumoto
53c38db2fc
Merge pull request #6200 from jbampton/super-linter-validate-dockerfile
...
super-linter: validate the `Dockerfile` with `hadolint`
2024-03-15 23:38:22 +09:00
Yukihiro "Matz" Matsumoto
b913824d47
range.c (mrb_gc_mark_range): return size
...
If not initialized, size is zero, otherwise two.
2024-03-15 23:36:30 +09:00
dearblue
227ebb9daa
Simplify expansion of mt and iv a bit
2024-03-14 22:12:35 +09:00
Yukihiro "Matz" Matsumoto
f13daee2f5
class.c (mrb_gc_mark_mt_size) unify with mrb_gc_mark_mt
2024-03-14 11:58:00 +09:00
Yukihiro "Matz" Matsumoto
2cb3f1d9e5
hash.c (mrb_gc_mark_hash_size): unify with mrb_gc_mark_hash
2024-03-14 11:52:25 +09:00
Yukihiro "Matz" Matsumoto
63900814b9
variable.c (mrb_gc_mark_iv_size): unify the function with mrb_gc_mark_iv
2024-03-14 11:49:47 +09:00
Yukihiro "Matz" Matsumoto
e8525df576
gc.c (gc_gray_counts): unify the function with gc_mark_children
...
Avoid traversing object repeatedly.
2024-03-14 11:44:06 +09:00
Yukihiro "Matz" Matsumoto
2b597c596c
Merge pull request #6180 from jbampton/super-linter-validate-github-actions
...
super-linter: set `VALIDATE_GITHUB_ACTIONS` to `true`
2024-03-13 10:14:49 +09:00
John Bampton
107b6f7d30
super-linter: set VALIDATE_GITHUB_ACTIONS to true
...
Flag to enable the linting process of the GitHub Actions.
Another check or test we can have.
https://github.com/super-linter/super-linter?tab=readme-ov-file#configure-super-linter
Lint shell script. Tested with ShellCheck
https://www.shellcheck.net/
2024-03-13 10:37:40 +10:00
Yukihiro "Matz" Matsumoto
9bbefd3979
Merge pull request #6204 from jbampton/editorconfig-clean-up
...
Clean up the `.editorconfig` file
2024-03-13 09:08:59 +09:00
Yukihiro "Matz" Matsumoto
31d85c20db
Merge pull request #6202 from jbampton/clean-yardoc-folder
...
Remove the `.yardoc` folder with `rake doc:clean:api`
2024-03-13 09:08:07 +09:00
Yukihiro "Matz" Matsumoto
ea7c067bd0
Merge pull request #6201 from jbampton/standardize-rake-doc-error-message
...
tasks/doc.rake: standardize the `rake doc` error messages
2024-03-13 09:07:24 +09:00
Yukihiro "Matz" Matsumoto
aa247d3e14
Merge pull request #6199 from jbampton/configure-pre-commit
...
pre-commit: fix the arguments syntax
2024-03-13 09:06:17 +09:00
Yukihiro "Matz" Matsumoto
faf76b6b7f
Merge pull request #6198 from mruby/dependabot/github_actions/softprops/action-gh-release-2
...
build(deps): bump softprops/action-gh-release from 1 to 2
2024-03-12 08:22:37 +09:00
Yukihiro "Matz" Matsumoto
168eb8c267
readint.c (mrb_read_int): narrow scope of a local variable
2024-03-12 08:21:27 +09:00
John Bampton
774ee3c760
Clean up the .editorconfig file
2024-03-12 08:41:33 +10:00
John Bampton
5895e8ebeb
Remove the .yardoc folder with rake doc:clean:api
2024-03-12 06:43:35 +10:00
John Bampton
d2206cd359
tasks/doc.rake: standardize the rake doc error messages
2024-03-12 05:30:54 +10:00
John Bampton
e266ea760f
super-linter: validate the Dockerfile with hadolint
...
https://github.com/super-linter/super-linter?tab=readme-ov-file#configure-super-linter
https://github.com/hadolint/hadolint
https://github.com/hadolint/hadolint?tab=readme-ov-file#configure
https://github.com/hadolint/hadolint/wiki/DL3042
2024-03-12 04:40:27 +10:00
John Bampton
3b3f8b1196
pre-commit: fix the arguments syntax
...
https://github.com/igorshubovych/markdownlint-cli?tab=readme-ov-file#use-with-pre-commit
https://yamllint.readthedocs.io/en/stable/integration.html#integration-with-pre-commit
2024-03-12 01:55:21 +10:00
dependabot[bot]
c56e61ebbd
build(deps): bump softprops/action-gh-release from 1 to 2
...
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release ) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases )
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md )
- [Commits](https://github.com/softprops/action-gh-release/compare/v1...v2 )
---
updated-dependencies:
- dependency-name: softprops/action-gh-release
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-11 14:43:56 +00:00
Yukihiro "Matz" Matsumoto
db8368fa86
numeric.c: remove bit operations methods from Float class; #6197
...
mruby used to use float numbers for overflown integers before we
implemented big integers. Now we don't need bit operations for float
numbers anymore. Also removed tests for shift operations for float
numbers.
2024-03-11 11:44:41 +09:00
Yukihiro "Matz" Matsumoto
39e3db20af
Merge pull request #6197 from niyarin/fix/call-flo_xor
...
Fix int_xor to call flo_xor.
2024-03-11 11:44:17 +09:00
Yukihiro "Matz" Matsumoto
95765c8193
mruby-time: mrb_time_at is an API function; close #6195
...
5265e35 was wrong. Should not remove `mrb_` prefix from the function.
2024-03-11 09:48:32 +09:00
niyarin
af8e772b9e
Fix int_xor to call flo_xor.
2024-03-10 12:13:34 +09:00
leviongit
deb133c8ef
use a type-check macro instead of mrb_type comparison
2024-03-09 13:56:21 +01:00
leviongit
d1b3198109
remove redundant function definition
2024-03-09 13:41:58 +01:00
Yukihiro "Matz" Matsumoto
44edd3438b
gc.c: remove unused local variable; ref #6194
2024-03-09 14:29:42 +09:00
Yukihiro "Matz" Matsumoto
4b312bdb2f
debug.c: narrow scope of local variables
2024-03-09 14:29:42 +09:00
Yukihiro "Matz" Matsumoto
678bdd2c4b
cdump.c (sym_operator_name): narrow scope of local variables
2024-03-09 14:29:42 +09:00
Yukihiro "Matz" Matsumoto
3699f013ac
Merge pull request #6193 from dearblue/c-epilogue-assert
...
Fix wrong assertion in `OP_SENDB`.
2024-03-09 13:23:33 +09:00
Yukihiro "Matz" Matsumoto
f1f022bd1a
Merge pull request #6194 from dearblue/count-closures
...
Simplify the calculation of the number of closures in `MRB_TT_FIBER`
2024-03-09 13:22:47 +09:00
Yukihiro "Matz" Matsumoto
6c73defb26
Merge pull request #6192 from dearblue/OP_STOP
...
Fix `OP_STOP` with exception
2024-03-09 13:21:13 +09:00
dearblue
cb36398d30
Simplify the calculation of the number of closures in MRB_TT_FIBER
2024-03-08 22:06:08 +09:00
dearblue
9616971c70
Fix wrong assertion in OP_SENDB.
...
Assertions were failing on exit if started with `mrb_fiber_resume()`.
The bug that caused it was introduced by commit 42308c42b5 (#6106 ).
The bug was moved by commit 990e18ad59 .
2024-03-08 21:56:00 +09:00
dearblue
4380773666
Fix OP_STOP with exception
...
Previously, `mrb->exc` would remain replaced by a `break` object if a rewind operation was performed during the processing of a `OP_STOP` instruction.
This problem has existed since #5060 , when it was introduced in mruby-3.0.
However, as of mruby-3.0, a manual or third-party generator is required to cause the `OP_STOP` instruction to be issued.
Therefore, it is believed that this has not had an impact until now.
2024-03-08 21:50:46 +09:00
leviongit
af06d54843
Speed up symbol equality comparison
2024-03-07 16:22:35 +01:00
Yukihiro "Matz" Matsumoto
9257a61b39
Merge pull request #6137 from dearblue/fiber-unreachable
...
Remove unreachable blocks in `OP_RETURN`
2024-03-07 16:13:56 +09:00
Yukihiro "Matz" Matsumoto
a8694bdefb
Merge pull request #6184 from dearblue/L_STOP
...
Remove the `L_STOP` label
2024-03-06 18:02:34 +09:00
Yukihiro "Matz" Matsumoto
01373a9db0
Merge pull request #6188 from mruby/dependabot/github_actions/super-linter/super-linter-6.3.0
...
build(deps): bump super-linter/super-linter from 6.2.0 to 6.3.0
2024-03-06 18:01:05 +09:00
Yukihiro "Matz" Matsumoto
130ec9cd90
backtrace.c (mrb_unpack_backtrace): need no NULL check
2024-03-05 12:24:49 +09:00
Yukihiro "Matz" Matsumoto
0ca4ab886f
AUTHORS: update entries [ci skip]
2024-03-04 13:01:21 +09:00
Yukihiro "Matz" Matsumoto
439a895f46
symbol.c: use post increment if possible (just style matter)
2024-03-04 13:01:21 +09:00
Yukihiro "Matz" Matsumoto
d840274805
symbol.c: narrow scope of local variables
2024-03-04 13:01:20 +09:00
Yukihiro "Matz" Matsumoto
aa0cb370a8
kernel.c (mrb_obj_is_instance_of): add const qualifier
2024-03-04 13:01:20 +09:00
Yukihiro "Matz" Matsumoto
b023017a0d
Merge pull request #6190 from jbampton/label-more-files
...
Pull Request Labeler: Add labels to more files
2024-03-04 13:01:04 +09:00
Yukihiro "Matz" Matsumoto
861bf778b5
Merge pull request #6189 from jbampton/pre-commit-autoupdate
...
pre-commit autoupdate
2024-03-04 12:59:42 +09:00
John Bampton
6dd3f27634
Pull Request Labeler: Add labels to more files
2024-03-02 13:51:09 +10:00
John Bampton
fc13411c61
pre-commit autoupdate
...
https://pre-commit.com/#pre-commit-autoupdate
2024-03-02 13:37:00 +10:00
dependabot[bot]
7864112f96
build(deps): bump super-linter/super-linter from 6.2.0 to 6.3.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.2.0...v6.3.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-02-29 14:35:04 +00:00
Yukihiro "Matz" Matsumoto
b0d11ddb4e
error.c (mrb_sys_fail): narrow scope of local variables
2024-02-29 19:14:19 +09:00
Yukihiro "Matz" Matsumoto
a0d10c0384
pool.c (mrb_pool_close): narrow scope of a local variable
2024-02-29 19:14:19 +09:00
Yukihiro "Matz" Matsumoto
371b13a32e
dump.c: inline loop variables (with small refactoring)
2024-02-29 19:14:18 +09:00
Yukihiro "Matz" Matsumoto
099d01c751
class.c (mrb_mod_module_function): narrow scope of local variables
2024-02-29 19:14:18 +09:00
Yukihiro "Matz" Matsumoto
11d7c74e50
Merge pull request #6185 from dearblue/keep_context
...
Added `mrb_callinfo::u.keep_context` for clarity
2024-02-29 19:13:59 +09:00
Yukihiro "Matz" Matsumoto
0673563968
Merge pull request #6186 from dearblue/check-env.cxt
...
Omit NULL check of `e->cxt` in `OP_RETURN_BLK`
2024-02-25 23:46:16 +09:00
Yukihiro "Matz" Matsumoto
ab94f6533d
Revert "gha: add macOS 14 to the build"
...
This reverts commit 9b9cbd77b0 .
2024-02-24 23:31:28 +09:00
Yukihiro "Matz" Matsumoto
8130bbc479
string.c (mrb_str_len_to_dbl): should return zero for invalid string
...
We should not use uninitialized value; fix #6183
2024-02-24 23:03:15 +09:00
dearblue
e94eef6f98
Omit NULL check of e->cxt in OP_RETURN_BLK
...
Since `mrb->c` is never `NULL`, there is no need to check it beforehand.
2024-02-24 21:38:51 +09:00
dearblue
ce8b2d4973
Added mrb_callinfo::u.keep_context for clarity
2024-02-24 21:32:11 +09:00
dearblue
c7af3d48e3
Remove the L_STOP label
...
The post-processing of the jump source is decided, and it is more natural to deploy it on the spot.
2024-02-24 18:23:33 +09:00
Yukihiro "Matz" Matsumoto
6248e9c2ef
Merge pull request #6155 from dearblue/jmpbuf_id
...
Removed `mrb_jmpbuf_id` for C++ exceptions
2024-02-23 23:51:45 +09:00
Yukihiro "Matz" Matsumoto
72f956d3e0
readfloat.c: remove unused local variable
2024-02-22 10:40:24 +09:00
Yukihiro "Matz" Matsumoto
643d91d566
Merge pull request #6181 from mruby/dependabot/github_actions/super-linter/super-linter-6.2.0
...
build(deps): bump super-linter/super-linter from 6.1.1 to 6.2.0
2024-02-22 10:32:22 +09:00
dependabot[bot]
d4eb58c824
build(deps): bump super-linter/super-linter from 6.1.1 to 6.2.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.1.1 to 6.2.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.1.1...v6.2.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-02-21 14:50:07 +00:00
Yukihiro "Matz" Matsumoto
49f8c9be5b
Merge pull request #6177 from jbampton/test-on-macOS14
...
gha: add macOS 14 to the build
2024-02-20 12:16:47 +09:00
Yukihiro "Matz" Matsumoto
88c7e14d24
Merge pull request #6179 from jbampton/link-check-ignore-links
...
pre-commit: add `markdown-link-check` config and ignore links
2024-02-20 12:15:51 +09:00
Yukihiro "Matz" Matsumoto
dde8b37331
Merge pull request #6178 from jbampton/super-linter-validate-gitleaks
...
super-linter: set `VALIDATE_GITLEAKS` to `true`
2024-02-20 12:15:13 +09:00
John Bampton
8772592fa2
pre-commit: add markdown-link-check config and ignore links
...
https://github.com/tcort/markdown-link-check?tab=readme-ov-file#config-file-format
2024-02-20 12:28:16 +10:00
John Bampton
ae8419dba7
super-linter: set VALIDATE_GITLEAKS to true
...
Flag to enable the linting process of the secrets.
Just another check or test we can have.
Set VALIDATE_ALL_CODEBASE: true
https://github.com/super-linter/super-linter?tab=readme-ov-file#configure-super-linter
2024-02-20 12:11:19 +10:00
John Bampton
6f8ae1cbb3
Update .github/workflows/build.yml
2024-02-20 11:07:47 +10:00
John Bampton
9b9cbd77b0
gha: add macOS 14 to the build
...
https://github.com/actions/runner-images?tab=readme-ov-file#available-images
2024-02-20 10:58:00 +10:00
Yukihiro "Matz" Matsumoto
2f77f2b525
Merge pull request #6133 from dearblue/auto-release
...
Create source code packages by adding release tags
2024-02-19 22:20:43 +09:00
Yukihiro "Matz" Matsumoto
9e9545b1a6
Merge pull request #6176 from dearblue/alias-proc
...
Stop assuming alias proc in `CI_PROC_SET()`
2024-02-18 22:13:30 +09:00
Yukihiro "Matz" Matsumoto
1bb93e74a0
Merge pull request #6175 from dearblue/mrb_vm_run-cond
...
Corrected strange conditional in `mrb_vm_run()`
2024-02-18 22:11:45 +09:00
dearblue
f5cce68ba6
Stop assuming alias proc in CI_PROC_SET()
...
Resolving alias proc should be done by the caller of `CI_PROC_SET()`.
The same applies to `mrb_vm_ci_proc_set()`.
2024-02-18 21:09:45 +09:00
dearblue
2c66d34a7e
Corrected strange conditional in mrb_vm_run()
...
This was introduced in commit 365c151df0 .
I should have checked env first.
2024-02-18 18:18:21 +09:00
Yukihiro "Matz" Matsumoto
10de08fa4e
Merge pull request #6174 from dearblue/mruby-config-dir
...
Fix `MRUBY_PACKAGE_DIR` in `mruby-config.bat`
2024-02-17 23:21:01 +09:00
dearblue
06e791e1d7
Fix MRUBY_PACKAGE_DIR in mruby-config.bat
...
Previously, the correct directory could not be obtained in some environments.
Therefore, changed the method to leave an element indicating the parent directory.
fix #6156
2024-02-17 11:14:57 +09:00
Yukihiro "Matz" Matsumoto
4855e50cbe
Merge pull request #6172 from mruby/dependabot/github_actions/super-linter/super-linter-6.1.1
...
build(deps): bump super-linter/super-linter from 6.0.0 to 6.1.1
2024-02-16 08:14:18 +09:00
Yukihiro "Matz" Matsumoto
7d199b7256
src/error.h: remove unused header
2024-02-16 08:10:53 +09:00
Yukihiro "Matz" Matsumoto
a1be05e79f
src/opcode.h: remove unused header
2024-02-16 08:09:58 +09:00
dependabot[bot]
aebc951533
build(deps): bump super-linter/super-linter from 6.0.0 to 6.1.1
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 6.0.0 to 6.1.1.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v6.0.0...v6.1.1 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-02-15 14:43:54 +00:00
Yukihiro "Matz" Matsumoto
c37e76ec75
Merge pull request #6171 from buty4649/add-enumrable-lazy-grep_v
...
Add Enumerable::Lazy#grep_v to mruby-enum-lazy
2024-02-15 15:49:30 +09:00
buty4649
031476a853
mruby-enum-lazy: add grep_v method
2024-02-15 14:55:38 +09:00
Yukihiro "Matz" Matsumoto
3eeeb8fabf
string.c (memsearch_swar): skip a local variable
2024-02-15 14:01:49 +09:00
Yukihiro "Matz" Matsumoto
55ca34c31b
backtrace.c (mrb_print_backtrace): skip a local variable
2024-02-15 14:01:48 +09:00
Yukihiro "Matz" Matsumoto
c3f8227c6d
mruby.h: adjust comment offset [ci skip]
2024-02-15 14:01:48 +09:00
Yukihiro "Matz" Matsumoto
9e1ed100ce
Merge pull request #6169 from mruby/stable
...
Merge mruby 3.3.0
2024-02-15 14:01:28 +09:00
mimaki
94062b4356
Merge branch 'master' into stable
2024-02-14 19:01:59 +09:00
mimaki
32279e4128
Update version and release date. (mruby 3.3.0 (2024-02-14))
2024-02-14 13:25:11 +09:00
Yukihiro "Matz" Matsumoto
06466fd2e0
Merge branch 'dearblue-doc/mruby3.3.md'
2024-02-14 09:29:54 +09:00
Yukihiro "Matz" Matsumoto
9c840a68e2
string.c (memsearch_swar): boundary check by the latest position
2024-02-13 22:36:03 +09:00
Yukihiro "Matz" Matsumoto
6810423da1
backtrace.c (mrb_print_backtrace): avoid backtrace to array conversion
...
Made print_backtrace() to support both array form and packed backtrace
form, so that we can avoid allocating an array.
2024-02-13 16:18:14 +09:00
Yukihiro "Matz" Matsumoto
441de05376
error.h: use RBasic instead of RObject for generic objects
...
RObject is type for objects with instance variables. For generic
objects, use RBasic.
2024-02-13 11:05:27 +09:00
Yukihiro "Matz" Matsumoto
f285420653
backtrace.c (decode_location): decode packed backtrace location on demand.
2024-02-13 00:07:54 +09:00
Yukihiro "Matz" Matsumoto
a3da9c1da3
AUTHORS: update entries [ci skip]
2024-02-12 00:02:35 +09:00
Yukihiro "Matz" Matsumoto
d2af9da799
Merge branch 'dearblue-doc/mruby3.3.md'
2024-02-10 17:08:57 +09:00
Yukihiro "Matz" Matsumoto
01ff7fbf0a
Update mruby3.3.md
2024-02-10 17:05:55 +09:00
Yukihiro "Matz" Matsumoto
2d2693d823
Merge branch 'doc/mruby3.3.md' of https://github.com/dearblue/mruby into dearblue-doc/mruby3.3.md
2024-02-10 16:49:56 +09:00
Yukihiro "Matz" Matsumoto
abcad36bae
string.c (memsearch_swar): fixed a buffer overflow
2024-02-09 19:09:01 +09:00
Yukihiro "Matz" Matsumoto
868aeaf48c
string.c (memsearch_swar): fixed a buffer overflow
2024-02-09 18:52:44 +09:00
Yukihiro "Matz" Matsumoto
874f1e0138
backtrace.c (copy_location): rename some function and arguments
2024-02-08 23:41:22 +09:00
Yukihiro "Matz" Matsumoto
432caf0670
backtrace.c (pack_backtrace): refactor the function that called once
2024-02-08 23:22:48 +09:00
Yukihiro "Matz" Matsumoto
60919807e5
backtrace.c (each_backtrace): make return type to size_t
2024-02-07 17:34:33 +09:00
Yukihiro "Matz" Matsumoto
0a11215452
backtrace.c (packed_backtrace): avoid calling each_backtrace() twice
...
Since the length of the backtrace is at most `ciidx + 1` we can avoid
the first call of each_backtrace().
2024-02-07 17:32:58 +09:00
Yukihiro "Matz" Matsumoto
b67cea4442
backtrace.c (pack_backtrace_i): avoid infinite loop; ref #6161
...
When irep->refcnt reaches UINT16_MAX, mrb_irep_incref() raises
exception but the function pack_backtrace_i() is called from
mrb_exc_raise() thus causes the infinite loop problem. So this is a
hack-ish workaround by making irep reference to NULL if refcnt reaches
the maximum count. Probably we will address this issue again to make it
better.
2024-02-07 17:30:11 +09:00
Yukihiro "Matz" Matsumoto
b8e4c4b6ba
Merge pull request #6166 from dearblue/mrb_heap_page
...
Stop pseudo flexible array in `mrb_heap_page`
2024-02-05 21:45:04 +09:00
Yukihiro "Matz" Matsumoto
32fb0c04ee
Merge pull request #6165 from dearblue/RVALUE
...
Reduce `RVALUE` related pointer casts.
2024-02-05 21:42:51 +09:00
Yukihiro "Matz" Matsumoto
5f699e797d
Merge pull request #6167 from dearblue/obj_free
...
Change the `end` parameter of `obj_free()` to a boolean type
2024-02-05 21:42:41 +09:00
Yukihiro "Matz" Matsumoto
0fe95d6c81
mruby-pack (mrb_pack_pack): avoid integer overflow
...
`int` (32bit integer) may be too small on 64bit platforms.
2024-02-05 21:28:11 +09:00
dearblue
8f14785f10
Stop pseudo flexible array in mrb_heap_page
...
For reference, the flexible array was introduced by commit 3ab2f9371e (#2997 ).
Subsequently changed for compatibility with C++ by commit 24939723d7 (#5596 ).
2024-02-04 21:55:54 +09:00
dearblue
84fbe63457
Change the end parameter of obj_free() to a boolean type
...
The caller is a boolean value from the first.
2024-02-04 21:55:54 +09:00
dearblue
dde5fe3a60
Reduce RVALUE related pointer casts.
2024-02-04 21:55:53 +09:00
Yukihiro "Matz" Matsumoto
f04a729dc9
gc.c (obj_free): check if irep is NULL before mrb_irep_decref(); #6161
2024-02-04 17:06:05 +09:00
Yukihiro "Matz" Matsumoto
2f63b49542
backtrace.c: use mrb_irep references instead of struct RProc
...
To reduce GC burden (no mark needed). We use `mrb_irep_incref()` and
`mrb_irep_decref()` instead to track irep memory usage; ref #6161
2024-02-04 16:48:42 +09:00
Yukihiro "Matz" Matsumoto
4dfadb4f9f
Merge pull request #6159 from dearblue/debug/irep-free
...
Allow to detect use-after-free after `mrb_irep_free()` for debugging
2024-02-04 16:26:03 +09:00
Yukihiro "Matz" Matsumoto
0abc36f761
Merge pull request #6161 from dearblue/backtrace
...
Fixed use-after-free by backtrace object
2024-02-03 23:39:58 +09:00
Yukihiro "Matz" Matsumoto
9524d8e199
Merge pull request #6164 from jbampton/remove-ERROR_ON_MISSING_EXEC_BIT
...
super-linter: remove `ERROR_ON_MISSING_EXEC_BIT` check
2024-02-03 00:25:35 +09:00
John Bampton
8e04e76325
super-linter: remove ERROR_ON_MISSING_EXEC_BIT check
...
https://github.com/super-linter/super-linter/releases/tag/v6.0.0
https://github.com/super-linter/super-linter/pull/5120
2024-02-02 15:51:18 +10:00
Yukihiro "Matz" Matsumoto
08c422c7ee
numeric.c (cmpnum): support fixnum cmp bignum; fix #6163
2024-02-02 14:18:57 +09:00
Yukihiro "Matz" Matsumoto
4762689f93
Merge pull request #6153 from dearblue/gem-list
...
Make `MRuby::Gems::List#{each,<<}` method return `self`
2024-02-02 08:19:44 +09:00
Yukihiro "Matz" Matsumoto
fd04ffc2f6
Merge pull request #6144 from jbampton/add-hook-detect-aws-credentials
...
pre-commit: add hook `detect-aws-credentials`
2024-02-02 08:15:38 +09:00
Yukihiro "Matz" Matsumoto
6e09555749
Merge pull request #6150 from dearblue/itself
...
Introduce `mrb_obj_itself()`
2024-02-01 16:15:42 +09:00
Yukihiro "Matz" Matsumoto
24aad706e1
Merge pull request #6162 from mruby/dependabot/github_actions/super-linter/super-linter-6.0.0
...
build(deps): bump super-linter/super-linter from 5.7.2 to 6.0.0
2024-02-01 16:02:45 +09:00
dependabot[bot]
a0bcf63bd5
build(deps): bump super-linter/super-linter from 5.7.2 to 6.0.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.7.2 to 6.0.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/CHANGELOG.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.7.2...v6.0.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-01-31 14:23:26 +00:00
dearblue
9543cfa7ee
Fixed use-after-free by backtrace object
...
The `MRB_TT_BACKTRACE` object has been added for the purpose.
Previously, "use-after-free" could occur because the reference count in `backtrace_location::irep` was not incremented.
fixed #6160
2024-01-31 22:17:16 +09:00
Yukihiro "Matz" Matsumoto
cac698fe88
string.c (memsearch_swar): changed the function name
...
For your information, SWAR stands for SIMD within a register.
2024-01-31 21:37:39 +09:00
Yukihiro "Matz" Matsumoto
f8527f0670
string.c (mrb_memsearch_ss): update a comment regarding alignment issue
2024-01-31 21:36:05 +09:00
Yukihiro "Matz" Matsumoto
d8144aef78
string.c: remove a comment regarding unsigned char*
2024-01-31 21:34:54 +09:00
Yukihiro "Matz" Matsumoto
363f795432
string.c: remove unnecessary type casts
...
We don't need `unsigned` for string pointers.
2024-01-31 15:06:04 +09:00
Yukihiro "Matz" Matsumoto
e61a2881a7
string.c (mrb_memsearch_ss): fix potential buffer overflow; fix #6158
...
- stop using `bigint*`
- stop integer pointer dereferences
- use `memcpy` to integer variables
- add reminder search for shorter patterns
2024-01-31 07:48:24 +09:00
Yukihiro "Matz" Matsumoto
219cfd63e1
string.c (mrb_memsearch_ss): update integer prefixes (LLU -> ULL)
2024-01-31 07:42:52 +09:00
Yukihiro "Matz" Matsumoto
6ba65ea0f0
string.c (mrb_memsearch_ss): update comment
2024-01-31 01:54:37 +09:00
Yukihiro "Matz" Matsumoto
44a5882bc2
string.c (mrb_memsearch_ss): remove useless alignment adjustment
...
Ref #6158
2024-01-31 01:27:10 +09:00
Yukihiro "Matz" Matsumoto
be5448fd16
string.c (mrb_memsearch): refactor m==1 (use memchr) case
2024-01-31 01:17:12 +09:00
Yukihiro "Matz" Matsumoto
d8e1aed646
string.c (search_nonascii): need not to check n>3 on 32bit platforms
2024-01-30 12:35:56 +09:00
dearblue
60dd6b5586
Allow to detect use-after-free after mrb_irep_free() for debugging
...
Write invalid value to `irep` if `MRB_DEBUG` is defined by `MRuby::Build#enable_debug`.
2024-01-29 21:32:04 +09:00
Yukihiro "Matz" Matsumoto
0e1125c3af
Merge pull request #6152 from dearblue/io-error
...
Retrieving the IO exception class with presym
2024-01-27 15:10:29 +09:00
Yukihiro "Matz" Matsumoto
fefebf7a77
Merge pull request #6151 from dearblue/eval-init
...
Refer to `mrb->module_class` directly in `mrb_mruby_eval_gem_init()`
2024-01-27 15:09:30 +09:00
Yukihiro "Matz" Matsumoto
e859b430cc
fixup! string.c (search_nonascii): add faster search using SSE2
2024-01-27 11:59:29 +09:00
Yukihiro "Matz" Matsumoto
dee1ded7b5
string.c (mrb_memsearch_ss): support bigendians
2024-01-27 06:23:16 +09:00
Yukihiro "Matz" Matsumoto
06d9a54760
string.c (mrb_memsearch): remove simple search and quick search
...
Since mrb_memsearch_ss() is fast enough for most of the cases, we try to
simplify the code.
2024-01-27 06:22:55 +09:00
Yukihiro "Matz" Matsumoto
2943ca2685
string.c (mrb_memsearch_ss): faster integer-wise substring search
...
The function is based on @WojciechMula's code from the repository
https://github.com/WojciechMula/sse4-strstr.git Since it's licensed
under 2 clause BSD, we updated LEGAL file too.
2024-01-27 06:16:33 +09:00
Yukihiro "Matz" Matsumoto
08cd281200
string.c (search_nonascii): skip alignment adjustment for some CPUs
...
Some CPUs (e.g. x86) allow unaligned access to the memory.
2024-01-26 08:22:33 +09:00
Yukihiro "Matz" Matsumoto
68ab95ea57
string.c (mrb_memsearch): take char* instead of void*
...
Avoid useless `void*`.
2024-01-25 22:32:31 +09:00
Yukihiro "Matz" Matsumoto
cf0cd6785c
string.c: rename MRB_QS_SHORT_STRING_LENGTH
...
The new name is MRB_SEARCH_SHORT_STRING_LENGTH since it's no longer used
in the mrb_memsearch_qs(). FYI, 'qs' stands for 'quick search'.
2024-01-23 23:28:45 +09:00
Yukihiro "Matz" Matsumoto
fb2ebcde7c
string.c (search_nonascii): add faster search using SSE2
2024-01-23 23:28:45 +09:00
Yukihiro "Matz" Matsumoto
4108b85c62
string.c (search_nonascii): faster search using integer match
...
If you define `SIMPLE_SEARCH_NONASCII`, you can use old, naive
implementation of search_nonascii(). You may want to use the old one for
code size constraint for example.
2024-01-23 23:28:45 +09:00
Yukihiro "Matz" Matsumoto
f41593f55a
Merge pull request #6154 from dearblue/int_to_str
2024-01-23 21:59:14 +09:00
Yukihiro "Matz" Matsumoto
18bdcbe536
Merge pull request #6145 from hoshiumiarata/enum_chunk
...
Enumerable#chunk implementation
2024-01-23 08:58:19 +09:00
星湖新
ab21813100
Move Enumerable#chunk to mruby-enumerator
2024-01-22 18:31:28 +09:00
星湖新
d001974439
Revert "Enumerable#chunk implementation"
...
This reverts commit ebf86a24b0 .
2024-01-22 18:26:01 +09:00
Yukihiro "Matz" Matsumoto
5431575d11
Merge pull request #6148 from buty4649/add-enumerable-grep_v
...
Add Enumerable#grep_v to mruby-enum-ext
2024-01-21 18:51:11 +09:00
dearblue
c112e83b5d
Removed mrb_jmpbuf_id for C++ exceptions
...
Use stack variable addresses as identifiers instead of global variable values.
Since the stack variable address is uniquely determined within the call, there is no need to maintain a global variable.
2024-01-21 13:14:41 +09:00
dearblue
bf2db1ed2b
Check mrb_bigint_p() before mrb_integer()
2024-01-21 10:59:06 +09:00
Yukihiro "Matz" Matsumoto
028c53d667
Merge pull request #6149 from dearblue/rational.new
...
Remove unnecessary `Rational._new` method
2024-01-20 23:28:38 +09:00
Yukihiro "Matz" Matsumoto
888dd230dd
Merge pull request #6147 from dearblue/memsearch
...
Fixed buffer overflow in `mrb_memsearch()`
2024-01-20 23:25:34 +09:00
Yukihiro "Matz" Matsumoto
12483c8393
Merge pull request #6146 from mruby/dependabot/github_actions/actions/cache-4
...
build(deps): bump actions/cache from 3 to 4
2024-01-20 23:24:40 +09:00
dearblue
464ac4581e
Make MRuby::Gems::List#{each,<<} method return self
...
Returning internal objects is undesirable.
2024-01-20 22:49:31 +09:00
dearblue
5caf8e14cf
Retrieving the IO exception class with presym
2024-01-20 22:33:43 +09:00
dearblue
82312467d0
Refer to mrb->module_class directly in mrb_mruby_eval_gem_init()
2024-01-20 22:20:20 +09:00
dearblue
3111990089
Introduce mrb_obj_itself()
...
Some method definitions were changed to use this function.
2024-01-20 22:07:29 +09:00
dearblue
35375257f6
Remove unnecessary Rational._new method
2024-01-20 21:52:49 +09:00
buty4649
97203729a9
Add Enumerable#grep_v to mruby-enum-ext
2024-01-20 11:47:37 +09:00
dearblue
772f13520c
Fixed buffer overflow in mrb_memsearch()
2024-01-20 09:44:47 +09:00
Yukihiro "Matz" Matsumoto
f13101124c
string.c: add cast to remove warnings
2024-01-19 18:24:34 +09:00
Yukihiro "Matz" Matsumoto
69cf074778
string.c (mrb_memsearch): move simple search from mrb_memsearch_qs()
2024-01-19 15:21:43 +09:00
dependabot[bot]
1e9d69f896
build(deps): bump actions/cache from 3 to 4
...
Bumps [actions/cache](https://github.com/actions/cache ) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases )
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md )
- [Commits](https://github.com/actions/cache/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/cache
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-01-18 14:59:43 +00:00
Yukihiro "Matz" Matsumoto
6f0c34e04e
mruby-string-ext: implement String#ascii_only? method
2024-01-18 22:53:46 +09:00
Yukihiro "Matz" Matsumoto
57fd0edaa7
mruby.h: rename ASCII flag to SINGLE_BYTE
...
This flag means all the characters in the string can be represented by a
single byte, i.e., the string does not contain any multi-byte character.
Those characters are likely ASCII characters, but may be a part of broken
UTF-8 sequence, so the term 'ASCII' is not sufficient.
2024-01-18 22:50:39 +09:00
Yukihiro "Matz" Matsumoto
5b76d2cbbe
string.h: RSTR_ASCII_P(s) should always be true for non-UTF8 mode
2024-01-16 17:38:51 +09:00
Yukihiro "Matz" Matsumoto
6c2ed55077
mruby-bin-mruby: remove unused assignments
2024-01-16 12:28:32 +09:00
Yukihiro "Matz" Matsumoto
0e079fe946
mruby-bin-mruby: reduce the scope of a loop variable i
2024-01-15 23:04:18 +09:00
Yukihiro "Matz" Matsumoto
9298dfb927
mruby-bin-mruby: reduce the scope of a local variable c
2024-01-15 23:03:34 +09:00
Yukihiro "Matz" Matsumoto
90fac46751
mruby-bin-mruby: remove unnecessary condition
2024-01-15 23:00:46 +09:00
Yukihiro "Matz" Matsumoto
4f8fd23f7a
mruby-string-ext (str_uminus): remove wrong document
...
In mruby, deduplication of strings is not implemented (yet), so we have
to remove the description from `String#-@` document.
2024-01-13 23:00:13 +09:00
Yukihiro "Matz" Matsumoto
c53d9a33fc
mruby-string-ext (mrb_valid_enc_p): simplify the code
...
By using `mrb_utf8len` directly. If `len == 1` and `ch >= 0x80`, the
character should be an invalid character.
2024-01-13 22:48:16 +09:00
星湖新
ebf86a24b0
Enumerable#chunk implementation
2024-01-13 17:36:02 +09:00
Yukihiro "Matz" Matsumoto
fb8bc1954b
string.c: improve performance of chars2bytes/bytes2chars; ref #6143
2024-01-11 18:23:50 +09:00
Yukihiro "Matz" Matsumoto
f646228dbe
string.c (str_index_str_by_char): simplify using str_index_str()
...
Instead of its own version of quick search, now we use str_index_str()
and adjust character position. This change makes searching 4 times
faster in some cases; ref #6143
2024-01-11 12:23:06 +09:00
Yukihiro "Matz" Matsumoto
e42f3b36f9
string.c (chars2bytes): simplify the condition to detect break
2024-01-11 11:49:49 +09:00
John Bampton
f8f3ff10fa
pre-commit: add hook detect-aws-credentials
...
https://github.com/pre-commit/pre-commit-hooks#detect-aws-credentials
Another check or test we can have.
"--allow-missing-credentials - Allow hook to pass when no credentials are detected."
2024-01-11 03:18:15 +10:00
dearblue
514c926e97
Update the mruby3.3.md file
...
- Remove items changed by mruby 3.2.
- The commit hash or pull request number will be written along with the changes.
- Add some items.
2024-01-10 23:00:10 +09:00
Yukihiro "Matz" Matsumoto
787439455c
string.c: remove the macro BYTES_ALIGN_CHECK which is no longer used
2024-01-10 17:31:04 +09:00
Yukihiro "Matz" Matsumoto
c2f148e15d
string.c (mrb_memsearch_qs): reduce the scope of local variables
2024-01-10 16:21:39 +09:00
Yukihiro "Matz" Matsumoto
31f2d93657
string.c (bytes2chars): skip calling mrb_utf8len() if possible
...
If (ch < 0x80) the length of the character (in bytes) should be 1, so we
don't have to call mrb_utf8len().
2024-01-10 15:36:07 +09:00
Yukihiro "Matz" Matsumoto
4c859e754d
string.c (bytes2chars): skip scanning if the string is ASCII only
2024-01-10 14:40:39 +09:00
Yukihiro "Matz" Matsumoto
df0a5e838d
string.c (chars2bytes): use early return
2024-01-10 12:41:28 +09:00
Yukihiro "Matz" Matsumoto
e39e4ea26d
string.c (chars2bytes): small refactoring
2024-01-10 11:09:47 +09:00
Yukihiro "Matz" Matsumoto
1d243bc58b
string.c (bytes2chars): takes a string object instead of char*
2024-01-10 10:53:26 +09:00
Yukihiro "Matz" Matsumoto
59a1d74937
string.c: inline str_range_to_bytes
2024-01-09 18:22:38 +09:00
Yukihiro "Matz" Matsumoto
9135f0991b
string.c: avoid RSTRING_CHAR_LEN() if possible
...
Current code scan the string twice (once from RSTRING_CHAR_LEN, and once
from chars2bytes), but those scans are not necessary. Just point the end
of the string.
2024-01-09 11:44:12 +09:00
Yukihiro "Matz" Matsumoto
f3ebef1172
mruby-string (chars2bytes): reduce the scope of local variables
2024-01-09 11:00:44 +09:00
Yukihiro "Matz" Matsumoto
f1d01a6107
string.c (mrb_utf8len): should return 1 for invalid chars; ref #6143
2024-01-09 10:39:03 +09:00
Yukihiro "Matz" Matsumoto
64a4bf0e28
string.c: avoid infinite loop; fix #6143
...
`mrb_utf8len` returns 0 for invalid characters.
2024-01-09 10:37:52 +09:00
Yukihiro "Matz" Matsumoto
a5e83075d4
string.c: reduce the scope of a local variable
2024-01-09 08:22:26 +09:00
Yukihiro "Matz" Matsumoto
af3482d562
mruby-math: use erfc(x) instead of 1.0 - erf(x)
2024-01-09 08:01:28 +09:00
Yukihiro "Matz" Matsumoto
51c4c4716a
mruby-math: use log1p(x) instead of log(1.0+x)
2024-01-09 07:59:42 +09:00
Yukihiro "Matz" Matsumoto
8a2e88390b
mruby-math: reduce the scope of a local variable
2024-01-09 07:47:57 +09:00
Yukihiro "Matz" Matsumoto
c1fc3219db
mruby-math: fix spacing
2024-01-08 23:18:57 +09:00
Yukihiro "Matz" Matsumoto
05e9fa34af
mruby-random: rename a conflicting local variable
2024-01-08 19:12:55 +09:00
Yukihiro "Matz" Matsumoto
27c2f9ac38
mruby-random (mrb_ary_sample): reduce the scope of loop variables
2024-01-08 07:23:03 +09:00
Yukihiro "Matz" Matsumoto
2cf6f7f5c7
mruby-rational: move misplaced #ifndef MRB_NO_FLOAT
2024-01-08 07:19:30 +09:00
Yukihiro "Matz" Matsumoto
be3b93ecb9
array.c (ary_expand_capa): rename a conflicting local variable
2024-01-06 14:33:50 +09:00
Yukihiro "Matz" Matsumoto
d47f1b4df3
array.c (ary_expand_capa): remove unnecessary condition check
2024-01-06 14:32:54 +09:00
Yukihiro "Matz" Matsumoto
2eeb19a5ed
mruby-kernel-ext (mrb_f_caller): remove unnecessary condition check
2024-01-06 14:31:32 +09:00
Yukihiro "Matz" Matsumoto
b06fdb4bfa
mruby-io/file.c: reduce the scope of local variables
2024-01-06 08:30:56 +09:00
Yukihiro "Matz" Matsumoto
e1b6501183
mruby-io: fix local variable initialization redundancy
2024-01-05 13:03:33 +09:00
Yukihiro "Matz" Matsumoto
f1b8d38eb5
mruby-io: narrow a local variable scope
2024-01-05 13:02:39 +09:00
Yukihiro "Matz" Matsumoto
20dd737a4a
mruby-io (io_s_popen): remove fflush(stdin)
...
Flushing input I/O should be useless.
2024-01-05 13:00:55 +09:00
mimaki
28a1f7d143
Update version to 3.3.0RC2.
2024-01-04 14:56:56 +09:00
dearblue
69682e3d41
Fixed when combined mrb_fiber_resume() and Fiber#transfer
...
For example, the following code was crashing.
```c
#include <mruby.h>
#include <mruby/compile.h>
#include <mruby/proc.h>
int
main(int argc, char *argv[])
{
mrb_state *mrb = mrb_open();
mrb_value fiber = mrb_load_string(mrb, "Fiber.new { Fiber.new { 12345.6789 }.transfer }");
mrb_value res = mrb_fiber_resume(mrb, fiber, 0, NULL);
mrb_p(mrb, res);
mrb_close(mrb);
return 0;
}
```
2024-01-04 14:12:35 +09:00
Yukihiro "Matz" Matsumoto
9ee7d955e3
mruby-metaprog: narrow the scope of a local variable
2024-01-04 11:18:14 +09:00
Yukihiro "Matz" Matsumoto
2ce5c52726
mruby-errno (mrb_sce_sys_fail): remove redundant assignment
2024-01-04 10:08:22 +09:00
Yukihiro "Matz" Matsumoto
7861422cbe
mruby-fiber (fiber_switch): reduce the scope of local variables
2024-01-03 16:07:15 +09:00
Yukihiro "Matz" Matsumoto
93bda0d27f
mruby-fiber (fiber_init_fiber): rename conflicting local variables
2024-01-03 16:05:46 +09:00
Yukihiro "Matz" Matsumoto
f0ab79b195
Merge pull request #6136 from dearblue/fiber-fix
...
Fixed when combined `mrb_fiber_resume()` and `Fiber#transfer`
2024-01-03 07:33:48 +09:00
Yukihiro "Matz" Matsumoto
5257fe4333
mruby-bigint (mrb_bint_new_float): narrow the scope of variable 'f'
2024-01-03 07:23:55 +09:00
Yukihiro "Matz" Matsumoto
d632085b5b
mruby-bigint (udiv): narrow the scope of loop variable 'i'
2024-01-03 07:23:55 +09:00
Yukihiro "Matz" Matsumoto
d944a079a3
mruby-numeric-ext (int_digits): avoid variable name override
2024-01-03 07:23:55 +09:00
Yukihiro "Matz" Matsumoto
e71e1bc50e
mruby-hash-ext: reduce the scope of the loop variable i
2024-01-03 07:23:55 +09:00
Yukihiro "Matz" Matsumoto
17b2ec643e
Merge pull request #6140 from jbampton/actions-label-more-files
...
actions: label more files for build
2024-01-03 07:23:39 +09:00
dearblue
519a2cbd59
Fixed when combined mrb_fiber_resume() and Fiber#transfer
...
For example, the following code was crashing.
```c
#include <mruby.h>
#include <mruby/compile.h>
#include <mruby/proc.h>
int
main(int argc, char *argv[])
{
mrb_state *mrb = mrb_open();
mrb_value fiber = mrb_load_string(mrb, "Fiber.new { Fiber.new { 12345.6789 }.transfer }");
mrb_value res = mrb_fiber_resume(mrb, fiber, 0, NULL);
mrb_p(mrb, res);
mrb_close(mrb);
return 0;
}
```
2024-01-02 21:34:44 +09:00
John Bampton
f8511ecb22
Fix pre-commit failure from prettier
2024-01-01 18:32:48 +09:00
John Bampton
e471399044
actions: label more files for build
2024-01-01 17:19:53 +10:00
Yukihiro "Matz" Matsumoto
d7a2174519
Merge pull request #6139 from jbampton/fix-prettier-hook
...
Fix `pre-commit` failure from `prettier`
2024-01-01 15:46:41 +09:00
Yukihiro "Matz" Matsumoto
a406e008d1
Merge branch 'master' into fix-prettier-hook
2024-01-01 15:29:08 +09:00
Yukihiro "Matz" Matsumoto
d4cd589733
NEWS: add mruby3.3 changes description
2024-01-01 10:11:32 +09:00
John Bampton
19d0ea803d
Fix pre-commit failure from prettier
2023-12-31 21:57:58 +10:00
dearblue
8322c441ee
Remove unreachable blocks in OP_RETURN
...
When `mrb->c->prev` is non `NULL` and `mrb->c->noexec` is false, switching source fiber should suspend with `Fiber#resume`.
In this case, the condition `mrb->c->ci == mrb->c->cibase` is not satisfied.
2023-12-31 14:49:59 +09:00
Yukihiro "Matz" Matsumoto
8094ac27d7
NEWS: add mruby3.3 changes description
2023-12-31 00:43:02 +09:00
Yukihiro "Matz" Matsumoto
39f48d732a
mruby-pack: update README.md
...
'X' and '@' directives are not listed
2023-12-30 16:02:20 +09:00
Yukihiro "Matz" Matsumoto
56b67f8613
mruby-pack (u64tostr): reimplement the function
...
- direct conversion of single digit numbers
- remove unnecessary update of `line` variable
- simplify the body according to the assertion
2023-12-30 15:35:55 +09:00
Yukihiro "Matz" Matsumoto
8cbd4638f4
mruby-pack (u64tostr): len should always be positive
...
Add `mrb_assert()` instead of just skipping the function.
2023-12-30 15:33:57 +09:00
Yukihiro "Matz" Matsumoto
1871ff14db
mruby-pack (pack_unpack): skip continuous extraction from unpack1
...
Ref #6134
2023-12-30 15:31:44 +09:00
Yukihiro "Matz" Matsumoto
7765c23f69
mruby-pack (pack_hex): the scope of variables a and b can be reduced
2023-12-30 15:12:17 +09:00
Yukihiro "Matz" Matsumoto
fca2bbdcca
mruby-pack (unpack_str): the scope of the variable cp can be reduced
2023-12-30 15:12:10 +09:00
dearblue
9d4931cd1b
Create source code packages by adding release tags
...
According to the [GitHub blog](https://github.blog/2023-02-21-update-on-the-future-stability-of-source-code-archives-and-hashes/ ), files by `git archive` are not guaranteed to have checksum persistence.
It is also stated that the archive file at this time is stable in bytes, but that this may change in the future.
2023-12-29 17:50:33 +09:00
mimaki
82e289a64d
Update version to 3.3.0RC.
2023-12-29 16:02:13 +09:00
Yukihiro "Matz" Matsumoto
159687bef3
mruby-pack: add tests for unpack1 method; ref #6134
2023-12-29 15:05:16 +09:00
mimaki
c1ed125689
Merge remote-tracking branch 'origin/master' into stable
2023-12-29 14:26:19 +09:00
Yukihiro "Matz" Matsumoto
6d8323f3c7
mruby-pack (pack_unpack): unpack1 did not return single data; fix #6134
...
For following unpack directives:
- PACK_DIR_HEX (h)
- PACK_DIR_BSTR (b)
- PACK_DIR_STR (a,A,Z)
- PACK_DIR_BASE64 (m)
- PACK_DIR_QENC (M)
2023-12-29 13:09:14 +09:00
mimaki
c11679ad79
Merge remote-tracking branch 'origin/master' into stable
2023-12-29 10:51:32 +09:00
Yukihiro "Matz" Matsumoto
95aa92d5c4
Update AUTHORS (date and commit hash)
2023-12-28 23:36:40 +09:00
Yukihiro "Matz" Matsumoto
c1511d5f5d
AUTHORS: update entries [ci skip]
2023-12-28 19:51:31 +09:00
mimaki
e9047562a1
Merge branch 'master' into stable
2023-12-28 13:39:55 +09:00
Yukihiro "Matz" Matsumoto
67cb987510
doc/mruby3.{1,2}.md: update CVE links (nvd.nist.gov is down)
2023-12-27 22:24:12 +09:00
Yukihiro "Matz" Matsumoto
6ea3166005
doc/guides/memory.md: small style changes (markdownlink-cli)
2023-12-27 22:24:12 +09:00
Yukihiro "Matz" Matsumoto
ae43ce7593
mruby-time: refactor _POSIX_TIMERS handling issue; ref #6124
2023-12-27 22:24:12 +09:00
Yukihiro "Matz" Matsumoto
a8b82bfae5
Merge pull request #6128 from dearblue/fiber-end
...
Integrates the sequence when a fiber is terminated by `OP_RETURN`
2023-12-27 22:24:01 +09:00
Yukihiro "Matz" Matsumoto
e51c20888b
Merge pull request #6127 from dearblue/catch_handler_find
...
Changed parameters for `catch_handler_find()`
2023-12-27 22:22:12 +09:00
Yukihiro "Matz" Matsumoto
1ac4148020
Merge pull request #6126 from dearblue/block-return
...
Fixed return value of `OP_RETURN_BLK` called directly under C function
2023-12-27 22:19:36 +09:00
Yukihiro "Matz" Matsumoto
074374e28d
Merge pull request #6125 from dearblue/cross-c
...
Allow `OP_RETURN_BLK` to cross C boundaries
2023-12-27 22:18:06 +09:00
Yukihiro "Matz" Matsumoto
dc633ecae8
Merge pull request #6123 from dearblue/allocate-undef.2
...
Inherit `MRB_FL_UNDEF_ALLOCATE` in subclasses
2023-12-27 22:16:51 +09:00
Yukihiro "Matz" Matsumoto
7d83e9cd27
Merge pull request #6130 from sizious/dreamcast-shelf-build-config-overhaul
...
`dreamcast_shelf build config`: complete overhaul
2023-12-27 21:54:26 +09:00
SiZiOUS
f81b7a3a1f
dreamcast_shelf build config: complete overhaul
...
This configuration is used to support the Sega Dreamcast system.
mruby is now officially supported as a KallistiOS Port in kos-ports.
See: https://dreamcast.wiki/Using_Ruby_for_Sega_Dreamcast_development
2023-12-25 21:40:37 +00:00
Yukihiro "Matz" Matsumoto
ebf66a2b80
Add prettier pre-commit hook; close #5490
2023-12-25 08:02:58 +09:00
Yukihiro "Matz" Matsumoto
9c66d4a453
Merge pull request #6124 from sizious/mruby-time-update
...
`mruby-time`: protect against incorrectly defined `_POSIX_TIMERS`
2023-12-24 17:33:23 +09:00
dearblue
dba1dcdd25
Integrates the sequence when a fiber is terminated by OP_RETURN
...
In the `ensure` block while executing `fiber.transfer`, keep `fiber->cxt->prev` to be `NULL`.
2023-12-24 15:45:15 +09:00
dearblue
dc09000f01
Fixed return value of OP_RETURN_BLK called directly under C function
...
```ruby
def cross; Class.new { return 1 }; end; p cross'
# => #<Class:0x8245cf170> # without this patch
# => 1 # with this patch
```
2023-12-24 13:56:25 +09:00
dearblue
d41a2612f4
Allow OP_RETURN_BLK to cross C boundaries
...
The restriction was introduced in commit b563bcb7ff to resolve https://github.com/mruby/mruby/issues/3462 .
Subsequently, the `RBreak` object, introduced by mruby 1.3.0, allowed crossing the C boundary.
```ruby
def cross; Class.new { proc { return }.call }; end; cross
# => unexpected return (LocalJumpError) # without this patch
# => nothing raised # with this patch
```
2023-12-24 13:56:25 +09:00
SiZiOUS
c0ffc13801
mruby-time: protect against incorrectly defined _POSIX_TIMERS
...
This update avoids the following error: operator '&&' has no right operand (related to _POSIX_TIMERS)
See: https://stackoverflow.com/questions/48538243/macro-if-statement-returns-error-operator-has-no-right-operand
2023-12-23 19:16:23 +00:00
dearblue
6a9671eac7
Changed parameters for catch_handler_find()
...
- Removed `mrb` and `ci` parameters.
- Added `irep` parameter.
The caller must guarantee that `irep->clen > 0`.
2023-12-23 23:02:48 +09:00
dearblue
2a1ea7d605
Inherit MRB_FL_UNDEF_ALLOCATE in subclasses
...
If `Class#allocate` is prohibited, subclasses should also be implicitly prohibited.
```ruby
p Class.new(Struct).allocate.class
# => #<Class:0x82362ac00> by #6122
# => allocator undefined for #<Class:0x000000083a983220> (TypeError) by Ruby 3.2
```
Added `MRB_DEFINE_ALLOCATOR()` to allow subclasses to use `Class#allocate`.
Supplement to #6122 .
2023-12-23 21:01:42 +09:00
Yukihiro "Matz" Matsumoto
63580581f7
Merge pull request #6122 from dearblue/allocate-undef.1
...
Prohibit `Class#allocate` in a different way
2023-12-23 15:15:11 +09:00
dearblue
8ecfacefca
Prohibit Class#allocate in a different way
...
The method introduced by #5979 causes a fault by swapping classes.
```console
% bin/mruby -e 'Method = Proc; p Object.method(:inspect)'
zsh: segmentation fault (core dumped) bin/mruby -e 'Method = Proc; p Object.method(:inspect)'
```
After applying this patch, a `TypeError` exception will be raised.
```console
% bin/mruby -e 'Method = Proc; p Object.method(:inspect)'
trace (most recent call last):
[1] -e:1
-e:1:in method: allocation failure of Proc (TypeError)
```
However, if the `mrb_vtype` is the same object, the same care must still be taken as before.
```console
% bin/mruby -e 'Method = Binding; p method(:puts).eval("12345")'
trace (most recent call last):
[1] -e:1
-e:1:in eval: wrong argument type nil (expected Proc) (TypeError)
```
2023-12-22 21:59:34 +09:00
Yukihiro "Matz" Matsumoto
fa75865a33
Merge pull request #6121 from dearblue/separate-breaks
...
Separate unwinding process for `break` / `return`
2023-12-22 16:12:12 +09:00
Yukihiro "Matz" Matsumoto
97b522d778
src/fmt_fp.c: change condition order for memory safety
2023-12-22 15:35:21 +09:00
Yukihiro "Matz" Matsumoto
cfee5c2753
doc/guides/memory.md: guide to memory management customization
2023-12-21 16:48:33 +09:00
Yukihiro "Matz" Matsumoto
28b526cf81
Update .pre-commit-config.yaml
2023-12-21 16:47:16 +09:00
Yukihiro "Matz" Matsumoto
34c5d96e86
allof.c: mrb_default_allocf() definition in the separate file
...
So that the user can define their own version of mrb_default_alloc
function to override memory allocation of mruby.
2023-12-21 15:28:04 +09:00
dearblue
859f1b3002
Separate unwinding process for break / return
2023-12-20 21:54:53 +09:00
Yukihiro "Matz" Matsumoto
899a09152b
mruby.h (mrb_alloc): better description for the function type
2023-12-20 19:39:09 +09:00
Yukihiro "Matz" Matsumoto
72ca266ed7
mruby-io: rename some functions with io_buf prefix
...
Now all functions with `io_buf` takes `mrb_io_buf` as an argument.
Renamed functions (old names):
- io_init_buf (io_buf_init)
- io_fill_buf (io_buf_fill)
- io_fill_buf_comp (io_buf_fill_comp) for UTF-8 encoding
2023-12-20 08:59:46 +09:00
Yukihiro "Matz" Matsumoto
84fb9f40f0
mruby-io: some functions take mrb_io_buf as an argument
...
- io_buf_reset
- io_buf_shift
- io_buf_cat
- io_buf_cat_all
2023-12-20 08:59:46 +09:00
Yukihiro "Matz" Matsumoto
054f5b5284
mruby-io (io_eof): avoid unnecessary read(2) call
2023-12-20 08:59:46 +09:00
Yukihiro "Matz" Matsumoto
2e8bede6ea
mruby-io (io_read): small refactoring; ref #6118
...
If `outbuf` is `nil` we allocate a buffer string, if `outbuf` is a
string, we resize it to zero length. In the function `io_read`, this
condition is done twice, so we refactor out to `io_reset_outbuf()`.
2023-12-20 08:59:46 +09:00
Yukihiro "Matz" Matsumoto
2e24c94873
Merge pull request #6120 from dearblue/file-EBADF
...
Set `EBADF` if `check_file_descriptor()` fails
2023-12-20 08:59:29 +09:00
Yukihiro "Matz" Matsumoto
82ed1c2600
Merge pull request #6118 from dearblue/io.read
...
Fixed `IO#read` with `buf`.
2023-12-19 08:00:42 +09:00
Yukihiro "Matz" Matsumoto
992bd49344
Merge pull request #6116 from dearblue/send-branch
...
Improve branching in the execution part of the `OP_SEND` block
2023-12-18 12:17:39 +09:00
Yukihiro "Matz" Matsumoto
e8a36235d8
Merge pull request #6115 from dearblue/loop-inclusion
...
Replace `for` and `CHECKPOINT` block comprehensions
2023-12-18 12:16:38 +09:00
dearblue
5e3e75ed7b
Set EBADF if check_file_descriptor() fails
2023-12-17 10:50:59 +09:00
Yukihiro "Matz" Matsumoto
b20418cf78
Merge pull request #6119 from jbampton/fix-spelling
...
docs: fix spelling
2023-12-17 07:14:17 +09:00
John Bampton
4c79fce665
docs: fix spelling
2023-12-17 00:58:24 +10:00
dearblue
7611dc8338
Fixed IO#read with buf.
...
I hit the following two problems.
- `io.read(0, buf)` always returned a new empty string object.
- `io.read(num, buf)` was appending data to the given `buf`.
This also meant that `buf` was never empty if EOF was reached.
2023-12-16 14:42:52 +09:00
Yukihiro "Matz" Matsumoto
d14a269f49
Merge pull request #6114 from dearblue/integrate-catch
...
Move `L_RAISE` and `L_BREAK` blocks to `OP_RAISEIF`
2023-12-16 13:08:33 +09:00
Yukihiro "Matz" Matsumoto
ecea3f2531
Merge pull request #6117 from mruby/dependabot/github_actions/actions/upload-artifact-4
...
build(deps): bump actions/upload-artifact from 3 to 4
2023-12-16 13:05:38 +09:00
Yukihiro "Matz" Matsumoto
6fad067ded
mruby-binding: raise in upper count check
...
We count `Proc` upper links then check for upper bounds (default:20),
but now we raise an exception as soon as the count exceeds the limit so
that we can avoid traverse unnecessary upper links.
2023-12-16 12:21:55 +09:00
dependabot[bot]
1b7f2fb175
build(deps): bump actions/upload-artifact from 3 to 4
...
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact ) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases )
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/upload-artifact
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-12-15 14:22:12 +00:00
dearblue
990e18ad59
Improve branching in the execution part of the OP_SEND block
...
The `MRB_METHOD_CFUNC_P()` macro contains several branches, which will be replaced by simple branches.
2023-12-15 21:46:00 +09:00
dearblue
7144eab350
Replace for and CHECKPOINT block comprehensions
...
I think it will make the eyes less tired for a process flow.
2023-12-15 21:46:00 +09:00
dearblue
e9904ddb2a
Move L_RAISE and L_BREAK blocks to OP_RAISEIF
...
`OP_RAISEIF` should be easier to relate than `OP_RETURN`.
2023-12-15 21:46:00 +09:00
Yukihiro "Matz" Matsumoto
24eca2e50b
mruby-fiber (fiber_to_s): omit position info for terminated fibers
...
Since Fiber#to_s did not include location information before #6105 ,
when location information cannot be retrieved for terminated fibers,
instead of meaningless information such as "(unknown):0", we omit
positional information altogether for terminated fibers; ref #6111
2023-12-14 18:56:19 +09:00
Yukihiro "Matz" Matsumoto
e9237f444a
Merge pull request #6111 from dearblue/fiber-to_s.1
...
Consider proc to be GC'ed if fiber is terminated
2023-12-14 14:59:18 +09:00
Yukihiro "Matz" Matsumoto
5311d1aa1b
Merge pull request #6106 from dearblue/fiber-limits-ease
...
Ease fiber limitations
2023-12-13 16:10:42 +09:00
Yukihiro "Matz" Matsumoto
ae8dcb82ba
vm.c: CINFO_SKIP should not be called with prev_jmp == NULL
...
We have added assertion to ensure.
2023-12-12 16:49:11 +09:00
Yukihiro "Matz" Matsumoto
89d4e8c851
Merge pull request #6113 from dearblue/unreachable
...
Remove unreachable code in `OP_R_BREAK`
2023-12-12 16:48:55 +09:00
dearblue
38c7936c94
Remove unreachable code in OP_R_BREAK
...
Termination of fiber by `break` results in a `LocalJumpError`, so the indicated code will not be executed.
2023-12-11 21:25:08 +09:00
Yukihiro "Matz" Matsumoto
93d842e045
Merge pull request #6112 from dearblue/labeler
...
Update labeler.yml for version 5
2023-12-10 20:01:17 +09:00
dearblue
c0b5bc4ae8
Consider proc to be GC'ed if fiber is terminated
...
When fiber is terminated, the pointer indicated by `f->cxt->cibase->proc` is not protected from GC.
I should have done this patch way as of commit 9af6264d6b (#6105 ).
2023-12-09 22:28:47 +09:00
dearblue
88571052e8
Update labeler.yml for version 5
2023-12-09 17:28:13 +09:00
Yukihiro "Matz" Matsumoto
34346e75a4
Merge pull request #6103 from dearblue/RBreak-ci
...
RBreak remembers the CI location
2023-12-09 11:35:23 +09:00
Yukihiro "Matz" Matsumoto
645a464b2d
mruby-fiber (fiber_to_s): retrieve position from terminated fibers; #6105
...
Since `cxt->ci` points to the last active callinfo, `cxt->ci == cxt->cibase`
does not mean it does not have correct `proc` information, so we have
removed the `f->cxt->ci > f->cxt->cibase` check. Instead, just in case
`proc` does not have `irep` information, we try to confirm `proc` does not
point to `CFUNC` nor is not an alias.
2023-12-08 09:33:05 +09:00
Yukihiro "Matz" Matsumoto
fdea7924fe
mruby-fiber (fiber_to_s): do not rely on mrb_any_to_s(); ref #6105
2023-12-08 09:25:46 +09:00
Yukihiro "Matz" Matsumoto
b7949e81d7
mruby-fiber (fiber_to_s): use "(unknown):0" for unknown position
...
Ref #6105
2023-12-08 09:22:59 +09:00
Yukihiro "Matz" Matsumoto
cb54138b81
Merge pull request #6105 from dearblue/fiber.to_s
...
Implement `Fiber#to_s` method
2023-12-08 09:00:05 +09:00
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
658d5a51ac
mruby-string-ext: add test for String#valid_encoding?
2023-12-07 11:34:10 +09:00
Yukihiro "Matz" Matsumoto
eabe2d96e2
mruby-string-ext: add String#valid_encoding? method
2023-12-07 10:58:20 +09:00
Yukihiro "Matz" Matsumoto
bef7eea468
mruby-method: small refactoring mostly regarding declarations
2023-12-06 22:20:38 +09:00
Yukihiro "Matz" Matsumoto
b01eb03d2a
Merge pull request #6110 from mruby/dependabot/github_actions/actions/labeler-5
...
build(deps): bump actions/labeler from 4 to 5
2023-12-06 15:58:59 +09:00
Yukihiro "Matz" Matsumoto
fab3dfc145
Merge pull request #6107 from mruby/dependabot/github_actions/super-linter/super-linter-5.7.2
...
build(deps): bump super-linter/super-linter from 5.7.0 to 5.7.2
2023-12-06 15:58:47 +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
abd26b7ca6
mruby-bin-mrbc/mrbc.c: replace mrbc_ prefix by mrb_ccontext
...
This is a most confusion file because it contained both `mrbc_` from
"mruby compiler" (e.g. mrbc_args) and `mrbc_` from "mruby compiler
context".
2023-12-06 15:54:33 +09:00
Yukihiro "Matz" Matsumoto
7be67d3acf
mruby-bin-mirb: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:51:20 +09:00
Yukihiro "Matz" Matsumoto
72689b0b9c
mruby-eval: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:49:21 +09:00
Yukihiro "Matz" Matsumoto
7e74dbeed3
mruby-bin-mruby: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:45:01 +09:00
Yukihiro "Matz" Matsumoto
c36b212fa9
mruby-bin-debugger: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:41:15 +09:00
Yukihiro "Matz" Matsumoto
a66c685c81
mruby-bin-debugger/mrdb.h: remove unnecessary struct declarations
2023-12-06 15:40:31 +09:00
Yukihiro "Matz" Matsumoto
6de4df3b31
parse.y: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:32:13 +09:00
Yukihiro "Matz" Matsumoto
9c2af6aaed
load.c: replace mrbc_ prefix by mrb_ccontext
2023-12-06 15:29:02 +09:00
Yukihiro "Matz" Matsumoto
073a4f19f8
proc.h: update document in the comment (regarding compiler context)
2023-12-06 15:22:09 +09:00
Yukihiro "Matz" Matsumoto
c5e3cbe4bf
compile.h: stop using mrbc_ prefix for compiler context
...
Since it is confusing that the term `mrbc` stands for both "mruby
compiler" and "mruby compiler context" in the source code. Instead,
we use `mrb_ccontext` (stands for compiler context) prefix hereafter.
We choose `mrb_ccontext` because we have already used `mrb_context` (for
VM execusion context).
2023-12-06 15:22:08 +09:00
dependabot[bot]
7ac0b60255
build(deps): bump actions/labeler from 4 to 5
...
Bumps [actions/labeler](https://github.com/actions/labeler ) from 4 to 5.
- [Release notes](https://github.com/actions/labeler/releases )
- [Commits](https://github.com/actions/labeler/compare/v4...v5 )
---
updated-dependencies:
- dependency-name: actions/labeler
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-12-05 14:41:52 +00:00
dearblue
ca9e8d91e4
Needs cipop() before crossing the C boundary
...
fix #6108
2023-12-05 22:03:38 +09:00
dependabot[bot]
7b74d22310
build(deps): bump super-linter/super-linter from 5.7.0 to 5.7.2
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.7.0 to 5.7.2.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.7.0...v5.7.2 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-12-04 14:03:16 +00:00
dearblue
4f1c1c16da
Check fiber backward when switching with Fiber#transfer
...
Previously, if the caller of `Fiber#resume` had a C function call, an inconsistency would occur.
2023-12-04 22:32:57 +09:00
dearblue
42308c42b5
Fix CI misalignment between Fiber#resume and Fiber.yield
...
When a fiber switched by `Fiber.yield` is resumed by `Fiber#resume` by C, it is necessary to pop CI with `fiber_switch()`.
Previously, CI misalignment caused inconsistencies, including crashes, on the next `Fiber#resume`.
2023-12-04 22:32:57 +09:00
dearblue
568309b25a
Propagating exceptions to the caller of Fiber#resume
...
Need to return control from `mrb_vm_exec()` to the caller if `Fiber#resume` was done from C.
2023-12-04 22:32:57 +09:00
dearblue
aaa0f124c3
Restore the value of ci->cci with fiber_switch()
...
If `mrb_fiber_resume()` was called from a C function as a method definition, the mruby VM was not processed afterwards.
Called Fiber.yield
mrb_vm_exec() <<-- returns from the function by CINFO_RESUMED
fiber_switch() <<-- this patch causes the value to return to its pre-call state
mrb_fiber_resume()
mrb_vm_exec() <<-- previously, returns from the function immediately as it was CINFO_RESUMED
...
main()
2023-12-04 22:32:57 +09:00
dearblue
ef8b0b7ed8
Allows calling Fiber#resume from C
...
This patch is effectively reverts to the following:
- commit dc65b1faf1 (#5782 )
- commit f4c4809750 (#5947 )
Ref. #6063
2023-12-04 22:32:51 +09:00
dearblue
ad4c35b022
Enhanced Fiber Testing
...
The main objective is to make sure that fiber can be handled from C.
Also, add a mechanism to detect that the mruby VM has stopped in the middle of the process.
If it stops halfway, the test will be terminated with `abort()`.
2023-12-04 21:48:23 +09:00
Yukihiro "Matz" Matsumoto
7f1ae1c344
mruby-method (method_to_s): avoid goto across declarations for C++
2023-12-03 22:39:27 +09:00
Yukihiro "Matz" Matsumoto
90ec09a716
mruby-proc-ext (mrb_proc_source_location): support aliases
2023-12-03 22:38:31 +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
9eae7df26e
mruby-method (method_to_s): _proc may be nil; add check
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
02f189cebc
mruby-method (method_to_s): add origin name in the string representation
2023-12-03 22:38:30 +09:00
Yukihiro "Matz" Matsumoto
f5bc82f267
mruby-method (method_to_s): avoid origin class like Object(Object)
2023-12-03 22:38:30 +09:00
Yukihiro "Matz" Matsumoto
b52870b4c6
mruby-method: add const modifier to struct RProc*
2023-12-03 22:38:29 +09:00
Yukihiro "Matz" Matsumoto
9da0c7e1a4
Update .pre-commit-config.yaml
2023-12-03 09:39:33 +09:00
dearblue
9af6264d6b
Implement Fiber#to_s method
...
If the filename and line number cannot be obtained, "(unknown):1" is used instead.
Also, the file name information of the terminated fiber cannot be retrieved and will be replaced as well.
This limitation is due to the fact that `cibase->proc` of the terminated fiber is collected by the GC.
```console
% bin/mruby -e 'p Fiber.new { p Fiber.current }.resume'
#<Fiber:0x82423bef0 -e:1 (resumed)>
#<Fiber:0x82423bef0 (unknown):1 (terminated)>
```
2023-12-01 21:30:16 +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
fdef59b3a1
AUTHORS: update entries [ci skip]
2023-11-21 09:37:58 +09:00
Yukihiro "Matz" Matsumoto
53a8472e5e
mruby-kernel-ext/test: skip some tests that related to alias callee.
...
The last commit changed the behavior of aliases, and we no longer keep
the alias name symbol but the original name. Since this is a small
incompatibility from CRuby and it requires some memory to fix this, we
keep this issue right now.
2023-11-21 09:37:17 +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
f6cbf6ac1a
Merge pull request #6102 from mruby/dependabot/github_actions/super-linter/super-linter-5.7.0
...
build(deps): bump super-linter/super-linter from 5.6.1 to 5.7.0
2023-11-21 09:37:07 +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
956379928c
mruby-io/io.c: fix possible short integer overflow
2023-11-19 07:47:23 +09:00
Yukihiro "Matz" Matsumoto
698da0982f
mruby-io/io.c: fix fsize_t and mrb_ssize mixture
2023-11-19 07:45:29 +09:00
dependabot[bot]
ee7ea34b10
build(deps): bump super-linter/super-linter from 5.6.1 to 5.7.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.6.1 to 5.7.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.6.1...v5.7.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-11-16 14:28:54 +00: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
431d9d8a12
mrbgems/full-core.gembox: use parentheses for method call expression
2023-11-12 19:01:08 +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
82f6facaad
Merge pull request #6097 from dearblue/fiber-new
...
Add a new `mrb_fiber_new()` with MRB_API
2023-11-07 21:40:31 +09:00
dearblue
1bb77170ec
Add a new mrb_fiber_new() with MRB_API
2023-11-05 20:36:29 +09:00
Yukihiro "Matz" Matsumoto
9e50d67fe7
Merge pull request #6096 from mruby/dependabot/github_actions/super-linter/super-linter-5.6.1
...
build(deps): bump super-linter/super-linter from 5.6.0 to 5.6.1
2023-11-03 07:35:13 +09:00
dependabot[bot]
52ac930af3
build(deps): bump super-linter/super-linter from 5.6.0 to 5.6.1
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.6.0 to 5.6.1.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.6.0...v5.6.1 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-11-02 14:07:54 +00:00
Yukihiro "Matz" Matsumoto
587d93d5a5
Merge pull request #6095 from mruby/dependabot/github_actions/super-linter/super-linter-5.6.0
...
build(deps): bump super-linter/super-linter from 5.4.3 to 5.6.0
2023-11-02 13:21:35 +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
8c068c57c8
Merge pull request #6092 from dearblue/lockfile
...
Get from local only if there is no default branch name
2023-11-02 12:07:56 +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
dependabot[bot]
ccf37b00aa
build(deps): bump super-linter/super-linter from 5.4.3 to 5.6.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.4.3 to 5.6.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.4.3...v5.6.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-10-31 14:26:22 +00:00
dearblue
8284234229
Get from local only if there is no default branch name
...
The branch name of the cloned repository should be determined by the build configuration file.
fixes #6087
2023-10-28 19:02:50 +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
552944b34e
Merge pull request #6088 from jbampton/format-markdown-table
...
Standardize Markdown table format
2023-10-27 07:46:14 +09:00
John Bampton
bbd5701617
Standardize Markdown table format
2023-10-26 16:15:57 +10:00
Yukihiro "Matz" Matsumoto
c1feb41828
Merge pull request #6056 from dearblue/build/host-shared
...
Brush up `build_config/host-shared.rb` file
2023-10-26 14:23:49 +09:00
Yukihiro "Matz" Matsumoto
ac73793a8f
range.c: use mrb_define_method_id() which directly use symbols
2023-10-25 22:01:54 +09:00
dearblue
41cce1561f
Brush up build_config/host-shared.rb file
...
Summary:
- VisualC++ does not supported.
- `cc.flags` must maintain array objects.
2023-10-25 21:58:28 +09:00
Yukihiro "Matz" Matsumoto
7a08c7042f
string.c: move __ENCODING__ from kernel.c
2023-10-25 15:05:10 +09:00
Yukihiro "Matz" Matsumoto
f85a3aff2b
Merge pull request #6086 from yujiyokoo/add-wii-build-config
...
Add build config for Nintendo Wii
2023-10-23 17:34:33 +09:00
Yukihiro "Matz" Matsumoto
279e100ad5
Merge pull request #6085 from dearblue/define_installer.1
...
Fixed `MRuby::Build#define_installer`
2023-10-23 15:36:14 +09:00
Yukihiro "Matz" Matsumoto
bba659f174
Merge pull request #6083 from mruby/dependabot/github_actions/super-linter/super-linter-5.4.3
...
build(deps): bump super-linter/super-linter from 5.4.0 to 5.4.3
2023-10-23 15:34:17 +09:00
Yukihiro "Matz" Matsumoto
461c97225e
LICENSE: remove the end date of copyright notice; close #6080
2023-10-23 15:31:34 +09:00
Yukihiro "Matz" Matsumoto
e7e47bb683
AUTHORS: update entries [ci skip]
2023-10-23 15:29:23 +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
Yuji Yokoo
2b9287dbc4
Add build_config.rb for Nintendo Wii
2023-10-22 00:07:22 +10:30
dearblue
9b0d516310
Fixed MRuby::Build#define_installer
...
Symbolic links were created with absolute paths, but to cope with path fluctuations between build and reference, they are now relative paths.
ref. #6084
2023-10-21 19:42:26 +09:00
dependabot[bot]
3c5aa936c7
build(deps): bump super-linter/super-linter from 5.4.0 to 5.4.3
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.4.0 to 5.4.3.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.4.0...v5.4.3 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-10-18 14:50:06 +00: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
9553284480
Merge pull request #6081 from dearblue/open-x
...
Add "x" mode option for `IO.open`
2023-10-17 13:27:07 +09:00
dearblue
88bc8c9144
Add "x" mode option for IO.open
...
From CRuby 2.6 feature.
This is the "x" mode (`O_EXCL`; exclusive create) of `fopen(3)` introduced in C11.
ref. https://bugs.ruby-lang.org/issues/11258
2023-10-15 16:41:48 +09:00
dearblue
782fd7e014
Integrate error handling for IO.open
2023-10-15 16:32:01 +09:00
Yukihiro "Matz" Matsumoto
dec81fde4a
Merge pull request #6079 from jbampton/fix-case-of-mruby
...
include/mruby/version.h: change `MRuby` to `mruby`
2023-10-15 05:16:04 +07:00
Yukihiro "Matz" Matsumoto
244156af2a
Merge pull request #6078 from jbampton/fix-indent
...
Fix indentation in two Ruby files
2023-10-15 05:15:38 +07:00
John Bampton
db20a19711
include/mruby/version.h: change MRuby to mruby
2023-10-14 19:13:49 +10:00
John Bampton
a83d7d3510
Fix indentation in two Ruby files
2023-10-14 18:52:30 +10:00
Yukihiro "Matz" Matsumoto
4656ea5ccd
Merge pull request #6000 from jbampton/update-docker-files
...
docker: use less image layers and update compose version
2023-10-14 05:36:04 +07:00
Yukihiro "Matz" Matsumoto
56a46cdff5
Merge pull request #6075 from mruby/dependabot/github_actions/super-linter/super-linter-5.4.0
...
build(deps): bump super-linter/super-linter from 5.3.1 to 5.4.0
2023-10-14 05:34:49 +07: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
3e20c5c9b3
Merge pull request #6069 from dearblue/MRUBY_PACKAGE_DIR
...
Corrected wrong `MRUBY_PACKAGE_DIR`
2023-10-13 16:04:25 +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
1321e33f08
mruby-range-ext: implement __empty_range? in C
2023-10-13 16:59:21 +09:00
Yukihiro "Matz" Matsumoto
deae227dff
mruby-range-ext: update overlap? to handle empty ranges
...
The code is taken from ActiveSupport (Rails).
2023-10-12 13:40:28 +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
dependabot[bot]
66ce1c03f4
build(deps): bump super-linter/super-linter from 5.3.1 to 5.4.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.3.1 to 5.4.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.3.1...v5.4.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-10-09 14:09:08 +00:00
Yukihiro "Matz" Matsumoto
097681b4d4
mruby-pack: unpack "b/B" should limit result size
2023-10-09 22:39:44 +09:00
Yukihiro "Matz" Matsumoto
861f8bdfa9
mruby-enumerator: add Enumerator#size
...
If the original object responds to `size` method, `Enumerator#size` calls
that method, otherwise return `nil`. CRuby returns the exact size for
more cases (e.g. Enumerable::Lazy#size), but mruby has more limitations.
2023-10-09 22:39:43 +09:00
Yukihiro "Matz" Matsumoto
49f86f19b2
mruby-enumerator: put "__" prefix to internal enumerator_block_call()
2023-10-09 22:39:43 +09:00
Yukihiro "Matz" Matsumoto
735fa246bf
mruby-enumerator: remove internal attribute methods; ref #6068
...
Removed methods: obj, args, kwd, meth, fib.
2023-10-09 22:39:43 +09:00
Yukihiro "Matz" Matsumoto
298155d59e
Merge pull request #6071 from jbampton/pre-commit-autoupdate
2023-10-06 23:58:45 +09:00
John Bampton
903ffb1584
pre-commit autoupdate
...
https://pre-commit.com/#pre-commit-autoupdate
2023-10-04 01:17:23 +10: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
Yukihiro "Matz" Matsumoto
b9536ea35f
vm.c: use smaller MRB_CALL_LEVEL_MAX with address sanitizer; fix #6068
...
Since ASAN uses lower memory bound. The other ideas to address #6068
might follow, e.g. removing `args=` from Enumerator.
2023-10-02 21:15:54 +09:00
Yukihiro "Matz" Matsumoto
771b56c796
mruby-socket: hide internal method new_with_prelude
...
- rename new_with_prelude to _new_with_prelude
- take a block instead of proc
2023-09-28 14:36:42 +09:00
Yukihiro "Matz" Matsumoto
67f1f0997c
Merge pull request #6070 from komainu8/demotion-mrb_f_raise-from-mrb_api
...
Demotion mrb_f_raise() in kernel.c from MRB_API too
2023-09-28 14:22:19 +09:00
Yukihiro "Matz" Matsumoto
10aab4cc1b
proc.c: prohibit direct Proc allocation() like CRuby; ref #6065
2023-09-28 11:37:46 +09:00
Yukihiro "Matz" Matsumoto
d298da8e72
vm.c (eval_under): check if irep is NULL; fix #6065
2023-09-28 11:37:07 +09:00
Yukihiro "Matz" Matsumoto
0e98508c33
string.c (mrb_string_value_cstr): RSTR_PTR(s) may be NULL; fix #6067
2023-09-28 09:26:02 +09:00
Yukihiro "Matz" Matsumoto
4c7fab6126
string.c (check_null_byte): str may point NULL buffer; ref #6067
2023-09-28 09:24:30 +09:00
Horimoto Yasuhiro
d55cec41eb
Demotion mrb_f_raise() in kernel.c from MRB_API
...
The prototype declaration of mrb_f_raise() has arleady demoted from
MRB_API in a below commit.
https://github.com/mruby/mruby/commit/0898ce982eea706c9a7b814280cdda09e82abe17
However, the entity of mrb_f_raise() in kernel.c is set MRB_API yet.
Therefore, mruby occures build error with MSVC(in Visual Studio 2022) as below.
https://github.com/groonga/groonga/actions/runs/6310140553/job/17131485675#step:11:2067
The cause of the above error that we define both mrb_f_raise() with
MRB_API and mrb_f_raise() without MRB_API.
2023-09-28 09:17:54 +09:00
Yukihiro "Matz" Matsumoto
0ac917e228
Revert "mrbgems/mruby-struct/src/struct.c: use direct array access"
...
This reverts commit 159ff5b28d .
Fix #6066
2023-09-28 07:40:31 +09:00
Yukihiro "Matz" Matsumoto
a80f394d97
mruby-array-ext (ary_rotate_bang): mrb_ary_modify may alter buf address
2023-09-27 18:37:38 +09:00
Yukihiro "Matz" Matsumoto
629a6839fd
mruby-array-ext (ary_compact_bang): skip check that is always true
2023-09-27 18:32:44 +09:00
Yukihiro "Matz" Matsumoto
f65229d103
mruby-array-ext (ary_compact_bang): mrb_ary_modify may alter buf address
2023-09-27 18:30:43 +09:00
Yukihiro "Matz" Matsumoto
7d3679dfc8
mruby-string-ext: refactoring
...
- raise exception in utf8code
- str_codepoints() use mrb_utf8len_table directly
2023-09-27 18:11:19 +09:00
Yukihiro "Matz" Matsumoto
5705d884ce
mruby-string-ext (utf8code): change arguments to point at the end
2023-09-27 18:08:12 +09:00
dearblue
c805d4dbba
Corrected wrong MRUBY_PACKAGE_DIR
...
ref. #6064
2023-09-25 21:50:31 +09:00
Yukihiro "Matz" Matsumoto
2e3b482aa9
array.c, string.c: remove length limits on UNIX-ish OSes
...
- Linux
- MacOS
- FreeBSD
- OpenBSD
Send us a pull-request if you want to add your favorite OS here.
The size limitation will be done by malloc(3) on those OSes.
2023-09-23 19:57:44 +09:00
Yukihiro "Matz" Matsumoto
15bb6a9f9b
mruby-string-ext: fix a typo; ref #6016
2023-09-23 11:44:15 +09:00
Yukihiro "Matz" Matsumoto
8a538c40c0
mruby-string-ext: implement core part of codepoints in C; close #6061
2023-09-23 11:36:20 +09:00
Yukihiro "Matz" Matsumoto
2db80b81c9
Merge pull request #6062 from mruby/dependabot/github_actions/super-linter/super-linter-5.3.1
...
build(deps): bump super-linter/super-linter from 5.3.0 to 5.3.1
2023-09-23 00:04:07 +09:00
Yukihiro "Matz" Matsumoto
9ee7edc1ac
mruby-fiber/fiber.c (fiber_switch): check c->cibase->proc env is NULL
...
ref #6060
2023-09-22 19:36:33 +09:00
dependabot[bot]
ed30e2e568
build(deps): bump super-linter/super-linter from 5.3.0 to 5.3.1
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.3.0 to 5.3.1.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.3.0...v5.3.1 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-09-21 14:29:25 +00:00
Yukihiro "Matz" Matsumoto
0730bda60e
mruby-range-ext: add tests for Range#overlap?
2023-09-21 15:28:56 +09:00
Yukihiro "Matz" Matsumoto
384d0e2d21
mruby-range-ext: implement Range#overlap? method
...
Which is implemented in CRuby recently.
2023-09-21 15:28:06 +09:00
Yukihiro "Matz" Matsumoto
393aaada64
mruby-pack/pack.c (read_tmpl): fix out-of-bound access with templates
2023-09-20 09:51:22 +09:00
Yukihiro "Matz" Matsumoto
b064d7e547
mruby-time/time.c (time_alloc_time): need to handle negative time_t
2023-09-19 14:22:49 +09:00
Yukihiro "Matz" Matsumoto
ec3baece4f
vm.c (catch_handler_find): check if irep is NULL; fix #6052
2023-09-19 14:22:49 +09:00
Yukihiro "Matz" Matsumoto
75e8a72649
vm.c (CI_PROC_SET): check whether p->body.irep is not NULL; ref #6052
2023-09-19 14:22:49 +09:00
Yukihiro "Matz" Matsumoto
8afb73f3e2
mruby-socket/socket.rb: should not call unix_path for non UNIX Addrinfo
...
ref #6051
2023-09-19 14:22:49 +09:00
Yukihiro "Matz" Matsumoto
52082ba399
mruby-socket/socket.c (mrb_addrinfo_unix_path): check sockaddr type
...
`sockaddr` should be a string; fix #6051
2023-09-19 14:22:49 +09:00
Yukihiro "Matz" Matsumoto
40f08e22f1
Merge pull request #6058 from mruby/dependabot/github_actions/super-linter/super-linter-5.3.0
...
build(deps): bump super-linter/super-linter from 5.2.2 to 5.3.0
2023-09-19 14:05:20 +09:00
dependabot[bot]
38113d2524
build(deps): bump super-linter/super-linter from 5.2.2 to 5.3.0
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.2.2 to 5.3.0.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.2.2...v5.3.0 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-09-18 14:15:49 +00:00
Yukihiro "Matz" Matsumoto
39d805e1da
Merge pull request #6055 from dearblue/libmruby-name
...
Fix libmruby name for VisualC++
2023-09-18 15:47:41 +09:00
Yukihiro "Matz" Matsumoto
3ce5f2df8b
Merge pull request #6054 from dearblue/mruby-config-plus
...
Extends `bin/mruby-config`
2023-09-17 18:23:54 +09:00
dearblue
7112db9fba
Extends bin/mruby-config
...
Added output for C++ and Assembly, ObjectiveC.
2023-09-17 17:48:36 +09:00
dearblue
7ac536e3ca
Fix libmruby name for VisualC++
2023-09-17 17:42:25 +09:00
Yukihiro "Matz" Matsumoto
74949b3e7e
Merge pull request #6053 from dearblue/gitattributes
...
Add `.gitattributes` for newline code normalization
2023-09-17 16:36:28 +09:00
dearblue
078b5ccaff
Add .gitattributes for newline code normalization
...
References:
- [Git] リポジトリで改行コードを正規化する
https://zenn.dev/murnana/articles/eol-and-gitattributes
- 行終端を処理するようGitを設定する - GitHub Docs
https://docs.github.com/ja/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
2023-09-17 13:52:48 +09:00
Yukihiro "Matz" Matsumoto
4810706ccc
vm.c: refactor redundant if conditions
2023-09-16 14:49:58 +09:00
Yukihiro "Matz" Matsumoto
f041d3a5d5
Merge pull request #6047 from mruby/dependabot/github_actions/super-linter/super-linter-5.2.2
...
build(deps): bump super-linter/super-linter from 5.2.1 to 5.2.2
2023-09-15 13:35:03 +09:00
Yukihiro "Matz" Matsumoto
e8254eda42
gc.c: update comment for flexible array members (C++ incompatible) [ci skip]
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
4fe8b074bb
gc.c: remove prev link from mrb_heap_page
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
44b5153360
gc.c: revert af68de52dddd80afe1620c45680eb055767a412f
...
The change increased memory consumption significantly
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
22e74a7ee5
gc.c: experiment before removing page->prev link
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
9b90fd4f60
gc.c (incremental_sweep_phase): rebuild free pages link only if needed
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
9f840e111a
gc.c: inline unlink_heap_page which was called only once
2023-09-15 13:33:52 +09:00
Yukihiro "Matz" Matsumoto
0f69e93664
gc.c: inline link_heap_page which was called once
2023-09-15 13:33:51 +09:00
Yukihiro "Matz" Matsumoto
117fcfc8e9
gc.c: stop using bidirectional link for free_heaps
...
Reduce size of the heap pages again; ref #6041
2023-09-15 13:33:51 +09:00
Yukihiro "Matz" Matsumoto
e1c96b709a
Merge pull request #6045 from dearblue/presym-escape.2
...
Fixes escape sequence bug and enhancements in Presym scanning
2023-09-15 13:11:26 +09:00
dependabot[bot]
d8ad654460
build(deps): bump super-linter/super-linter from 5.2.1 to 5.2.2
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.2.1 to 5.2.2.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.2.1...v5.2.2 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-09-13 14:08:56 +00:00
Yukihiro "Matz" Matsumoto
d708931b10
gc.c: revert 38b9a25e83
...
Fix #6041
2023-09-09 14:31:13 +09:00
dearblue
25f360803c
Fixes escape sequence bug and enhancements in Presym scanning
...
In #6011 , a hexadecimal escape sequence followed by a hexadecimal character would cause a compile error.
Also, avoid using "Numbered Parameter" which older Ruby does not have (e.g. AppVeyor).
ref. #6044
2023-09-08 22:57:24 +09:00
Yukihiro "Matz" Matsumoto
5eddccf89a
gc.c: remove unnecessary symbol local variables
2023-09-08 14:15:54 +09:00
Yukihiro "Matz" Matsumoto
d7b2e3ab14
mruby-compiler/parse.y: add print name for identifier tokens
2023-09-05 23:29:24 +09:00
Yukihiro "Matz" Matsumoto
e8841fbf58
gc.h: move mrb_heap_page definition to gc.c
2023-09-05 23:29:24 +09:00
Yukihiro "Matz" Matsumoto
acf5b74daa
vm.c (ary_new_from_regs): avoid mrb_ary_push()
...
Use mrb_ary_new_from_values(), which is faster instead.
2023-09-05 23:29:23 +09:00
Yukihiro "Matz" Matsumoto
9914243d68
vm.c: use direct array access if possible
2023-09-05 23:29:23 +09:00
Yukihiro "Matz" Matsumoto
0eef05cc00
array.c (mrb_ary_to_s): use direct array access
2023-09-05 23:29:23 +09:00
Yukihiro "Matz" Matsumoto
159ff5b28d
mrbgems/mruby-struct/src/struct.c: use direct array access
...
Unless we need boundary check, we don't need to use mrb_ary_ref().
2023-09-05 23:29:23 +09:00
Yukihiro "Matz" Matsumoto
1578f4bb99
mruby-data/data.c: use direct array access
...
Unless we need boundary check, we don't need to use mrb_ary_ref()
2023-09-05 23:29:23 +09:00
Yukihiro "Matz" Matsumoto
4cf810e4ea
Merge pull request #6042 from mruby/dependabot/github_actions/actions/checkout-4
...
build(deps): bump actions/checkout from 3 to 4
2023-09-05 23:28:55 +09:00
dependabot[bot]
f893c18088
build(deps): bump actions/checkout from 3 to 4
...
Bumps [actions/checkout](https://github.com/actions/checkout ) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases )
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md )
- [Commits](https://github.com/actions/checkout/compare/v3...v4 )
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-09-04 14:59:02 +00:00
Yukihiro "Matz" Matsumoto
792459e63d
Merge pull request #6040 from dearblue/puts-eol
...
Convert to string before output in `puts`
2023-08-30 22:30:58 +09:00
Yukihiro "Matz" Matsumoto
a20fbe54b9
mrbgems/mruby-test/mrbgem.rake: stop mrb isolation for each test file
...
It reduces the number of `mrb_state` initialization in `mrbtest`. But at
the same time, each test in a gem shares states (classes, methods, etc.)
2023-08-30 18:32:48 +09:00
Yukihiro "Matz" Matsumoto
a67f32561f
test/t/codegen.rb: test 127 arguments with break not next
...
In addition, avoid using undefined constant `A` because it terminates
actual execution by `NameError`.
2023-08-30 18:28:59 +09:00
dearblue
301bcc636e
Convert to string before output in puts
...
For example, evaluating `puts nil` raised `NoMethodError` before.
2023-08-29 21:59:09 +09:00
Yukihiro "Matz" Matsumoto
a17fdb7481
AUTHORS: update entries [ci skip]
2023-08-28 10:59:29 +09:00
Yukihiro "Matz" Matsumoto
b85b6822b2
hash.c (mrb_hash_aset): avoid slower mrb_get_args()
2023-08-26 22:30:20 +09:00
Yukihiro "Matz" Matsumoto
0578e518e6
src/vm.c: adjust mrb_gc_protect() for kdict argument
...
It was called repeatedly in some cases.
2023-08-25 23:12:08 +09:00
Yukihiro "Matz" Matsumoto
1e385692d1
Rakefile: remove default build target directories in deep_clean
...
Ref #6038 , #6032
2023-08-24 12:57:27 +09:00
Yukihiro "Matz" Matsumoto
f43f2fc8f3
mruby-socket/socket.c: use internal name for instance variables
...
For Socket::Option objects.
2023-08-23 11:27:03 +09:00
Yukihiro "Matz" Matsumoto
2160be7db7
mruby-socket/socket.rb: remove unused canonname accessor
2023-08-22 23:27:08 +09:00
Yukihiro "Matz" Matsumoto
95e09c0c95
mruby-method: implement Kernel#singleton method in C
...
- Also fixes error message inconsistency
- Avoid unnecessary method object allocation if possible
2023-08-22 10:53:52 +09:00
Yukihiro "Matz" Matsumoto
a16b2b0e12
Merge pull request #6038 from dearblue/revert-6032-update-rake-task-clean
...
Revert "Rake: update task clean to remove `bin` and `build` folders"
2023-08-21 22:28:17 +09:00
Yukihiro "Matz" Matsumoto
182c06a46b
codedump.c: fflush() output
2023-08-21 17:27:03 +09:00
Yukihiro "Matz" Matsumoto
982a378425
mruby-print/print.c: stop flushing every time in printstr
...
Instead, call `fflush` at the end of `print` method, if stdout is
connected to a tty.
2023-08-21 12:47:44 +09:00
Yukihiro "Matz" Matsumoto
192e6e3b9f
mruby-print/print.c: remove internal method __printstr
...
Instead, implement `print` method in C and use it from mrblib/print.rb
2023-08-21 12:47:44 +09:00
dearblue
14a0cc4b7b
Revert "Rake: update task clean to remove bin and build folders"
2023-08-18 22:36:21 +09:00
Yukihiro "Matz" Matsumoto
bd41dfbcb9
mruby-socket/socket.c (socket_option_inspect): readable family name
...
Print readable name for know protocol families.
2023-08-17 10:54:59 +09:00
Yukihiro "Matz" Matsumoto
2fb478db76
Merge pull request #6037 from mruby/dependabot/github_actions/super-linter/super-linter-5.2.1
...
build(deps): bump super-linter/super-linter from 5.2.0 to 5.2.1
2023-08-17 10:53:10 +09:00
dependabot[bot]
1dbfeab2df
build(deps): bump super-linter/super-linter from 5.2.0 to 5.2.1
...
Bumps [super-linter/super-linter](https://github.com/super-linter/super-linter ) from 5.2.0 to 5.2.1.
- [Release notes](https://github.com/super-linter/super-linter/releases )
- [Changelog](https://github.com/super-linter/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/super-linter/super-linter/compare/v5.2.0...v5.2.1 )
---
updated-dependencies:
- dependency-name: super-linter/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-08-16 14:29:51 +00:00
Yukihiro "Matz" Matsumoto
58e10f16e9
mruby-socket/socket.c: include Socket::Constants in C init
2023-08-16 13:23:56 +09:00
Yukihiro "Matz" Matsumoto
1d7c00e920
mruby-socket/socket.c: implement whole Socket::Option class in C
...
`mruby-pack` gem no longer needed.
2023-08-15 15:29:36 +09:00
Yukihiro "Matz" Matsumoto
83b6a63c16
mruby-socket/socket.c: implement accessors in C
2023-08-15 07:35:29 +09:00
Yukihiro "Matz" Matsumoto
e209f0a220
mruby-socket/socket.c (socket_option_init): add integer type checks
2023-08-15 07:31:04 +09:00
Yukihiro "Matz" Matsumoto
892596d372
mruby-socket/socket.c: implement Socket::Option#initialize in C
2023-08-14 23:32:22 +09:00
Yukihiro "Matz" Matsumoto
2a3af5dc67
Merge pull request #6036 from jbampton/add-pre-commit-hook
...
pre-commit: add hook `forbid-submodules`
2023-08-13 22:05:20 +09:00
Yukihiro "Matz" Matsumoto
d53aa54e3b
Merge pull request #6035 from jbampton/fix-super-linter-path
...
Fix Super-Linter action path
2023-08-13 22:04:33 +09:00
Yukihiro "Matz" Matsumoto
3310e10318
mruby-test/mrbgem.rake: fix mrb_state handling bug
...
You should not pass values from different mrb_state. No one has ever
used test_args for gems, the issue has not been realized.
2023-08-13 20:02:01 +09:00
John Bampton
6ac6d690dd
pre-commit: add hook forbid-submodules
...
https://github.com/pre-commit/pre-commit-hooks#forbid-submodules
If you want to ban them entirely use forbid-submodules.
Really this is just one extra check or test we can have.
2023-08-13 11:17:22 +10:00
John Bampton
9051367fd8
Fix Super-Linter action path
...
https://github.com/super-linter/super-linter
https://github.com/marketplace/actions/super-linter
They changed the organization name to "super-linter" from "github" for the Super-Linter Action
2023-08-13 11:03:28 +10:00
Yukihiro "Matz" Matsumoto
4769a474a4
mruby-test/mrbgem.rake: remove unnecessary arena_index
2023-08-12 23:43:48 +09:00
Yukihiro "Matz" Matsumoto
435cce7efd
mruby-socket/socket.c: use mrb_iv_get() instead of accessors
2023-08-12 20:19:32 +09:00
Yukihiro "Matz" Matsumoto
c675c0cbb1
mruby-socket/socket.c: use mrb_ensure_int_type()
2023-08-11 23:10:02 +09:00
Yukihiro "Matz" Matsumoto
34e7a0ef4b
mruby-socket/socket.c (socket_option_class): a new function
...
To retrieve Socket::Option class from C functions.
2023-08-11 23:07:38 +09:00
Yukihiro "Matz" Matsumoto
0864f44c24
mruby-socket/socket.c: use mrb_obj_new() instead of mrb_obj_funcall()
2023-08-09 18:45:42 +09:00
Yukihiro "Matz" Matsumoto
08a780edd6
mruby-socket/socket.c: rename a local variable for clarity (res0 -> addr)
2023-08-09 14:33:14 +09:00
Yukihiro "Matz" Matsumoto
edf3f1226c
mruby-socket/socket.c: pass klass to gen_addrinfo
2023-08-09 14:33:14 +09:00
Yukihiro "Matz" Matsumoto
9e37a490f8
mruby-socket/socket.c: narrow local variable scope
2023-08-09 14:33:14 +09:00
Yukihiro "Matz" Matsumoto
10ed2ea03b
mruby-socket/socket.c: use z! argument specifier rather than o
...
`z!` specifier checks if the argument is NULL terminated string or nil.
2023-08-09 14:33:14 +09:00
Yukihiro "Matz" Matsumoto
9d370e0851
mruby-socket/socket.c: ensure struct addrinfo to be freed
...
Instead of referring the last addrinfo via Addrinfo's class variable, we
use `mrb_ensure()` from `mruby-error` gem.
2023-08-09 13:51:25 +09:00
Yukihiro "Matz" Matsumoto
12bd395012
fmt_fp.c: revert 647324ad45c0d779a3c36f0bb7955b8b8fc9f491
...
C++ complier does not allow jump across local variable declaration, even
if we don't access those variables after the destination label.
2023-08-08 11:24:15 +09:00
Yukihiro "Matz" Matsumoto
8591211494
dump.c (mrb_dump_irep): remove a function which only delegates
2023-08-08 11:24:14 +09:00
Yukihiro "Matz" Matsumoto
ceb5086eb3
fmt_fp.c: unify returning code
2023-08-08 11:24:14 +09:00
Yukihiro "Matz" Matsumoto
7e865aec51
mruby-bigint/bigint.c: remove unused mrb_bint_new()
2023-08-08 11:24:14 +09:00
Yukihiro "Matz" Matsumoto
a22ea766e2
mruby-numeric-ext/numeric_ext.c: use local variables.
2023-08-08 11:24:14 +09:00
Yukihiro "Matz" Matsumoto
5de3be1bee
mruby-dir/dir.c (mrb_di_getwd): reduce buffer allocation size
...
Instead of allocating `MAXPATHLEN` buffer string at the beginning,
allocate smaller (64 bytes) buffer, then resize it if needed. The
allocating max size is safe but consumes more memory.
2023-08-08 11:24:14 +09:00
Yukihiro "Matz" Matsumoto
a2649652f1
mruby-os-memsize/memsize.c: fix irep size calculation
...
Need to count the following as well:
- size of pool values
- size of reps array
2023-08-02 07:04:35 +09:00
Yukihiro "Matz" Matsumoto
1bc8ef903e
Merge pull request #6032 from jbampton/update-rake-task-clean
...
Rake: update task clean to remove `bin` and `build` folders
2023-07-31 10:42:01 +09:00
Yukihiro "Matz" Matsumoto
0af6f8ff57
Merge pull request #6033 from jbampton/file-sorter-unique
...
pre-commit: file-contents-sorter ensure each line is unique
2023-07-30 18:30:26 +09:00
John Bampton
a2785a8180
pre-commit: file-contents-sorter ensure each line is unique
...
https://github.com/pre-commit/pre-commit-hooks#file-contents-sorter
2023-07-30 04:25:38 +10:00
John Bampton
a94a8b1cf0
Rake: update task clean to remove bin and build folders
2023-07-30 03:51:48 +10:00
Yukihiro "Matz" Matsumoto
bbd4edc607
mruby-data/data.c (mrb_data_ref): remove code duplication
2023-07-29 08:42:25 +09:00
Yukihiro "Matz" Matsumoto
8d2f9b3d12
mruby-data/data.c: skip inefficient env for first some accessors
2023-07-28 23:45:25 +09:00
Yukihiro "Matz" Matsumoto
1e1184f62d
mruby-pack/pack.c (read_tmpl): should consume skips in the function
2023-07-28 17:05:49 +09:00
Yukihiro "Matz" Matsumoto
0542d6bad4
debug.c (mrb_packed_int_encode): remove end argument
...
The function requires the buffer bigger than `mrb_packed_int_len()`
anyway, so we don't need boundary checks for each iteration. Should
makes the function a little bit faster.
2023-07-28 17:05:38 +09:00
Yukihiro "Matz" Matsumoto
5b2056efda
Merge pull request #6031 from jbampton/pre-commit-autoupdate
...
Run `pre-commit autoupdate` and update `codespell.txt`
2023-07-25 10:57:03 +09:00
John Bampton
0464ca3870
Run pre-commit autoupdate
2023-07-24 22:26:53 +10:00
John Bampton
b66b67beda
Update codespell.txt
2023-07-24 22:25:03 +10:00
Yukihiro "Matz" Matsumoto
1535e031df
mruby-pack/pack.c (read_tmpl): direct return from skipping directives
...
We used to read counts after spaces, for example `pack("j 4")` read `4`
as counts after a space.
2023-07-24 18:03:39 +09:00
Yukihiro "Matz" Matsumoto
a5a13ad35f
mruby-pack/pack.c (read_tmpl): read_tmpl to return dir
...
Use return value for directives information.
2023-07-24 18:03:39 +09:00
Yukihiro "Matz" Matsumoto
8a3d52f494
mruby-pack/pack.c (read_tmpl): rename PACK_DIR_INVALID
...
The value is used for spaces and comments, so the term "skip" is more
appropriate than "invalid".
2023-07-24 18:03:38 +09:00
Yukihiro "Matz" Matsumoto
e17f3256c6
mruby-pack/pack.c (read_tmpl): support comments in derectives
2023-07-24 18:03:38 +09:00
Yukihiro "Matz" Matsumoto
5d0016186f
numeric.c (mrb_float_to_str): avoid memcpy()
2023-07-24 18:03:38 +09:00
Yukihiro "Matz" Matsumoto
0eceadd037
mruby-pack/test/pack.rb: test B/b directives
2023-07-24 18:03:38 +09:00
Yukihiro "Matz" Matsumoto
e7021f190a
mruby-pack/pack.c (pack_bstr): support B/b directives
2023-07-24 18:03:38 +09:00
Yukihiro "Matz" Matsumoto
05549410d9
mruby-pack/pack.c (read_tmpl): check unknown directives
2023-07-24 18:03:38 +09:00
Yukihiro "Matz" Matsumoto
2a1e3a572c
mruby-pack/pack.c (read_tmpl): support J/j template in pack
...
J/j is available since Ruby 2.3.
2023-07-24 18:03:37 +09:00
Yukihiro "Matz" Matsumoto
663f936ba8
Merge pull request #6030 from jbampton/standardize-dots
...
Standardize docs to use 3 dots: `...`
2023-07-24 08:21:16 +09:00
Yukihiro "Matz" Matsumoto
0876cf82ff
Merge pull request #6028 from jbampton/fix-super-linter-button
...
Fix Super-Linter button in README
2023-07-24 08:20:06 +09:00
John Bampton
14b4f5953b
Standardize docs to use 3 dots: ...
2023-07-23 03:39:03 +10:00
Yukihiro "Matz" Matsumoto
455a5689f3
lib/mruby/build/command.rb: skip mrbgems in parent directory; fix #6029
...
If `mrbgems` is included in the parent directory path (MRUBY_ROOT), it
confuses gem path and build path.
2023-07-17 13:24:47 +09:00
Yukihiro "Matz" Matsumoto
f84f129d65
AUTHORS: update entries [ci skip]
2023-07-17 12:18:10 +09:00
Yukihiro "Matz" Matsumoto
5e7d763e91
variable.c (mrb_obj_iv_set_force): check namespace_p beforehand
...
To reduce number of assign_class_name() invocation.
2023-07-17 12:09:28 +09:00
John Bampton
95fbacb1dc
Fix Super-Linter button in README
...
Updated the button to the latest format seen here:
https://github.com/marketplace/actions/super-linter#add-super-linter-badge-in-your-repository-readme
2023-07-15 20:49:58 +10:00
Yukihiro "Matz" Matsumoto
82a48bd455
error.c (mrb_bug): avoid formatting in mrb_bug()
...
Since mrb_bug() would be called under the abnormal situation (and should
not be called if possible), the process should be minimal.
2023-07-14 21:48:11 +09:00
Yukihiro "Matz" Matsumoto
d6d434eb3f
Inline loop variables everywhere
2023-07-13 08:05:00 +09:00
Yukihiro "Matz" Matsumoto
d4a03be96b
mruby-string-ext/string.c (str_casecmp): small refactoring
2023-07-12 09:14:45 +09:00
Yukihiro "Matz" Matsumoto
2af0ff52e9
backtrace.c (count_backtrace_i): remove empty callback
...
Instead specifying NULL as function argument of each_backtrace()
count the number of callbacks.
2023-07-11 07:17:19 +09:00
Yukihiro "Matz" Matsumoto
6f99806d5b
backtrace.c (packed_backtrace): remove count_backtrace()
...
Since we have stop calling mrb_debug_get_position() in each_backtrace(),
we don't need to craft special function count_backtrace(). We just use
each_backtrace() to count the number of backtraces.
2023-07-11 06:59:09 +09:00
Yukihiro "Matz" Matsumoto
316119069d
backtrace.c (each_backtrace): skip callinfo without debug_info
2023-07-10 07:57:02 +09:00
Yukihiro "Matz" Matsumoto
7aa914b4d4
cdump.c (cdump_debug): restore arena index at the end of the function
2023-07-10 07:26:19 +09:00
Yukihiro "Matz" Matsumoto
c57610ad8a
backtrace.c (packed_backtrace): fix broken ciidx
...
- fix at higher level to remove redundancy
- ciidx should always be smaller than ci stack length
2023-07-10 07:05:27 +09:00
Yukihiro "Matz" Matsumoto
9c61c66045
gc.c (mrb_obj_alloc): clarify the heap initialization
2023-07-09 22:59:58 +09:00
Yukihiro "Matz" Matsumoto
eebbc6eaa4
gc.c (mrb_obj_alloc): gc->heaps may be NULL
2023-07-07 06:53:19 +09:00
Yukihiro "Matz" Matsumoto
af85b1fbed
gc.c (gc_mark_gray_list): cut gcnext link
2023-07-06 22:57:14 +09:00
Yukihiro "Matz" Matsumoto
aa5ffb686f
mruby-os-memsize: more precise memory size for method tables
2023-07-06 16:12:51 +09:00
Yukihiro "Matz" Matsumoto
0a4473bf64
mruby-socket/socket.c: fix indentation
2023-07-04 17:50:37 +09:00
Yukihiro "Matz" Matsumoto
0558b1abd8
backtrace.c: reorder functions for clarity
2023-07-03 15:26:45 +09:00
Yukihiro "Matz" Matsumoto
97b60e7fb1
backtrace.c (backtrace_location): defer retrieving positions
...
Instead of calling `mrb_debug_get_position` in the `each_backtrace`, we
just keep `irep` and `idx` information in the backtrace_location, and
get the exact position in `mrb_unpack_backtrace` which may not be called
if exceptions are handled in the `rescue` clauses.
2023-07-03 15:21:16 +09:00
Yukihiro "Matz" Matsumoto
40bdd65ce6
backtrace.c (each_backtrace): return number of traces iterated
2023-07-03 15:20:24 +09:00
Yukihiro "Matz" Matsumoto
70b49eaef2
debug.c (debug_get_line): remove obsolete debug line types
...
- mrb_debug_line_ary
- mrb_debug_line_flat_map
Those two are no longer used, so we can safely remove the support.
2023-07-03 15:16:29 +09:00
Yukihiro "Matz" Matsumoto
ea649e70b8
mruby-pack/pack.c (mrb_pack_pack): use direct array buffer access
...
We don't need index wrap-around not boundary check here, so we can use
faster direct array access.
2023-06-29 22:54:58 +09:00
Yukihiro "Matz" Matsumoto
0c4f5a4093
backtrace.c (mrb_unpack_backtrace): make the function static
2023-06-29 22:54:09 +09:00
Yukihiro "Matz" Matsumoto
e563a3cb2c
backtrace.c (packed_backtrace): reduce unnecessary calls
...
Instead of calling each_backtrace() twice, use a new function
count_backtrace().
2023-06-28 21:53:17 +09:00
Yukihiro "Matz" Matsumoto
f1d6af08cf
gc.c: inline heap page linkage
2023-06-27 15:48:33 +09:00
Yukihiro "Matz" Matsumoto
38b9a25e83
gc.c (mrb_obj_alloc): remove free_next,free_prev from heap pages
...
It used to be maintain heap pages with allocatable objects (free_heaps)
but we can save two words (16 bytes) per page by scanning live heap pages.
2023-06-27 15:48:25 +09:00
Yukihiro "Matz" Matsumoto
695ad6ea95
gc.c (incremental_sweep_phase): freed need not to be smaller than page size
2023-06-26 17:14:43 +09:00
Yukihiro "Matz" Matsumoto
b2110c23a1
Merge pull request #6023 from dearblue/expose-headers
...
"expose_header_files" task split per build
2023-06-24 15:35:31 +09:00
Yukihiro "Matz" Matsumoto
a3365d8b3f
gc.c (obj_free): need not to unshare env object when freeing fibers
...
Since when env objects reference the context, we no longer need to
unshare (stack reallocate) env objects. Currently all env objects
referenced from fibers are already recycled, so we removed unnecessary
code altogether.
2023-06-23 23:06:15 +09:00
Yukihiro "Matz" Matsumoto
fc9fffc5b5
kernel.rb (_inspect): _inspect method no longer needed
2023-06-22 23:32:31 +09:00
Yukihiro "Matz" Matsumoto
6ae6b63aaf
mruby-struct: add recursive inspect check instead of _inspect hack
2023-06-22 12:53:51 +09:00
Yukihiro "Matz" Matsumoto
849963b81e
variable.c (mrb_obj_iv_inspect): support recursion detection
2023-06-21 23:36:59 +09:00
Yukihiro "Matz" Matsumoto
0713f2a840
mruby-set/set.rb (inspect): add recursive inspect check to Set#inspect
2023-06-20 11:25:49 +09:00
Yukihiro "Matz" Matsumoto
113565a1c5
hash.c (mrb_hash_to_s): add recursive inspect check to Hash#inspect
2023-06-20 11:18:38 +09:00
Yukihiro "Matz" Matsumoto
5cb0c7463b
array.c (mrb_ary_to_s): add recursive check to Array#inspect
2023-06-20 07:06:33 +09:00
Yukihiro "Matz" Matsumoto
e2bbf75d58
kernel.c: prepare for new recursive inspect check
...
Like previous recursive `<=>` check, scan call stack to detect recursive
`inspect` calls. We no longer need incomplete `_inspect` hack to pass
around a hash table to record objects currently inspecting.
2023-06-20 07:04:28 +09:00
Yukihiro "Matz" Matsumoto
75c8ffddf5
object.c (mrb_equal) move mrb_equal() back to object.c
2023-06-20 06:45:05 +09:00
Yukihiro "Matz" Matsumoto
89a1719a13
compar.rb: use equal?() instead of ==
...
To avoid unnecessary infinite recursion.
2023-06-19 15:33:13 +09:00
dearblue
fdec32a8f2
"expose_header_files" task split per build
...
If there are multiple build targets, it should be preferable to have the task processed at each of them.
2023-06-18 21:22:31 +09:00
Yukihiro "Matz" Matsumoto
7f85ae2c48
Merge pull request #6022 from chasonr/msdos-build
...
Build configuration for MS-DOS and DJGPP
2023-06-18 18:13:24 +09:00
Ray Chason
23e9befbc0
Changes to cross-compile with DJGPP
2023-06-17 17:20:33 -04:00
Ray Chason
853b25972e
Build configuration for MS-DOS
2023-06-17 17:20:20 -04:00
Yukihiro "Matz" Matsumoto
a638a71c72
test/hash.rb: remove some inspect/to_s tests
...
CRuby does prohibits Hash modification during iteration, so remove those
self modifying inspect/to_s.
2023-06-17 17:56:41 +09:00
Yukihiro "Matz" Matsumoto
20552fe176
hash.c (mrb_hash_foreach): wrap function call with h_check_modified
...
If the iterating hash is modified in the function, h_each loop may
crash accessing modified (and probably deallocated) internal data.
2023-06-17 10:55:55 +09:00
Yukihiro "Matz" Matsumoto
e502fd88b9
kernel.c (mrb_cmp_m): check recursive <=> calls
...
If previous `<=>` method invocation with same arguments is detected in
the stack trace, this `<=>` call must be recursive and can cause stack
overflow.
2023-06-17 09:18:55 +09:00
Yukihiro "Matz" Matsumoto
7c9cb0901c
kernel.c (mrb_equal): simplify the code
2023-06-16 13:45:58 +09:00
Yukihiro "Matz" Matsumoto
5e4cecf766
internal.h: add mrb_obj_equal_m to internal.h
2023-06-15 23:36:27 +09:00
Yukihiro "Matz" Matsumoto
a04d18bb6d
kernel.c (mrb_eqq_m): rename function equal -> eqq
...
This function implements `Kernel#===` and it's usually abbreviated to
`eqq` not `equal`.
2023-06-15 23:32:41 +09:00
Yukihiro "Matz" Matsumoto
359c630d73
kernel.c (mrb_equal): move mrb_equal() from object.c
2023-06-15 23:31:45 +09:00
Yukihiro "Matz" Matsumoto
2be7cba8f5
kernel.c (obj_respond_to): refactoring
...
- skip basic_obj_respond_to(); call mrb_respond_to() directly
- narrower scope for `mrb_sym rtm_id`
- use mrb_func_basic_p() to detect override
- use mrb_funcall_id() to avoid local mrb_value array
2023-06-14 11:41:21 +09:00
Yukihiro "Matz" Matsumoto
347586e400
kernel.c: define respond_to_missing? method
2023-06-14 11:31:55 +09:00
Yukihiro "Matz" Matsumoto
e96d90dab2
Merge pull request #6017 from jbampton/standardize-pre-commit-config
...
Standardize the `pre-commit` config
2023-06-13 15:44:51 +09:00
Yukihiro "Matz" Matsumoto
7125481952
Merge pull request #6021 from jbampton/news-remove-duplicate-cve
...
NEWS: remove duplicate CVE from list
2023-06-13 14:09:59 +09:00
John Bampton
26659ef76c
NEWS: remove duplicate CVE from list
2023-06-13 15:02:57 +10:00
Yukihiro "Matz" Matsumoto
0d863ae85f
Merge pull request #6018 from jbampton/configure-dependabot-for-bundler
...
Configure Dependabot updates for Bundler/Ruby
2023-06-13 13:50:40 +09:00
Yukihiro "Matz" Matsumoto
c99403d635
Merge pull request #6020 from jbampton/fix-markdown-link
...
Enable markdownlint rule MD052
2023-06-13 13:49:49 +09:00
Yukihiro "Matz" Matsumoto
a332ea1f67
Merge pull request #6019 from jbampton/docs-remove-duplicate-cve
...
docs: remove duplicate CVE from list
2023-06-13 13:47:55 +09:00
John Bampton
50e0aad288
Enable markdownlint rule MD052
...
https://github.com/DavidAnson/markdownlint/blob/main/doc/md052.md
2023-06-13 14:34:52 +10:00
John Bampton
343a633fb0
doc: fix Markdown reference links
2023-06-13 14:31:29 +10:00
John Bampton
36f2d1733b
docs: remove duplicate CVE from list
2023-06-13 13:27:23 +10:00
John Bampton
760ce71af0
Configure Dependabot updates for Bundler/Ruby
...
https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/about-dependabot-version-updates#supported-repositories-and-ecosystems
In future this will keep the Gemfile.lock up to date
2023-06-13 12:44:00 +10:00
John Bampton
f14f2ae174
Standardize the pre-commit config
2023-06-13 08:54:17 +10:00
Yukihiro "Matz" Matsumoto
17720c9b7b
variable.c (const_get): avoid mrb_funcall if possible
...
Directly call mrb_const_missing() if const_missing is not overridden.
2023-06-12 23:47:35 +09:00
Yukihiro "Matz" Matsumoto
89f7bb1056
use more lightweight mrb_funcall_argv instead of mrb_funcall_id
2023-06-12 14:22:04 +09:00
Yukihiro "Matz" Matsumoto
39a29a7de1
mruby-bin-debugger/mrbgem.rake: fix defines configuration
...
`spec.build.defines` should be update inline. Otherwise, configuration
may differ from file to file.
2023-06-12 13:07:57 +09:00
Yukihiro "Matz" Matsumoto
a867fb0703
class.c: remove methID from the example and codespell dict
2023-06-09 17:56:21 +09:00
Yukihiro "Matz" Matsumoto
b6181ae58a
mruby/gc.h: reorder mrb_gc members to reduce alignment gaps
2023-06-09 17:19:09 +09:00
Yukihiro "Matz" Matsumoto
727a2ec793
gc.c (obj_free): use simpler is_dead()
...
`mrb_object_dead_p()` is heavier if the pointer is (or used to be) an
object in the heaps.
2023-06-07 17:03:32 +09:00
Yukihiro "Matz" Matsumoto
336b7efb41
gc.c (mrb_incremental_gc): clarify the if-condition
2023-06-06 11:29:48 +09:00
Yukihiro "Matz" Matsumoto
8b8e186688
gc.h: rename majorgc_old_threashold to oldgen_threashold
...
This field means that if you have more old generation objects than
this value, major GC mode will be turned on.
2023-06-06 11:26:35 +09:00
Yukihiro "Matz" Matsumoto
b47c8b738a
gc.c (clear_all_old): fix a generational GC bug
...
This issue was caused by 375d22b that introduced a serious mark
leakage in the generational GC mode.
2023-06-06 07:29:41 +09:00
Yukihiro "Matz" Matsumoto
0bb08718b8
gc.c (incremental_marking_phase): clear gcnext for debugging
2023-06-05 23:31:36 +09:00
Yukihiro "Matz" Matsumoto
6958368daa
gc.c (gc_mark_children): declare a loop variable in the for-statement
2023-06-05 23:30:33 +09:00
Yukihiro "Matz" Matsumoto
623cda5521
gc.c: make color macros literals for debugging clarity
2023-06-05 16:00:04 +09:00
Yukihiro "Matz" Matsumoto
f07281a026
Revert "object.h: make GC color uint8_t that fits in 3 bits"
...
The change made the size of mruby data types bigger on Win.
This reverts commit afcf7fc86d .
2023-06-03 16:55:58 +09:00
Yukihiro "Matz" Matsumoto
93648fc954
gc.c (mrb_env_unshare): fix a write barrier bug
2023-06-02 11:00:13 +09:00
Yukihiro "Matz" Matsumoto
9369679e36
vm.c: reduce local variables
2023-06-01 09:14:39 +09:00
Yukihiro "Matz" Matsumoto
5b61407414
class.c (prepare_singleton_class): defer method table allocation
2023-06-01 09:13:44 +09:00
Yukihiro "Matz" Matsumoto
0d8545e01b
error.c (frozen_error): change specifier from %t to %T
...
- `%t` prints type (class) of the argument
- `%T` prints real class of the argument, skipping TT_ICLASS, etc.
2023-05-31 08:35:54 +09:00
Yukihiro "Matz" Matsumoto
e6c89ef1f9
mruby.h: make mrb_check_frozen to a normal function from inline one
2023-05-31 08:33:58 +09:00
Yukihiro "Matz" Matsumoto
ccdf75c1c2
error.c: a new function mrb_check_frozen_value()
2023-05-31 08:31:13 +09:00
Yukihiro "Matz" Matsumoto
8b39a7825d
Reduce unnecessary mrb_obj_ptr() to mrb_check_frozen()
2023-05-31 08:29:12 +09:00
Yukihiro "Matz" Matsumoto
afcf7fc86d
object.h: make GC color uint8_t that fits in 3 bits
2023-05-31 08:27:23 +09:00
Yukihiro "Matz" Matsumoto
8873229312
codedump.c: fix indentation of OP_SCLASS
2023-05-30 16:08:38 +09:00
Yukihiro "Matz" Matsumoto
6eedf1065d
numeric.c (flo_idiv): add mrb_check_num_exact
2023-05-30 08:54:44 +09:00
Yukihiro "Matz" Matsumoto
795044f82c
internal.h: add mrb_check_num_exact prototype to the header
2023-05-30 08:54:05 +09:00
Yukihiro "Matz" Matsumoto
e84060a900
string.c: rename function str_check_too_big -> str_check_length
2023-05-30 08:40:16 +09:00
Yukihiro "Matz" Matsumoto
f813b5d1d8
string.c (str_new): add string length check
2023-05-29 23:18:44 +09:00
Yukihiro "Matz" Matsumoto
aecaaf011f
string.c (mrb_str_resize): refactor string length check
2023-05-29 23:18:19 +09:00
Yukihiro "Matz" Matsumoto
0a6e1c0ffe
class.c (copy_class): copy source flags as well (except frozen flag)
2023-05-29 22:59:05 +09:00
Yukihiro "Matz" Matsumoto
c0c4219b25
class.c (copy_class): avoid copying method table in some cases
...
To prevent memory leaks
2023-05-29 22:57:59 +09:00
Yukihiro "Matz" Matsumoto
bba2fd84ea
class.h: instance type should occupy 5 bits in flags
2023-05-29 09:27:08 +09:00
Yukihiro "Matz" Matsumoto
e4e3740688
class.c (init_copy): add an assertion
2023-05-29 09:26:45 +09:00
Yukihiro "Matz" Matsumoto
a02894afa3
small cosmetic changes
2023-05-29 09:26:45 +09:00
Yukihiro "Matz" Matsumoto
0ffe9b987a
class.c (mrb_prepend_module): c should not be MRB_TT_ICLASS
2023-05-29 09:26:44 +09:00
Yukihiro "Matz" Matsumoto
6ac10a01e4
Merge pull request #6014 from dearblue/setup_debug.1
...
Fixed visibility of `MRuby::Command::Compiler#setup_debug`
2023-05-29 09:26:32 +09:00
dearblue
a7bee69452
Fixed visibility of MRuby::Command::Compiler#setup_debug
...
In #5977 it was incorrectly set to `private`.
2023-05-26 21:37:29 +09:00
Yukihiro "Matz" Matsumoto
7f887f1928
class.c (mrb_class_initialize): check duplicated initialization
2023-05-26 12:48:34 +09:00
Yukihiro "Matz" Matsumoto
8914c2318c
Merge pull request #6013 from CaptainJet/master
...
Fix Android toolchain
2023-05-26 12:47:08 +09:00
Robert Rowe
fb727a169f
Spacing fix
2023-05-25 19:47:32 -07:00
Robert Rowe
bcb5674676
Update Android building
...
New minimum SDK. NDK longer supports mips, plain armeabi, nor GCC. Fix tooling.
2023-05-25 19:45:14 -07:00
Yukihiro "Matz" Matsumoto
2ad3f0e34b
vm.c (mrb_yield_with_class): keep mid of the callee
...
Otherwise `super` from within blocks may call wrong methods.
2023-05-26 11:17:51 +09:00
Yukihiro "Matz" Matsumoto
9040baa270
vm.c (mrb_yield_with_class): avoid redundant initialization of mid
2023-05-26 11:14:58 +09:00
Yukihiro "Matz" Matsumoto
2b3ecef66c
mruby-data/data.c: use mrb_ary_ref instead of direct memory access
...
Avoid out-of-bound memory access when actual data object size is smaller
than the number of data members.
2023-05-25 09:05:03 +09:00
Yukihiro "Matz" Matsumoto
9bc9ff771d
mruby-data/data.c (mrb_data_s_def): simplify the code
2023-05-25 09:05:03 +09:00
Yukihiro "Matz" Matsumoto
05f4831751
mruby-data/data.c (mrb_data_s_def): add member duplication check
2023-05-25 09:05:03 +09:00
Yukihiro "Matz" Matsumoto
eeab289f87
mruby-data/data.c (mrb_data_ref): avoid out-of-bound access
2023-05-25 09:05:02 +09:00
Yukihiro "Matz" Matsumoto
de69190df5
mruby-struct/struct.c: need to copy the argument array
...
Just in case for stack reallocations.
2023-05-25 09:05:02 +09:00
Yukihiro "Matz" Matsumoto
e05ac91217
mruby-struct/struct.c: update the behavior when actual size differs
...
Assertions may be false and terminate the whole process when actual size
for struct objects are different.
2023-05-25 09:05:02 +09:00
Yukihiro "Matz" Matsumoto
f50e40f291
mruby-struct/struct.c: use mrb_ary_set to simplify the code
...
We don't need to do `mrb_struct_modify()` and calling write barriers by
ourselves for the small performance issue.
2023-05-25 09:05:02 +09:00
Yukihiro "Matz" Matsumoto
0295e6a688
mruby-struct/struct.c (struct_aref_int): update index check
...
Check should use the number of members, not the actual size of the
struct object, which may be smaller than the declared size.
2023-05-25 08:40:46 +09:00
Yukihiro "Matz" Matsumoto
8e579e6552
mruby-data/data.c (mrb_data_ref): check if reader has no argument
2023-05-24 22:45:35 +09:00
Yukihiro "Matz" Matsumoto
ed5fbb5d63
mruby-struct.c (mrb_struct_s_def): check duplicate members
2023-05-24 22:43:09 +09:00
Yukihiro "Matz" Matsumoto
f80192e8ac
mruby-struct/struct.c (struct_s_member): avoid break
...
Direct `return` is more readable, IMO.
2023-05-24 17:59:32 +09:00
Yukihiro "Matz" Matsumoto
c2f3f103bb
mruby-struct/struct.c (mrb_struct_ref): update the function
...
- use `num_members`
- ensure the function takes no argument
- avoid out-of-bound access when struct is failed to initialize
2023-05-24 17:53:41 +09:00
Yukihiro "Matz" Matsumoto
69d33de527
mruby-struct/struct.c (num_members): simplify the code by new argument
2023-05-24 17:51:44 +09:00
Yukihiro "Matz" Matsumoto
52fb2f59d8
mruby-struct/struct.c (struct_aref_sym): simplify the logic
2023-05-24 17:51:03 +09:00
Yukihiro "Matz" Matsumoto
7b7ea70b84
mruby-struct/struct.c (mrb_struct_to_h): RSTRUCT_PTR() may be NULL
...
Especially when you define a member named `initialize`.
2023-05-24 17:48:51 +09:00
Yukihiro "Matz" Matsumoto
53de96426a
mruby-io/io.c (io_init): File.new should not take blocks
2023-05-23 15:34:37 +09:00
Yukihiro "Matz" Matsumoto
67187881c2
mruby-io/io.c (io_init_copy): copy flags before io_buf_init()
2023-05-23 15:17:13 +09:00
Yukihiro "Matz" Matsumoto
8f745b7728
vm.c (OP_ENTER): fix issues by unreferenced kdict and blk
...
There's short a period where kdict and blk are not pointed from the stack.
2023-05-23 14:54:36 +09:00
Yukihiro "Matz" Matsumoto
2f7f797473
remove extra spaces before ;
2023-05-22 12:05:35 +09:00
Yukihiro "Matz" Matsumoto
6a6c0869dc
add a space between for and (
2023-05-22 11:58:23 +09:00
Yukihiro "Matz" Matsumoto
f1a3cfbd3b
add a space between if and (
2023-05-22 11:55:21 +09:00
Yukihiro "Matz" Matsumoto
c32f7915fb
reformat else clause indentation style
2023-05-20 00:21:01 +09:00
Yukihiro "Matz" Matsumoto
eea72ec84a
fix spaces in the type cast expressions (cosmetic changes)
2023-05-18 23:29:16 +09:00
Yukihiro "Matz" Matsumoto
cead78b394
variable.c (iv_rehash): fixed removed check
...
This check removed in 70cc2cc was necessary.
2023-05-17 09:52:00 +09:00
Yukihiro "Matz" Matsumoto
49927a7035
mruby-biding/binding.c: unify get_line and get_filename
2023-05-16 23:40:53 +09:00
Yukihiro "Matz" Matsumoto
15be2a24c3
mruby-proc-ext/proc.c: unify get_line and get_filename
2023-05-16 23:39:51 +09:00
Yukihiro "Matz" Matsumoto
5ead26be3d
vm.c (ci_bidx): inline the function if possible
2023-05-16 22:41:32 +09:00
Yukihiro "Matz" Matsumoto
b10c99bb1b
Merge pull request #6012 from sinisterchipmunk/allow-to-skip-tests-for-specific-mgems
...
Allow tests to be disabled for specific gems; warn about disabled tests
2023-05-16 14:36:40 +09:00
Colin MacKenzie IV
1a0c31130c
Allow tests to be disabled for specific gems; warn about disabled tests
2023-05-15 12:43:37 -04:00
Yukihiro "Matz" Matsumoto
33bd6caf31
Merge pull request #6011 from dearblue/presym-escape
...
Encode and decode escape characters for presym
2023-05-15 00:15:40 +09:00
dearblue
03a42b52ee
Encode and decode escape characters for presym
...
The purpose is to deal with `$"`, which has been treated as three characters including the escape character.
2023-05-14 17:54:13 +09:00
Yukihiro "Matz" Matsumoto
cd276715f8
variable.c: move inline function before usage
2023-05-13 22:52:39 +09:00
Yukihiro "Matz" Matsumoto
f210d3b106
Merge pull request #6010 from jbampton/add-hook-markdown-link-check
2023-05-12 23:31:34 +09:00
John Bampton
ac0e157b89
pre-commit: add hook markdown-link-check
...
https://github.com/tcort/markdown-link-check
2023-05-11 12:37:38 +10:00
John Bampton
de0779d6ca
docs: fix links in Markdown
2023-05-11 12:34:59 +10:00
Yukihiro "Matz" Matsumoto
3d5cc1ab8f
Merge pull request #6007 from dearblue/define_installer
...
Correct the `MRuby::Build#define_installer`
2023-05-10 23:54:27 +09:00
Yukihiro "Matz" Matsumoto
2217201603
Merge pull request #6006 from dearblue/mrbc-final_mrbgems
...
Remove `mrb_final_mrbgems()` in `mrbc.c`
2023-05-09 14:46:51 +09:00
Yukihiro "Matz" Matsumoto
568a7edf1f
Merge pull request #6004 from jbampton/add-info-links-to-workflows
...
yml: document `workflows` with links as comments
2023-05-09 14:45:48 +09:00
Yukihiro "Matz" Matsumoto
feb07d1d1a
Merge pull request #6002 from jbampton/standardize-whitespace-spec-authors
...
mrbgems: standardize `spec.authors` for whitespace and author name
2023-05-08 17:01:23 +09:00
Yukihiro "Matz" Matsumoto
d3f030f02a
Merge pull request #5999 from alpha-netzilla/fix_poppen_mode
...
lib/mruby/build/command.rb: narrow down poppen mode
2023-05-08 17:00:28 +09:00
Yukihiro "Matz" Matsumoto
e545ec3810
Merge pull request #6001 from jbampton/update-docs
...
docs: fix links, grammar and spelling in Markdown
2023-05-08 17:00:03 +09:00
Yukihiro "Matz" Matsumoto
599982454e
Merge pull request #6008 from dearblue/bintest-dirfree
2023-05-07 19:10:59 +09:00
Yukihiro "Matz" Matsumoto
727d83c118
Merge pull request #6009 from dearblue/ghost-bintest
...
Avoid adding `<MRUBY_ROOT>/bintest` which does not exist
2023-05-06 22:28:41 +09:00
dearblue
5a4c319dd8
Avoid adding <MRUBY_ROOT>/bintest which does not exist
...
The `<MRUBY_ROOT>/bintest` directory does not exist in current mruby.
2023-05-06 22:08:48 +09:00
dearblue
eb4c7d0edf
Make "bintest" independent of directory
...
Previously, "bintest" would fail to run unless `MRUBY_ROOT` and `Dir.pwd` were the same.
2023-05-06 22:00:57 +09:00
dearblue
44f9fa1b61
Correct the MRuby::Build#define_installer
...
This is a complement to #5928 .
The previous PR had the following problem:
- The `<INSTALL_DIR>/bin/*` file could not be replaced if the destination of the symbolic link was lost.
- The wrong link destination was written if `MRuby::Build.install_dir` was a relative path.
2023-05-06 21:54:49 +09:00
dearblue
e570ca82a8
Remove mrb_final_mrbgems() in mrbc.c
...
The current `mrb_final_mrbgems()` function is only referenced in the `mrbgem/gem_init.c` file.
Also, the definition in that file makes it a static function.
2023-05-06 21:07:08 +09:00
John Bampton
04a120f7c2
yml: document workflows with links as comments
2023-05-06 08:31:20 +10:00
Yukihiro "Matz" Matsumoto
9033191efa
Merge pull request #6003 from jbampton/label-more-files
...
`.github/labeler.yml`: label more files for `doc`
2023-05-06 06:43:53 +09:00
John Bampton
5fab261d8a
.github/labeler.yml: label more files for doc
2023-05-06 07:19:46 +10:00
John Bampton
63e170170e
mrbgems: standardize spec.authors for whitespace and author name
2023-05-06 06:06:29 +10:00
John Bampton
db3774ea45
docs: fix links, grammar and spelling in Markdown
2023-05-06 04:43:50 +10:00
John Bampton
d63115a0f1
docker: use less image layers and update compose version
...
https://stackoverflow.com/questions/30256386/how-to-copy-multiple-files-in-one-layer-using-a-dockerfile
https://docs.docker.com/compose/compose-file/compose-file-v3/
2023-05-06 01:46:51 +10:00
Yukihiro "Matz" Matsumoto
9b4046f479
Merge pull request #5961 from jbampton/add-docker
...
Add `Docker` to build and run all `mruby` tests. Run `pre-commit` and generate `YARD` docs with Docker
2023-05-05 22:42:33 +09:00
alpha.netzilla
3409c1f309
lib/mruby/build/command.rb: narrow down poppen mode
2023-05-05 19:23:18 +09:00
Yukihiro "Matz" Matsumoto
28a29c6da1
Merge pull request #5997 from jbampton/pre-commit-autoupdate
...
Run `rake checkupdate` -> `pre-commit autoupdate`
2023-05-04 08:36:36 +09:00
Yukihiro "Matz" Matsumoto
ab0f2297ab
Merge pull request #5996 from jbampton/fix-case-of-mruby
...
Change `MRuby` to `mruby`
2023-05-04 08:34:46 +09:00
John Bampton
be722da0d1
pre-commit autoupdate
...
Run `rake checkupdate`
2023-05-03 22:49:34 +10:00
John Bampton
12f64cc6d9
Update codespell.txt. Disable markdownlint rule MD052
2023-05-03 22:44:58 +10:00
John Bampton
06a765a1c2
Change MRuby to mruby
2023-05-03 22:12:59 +10:00
Yukihiro "Matz" Matsumoto
5956496267
lib/mruby/build/command.rb: remove unnecessary block parameter; fix #5995
2023-05-03 12:41:52 +09:00
Yukihiro "Matz" Matsumoto
077d8ad514
symbol.c (sym_intern): check NUL before calling strlen()
...
To avoid accidental buffer overrun if a string without NUL termination
is provided.
2023-05-02 09:45:47 +09:00
Yukihiro "Matz" Matsumoto
19b2c1c73d
symbol.c: remove unused macro
2023-05-02 09:45:23 +09:00
Yukihiro "Matz" Matsumoto
7fd3108201
README.md: update English description (used ChatGPT)
2023-05-02 09:44:49 +09:00
Yukihiro "Matz" Matsumoto
7154526c04
Merge pull request #5994 from masahino/fix_typo_in_io_c
...
fix typo in mrbgems/mruby-io/src/io.c
2023-05-02 09:44:13 +09:00
masahino
ad318e55c0
fix typo MRB_NO_IO_POEPN -> MRB_NO_IO_POPEN
2023-05-02 07:34:30 +09:00
Yukihiro "Matz" Matsumoto
b488f197c5
Merge pull request #5992 from dearblue/doc/directory
...
Replace "folder" with "directory" for consistency
2023-04-30 23:19:40 +09:00
Yukihiro "Matz" Matsumoto
abd1222089
class.h (mrb_class): treat immediate values first
2023-04-30 23:19:00 +09:00
dearblue
5c19b259e4
Replace "folder" with "directory" for consistency
...
Also, use "x/y/z directory" instead of "directory x/y/z" if there is no problem.
2023-04-30 18:32:54 +09:00
Yukihiro "Matz" Matsumoto
70cc2cc173
variable.c (iv_rehash): remove unnecessary checks
2023-04-29 23:17:08 +09:00
Yukihiro "Matz" Matsumoto
5024c3453d
variable.c (iv_put): remove NULL check since t must not be NULL
2023-04-27 17:14:48 +09:00
Yukihiro "Matz" Matsumoto
68d67aee0e
mruby-io/io.c: need to adjust buffer limit before searching; fix #5991
2023-04-26 09:09:05 +09:00
Yukihiro "Matz" Matsumoto
01e5f2a3c8
mruby-io/io.c: fix indent
2023-04-25 23:27:59 +09:00
Yukihiro "Matz" Matsumoto
9a5a9b814f
mruby-catch/catch.c: remove mrb_ prefix from a static function
2023-04-25 23:27:30 +09:00
Yukihiro "Matz" Matsumoto
e0194bba67
mruby-string-ext/string.c: remove mrb_ prefix from static functions
2023-04-25 14:25:15 +09:00
Yukihiro "Matz" Matsumoto
62e8f047b9
mruby-sleep/sleep.c: remove mrb_ prefix from static functions
2023-04-24 12:19:12 +09:00
Yukihiro "Matz" Matsumoto
f116808d80
Merge pull request #5435 from jbampton/add-github-pr-labeler
...
Add the pull request labeler Action
2023-04-23 23:50:06 +09:00
Yukihiro "Matz" Matsumoto
49b887d75f
mruby-object-ext/object.c: remove mrb_ prefix from static functions
2023-04-20 22:40:10 +09:00
Yukihiro "Matz" Matsumoto
2810491587
mruby-class-ext/class.c: remove mrb_ prefix from static functions
2023-04-19 00:12:28 +09:00
Yukihiro "Matz" Matsumoto
c1010624a4
Merge pull request #5989 from dearblue/integrate-eval
...
Integrate `mruby-binding-eval` into `mruby-eval`
2023-04-19 00:06:13 +09:00
Yukihiro "Matz" Matsumoto
ac7e63ab3b
Merge pull request #5986 from dearblue/bytesplice
...
Fix bugs in `String#bytesplice`
2023-04-17 07:17:00 +09:00
Yukihiro "Matz" Matsumoto
ceabb9cac8
Merge pull request #5988 from dearblue/int-inv
...
Returns the value of `Integer#~` from `mrb_bint_rev()`
2023-04-16 23:55:51 +09:00
dearblue
0e00d8e224
Integrate mruby-binding-eval into mruby-eval
...
Currently mruby-eval depends on mruby-binding (formerly mruby-binding-core).
Also, `Kernel#eval` can accept `binding` objects.
With this in mind, it would be better if `Binding#eval` could also be handled by `mrbgems/mruby-eval`.
2023-04-16 21:44:00 +09:00
Yukihiro "Matz" Matsumoto
a959ce5755
Merge pull request #5985 from dearblue/sign-extension
...
Sign extension with `OP_LOADI32` in `get_int_operand()`
2023-04-15 23:25:07 +09:00
dearblue
0279067dc4
Returns the value of Integer#~ from mrb_bint_rev()
...
fixed #5987
2023-04-15 22:39:05 +09:00
dearblue
8665f88791
Allow an empty string for String#bytesplice
2023-04-15 21:26:01 +09:00
dearblue
59931e95c4
Prohibit string lengths less than 0 in String#bytesplice
2023-04-15 21:26:00 +09:00
dearblue
5bc3a48ecb
Handling negative indices in String#bytesplice
2023-04-15 21:25:59 +09:00
dearblue
dcced0016c
Countermeasure to overflow for String#bytesplice
2023-04-15 21:25:58 +09:00
dearblue
73b6c6619c
Need type check for replace by String#bytesplice
2023-04-15 21:25:57 +09:00
dearblue
2e9ac8f448
Returns self for String#bytesplice
2023-04-15 21:25:56 +09:00
dearblue
c981e151ae
Sign extension with OP_LOADI32 in get_int_operand()
...
Previously, the following code did not give the expected result.
```
% bin/mruby -e 'p "%08X" % ~(-1 << 16)'
"..F0000FFFF"
% ruby32 -e 'p "%08X" % ~(-1 << 24)'
"00FFFFFF"
```
For information: this problem arises in the process of folding numbers through optimisation.
2023-04-15 20:52:43 +09:00
Yukihiro "Matz" Matsumoto
836bebc708
mruby-compar-ext/compar.rb: Comparable#clamp to accept nil as arguments
2023-04-14 01:06:29 +09:00
Yukihiro "Matz" Matsumoto
68c58eac91
Merge pull request #5981 from dearblue/binding-only-ruby
...
`Kernel#binding` responds only to calls from Ruby
2023-04-14 01:06:16 +09:00
Yukihiro "Matz" Matsumoto
c80db85ed5
Merge pull request #5980 from dearblue/binding-noise
...
Remove noise in new `mruby-binding`
2023-04-14 01:05:05 +09:00
Yukihiro "Matz" Matsumoto
4f125a3f19
mruby-struct/struct.c: allow struct size differ from members
...
The situation may be caused by `Struct.new(...).alloc` etc.
2023-04-13 07:39:05 +09:00
Yukihiro "Matz" Matsumoto
8af45425d0
mruby-struct/struct.c: Struct.new should take 1+ arguments
2023-04-13 07:39:05 +09:00
Yukihiro "Matz" Matsumoto
bb7b4b67ae
mruby-struct/struct.c (struct_corrupted): fix error message
2023-04-13 07:39:05 +09:00
Yukihiro "Matz" Matsumoto
a7c96edf6f
mruby-struct/struct.c: prohibit Struct.allocate; ref #5979
2023-04-13 07:39:05 +09:00
Yukihiro "Matz" Matsumoto
9822c843e9
mruby-array-ext/array.c: remove mrb_ prefix from static functions
2023-04-13 07:39:05 +09:00
John Bampton
00d43ad960
Add Docker to build and run all mruby tests
...
Run `pre-commit` and generate `YARD` docs with Docker
Update CONTRIBUTING
2023-04-13 00:12:32 +10:00
John Bampton
976ec87100
Add the pull request labeler Action
...
https://github.com/actions/labeler
https://github.com/marketplace/actions/labeler
Verified Action
Update labeler.yml
2023-04-12 19:25:51 +10:00
Yukihiro "Matz" Matsumoto
8d014e9f43
Merge pull request #5984 from mruby/dependabot/github_actions/github/super-linter-5.0.0
...
build(deps): bump github/super-linter from 4.10.1 to 5.0.0
2023-04-12 09:12:00 +09:00
dependabot[bot]
71e78428ea
build(deps): bump github/super-linter from 4.10.1 to 5.0.0
...
Bumps [github/super-linter](https://github.com/github/super-linter ) from 4.10.1 to 5.0.0.
- [Release notes](https://github.com/github/super-linter/releases )
- [Changelog](https://github.com/github/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/github/super-linter/compare/v4.10.1...v5.0.0 )
---
updated-dependencies:
- dependency-name: github/super-linter
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-04-11 14:57:54 +00:00
Yukihiro "Matz" Matsumoto
0df3e68a5d
Merge pull request #5979 from dearblue/allocate-undef
...
Allow `Class#allocate` to be prohibited
2023-04-10 10:45:00 +09:00
dearblue
5cb2764279
Kernel#binding responds only to calls from Ruby
...
This follows the behavior changed in CRuby 3.2.
2023-04-09 21:15:13 +09:00
dearblue
93e07eec1c
Remove noise in new mruby-binding
...
`Binding#eval` should not be defined in `mruby-binding`.
2023-04-09 21:14:33 +09:00
dearblue
d3128ce58a
Allow Class#allocate to be prohibited
...
Calling `Class#allocate` with `UnboundMethod#bind_call` usually succeeds without problems.
If this behavior does not make us happy, we can now prohibit it with `MRB_SET_INSTANCE_TT(klass, MRB_TT_UNDEF)`.
At the same time, it applies to the `Binding`, `Complex`, `Data`, `Float`, `Integer`, `Method`, `Rational` and `UnboundMethod` classes.
2023-04-09 21:14:07 +09:00
Yukihiro "Matz" Matsumoto
c3ba76794f
Merge pull request #5977 from dearblue/setup_debug
...
Make `MRuby::Build#enable_debug` compiler flag setting abstract
2023-04-09 15:51:44 +09:00
dearblue
0f2c1caa96
Make MRuby::Build#enable_debug compiler flag setting abstract
...
Previously, compiler flags were only added for GCC or similar.
The situation has not changed, but it has become easier to improve.
I expect `MRuby::Command::Compiler#setup_debug` to be defined as a singleton method inside the block given to `MRuby::Toolchain.new`.
2023-04-09 11:21:50 +09:00
Yukihiro "Matz" Matsumoto
64536b866b
string.c (str_escape): simplify the logic
2023-04-07 13:53:19 +09:00
Yukihiro "Matz" Matsumoto
d0653ca908
cdump.c: escape filename debug information; fix #5974
...
Windows path separator is "\" so that it needs to be escaped.
2023-04-07 13:51:59 +09:00
Yukihiro "Matz" Matsumoto
27a14f0a9a
vm.c (OP_CMP): fixed wrong numeric comparison for integers; fix #5975
...
MRB_TT_INTEGER value may not be fixnum (immediate integer), so we should
not use mrb_fixnum() here.
2023-04-07 10:46:01 +09:00
Yukihiro "Matz" Matsumoto
761816bf8a
fmt_fp.c (mrb_format_float): change else indentation style
2023-04-06 16:49:08 +09:00
Yukihiro "Matz" Matsumoto
956d0c5127
fmt_fp.c (mrb_format_float): set minimum precision 1 for "%e"
2023-04-06 16:47:43 +09:00
Yukihiro "Matz" Matsumoto
31c99eb99b
debug.c (mrb_debug_get_position): do not keep lp and fp uninitialized
2023-04-06 15:47:24 +09:00
Yukihiro "Matz" Matsumoto
ce86040a0f
Merge pull request #5973 from dearblue/envadjust
...
Small improvements to `envadjust()`
2023-04-06 10:48:49 +09:00
Yukihiro "Matz" Matsumoto
9e4b3af553
Merge pull request #5972 from dearblue/simple-mrb_top_run
...
Simplify `mrb_top_run()`
2023-04-06 10:46:56 +09:00
Yukihiro "Matz" Matsumoto
b4d7b269b0
Merge pull request #5971 from dearblue/simple-raise.2
...
Remove unnecessary branches in `L_RAISE` block
2023-04-06 10:46:02 +09:00
dearblue
17abe548a7
Small improvements to envadjust()
...
- Calculate the difference between `oldbase` and `newbase` only once outside the loop.
- To make sure they are within range, the comparison is done only once instead of twice.
2023-04-05 22:29:27 +09:00
dearblue
b90f59d36e
Simplify mrb_top_run()
2023-04-05 22:11:36 +09:00
dearblue
b46a852acb
Remove unnecessary branches in L_RAISE block
...
The previous `while` loop ends if the catch handler pointer `ch` is not `NULL`.
Supplement to #5843 .
2023-04-05 21:52:21 +09:00
Yukihiro "Matz" Matsumoto
35a3bab369
Merge pull request #5966 from jbampton/add-mruby-debugger
...
Update `default.gembox` add mruby debugger `mrdb`
2023-04-05 15:11:29 +09:00
Yukihiro "Matz" Matsumoto
8e9da2130f
Merge pull request #5968 from jbampton/add-mruby-logo-to-readme
...
Add `mruby` logo to the README
2023-04-05 15:10:26 +09:00
Yukihiro "Matz" Matsumoto
730cbe7c0c
Merge pull request #5969 from jbampton/docs-fix-grammar
...
Fix grammar in `mruby-YOUR-bigint/TODO-HINT.md`
2023-04-05 15:08:44 +09:00
Yukihiro "Matz" Matsumoto
19a2145204
Merge pull request #5970 from jbampton/fix-spelling-of-homepage
...
`README.md` fix spelling: `home-page` -> `homepage`
2023-04-05 15:07:44 +09:00
John Bampton
6467488854
Add mruby logo to the README
...
Center logo, mruby title and linter badge
Fix for YARD and Doxygen output
2023-04-05 15:53:02 +10:00
John Bampton
e9756c77ea
README.md fix spelling: home-page -> homepage
...
https://en.wikipedia.org/wiki/Home_page
2023-04-05 13:39:41 +10:00
John Bampton
ebdb03b4d4
Fix grammar in mruby-YOUR-bigint/TODO-HINT.md
2023-04-05 11:26:05 +10:00
Yukihiro "Matz" Matsumoto
8171edc4eb
Merge pull request #5967 from jbampton/sort-gitignore
...
Sort and remove blank lines from `.gitignore`
2023-04-05 08:05:45 +09:00
John Bampton
076520cac1
Sort and remove blank lines from .gitignore
2023-04-05 03:49:49 +10:00
Yukihiro "Matz" Matsumoto
90e3022936
Merge pull request #5965 from jbampton/fix-word-case-yard
...
Fix word case: `yard` -> `YARD`
2023-04-04 23:12:48 +09:00
John Bampton
b486a3c425
Update default.gembox add mruby debugger mrbd
2023-04-04 19:31:42 +10:00
John Bampton
7082e95fa2
Fix word case: yard -> YARD
...
https://yardoc.org/
2023-04-04 18:20:52 +10:00
Yukihiro "Matz" Matsumoto
b44d757b8c
Merge pull request #5962 from jbampton/code-blocks-add-languages
...
docs: add language `console` to code blocks
2023-04-04 12:09:54 +09:00
Yukihiro "Matz" Matsumoto
76df8d737d
Merge pull request #5960 from dearblue/gem-init-final.2
...
Shrink `<BUILD-DIR>/mrbgems/gem_init.c` if possible
2023-04-04 11:30:21 +09:00
Yukihiro "Matz" Matsumoto
5265e35ad2
mruby-time/time.c: remove mrb_ prefix from static functions
2023-04-03 08:58:33 +09:00
Yukihiro "Matz" Matsumoto
3d2cf0d9bf
mruby-bigint/bigint.c: fix int64/uint64 conversion
...
The functions were totally wrong in digit order and sign treatment. We
didn't notice since they are only called from mruby-time in the m64-i32
configuration.
2023-04-03 08:55:48 +09:00
Yukihiro "Matz" Matsumoto
65897145aa
mruby-time/time.c (mrb_to_time_t): should always initialize usec
2023-04-03 08:46:30 +09:00
Yukihiro "Matz" Matsumoto
875e0b0b59
mruby-time/time.c (time_value_from_time_t): should raise exception
...
When time_t does not fit in mrb_int; ref #5958
2023-04-03 08:38:52 +09:00
Yukihiro "Matz" Matsumoto
dd453080e0
Merge pull request #5958 from dearblue/fixable_time_t_p
...
Need `fixable_time_t_p()` always
2023-04-03 07:34:11 +09:00
John Bampton
f0d6674352
docs: add language console to code blocks
...
https://github.com/github/linguist/blob/79c4aa4706e08f9eb36e46535f0e909f51f3b74d/lib/linguist/languages.yml#L6392
2023-04-03 08:28:59 +10:00
dearblue
73b2e0bf76
Shrink <BUILD-DIR>/mrbgems/gem_init.c if possible
...
If none of the GEMs have `mrblib/` or `src/` directories, generate `mrb_init_mrbgems()` which does nothing, and omit `mrb_final_mrbgems()`.
The impetus was to avoid `gem_funcs[]` becoming a zero-length array, which is not allowed by the C standard.
The problem is caused by #5938 .
2023-04-02 20:28:14 +09:00
Yukihiro "Matz" Matsumoto
c6e7dfe9e5
Merge pull request #5959 from dearblue/mruby-strip
...
Need a dependency to `mruby-compiler` for `mruby-bin-strip`
2023-04-02 08:58:58 +09:00
dearblue
96190dba59
Need a dependency to mruby-compiler for mruby-bin-strip
...
It uses `mrb_irep_remove_lv()` defined in `mrbgems/mruby-compiler/core/codegen.c`.
2023-04-01 23:32:36 +09:00
dearblue
bcce4b7141
Need fixable_time_t_p() always
2023-04-01 23:22:08 +09:00
Yukihiro "Matz" Matsumoto
2de602b869
mruby-eval: add dependency to mruby-binding
2023-04-01 10:37:56 +09:00
Yukihiro "Matz" Matsumoto
eaaa474630
mruby-method/method.c: fix proc comparison for uncovered case
2023-04-01 10:37:16 +09:00
Yukihiro "Matz" Matsumoto
a3fc6ae53c
mruby-proc-ext/proc.c: use mrb_debug_get_position()
2023-04-01 10:37:15 +09:00
Yukihiro "Matz" Matsumoto
6629112291
Merge pull request #5957 from jbampton/clean-up-doc-limitations-md
...
doc/limitations.md: remove whitespace, add code block languages
2023-04-01 10:37:08 +09:00
John Bampton
e76525568a
doc/limitations.md: remove whitespace, add code block languages
2023-04-01 07:52:29 +10:00
Yukihiro "Matz" Matsumoto
58a83f3b9a
codeql-analysis.yml: stop running codeql workflow
2023-03-31 09:43:30 +09:00
Yukihiro "Matz" Matsumoto
85aefa8992
Merge pull request #5955 from LanzaSchneider/master
...
fix: wrong comment for ```mrb_debug_get_filename```
2023-03-31 08:27:27 +09:00
Yukihiro "Matz" Matsumoto
d482eabfa2
mruby-bigint/bigint.c: int.pow(n,m) to take bigint as exponential
2023-03-31 08:26:47 +09:00
Yukihiro "Matz" Matsumoto
62c52d5a28
mruby-bigint/bigint.c: remove unreachable line
2023-03-30 08:18:27 +09:00
Yukihiro "Matz" Matsumoto
35cedfb400
mruby-numeric-ext/numeric.c: Integer#pow fix for 2nd argument type
...
`int.pow()` takes 2nd argument only if 1st argument is an integer.
2023-03-30 08:18:27 +09:00
Lanza
01b03d852f
fix: wrong comment for ``mrb_debug_get_filename``
2023-03-30 06:57:33 +08:00
Yukihiro "Matz" Matsumoto
f1568af0d2
gc.c: fix GC regressions
...
The past fix was wrong.
2023-03-29 08:46:10 +09:00
Yukihiro "Matz" Matsumoto
1f5a4d5386
mruby-method/method.c (method_eql): simplify the logic
2023-03-27 19:21:40 +09:00
Yukihiro "Matz" Matsumoto
553f9ba802
mruby-method/method.c (method_eql): use mrb_proc_eql
2023-03-27 19:15:03 +09:00
Yukihiro "Matz" Matsumoto
fbb3a2426f
proc.c (mrb_proc_eql): define == and eql? for Proc class
2023-03-27 19:14:21 +09:00
Yukihiro "Matz" Matsumoto
ddb2240b5e
proc.c: update ISO section numbers for methods
2023-03-27 11:39:58 +09:00
Yukihiro "Matz" Matsumoto
b885d7387d
proc.c: no need to define Proc.lambda
...
Since Kernel is an ancestor of Kernel module itself recursively.
2023-03-27 11:33:13 +09:00
Yukihiro "Matz" Matsumoto
0f63551def
mruby-method/method.c (method_p): stricter method type check
2023-03-27 11:32:15 +09:00
Yukihiro "Matz" Matsumoto
f4cff664e6
mruby-proc-ext/proc.c: no need to define Kernel.proc
...
Since Kernel is an ancestor of Kernel module itself recursively.
2023-03-27 00:18:57 +09:00
Yukihiro "Matz" Matsumoto
3e7ced5d63
mruby-proc-ext/proc.c: remove prefix from static functions
2023-03-27 00:12:18 +09:00
Yukihiro "Matz" Matsumoto
0bbfec3e8b
mruby-eval: use functions from mruby-binding to simplify the code
2023-03-25 19:12:46 +09:00
Yukihiro "Matz" Matsumoto
11af5db1c3
mruby-binding: renamed from mruby-binding-core
...
The dependency is now:
mruby-binding-eval:
- mruby-binding
- mruby-eval
mruby-proc-binding:
- mruby-binding
mruby-eval:
- mruby-binding [new]
2023-03-24 12:25:57 +09:00
Yukihiro "Matz" Matsumoto
3ef41672ab
mruby-biding-eval: move essential part of the gem to mruby-eval
...
This change makes mruby-binding-eval gem nearly empty, but needed to
make `eval(str, binding)` works as well as `binding.eval(str)`.
2023-03-24 07:33:13 +09:00
Yukihiro "Matz" Matsumoto
910afdc691
mruby-binding-eval: modify struct initialization
2023-03-23 22:10:20 +09:00
Yukihiro "Matz" Matsumoto
5914d9e9d4
mruby-binding-eval: remove unused members from binding_eval_prepar_body
2023-03-23 16:16:52 +09:00
Yukihiro "Matz" Matsumoto
bf9a2501d1
mruby-binding-eval: move non raising code to the parent function
2023-03-22 23:22:45 +09:00
Yukihiro "Matz" Matsumoto
bdbc613ccb
parse.y (mrbc_filename): should not raise exceptions
2023-03-22 17:33:49 +09:00
Yukihiro "Matz" Matsumoto
feabcfe29e
doc/limitations.md: remove an entry regarding binding
...
Since it's no longer a limitation.
2023-03-22 15:26:29 +09:00
Yukihiro "Matz" Matsumoto
501b22a2ac
mruby-binding-eval: renamed from mruby-binding
...
Since this gem only provides `Binding#eval`.
2023-03-22 15:25:23 +09:00
Yukihiro "Matz" Matsumoto
979e8602dd
mruby-binding-core: make mrb_binding_wrap_lvspace static
2023-03-21 16:18:15 +09:00
Yukihiro "Matz" Matsumoto
66ca9722b6
mruby-binding-core (mrb_binding_new): new function
...
Use this function instead of `mrb_binding_alloc` (removed).
2023-03-21 16:17:08 +09:00
Yukihiro "Matz" Matsumoto
88ae5e8cf8
mruby-binding-core: use mrb_binding_wrap_lvspace if possible
2023-03-21 16:10:15 +09:00
Yukihiro "Matz" Matsumoto
495845443c
mruby-binding-core (mrb_binding_p) add new function
2023-03-21 16:10:15 +09:00
Yukihiro "Matz" Matsumoto
35e2779575
Small cosmetic changes (adjust indent, and remove extra space)
2023-03-21 16:10:15 +09:00
Yukihiro "Matz" Matsumoto
0c8404a3e2
mruby-binding: use C implementation of Kernel#eval directly
2023-03-21 16:10:15 +09:00
Yukihiro "Matz" Matsumoto
1c765dc37a
Merge pull request #5902 from dearblue/threadedcode
...
Replace `MRB_NO_DIRECT_THREADING` with `MRB_USE_VM_SWITCH_DISPATCH`
2023-03-18 23:56:04 +09:00
dearblue
f6c9191cd0
Replace MRB_NO_DIRECT_THREADING with MRB_USE_VM_SWITCH_DISPATCH
...
The correct technique now is "Token Threading".
However, the new name was chosen because it was felt that if a different technique was added in the future, there would be no need to replace it.
2023-03-18 17:39:41 +09:00
Yukihiro "Matz" Matsumoto
db11e07497
Merge pull request #5951 from dearblue/mrb_yield
...
Safely retrieve `self` from proc in `mrb_yield()`
2023-03-17 22:54:05 +09:00
dearblue
2675477f07
Safely retrieve self from proc in mrb_yield()
...
Passing a proc generated by the following method to `mrb_yield()` or `mrb_yield_argv()` no longer causes `SIGSEGV`:
- C functions made into proc objects with `mrb_proc_new_cfunc()`.
- A proc object which is the top level of a program generated by `mrb_load_string_cxt()` etc. with `mrbc_context::no_exec` enabled.
See also: #5932
2023-03-17 21:20:48 +09:00
Yukihiro "Matz" Matsumoto
800cb15fc3
limitation.md: describe mruby limitation for keyword arguments; #5952
2023-03-17 18:58:04 +09:00
Yukihiro "Matz" Matsumoto
de70014643
mruby-binding/binding.c: add comment for functions from outer gems
2023-03-16 19:02:23 +09:00
Yukihiro "Matz" Matsumoto
62a8ea7113
mruby-bigint/bigint.c: mrb_bint_add_d, mrb_bint_sub_d only take int
...
Where mrb_bint_add and mrb_bint_sub may take float numbers.
2023-03-15 19:09:02 +09:00
Yukihiro "Matz" Matsumoto
3f7ea47ec1
Merge pull request #5917 from jbampton/remove-super-linter-folder
...
Remove `super-linter.report` folder
2023-03-15 19:07:30 +09:00
Yukihiro "Matz" Matsumoto
4fc69ce3bc
Revert "mruby/throw.h: do not use __builtin_setjmp for GCC; close #5950 "
...
This reverts commit 9cf49d08b4 .
This change caused flaky tests on MinGW. I now remember it was introduced
for MINGW64 to address #5133 . Sorry.
2023-03-14 19:50:15 +09:00
Yukihiro "Matz" Matsumoto
0d07af104b
internal.h: move function prototypes to <mruby/internal.h>
2023-03-14 11:06:44 +09:00
Yukihiro "Matz" Matsumoto
2d975d59ce
Merge branch 'dearblue-binding.4'
2023-03-14 11:05:53 +09:00
Yukihiro "Matz" Matsumoto
6915e75207
Merge branch 'binding.4' of https://github.com/dearblue/mruby into dearblue-binding.4
2023-03-14 11:05:10 +09:00
Yukihiro "Matz" Matsumoto
da2cfa62f4
AUTHORS: update entries [ci skip]
2023-03-13 19:01:32 +09:00
Yukihiro "Matz" Matsumoto
0906cd7593
numeric.c: fix rounding function issues with big numbers
...
- int_ceil
- int_floor
- int_round
- int_truncate
2023-03-13 18:53:17 +09:00
Yukihiro "Matz" Matsumoto
8d1192f8a2
gc.c (mrb_field_write_barrier): change the condition
...
Minor GC may be suspended with the MRB_GC_STATE_SWEEP.
2023-03-13 18:52:03 +09:00
Yukihiro "Matz" Matsumoto
ccca6ec458
gc.c (clear_all_old): simplify the code
...
The function is called only with generational mode.
2023-03-13 18:50:51 +09:00
Yukihiro "Matz" Matsumoto
9a1e6760a8
mruby-bigint: add new functions mrb_bint_add_d, mrb_bint_sub_d
...
Those functions do not normalize the return value to avoid repeated
conversions between Bigints and (small) Integers.
2023-03-13 16:07:17 +09:00
Yukihiro "Matz" Matsumoto
f7cbb319cb
mruby-bigint: remove unused mrb_bint_div_ii() function
2023-03-13 08:10:41 +09:00
Yukihiro "Matz" Matsumoto
33320b08bb
mruby-data: fix uninitialized variable error
2023-03-13 08:09:26 +09:00
Yukihiro "Matz" Matsumoto
7327ca898c
mruby-struct: fix uninitialized variable error
2023-03-13 08:08:30 +09:00
Yukihiro "Matz" Matsumoto
dd0a9e8970
mruby-bigint/bigint.c: remove a condition to stop warnings
2023-03-13 08:06:41 +09:00
Yukihiro "Matz" Matsumoto
9cf49d08b4
mruby/throw.h: do not use __builtin_setjmp for GCC; close #5950
...
https://gcc.gnu.org/onlinedocs/gcc/Nonlocal-Gotos.html
2023-03-13 08:05:55 +09:00
Yukihiro "Matz" Matsumoto
924d605712
vm.c: remove redundant assignment (already done in cipush)
2023-03-13 08:05:55 +09:00
Yukihiro "Matz" Matsumoto
0edb616f51
gc.c: remove time profiling code for debugging
2023-03-13 08:05:54 +09:00
Yukihiro "Matz" Matsumoto
a8d840da19
Merge pull request #5928 from dearblue/task/install
...
Improved `rake install`
2023-03-13 08:05:20 +09:00
Yukihiro "Matz" Matsumoto
938ad70e1e
Merge pull request #5938 from dearblue/reorganize-gem-init-final
...
Reorganize gem init final
2023-03-13 07:52:20 +09:00
dearblue
1432baec1d
Perform chores with mrb_final_mrbgems() function
...
The main purpose is to ignore exceptions raised by the GEMS finalizer.
2023-03-12 14:31:10 +09:00
dearblue
c474ae8cc4
Perform chores with mrb_init_mrbgems() function
...
Make the `mrb_init_mrbgems()` function do the cleanup and error handling.
Instead, simplify processing in the `GENERATED_TMP_mrb_XXX_gem_init()` function.
Previously, `mrb_load_irep()` or `mrb_load_proc()` would kill the process when an exception occurred.
With this patch, it is now caught by `mrb_core_init_protect()`.
2023-03-12 10:25:54 +09:00
Yukihiro "Matz" Matsumoto
629d81f57b
Merge pull request #5937 from dearblue/note-gem-init
...
Add the generator path to the `build/***/gem_init.c` file
2023-03-12 08:01:38 +09:00
Yukihiro "Matz" Matsumoto
894ce40797
Merge pull request #5946 from dearblue/const-search
...
Don't switch constant search path from modules to Object
2023-03-11 16:19:53 +09:00
Yukihiro "Matz" Matsumoto
90e53cad39
Merge pull request #5945 from dearblue/env-internal
...
Avoid exposure for `REnv` objects
2023-03-11 16:18:28 +09:00
Yukihiro "Matz" Matsumoto
7f79ca2cf6
mruby-compiler: need to adjust the line number for do_block; fix #5949
2023-03-11 15:49:35 +09:00
Yukihiro "Matz" Matsumoto
927a9df453
mruby-data/data.c: allow empty Data
2023-03-10 08:52:06 +09:00
Yukihiro "Matz" Matsumoto
c212edec5f
mruby-struct/struct.c: allow empty Struct when a name is not given
2023-03-10 08:52:06 +09:00
Yukihiro "Matz" Matsumoto
fc4fe48a00
mruby-time/time.c: fix error message from localtime_r(3) failure
2023-03-10 08:52:06 +09:00
Yukihiro "Matz" Matsumoto
13cd0e5585
mruby-time/time.c (mrb_time_minus): specify mrb_float directly
...
The `typedef mrb_sec` does not improve readability at all.
2023-03-10 08:52:06 +09:00
Yukihiro "Matz" Matsumoto
e62d672ef3
mruby-time/time.c (mrb_to_time_t): support Bigint if defined
2023-03-10 08:52:06 +09:00
Yukihiro "Matz" Matsumoto
01233f70bd
mruby-bigint/bigint.c: add two new functions to convert to 64bit int
...
- mrb_bint_as_int64()
- mrb_bint_as_uint64()
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
c71408bc0a
mruby-time/time.c (mrb_to_time_t): raise error if obj is not time
...
Or a time-compatible object like a number.
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
7096d277da
mruby-time/time.c: support bigint to time_t if necessary
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
da8c23524f
mruby-time/time.c (mrb_to_time_t): use floor instead of llround
...
Since we should generate `t=(sec+usec)` from a floating point number
`sec` should be `floor(f)` especially for negative numbers, if the place
for `usec` is specified. In contrast, we can `round` the below point
digits if we are going to ignore them. But we now use `round` instead of
`llround` which directly convert `double` to `long long`, to add
boundary check for conversion.
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
2f0265d078
mruby-io/io.c (check_file_descriptor): stop "unused label" warning
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
9a3199cadd
mruby-io/file.c: atime, ctime, mtime to return Bigint if possible
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
a3b84fbb08
mruby-bigint/bigint.c: add 2 new functions for 64 bit integer
...
- mrb_bint_new_int64()
- mrb_bint_new_uint64()
2023-03-10 08:52:05 +09:00
Yukihiro "Matz" Matsumoto
b1d0a3d3aa
etc.c (mrb_float_id): define the function only when necessary
2023-03-10 08:52:04 +09:00
Yukihiro "Matz" Matsumoto
e5de08b692
mruby-time/time.c (time_mktime): should allow year before 1900
...
If the platform use 64 bit time_t, it is possible to represent the year
before 1903. So we should remove this check.
2023-03-10 08:52:04 +09:00
Yukihiro "Matz" Matsumoto
bcd595ad1b
mruby-bigint/bigint.c: add else to skip if check
2023-03-10 08:52:04 +09:00
Yukihiro "Matz" Matsumoto
f1ffedc3fa
vm.c: kdict may be converted to a normal argument; fix #5944
2023-03-10 08:52:04 +09:00
Yukihiro "Matz" Matsumoto
18158c96f5
Merge pull request #5948 from dearblue/cinfo
...
Added note to `CINFO_*` constants
2023-03-10 08:50:26 +09:00
Yukihiro "Matz" Matsumoto
840953b55a
Merge pull request #5947 from dearblue/fiber-resume
...
Remove unreachable codes in `Fiber#resume`
2023-03-10 08:49:12 +09:00
dearblue
ddaf3bdc0f
Added note to CINFO_* constants
2023-03-09 22:13:52 +09:00
dearblue
f4c4809750
Remove unreachable codes in Fiber#resume
...
ref. #5782
2023-03-09 21:40:03 +09:00
dearblue
9c9be44a98
Don't switch constant search path from modules to Object
...
Previously, for example, it was possible to retrieve the `String` class as follows:
```console
% bin/mruby -e 'p Comparable::Enumerable::Errno::GC::Kernel::Math::ObjectSpace::String'
String
```
Note that this patch affects the API function `mrb_const_get()`.
2023-03-05 20:32:56 +09:00
dearblue
38d5ed44e1
Avoid exposure for REnv objects
...
The `REnv` object is difficult to deal with, and it would be ideal if the user did not have to manipulate it directly.
In some previous situations, it was necessary to call `mrb_env_unshare()`, a non-API function, after `mrb_load_string()` or similar.
With this patch, it is no longer necessary for users to use `mrb_env_unshare()` directly, as it is now handled internally simply by using the `mrb_vm_ci_env_clear()` function.
Also, `mrb_vm_ci_env_set()` is demoted from the `MRB_API` function for the same reason.
ref. commit 1ab3da6f08
2023-03-05 17:45:47 +09:00
Yukihiro "Matz" Matsumoto
45ee9cc404
mruby-socket/socket.c: read/write should be redefined on Windows; fix #5943
...
Since normal file descriptors and sockets cannot be mixed on the
platform.
2023-03-04 09:27:43 +09:00
Yukihiro "Matz" Matsumoto
42d3efee1c
mruby-socket/socket.c: read/write should be redefined on Windows; fix #5943
...
Since normal file descriptors and sockets cannot be mixed on the
platform.
2023-03-03 15:30:51 +09:00
Yukihiro "Matz" Matsumoto
011edf6e99
mruby-io/file.c: hide internal methods in backtraces
2023-03-03 14:23:10 +09:00
Yukihiro "Matz" Matsumoto
5237b2cccc
mruby-io/file.c: atime, ctime, mtime check mrb_int overflow
...
When `sizeof(time_t)` is different from `mrb_int`, overflow may happen.
2023-03-03 14:21:05 +09:00
Yukihiro "Matz" Matsumoto
0e51da81bb
mruby-io/file.rb (inspect): include path in the #inspect output
2023-03-03 13:33:30 +09:00
Yukihiro "Matz" Matsumoto
a956ef35a4
mruby-io/file.c: atime, ctime, mtime should raise error
...
For fstat(3) failure.
2023-03-03 13:33:29 +09:00
Yukihiro "Matz" Matsumoto
9c6848a594
mruby-io/io.c (check_file_descriptor): only check EBADF
2023-03-03 13:33:29 +09:00
Yukihiro "Matz" Matsumoto
0529f5fc31
mruby-io/test/file.rb: add tests for File#atime, File#ctime
2023-03-03 13:33:29 +09:00
Yukihiro "Matz" Matsumoto
321cfe9760
mruby-io/file.c: add File#atime and File#ctime
2023-03-03 13:33:29 +09:00
Yukihiro "Matz" Matsumoto
31c1b7bc78
mruby-file: File#mtime has been available for long time
2023-03-03 13:33:29 +09:00
Yukihiro "Matz" Matsumoto
84a4d340a6
mruby-io/file.c (_mtime): return nil instead of false
...
As a Ruby convention, a method should return nil (not false) for the
exceptional value, e.g. String#index. File#_mtime should follow the
convention too.
2023-03-03 13:33:29 +09:00
Yukihiro "Matz" Matsumoto
d86c4a795d
mruby-io does not provide to_path method for implicit conversion
...
mruby does not use implicit type conversion by `to_xxx` (e.g. to_int,
to_str, etc.)
2023-03-03 13:33:29 +09:00
Yukihiro "Matz" Matsumoto
d7f4af04ca
Merge pull request #5939 from jbampton/appveyor-add-visual-studio-2022
...
appveyor: add job for Visual Studio 2022
2023-03-02 15:08:50 +09:00
Yukihiro "Matz" Matsumoto
bdf39fe4af
Merge pull request #5940 from jbampton/remove-misspell
...
Remove `misspell` and update `CONTRIBUTING.md`
2023-03-01 23:47:41 +09:00
Yukihiro "Matz" Matsumoto
0d35fe072e
Merge pull request #5941 from jbampton/simplify-the-editorconfig-file
2023-03-01 23:42:08 +09:00
John Bampton
a874b80dae
Simplify the .editorconfig file
...
We already have `trailing-whitespace` set globally in the `pre-commit` config
and we are also using `spaces` instead of `tabs` except for "Makefiles" which have `tab_width = 8`
Perhaps in future we can enforce line lengths.
https://github.com/mruby/mruby/blob/92ca93c885a6e6d2facd8e9ca3dbf85ac3dce8c9/.pre-commit-config.yaml#L29
https://github.com/mruby/mruby/blob/92ca93c885a6e6d2facd8e9ca3dbf85ac3dce8c9/.pre-commit-config.yaml#L33
2023-03-01 21:34:23 +10:00
John Bampton
2559c93b2b
Remove misspell and update CONTRIBUTING.md
...
It looks like `misspell` is no longer maintained and
the last commit was on `Mar 9, 2018`.
We already run `codespell` and it is an active project
with the last commit 5 days ago.
Also updated the CONTRIBUTING guide with more
information on `pre-commit` as well as listed `codespell`
as the spell checker.
https://github.com/codespell-project/codespell
https://github.com/client9/misspell
https://github.com/client9/misspell/issues/197
2023-03-01 17:49:39 +10:00
John Bampton
47dcb393ca
appveyor: add job for Visual Studio 2022
...
Visual Studio 2022 on Windows is now a 64-bit application.
https://www.appveyor.com/docs/build-environment/#build-worker-images
https://learn.microsoft.com/en-us/visualstudio/ide/whats-new-visual-studio-2022?view=vs-2022#visual-studio-2022-is-64-bit
2023-03-01 03:21:46 +10:00
dearblue
396ca2809f
Add the generator path to the build/***/gem_init.c file
2023-02-28 22:11:14 +09:00
Yukihiro "Matz" Matsumoto
92ca93c885
Merge pull request #5936 from jbampton/remove-duplicate-method-calls
...
benchmark: remove duplicate method calls
2023-02-25 22:10:28 +09:00
Yukihiro "Matz" Matsumoto
b59832ed26
Merge pull request #5935 from jbampton/upgrade-doxyfile
...
Upgrade the `Doxyfile`
2023-02-25 22:09:36 +09:00
John Bampton
d86f4d220f
benchmark: remove duplicate method calls
...
DuplicateMethodCall: Scene#render calls 'nsf * nsf' 3 times
2023-02-25 15:22:49 +10:00
John Bampton
5dd0f74ecf
Upgrade the Doxyfile
...
```
mruby % doxygen -u
warning: Tag 'CLANG_ASSISTED_PARSING' at line 50 of file 'Doxyfile' belongs to an option that was not enabled at compile time.
This tag has been removed.
warning: Tag 'CLANG_OPTIONS' at line 51 of file 'Doxyfile' belongs to an option that was not enabled at compile time.
This tag has been removed.
warning: Tag 'TCL_SUBST' at line 238 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'COLS_IN_ALPHA_INDEX' at line 1075 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'FORMULA_TRANSPARENT' at line 1481 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'LATEX_SOURCE_CODE' at line 1769 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'RTF_SOURCE_CODE' at line 1851 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'DOCBOOK_PROGRAMLISTING' at line 1949 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'PERL_PATH' at line 2094 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'CLASS_DIAGRAMS' at line 2107 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'MSCGEN_PATH' at line 2116 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'DOT_FONTNAME' at line 2158 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'DOT_FONTSIZE' at line 2165 of file 'Doxyfile' has become obsolete.
This tag has been removed.
warning: Tag 'DOT_TRANSPARENT' at line 2391 of file 'Doxyfile' has become obsolete.
This tag has been removed.
Configuration file 'Doxyfile' updated.
```
2023-02-25 12:55:53 +10:00
Yukihiro "Matz" Matsumoto
ee599b25c1
Merge pull request #5934 from jbampton/rake-checkupdate
...
Run `rake checkupdate`
2023-02-25 09:26:26 +09:00
Yukihiro "Matz" Matsumoto
f8a66c88b8
Merge pull request #5933 from jbampton/update-mruby-version-numbers
...
docs: update mruby version to `3.2.0`
2023-02-25 09:26:03 +09:00
John Bampton
d4dd75b82c
Run rake checkupdate
...
`pre-commit autoupdate`
2023-02-25 08:12:50 +10:00
John Bampton
46e42b38f0
docs: update mruby version to 3.2.0
2023-02-25 08:02:45 +10:00
Yukihiro "Matz" Matsumoto
82c67d52fc
Merge pull request #5931 from mruby/stable
...
Merge mruby 3.2.0
2023-02-24 23:19:09 +09:00
mimaki
87260e7bb1
Update version and release date. (mruby 3.2.0 (2023-02-24))
2023-02-24 19:51:12 +09:00
Yukihiro "Matz" Matsumoto
1ab3da6f08
vm.c (ci_env_set): inline ci_env_set()
...
Along with making preparing mrb_vm_ci_env_clar() as a replacement of
mrb_vm_ci_env_set(mrb, NULL).
2023-02-23 17:16:10 +09:00
Yukihiro "Matz" Matsumoto
2c046eb512
mruby.h: replace frequently used inline functions with macros
...
- mrb_gc_arena_save()
- mrb_gc_arena_restore()
2023-02-22 16:35:14 +09:00
Yukihiro "Matz" Matsumoto
d8d1fe27f6
vm.c (stack_extend): inline mrb_stack_extend() in vm.c
2023-02-22 12:05:46 +09:00
Yukihiro "Matz" Matsumoto
43922a5bf9
vm.c (mrb_gc_arena_shrink): use local variable
2023-02-21 21:59:42 +09:00
Yukihiro "Matz" Matsumoto
a21edf75ad
Use mrb_get_arg1() instead of mrb_get_args() for single argument
2023-02-21 16:33:15 +09:00
Yukihiro "Matz" Matsumoto
aecbdf72bf
vm.c (mrb_env_unshare): remove unnecessary mrb_write_barrier() call
...
Since this function does not modify references from env, we don't need
to put write barrier here.
2023-02-21 09:45:17 +09:00
Yukihiro "Matz" Matsumoto
d4cb136deb
kernel.c (mrb_obj_ceqq): skip unnecessary mrb_ary_entry()
...
We have checked the boundary before the call.
2023-02-20 17:33:52 +09:00
Yukihiro "Matz" Matsumoto
76157c5f78
add inline specifier to frequently called functions
...
- entry_deleted_p(): hash.c
- ensure_block(): vm.c
2023-02-19 19:06:37 +09:00
Yukihiro "Matz" Matsumoto
7cbe6894b4
debug.c (mrb_debug_get_position): avoid duplicate calls to get_file()
2023-02-19 19:05:54 +09:00
Yukihiro "Matz" Matsumoto
78137f31c8
error.c (mrb_make_exception): reinvent exception creation
...
The arguments of mrb_make_exception() has changed. I believe no one is
using the function, but beware.
2023-02-18 11:51:33 +09:00
Yukihiro "Matz" Matsumoto
431f83eb8c
error.c (mrb_make_exception): make the function internal
2023-02-17 17:04:09 +09:00
Yukihiro "Matz" Matsumoto
515b2fd144
class.c (mrb_method_added): skip mrb_funcall_id() is possible
...
When `method_added` is not redefined, we don't need to call it since its
default implementation does nothing.
2023-02-16 09:38:26 +09:00
Yukihiro "Matz" Matsumoto
2768fd62a0
Reduce calls to mrb_obj_is_kind_of()
2023-02-15 11:45:10 +09:00
Yukihiro "Matz" Matsumoto
235aaafef2
array.c (mrb_ary_aset): remove unnecessary ary_modify()
...
The `ary_modify()` is called in subsidiary functions.
2023-02-14 23:45:10 +09:00
Yukihiro "Matz" Matsumoto
4384a87516
class.c, vm.c: use loop variable declaration in for statement
2023-02-13 14:16:53 +09:00
Yukihiro "Matz" Matsumoto
58aefd6010
class.c, vm.c: use NULL instead of 0 for pointers
2023-02-13 14:16:30 +09:00
Yukihiro "Matz" Matsumoto
ea0e8f7ea4
numeric.c (flo_mod): use NULL instead of 0
...
In C, we don't use 0 as NULL representation.
2023-02-13 00:08:40 +09:00
dearblue
7c7ed3c27a
Write symbolik links or batch files in INSTALL_DIR
...
Since `bin/mruby-config` now points to a directory relative to itself, it is no longer possible to reach `include/` or `lib/`.
Therefore, avoid placing entities in them.
2023-02-12 23:25:05 +09:00
dearblue
11513bae43
Make bin/mruby-config output a directory based on itself
2023-02-12 23:25:01 +09:00
dearblue
3d996a84cc
Takes the environment variable DESTDIR in rake install
...
If the environment variable `DESTDIR` is set, the writing destination is `<DESTDIR>/<PREFIX>/...`.
It is assumed to be used for package work.
2023-02-12 21:02:31 +09:00
dearblue
0e9a71e50a
Install other build targets with rake install:full
...
Build targets other than "host" will be installed under `<PREFIX>/mruby/<build-name>`.
This can be changed with `build.install_prefix = dir`.
2023-02-12 21:02:30 +09:00
dearblue
7fd7409bf2
Files copied by task install should be from the build directory
2023-02-12 21:02:29 +09:00
dearblue
aac2fd7055
Copy header files to the build directory
...
This is so that the build directory can be regarded as a temporary installation directory to work in.
Directories set in `MRuby::Gem::Specification#export_include_paths` are used as they are if they are subdirectories placed under `gem.dir`.
Files are placed under `<build-dir>/include/mruby/gems/<gem-name>/<gem-include_paths>` to separate each GEM.
When GEM is compiled by building `libmruby.a`, the same `include_paths` will be set as before, so it is expected that no unintended references will be made.
2023-02-12 21:02:28 +09:00
dearblue
c020d8507e
Separate rake install related stuff into tasks/install.rake
2023-02-12 21:02:27 +09:00
Yukihiro "Matz" Matsumoto
4f9caea891
range.c (range_num_to_a): add array entries directly
...
Calling `mrb_ary_push()` is slower.
2023-02-11 16:13:33 +09:00
Yukihiro "Matz" Matsumoto
2adb1043f4
array.c (mrb_ary_push_m): call mrb_ary_push() when argc == 1
2023-02-11 14:23:48 +09:00
Yukihiro "Matz" Matsumoto
b4c936b533
use new E_EXCEPTION and E_STANDARD_ERROR; ref #5924
2023-02-10 15:21:38 +09:00
Yukihiro "Matz" Matsumoto
49709a65c7
AUTHORS: update entries [ci skip]
2023-02-10 15:21:38 +09:00
Yukihiro "Matz" Matsumoto
bed7a79add
Merge pull request #5927 from jbampton/remove-unneeded-whitespace
...
md/yml: remove unneeded blank lines and whitespace
2023-02-10 14:24:47 +09:00
Yukihiro "Matz" Matsumoto
7373b63919
Merge pull request #5926 from jbampton/update-license-year
...
Update License year to 2023
2023-02-10 14:23:32 +09:00
John Bampton
07a7d2a6cb
md/yml: remove unneeded blank lines and whitespace
2023-02-10 14:02:57 +10:00
John Bampton
8af0aa4905
Update License year to 2023
2023-02-10 11:55:32 +10:00
mimaki
4ca2129889
Update version to 3.2.0RC4.
2023-02-08 10:04:29 +09:00
Yukihiro "Matz" Matsumoto
fc53cd20b6
Merge pull request #5925 from jbampton/update-authors-file
...
AUTHORS: update "as of" info for `year`
2023-02-08 06:38:31 +09:00
Yukihiro "Matz" Matsumoto
75bdb4e0ec
Merge pull request #5924 from dearblue/exception-classes
...
Improve consistency of how error classes are retrieved
2023-02-08 06:30:34 +09:00
Yukihiro "Matz" Matsumoto
8a2bb9eb93
Merge pull request #5923 from dearblue/mrb_f_raise
...
Demotion `mrb_f_raise()` from `MRB_API`
2023-02-08 06:30:17 +09:00
John Bampton
5189d73d6d
AUTHORS: update "as of" info for year
...
The AUTHORS file was last published on January 8th 2023
2023-02-08 03:29:10 +10:00
dearblue
a93807f48f
Improve consistency of how error classes are retrieved
2023-02-07 22:46:56 +09:00
dearblue
0898ce982e
Demotion mrb_f_raise() from MRB_API
...
This function is the entity of the `Kernel.#raise` or `Kernel#fail` method.
I don't think users can use it whenever they want, and I don't think there is any need to expose it as an entity of a user-defined method.
2023-02-07 22:37:58 +09:00
Yukihiro "Matz" Matsumoto
056cda72be
mruby-bin-mirb: fix multi-line input issue; fix #5922
...
Bison changed the message for the end-of-file error. `mirb` should
be updated for the new message.
2023-02-07 17:43:14 +09:00
Yukihiro "Matz" Matsumoto
762ca43c16
mruby-bin-mirb: add bintest for multi-line input; ref #5922
2023-02-07 17:42:56 +09:00
Yukihiro "Matz" Matsumoto
78141d17f1
mruby-bin-mirb: fix multi-line input issue; fix #5922
...
Bison changed the message for the end-of-file error. `mirb` should
be updated for the new message.
2023-02-07 15:45:11 +09:00
Yukihiro "Matz" Matsumoto
a25755060c
mruby-bin-mirb: add bintest for multi-line input; ref #5922
2023-02-07 15:44:50 +09:00
Yukihiro "Matz" Matsumoto
6ca1b8e4e7
mruby-catch/catch.c: update disasm comment for new output format
2023-02-06 11:21:52 +09:00
Yukihiro "Matz" Matsumoto
7e607c67f2
codedump.c: adjust output format for ireps and literals
...
- I(%d:%p) -> I[%d]
- L(%d) -> L[%d]
The irep address is not useful, so just print index in reps table.
And use `[]` instead of `()` to clarify they are index.
2023-02-06 11:13:48 +09:00
Yukihiro "Matz" Matsumoto
1e122f7887
mruby-catch/catch.c: add disassembled comment for catch irep
2023-02-05 22:53:11 +09:00
Yukihiro "Matz" Matsumoto
acecee0da1
mruby-print/print.c: rename __printstr__ to __printstr
...
As a convention other internal methods are prefixed by `__`.
2023-02-04 18:58:07 +09:00
Yukihiro "Matz" Matsumoto
1273c04e26
mruby-print/print.rb: update ISO references
2023-02-04 18:57:43 +09:00
Yukihiro "Matz" Matsumoto
8c8bbd94dc
error.c: add new error handling API functions; ref #2837
...
- mrb_clear_error(): clear error status of mrb_state
- mrb_check_error(): check if error caused in the previous API
Note that `mrb_check_error` clears error status, so if you call
`mrb_check_error` more than once, latter calls will return FALSE.
2023-02-03 14:28:24 +09:00
Yukihiro "Matz" Matsumoto
f5a7b6aad2
hash.rb: defer local variable initialization
2023-02-02 22:45:30 +09:00
Yukihiro "Matz" Matsumoto
1b299addaf
mruby-hash-ext/hash.rb: implement Hash#compact! in C
...
Using `__compact` method defined in the core, since hash access
functions are private to `src/hash.c`.
2023-02-02 22:44:04 +09:00
Yukihiro "Matz" Matsumoto
9cda737a56
mruby-hash-ext/test: test Hash#compact! returns nil if unmodified
2023-02-02 22:42:36 +09:00
Yukihiro "Matz" Matsumoto
0a1fd07910
mruby-time/time.c: implement weekday methods in C
2023-02-01 14:33:46 +09:00
Yukihiro "Matz" Matsumoto
ecd2d8c11e
wrap method arguments by parentheses as convention
2023-02-01 14:33:46 +09:00
Yukihiro "Matz" Matsumoto
caac15e8e1
Merge pull request #5919 from jbampton/make-rake-add-target
...
Makefile/Rakefile add target/task for `pre-commit install`
2023-02-01 14:29:40 +09:00
Yukihiro "Matz" Matsumoto
2dcc7346b4
Merge pull request #5918 from jbampton/actions-checkout-name-info
...
gha: full details for `actions/checkout` name
2023-02-01 14:28:40 +09:00
John Bampton
2bb6eeb7c0
Makefile/Rakefile add target/task for pre-commit install
2023-02-01 13:14:23 +10:00
John Bampton
5532d176e1
gha: full details for actions/checkout name
2023-02-01 02:00:56 +10:00
John Bampton
7d4200df84
Remove super-linter.report folder
...
The `super-linter.report` folder does not seem to be listed anymore on https://github.com/github/super-linter
2023-01-31 22:46:39 +10:00
Yukihiro "Matz" Matsumoto
d41ea96c2a
string.c: fix boundary check in String#bytesplice
...
It should be able to append to the receiver.
2023-01-29 17:10:15 +09:00
Yukihiro "Matz" Matsumoto
a2e2e83012
string.c: move String#bytesplice to the core
2023-01-28 16:43:40 +09:00
Yukihiro "Matz" Matsumoto
12e232c006
mruby-string-ext/string.rb: add test for String#bytesplice
2023-01-28 16:41:40 +09:00
Yukihiro "Matz" Matsumoto
52746479a3
mruby-string-ext/string.c: new method String#byteslice
2023-01-27 23:22:02 +09:00
Yukihiro "Matz" Matsumoto
7b27346386
mruby-os-memsize/memsize.c: avoid mrb_get_args()
2023-01-26 11:14:10 +09:00
Yukihiro "Matz" Matsumoto
78bbf75981
mruby-random/random.c: avoid mrb_get_args()
2023-01-26 11:13:48 +09:00
Yukihiro "Matz" Matsumoto
4e85e855cf
numeric.c: avoid mrb_get_args() if possible
2023-01-25 14:10:43 +09:00
Yukihiro "Matz" Matsumoto
4e5be5a288
array.c: avoid slower mrb_get_args() if possible
2023-01-25 14:10:03 +09:00
Yukihiro "Matz" Matsumoto
37da677cc8
numeric.c (mrb_int_pow): avoid unnecessary calls to mrb_get_args()
2023-01-24 15:25:06 +09:00
Yukihiro "Matz" Matsumoto
d1449c2622
array.c (mrb_ary_times): avoid multiple calls to mrb_get_args()
2023-01-24 15:23:30 +09:00
Yukihiro "Matz" Matsumoto
d9bf3235d2
mruby-math/math.c: avoid mrb_get_args() if possible
...
When a method takes single argument, we can use lighter `mrb_get_arg1()`
instead of `mrb_get_args()`.
2023-01-24 09:15:20 +09:00
mimaki
6b82843e72
Update version to 3.2.0RC3.
2023-01-23 10:16:15 +09:00
mimaki
b40ab7bfee
Merge branch 'master' into stable
2023-01-23 09:54:02 +09:00
Yukihiro "Matz" Matsumoto
aefc5befbd
mruby-io/io.c: fix issues with gets; fix #5913
...
- gets with RS multiple times
- gets with RS with limit
- gets with limit bigger than buffer size
2023-01-23 07:30:40 +09:00
Yukihiro "Matz" Matsumoto
be5266fbe6
mruby-io/test: test gets with RS multiple times; ref #5913
2023-01-23 07:26:40 +09:00
Yukihiro "Matz" Matsumoto
4d5aadfc84
class.c (create_method_value): refactor mrb_method_t creation
2023-01-23 00:17:32 +09:00
Yukihiro "Matz" Matsumoto
079244c36a
src/class.c: add new function mrb_vm_find_method
...
The function skips `cp` dereference, and improve performance of method
calls slightly.
2023-01-23 00:17:32 +09:00
Yukihiro "Matz" Matsumoto
6b0efd43da
NEWS: copy entries from doc/mruby3.2.md
2023-01-23 00:17:32 +09:00
Yukihiro "Matz" Matsumoto
2e9f62b12c
Merge pull request #5914 from dearblue/doc/mruby3.2.md
...
Update mruby3.2.md for changes behavior of `mrb_vm_run()`
2023-01-22 22:49:57 +09:00
Yukihiro "Matz" Matsumoto
3c02c517ca
Merge pull request #5915 from dearblue/doc/mruby3.2.md.1
...
Update mruby3.2.md for new `mruby-data` gem
2023-01-22 22:49:05 +09:00
dearblue
998ef1711a
Update mruby3.2.md for new mruby-data gem
2023-01-22 20:52:09 +09:00
dearblue
a223778ee8
Update mruby3.2.md for changes behavior of mrb_vm_run()
2023-01-22 20:45:57 +09:00
Yukihiro "Matz" Matsumoto
882bb0662a
Merge pull request #5912 from dearblue/io-popen
...
Replaced `NO_IO_POPEN` with `MRB_NO_IO_POPEN`
2023-01-22 13:37:39 +09:00
dearblue
b0e537c05c
Replaced NO_IO_POPEN with MRB_NO_IO_POPEN
...
ref. commit 9deb52c7b2
2023-01-22 09:20:10 +09:00
Yukihiro "Matz" Matsumoto
97fe582d41
Merge pull request #5911 from dearblue/eval+binding
...
Fixed `Kernel#.eval` crash when given a custom defined `Binding` instance
2023-01-20 22:44:28 +09:00
dearblue
36f822d9af
Fixed Kernel#.eval crash when given a custom defined Binding instance
...
```console
% bin/mruby -e 'class Binding; end; eval "1", Binding.new'
zsh: segmentation fault (core dumped) bin/mruby -e 'class Binding; end; eval "1", Binding.new'
```
2023-01-20 21:26:21 +09:00
mimaki
b4f36b1ad9
Merge branch 'master' into stable
2023-01-18 10:45:35 +09:00
Yukihiro "Matz" Matsumoto
3a7e138c05
mruby/internal.h: add mrb_env_new to the internal function header
2023-01-18 10:37:48 +09:00
Yukihiro "Matz" Matsumoto
e6cf932d38
fixup! mruby/internal.h: add codedump functions to the internal function header
2023-01-18 10:37:48 +09:00
Yukihiro "Matz" Matsumoto
55eea005c8
mruby/internal.h: add codedump functions to the internal function header
...
ref #5906
2023-01-18 10:37:48 +09:00
mimaki
23aa5f91bc
Update version to 3.2.0RC2.
2023-01-18 10:26:58 +09:00
mimaki
830f88c5a0
Merge commit '9deb52c7b2ba6028d996172bfdd6cf8a0405ce1c' into stable
2023-01-18 09:45:23 +09:00
Yukihiro "Matz" Matsumoto
3639feb047
Merge pull request #5908 from dearblue/env-unshare.2
...
Make `mrb_env_unshare()` call in `mrb_vm_run()`
2023-01-18 08:05:00 +09:00
Yukihiro "Matz" Matsumoto
63597cbbd1
Merge pull request #5910 from mruby/dependabot/github_actions/github/super-linter-4.10.1
...
build(deps): bump github/super-linter from 4.10.0 to 4.10.1
2023-01-18 07:53:11 +09:00
Yukihiro "Matz" Matsumoto
faa6a5cb4f
Merge pull request #5906 from AlexDenisov/codedump-to-file
...
Add ability to dump bytecode into an arbitrary file
2023-01-18 07:37:12 +09:00
AlexDenisov
e15288e460
Add ability to dump bytecode into an arbitrary file
2023-01-17 19:01:55 +01:00
dependabot[bot]
823b8e4148
build(deps): bump github/super-linter from 4.10.0 to 4.10.1
...
Bumps [github/super-linter](https://github.com/github/super-linter ) from 4.10.0 to 4.10.1.
- [Release notes](https://github.com/github/super-linter/releases )
- [Changelog](https://github.com/github/super-linter/blob/main/docs/release-process.md )
- [Commits](https://github.com/github/super-linter/compare/v4.10.0...v4.10.1 )
---
updated-dependencies:
- dependency-name: github/super-linter
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2023-01-17 14:01:22 +00:00
Yukihiro "Matz" Matsumoto
9deb52c7b2
mruby-io/io.c: allow disabling popen
...
When `MRB_NO_IO_POPEN` is defined (or iPhone is target), `IO#popen`
will be disabled.
2023-01-17 18:25:23 +09:00
Yukihiro "Matz" Matsumoto
6b87aae757
doc/guides/compile.md: update compilation example
...
Show usage of multiple command-line options to `mruby-config`.
2023-01-17 18:23:29 +09:00
Yukihiro "Matz" Matsumoto
10768c1191
LEGAL: add entries for non-MIT licensed files.
2023-01-17 18:23:29 +09:00
Yukihiro "Matz" Matsumoto
2c261503b5
doc/internal/boxing.md: remove an extra double quote sign.
2023-01-16 19:01:11 +09:00
Yukihiro "Matz" Matsumoto
7a6d03f869
vm.c: transferred fiber termination should kick root fiber; fix #5907
2023-01-16 18:25:50 +09:00
Yukihiro "Matz" Matsumoto
3f6fd994f0
README.md: mruby is not Ruby 3.x compatible (for syntax at least)
...
With pattern matching as an exception.
2023-01-16 14:39:47 +09:00
dearblue
365c151df0
Make mrb_env_unshare() call in mrb_vm_run()
...
Move the detachment of the "env" object, now done by `mrb_top_run()` by #5904 , to `mrb_vm_run()`.
This is because `mrb_vm_run()` can remove `mrb_env_unshare()` which is called from `bin/mirb`.
Also, even if the mruby VM is already running, either of the following conditions should be used to detach "env":
- If the `stack_keep` variable is 0.
- If the stack length of "env" is longer than `irep->nlocals`.
The reason for the change is that the stack beyond `irep->nlocals` is used inside the called method, and previously it was possible to reference and manipulate the state inside the method via "env".
env stack | |
main stack | top | m1 | m2 |
|<--------------->|
operable via env stack (including self)
If the problematic block is called from the `m2` method above, it is possible to replace `self` in `m1` and `m2` as well as the internal variables.
This change may cause compatibility problems, but I believe it is better to make `MRB_API`, `mrb_vm_run()` safe.
If a dangerous procedure is absolutely necessary, `mrb_vm_exec()` can still be called as before.
2023-01-15 18:16:42 +09:00
dearblue
e5108a6291
Fixed local variables not separated between copied binding objects
...
This is because I forgot to implement the `Binding#initialize_copy` method.
2021-08-03 23:20:34 +09:00
KOBAYASHI Shuji
98d091436d
Reduce memory usage of instance variable table
...
## Implementation Summary
* Only keys and only values of hash table are contiguous to eliminate
structure padding.
* Change upper limit of `iv_tbl` size to `UINT16_MAX` (it seems to be
acceptable in mruby because the total number of classes/modules
immediately after starting Redmine is 20,000 or less).
* `iv_tbl*` point hash buckets directly.
## Benchmark Summary
Only the results of typical situations on 64-bit Word-boxing are present
here. For more detailed information, including consideration, see below
report (although most of the body is written in Japanese).
* https://shuujii.github.io/mruby-iv-benchmark
### Memory Usage
Lower value is better.
| iv_tbl Size | Baseline | New | Factor |
|------------:|---------------:|---------------:|-----------:|
| 4 | 88B | 52B | 0.59091x |
| 30 | 536B | 388B | 0.72388x |
| 100 | 2072B | 1540B | 0.74324x |
| 200 | 4120B | 3076B | 0.74660x |
Although not mentioned in the above report, the memory usage of `mrbtest`
(full-core gembox) is as follows in the result by Valgrind.
* Baseline: 108,086 allocs, 16,313,122 bytes allocated
* New: 94,273 allocs, 15,875,214 bytes allocated
### Performance
Higher value is better.
#### `mrb_obj_iv_set`
| iv_tbl Size | Baseline | New | Factor |
|------------:|---------------:|---------------:|-----------:|
| 4 | 88.63003M i/s | 92.60611M i/s | 1.04486x |
| 30 | 32.97066M i/s | 25.25095M i/s | 0.76586x |
| 100 | 16.33224M i/s | 22.74998M i/s | 1.39295x |
| 200 | 5.64484M i/s | 6.79949M i/s | 1.20455x |
#### `mrb_obj_iv_get`
| iv_tbl Size | Baseline | New | Factor |
|------------:|---------------:|---------------:|-----------:|
| 4 | 217.58391M i/s | 237.59912M i/s | 1.09199x |
| 30 | 139.56195M i/s | 160.49470M i/s | 1.14999x |
| 100 | 143.09716M i/s | 190.95047M i/s | 1.33441x |
| 200 | 89.75291M i/s | 134.78717M i/s | 1.50176x |
### Binary Size
Lower value is better.
| File | Baseline | New | Factor |
|:------------|---------------:|---------------:|-----------:|
| mruby | 697,520B | 697,520B | 1.00000x |
| libmruby.a | 1,046,570B | 1,046,682B | 0.99989x |
## Note
The address in `struct RObject::iv` may change after initialization because
`iv_tbl*` points directly to hash buckets. Therefore, the address cannot be
copied and shared when include/prepend. So, when sharing `iv_tbl`, refer to
it via the sharing source class. As a result, the following bug have also
been fixed.
* [An `iv_tbl` is not shared when a class includes or prepends an empty module](https://gist.github.com/shuujii/0ac23fa24b0c55b2c602b534d81e4a95 )
2021-02-03 23:16:09 +09:00